aboutsummaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
2010-02-15omap: McBSP: Use cache when modifying individual register bitsJanusz Krzysztofik
Change the way McBSP registers are updated: use cached values instead of relying upon those read back from the device. With this patch, I have finally managed to get rid of all random playback/recording hangups on my OMAP1510 based Amstrad Delta hardware. Before that, values read back from McBSP registers to be used for updating them happened to be errornous. From the hardware side, the issue appeared to be caused by a relatively high power requirements of an external USB adapter connected to the board's printer dedicated USB port. I think there is one important point that makes this patch worth of applying, apart from my hardware quality. With the current code, if it ever happens to any machine, no matter if OMAP1510 or newer, to read incorrect value from a McBSP register, this wrong value will get written back without any checking. That can lead to hardware damage if, for example, an input pin is turned into output as a result. Applies on top of patch 3 from this series: [PATCH v9 3/4] OMAP: McBSP: Introduce caching in register write operations Tested on OMAP1510 based Amstrad Delta using linux-omap for-next, commit fb7380d70e041e4b3892f6b19dff7efb609d15a4 (2.6.33-rc3+ dated 2010-01-11). Compile-tested with omap_3430sdp_defconfig. Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Jarkko Nikula <jhnikula@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap: McBSP: Introduce caching in register write operationsJanusz Krzysztofik
Determine cache size required per McBSP port at init time, based on processor type running on. Allocate space for storing cached copies of McBSP register values at port request. Modify omap_msbcp_write() function to update the cache with every register write operation. Modify omap_mcbsp_read() to support reading from cache or hardware. Update MCBSP_READ() macro for modified omap_mcbsp_read() function API. Introduce a new macro that reads from the cache. Tested on OMAP1510 based Amstrad Delta using linux-omap for-next, commit fb7380d70e041e4b3892f6b19dff7efb609d15a4 (2.6.33-rc3+ dated 2010-01-11). Compile-tested with: omap_perseus2_730_defconfig, omap_generic_1610_defconfig, omap_generic_2420_defconfig, omap_2430sdp_defconfig, omap_3430sdp_defconfig, omap_4430sdp_defconfig with CONFIG_OMAP_MCBSP=y selected. Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Jarkko Nikula <jhnikula@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap: McBSP: Modify macros/functions API for easy cache accessJanusz Krzysztofik
OMAP_MCBSP_READ()/_WRITE() macros and omap_mcbsp_read()/_write() functions accept McBSP register base address as an argument. In order to support caching, that must be replaced with an address of the omap_mcbsp structure that would provide addresses for both register AND cache access. Since OMAP_ prefix seems obvious in macro names, drop it off in order to minimize line wrapping throughout the file. Tested on OMAP1510 based Amstrad Delta using linux-omap for-next, commit fb7380d70e041e4b3892f6b19dff7efb609d15a4 (2.6.33-rc3+ dated 2010-01-11). Compile-tested with omap_3430sdp_defconfig. Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Jarkko Nikula <jhnikula@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap: McBSP: Use macros for all register read/write operationsJanusz Krzysztofik
There are several places where readw()/writew() functions are used instead of OMAP_MCBSP_READ()/WRITE() macros for manipulating McBSP registers. Replace them with macros to ensure consistent behaviour after caching is introduced. Tested on OMAP1510 based Amstrad Delta. Compile-tested with omap_3430sdp_defconfig. Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Jarkko Nikula <jhnikula@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap iommu: fix incorrect address for largepage 1st entryHiroshi DOYU
There was a potential risk that the following "memset" could override its range if a given address was not the 1st entry of a largepage. This is not the case for "iovmm". Reported-by: Hari Nagalla <hnagalla@ti.com> Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com> Signed-off-by: Hari Nagalla <hnagalla@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap: iommu: fix incorrect address for supersection 1st entryHiroshi DOYU
There was a potential risk that the following "memset" could override its range if a given address was not the 1st entry of a supersection. This is not the case for "iovmm". Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com> Signed-off-by: Hari Nagalla <hnagalla@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap iommu: cleanup iommu page address mask and definitionsHiroshi DOYU
This is just a cleanup, but adds a few macros here, which can be used in the proceeding patches. Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap: convert boards to use physmap-flashLadislav Michl
Convert OMAP based boards to use physmap-flash. Refreshed against today's Linux omap kernel tree Cc: linux-mtd@lists.infradead.org Signed-off-by: Ladislav Michl <ladis@linux-mips.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap2/3/4: Add omap4 into omap3_defconfigTony Lindgren
Add omap4 into omap3_defconfig. Note that this does not yet boot on omap4, but boots on omap2 and omap3. Also note that CONFIG_SMP does not currently work on uniprocessor ARMs. Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap2/3/4: Fix mach-omap2/serial.c for multibootTony Lindgren
Initialize UART4 only for 3630 and 44xx. Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap: Fix gpio.c for multi-omap for omap4Tony Lindgren
Set up METHOD_GPIO_44XX instead of trying to use the METHOD_GPIO_24XX. Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap3/4: Fix compile for multi-omap for clkops_noncore_dpll_opsTony Lindgren
Rename clkops_noncore_dpll_ops for omap3 and omap4. Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap2/3/4: Allow booting omap4 with multi-omap configurationTony Lindgren
Allow booting omap4 with multi-omap configuration. Tested only on omap2 and omap3, please somebody test on omap4 and ack. Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap2/3/4: Clean up entry-macro.s for adding support for omap4 multibootTony Lindgren
Move defines around and set up handlers based on MULTI_OMAP2. Note that this will only allow compiling in omap4 with omap2 and omap3. It will not yet make omap4 boot with multi-omap. Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap4: Use get_irqnr_preambleTony Lindgren
Use get_irqnr_preamble Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap2/3/4: Clean up defines for entry-macro.STony Lindgren
Define the irq base the same way as for omap2 and omap3, and start using get_irqnr_preamble. Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap: Move multi-omap ifdeffery into it's own header fileTony Lindgren
This way we can include it easily as needed also for .S files. Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap2/3: Update omap3_defconfig to build in all the 2420 based boardsTony Lindgren
Note that booting 2420 depends on another patch posted earlier to not select CONFIG_CPU_32v6K if CONFIG_ARCH_OMAP2 is selected. Also note that we cannot add omap2430 in yet because of the different clock addresses compared to 2420. Also note that we cannot have CONFIG_CPU_32v6K=y in order to boot on 24xx. Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap2/3: Fix initcalls for multi-omapTony Lindgren
Otherwise the wrong initcalls can run. Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap2/3/4: Replace orred CONFIG_ARCH_OMAP2/3/4 with CONFIG_ARCH_OMAP2PLUSTony Lindgren
omap: Replace orred CONFIG_ARCH_OMAP2/3/4 with CONFIG_ARCH_OMAP2PLUS Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap3: Replace ARCH_OMAP34XX with ARCH_OMAP3Tony Lindgren
Replace ARCH_OMAP34XX with ARCH_OMAP3 Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap2: Convert ARCH_OMAP24XX to ARCH_OMAP2Tony Lindgren
Convert ARCH_OMAP24XX to ARCH_OMAP2 Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap2/3/4: Fix mbox init for multi-omapTony Lindgren
Fix mbox init for multi-omap Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap2/3/4: Fix omap2_map_common_io for multi-omapTony Lindgren
Fix omap2_map_common_io for multi-omap Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap: Fix dmtimer.c for multi-omap bootTony Lindgren
Fix dmtimer.c for multi-omap boot. Also remove legacy clk_enable/disable wrappers that are no longer needed. Note that the clock handling should be further improved to make use of the clock aliases. Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap2/3: Multiboot compile fixes to compile in omap2 and omap3Tony Lindgren
Allows compiling in omap2 and omap3. Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap2/3: Make get_irqnr_and_base common for mach-omap2 multibootTony Lindgren
Make get_irqnr_and_base common for mach-omap2 multiboot Thanks to a tip from Russell King <rmk+kernel@arm.linux.org.uk>, this also optimizes the code for non-multiboot configurations by using get_irqnr_preamble. Note that this will only work currently for 24xx and 34xx. Support for 44xx can be added later on for basic multiboot, and similar patch should be done for mach-omap1/entry-macro.S. Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15Merge branch 'debug-ll' into omap-for-linusTony Lindgren
2010-02-15omap: Remove old DEBUG_LL serial port optionsTony Lindgren
These are no longer needed. Note that zoom boards should now set their own function in uncompress.h and debug-macro.S for the external UART. Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap: Make uncompress code and DEBUG_LL code genericTony Lindgren
Define arch_decomp_setup() the same way as some other architectures do. Use arch_id to configure the debug uart based on the machine_is by storing it into the uart scratchpad register for DEBUG_LL code to use. Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-15omap: Clean the serial port definesTony Lindgren
This way we don't have conflicts with the defines with compiling in multiple omaps. Set the addresses for uarts in struct omap_globals for the early serial init code. Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-12Merge branch 'for-tony' of git://gitorious.org/linux-omap-dss2/linux into ↵Tony Lindgren
omap-for-linus
2010-02-12ARM: 5910/1: ARM: Add tmp register for addruart and loadspTony Lindgren
Otherwise more complicated uart configuration won't be possible. We can use r1 for tmp register for both head.S and debug.S. NOTE: This patch depends on another patch to add the the tmp register into all debug-macro.S files. That can be done with: $ sed -i -e "s/addruart,rx|addruart, rx/addruart, rx, tmp/" arch/arm/*/include/*/debug-macro.S Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2010-02-12omap3: cm-t35: add DSS2 display supportMike Rapoport
Signed-off-by: Mike Rapoport <mike@compulab.co.il> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
2010-02-12OMAP: AM3517: Enable DSS2 for AM3517EVM boardVaibhav Hiremath
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com> [tomi.valkeinen@nokia.com: removed defconfig changes] Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
2010-02-12OMAP: Enable DSS2 for OMAP3EVM boardVaibhav Hiremath
Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com> [tomi.valkeinen@nokia.com: removed evm defconfig changes] Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
2010-02-10Merge branch 'omap-fixes-for-linus' into omap-for-linusTony Lindgren
2010-02-10OMAP: hsmmc: fix memory leakAaro Koskinen
The platform data allocated with kmalloc() will become unreachable once the init is complete, so it should be freed. The problem was discovered by kmemleak. Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com> Acked-by: Adrian Hunter <adrian.hunter@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-04Merge master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds
* master.kernel.org:/home/rmk/linux-2.6-arm: ARM: Fix wrong register in proc-arm6_7.S data abort handler ARM: 5909/1: ARM: Correct the FPSCR bits setting when raising exceptions ARM: 5904/1: ARM: Always generate the IT instruction when compiling for Thumb-2 ARM: 5907/1: ARM: Fix the reset on the RealView PBX Development board mx35: add a missing comma in a pad definition mx25: make the FEC AHB clk secondary of the IPG mx25: fix time accounting mx25: properly initialize clocks mx25: remove unused mx25_clocks_init() argument i.MX25: implement secondary clocks for uarts and fec i.MX25: Allow secondary clocks in DEFINE_CLOCK ARM: MX3: Fixed typo in declared enum type name. MXC: Add AUDMUXv2 register decode to debugfs mx31ads: Provide an IRQ range to the WM835x on the 1133-EV1 module mx31ads: Provide a name for EXPIO interrupt chip mx31ads: Allow enable/disable of switchable supplies
2010-02-04Merge branch 'omap-fixes-for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 * 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: omap: Disable serial port autoidle by default omap: Fix access to already released memory in clk_debugfs_register_one() omap: Fix arch/arm/mach-omap2/mux.c: Off by one error omap: Fix 3630 mux errors OMAP2/3: GPMC: ensure valid clock pointer OMAP2/3: IRQ: ensure valid base address ARCH OMAP : enable ARCH_HAS_HOLES_MEMORYMODEL for OMAP omap: Remove old unused defines for OMAP_32KSYNCT_BASE omap: define _toggle_gpio_edge_triggering only for OMAP1
2010-02-03omap: Disable serial port autoidle by defaultTony Lindgren
Currently the omap serial clocks are autoidled after 5 seconds. However, this causes lost characters on the serial ports. As this is considered non-standard behaviour for Linux, disable the timeout. Note that this will also cause blocking of any deeper omap sleep states. To enable the autoidling of the serial ports, do something like this for each serial port: # echo 5 > /sys/devices/platform/serial8250.0/sleep_timeout # echo 5 > /sys/devices/platform/serial8250.1/sleep_timeout ... Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-03omap: Fix access to already released memory in clk_debugfs_register_one()Marek Skuczynski
I have found an access to already released memory in clk_debugfs_register_one() function. Signed-off-by: Marek Skuczynski <mareksk7@gmail.com> Acked-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-03omap: Fix arch/arm/mach-omap2/mux.c: Off by one errorTony Lindgren
David Binderman ran the sourceforge tool cppcheck over the source code of the new Linux kernel 2.6.33-rc6: [./arm/mach-omap2/mux.c:492]: (error) Buffer access out-of-bounds 13 characters + 1 digit + 1 zero byte is more than 14 characters. Also add a comment on mode0 name length in case new omaps start using longer names. Reported-by: David Binderman <dcb314@hotmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-03omap: Fix 3630 mux errorsTony Lindgren
3630 has more mux signals than 34xx. The additional pins exist in omap36xx_cbp_subset, but are not initialized as the superset is missing these offsets. This causes the following errors during the boot: mux: Unknown entry offset 0x236 mux: Unknown entry offset 0x22e mux: Unknown entry offset 0x1ec mux: Unknown entry offset 0x1ee mux: Unknown entry offset 0x1f4 mux: Unknown entry offset 0x1f6 mux: Unknown entry offset 0x1f8 mux: Unknown entry offset 0x1fa mux: Unknown entry offset 0x1fc mux: Unknown entry offset 0x22a mux: Unknown entry offset 0x226 mux: Unknown entry offset 0x230 mux: Unknown entry offset 0x22c mux: Unknown entry offset 0x228 Fix this by adding the missing offsets to omap3 superset. Note that additionally the uninitialized pins need to be skipped on 34xx. Based on an earlier patch by Allen Pais <allen.pais@ti.com>. Reported-by: Allen Pais <allen.pais@ti.com> Signed-off-by: Allen Pais <allen.pais@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-03OMAP2/3: GPMC: ensure valid clock pointerKevin Hilman
Ensure valid clock pointer during GPMC init. Fixes compiler warning about potential use of uninitialized variable. Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-03OMAP2/3: IRQ: ensure valid base addressKevin Hilman
Ensure valid base address during IRQ init. Fixes compiler warning about potential use of uninitialized variable. Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-03ARCH OMAP : enable ARCH_HAS_HOLES_MEMORYMODEL for OMAPSriram
OMAP platforms(like OMAP3530) include DSP or other co-processors for media acceleration. when carving out memory for the accelerators we can end up creating a hole in the memory map of sort: <kernel memory><hole(memory for accelerator)><kernel memory> To handle such a memory configuration ARCH_HAS_HOLES_MEMORYMODEL has to be enabled. For further information refer discussion at: http://www.mail-archive.com/linux-omap@vger.kernel.org/msg15262.html. Signed-off-by: Sriramakrishnan <srk@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-03omap: Remove old unused defines for OMAP_32KSYNCT_BASETony Lindgren
Remove old unused defines for OMAP_32KSYNCT_BASE Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-03ARM: Fix wrong register in proc-arm6_7.S data abort handlerRussell King
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2010-02-03microblaze: fix interrupt state restoreSteven J. Magnani
Interrupts must be disabled while an interrupt state restore (prep for interrupt return) is in progress. Code to do this was lost in the port to the mainline kernel. Signed-off-by: Steven J. Magnani <steve@digidescorp.com> Signed-off-by: Michal Simek <monstr@monstr.eu>