summaryrefslogtreecommitdiffstats
path: root/arch/arm (follow)
Commit message (Collapse)AuthorAgeFilesLines
* [ARM] pxa: remove boot time RTC initialisationRussell King2007-07-121-9/+0
| | | | | | | | | | The RTC library code contains everything necessary to set the system time from the RTC; for similar reasons as the previous commit, it's far better to let the RTC library code sort this out rather than implement something which might not be appropriate for everyone. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: stop doing our own rtc management over suspendRussell King2007-07-121-10/+0
| | | | | | | | | | Remove the RTC management over a suspend/resume cycle. Firstly, we may not be using the internal RTC for time keeping; some platforms have an external RTC for this inspite of the PXA having an internal RTC. Secondly, the RTC library code handles updating system time on resume. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4451/1: pxa: make dma.c generic and remove cpu specific dma codeEric Miao2007-07-123-13/+39
| | | | | | | | | | | | | | | | | | | | | | Since the number of dma channels varies between pxa25x and pxa27x, it introduces some specific code in dma.c. This patch moves the specific code to pxa25x.c and pxa27x.c and makes dma.c more generic. 1. add pxa_init_dma() for dma initialization, the number of channels are passed in by the argument 2. add a "prio" field to the "struct pxa_dma_channel" for the channel priority, and is initialized in pxa_init_dma() 3. use a general priority comparison with the channels "prio" field so to remove the processor specific pxa_for_each_dma_prio macro, this is not lightning fast as the original one, but it is acceptable as it happens when requesting dma, which is usually not so performance critical Signed-off-by: eric miao <eric.miao@marvell.com> Acked-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4450/1: pxa: add pxa25x_init_irq() and pxa27x_init_irq()Eric Miao2007-07-1213-23/+33
| | | | | | | | | | | | | /* should be ok this time, I aligned this patch to your arm:pxa2.mbox */ 1. move pxa25x specific IRQ initialization code to pxa25x_init_irq() and pxa27x code to pxa27x_init_irq(), remove pxa_init_irq() 2. replace all pxa_init_irq() with their PXA25x or PXA27x specific functions Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4438/1: PXA: remove #ifdef .. #endif from pxa_gpio_demux_handler()Eric Miao2007-07-121-6/+4
| | | | | | | | | | | | | | | 1. use GPIO_IRQ_mask[] to select those bits of interest, actually only those "unmasked" GPIO IRQs with their corresponding bits in GPIO_IRQ_mask[] set to "1" should be checked 2. remove #ifdef PXA_LAST_GPIO > 96 .. #endif, GPIO_IRQ_mask[] is used to mask out the irrelevant bits, so that even though the GEDR3 on PXA25x is reserved, it will be masked, and the following code will never run. Another point is that GPIO85- GPIO95 bits within GEDR2 will also be masked out on PXA25x Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4437/1: PXA: move the GPIO IRQ initialization code to pxa_init_irq_gpio()Eric Miao2007-07-121-24/+17
| | | | | | | move the GPIO IRQ initialization code to pxa_init_irq_gpio() Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4436/1: PXA: move low IRQ initialization code to pxa_init_irq_low()Eric Miao2007-07-121-15/+21
| | | | | | | 1. move low IRQ initialization code to pxa_init_irq_low() Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4435/1: PXA: remove PXA_INTERNAL_IRQSEric Miao2007-07-121-10/+16
| | | | | | | | | | | | | | | 1. define PXA_GPIO_IRQ_BASE to be right after the internal IRQs, and define PXA_GPIO_IRQ_NUM to be 128 for all PXA2xx variants 2. make the code specific to the high IRQ numbers (32..64) to be PXA27x specific 3. add a function pxa_init_irq_high() to initialize the internal high IRQ chip, the invoke of this function could be moved to PXA27x specific initialization code Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4434/1: PXA: remove PXA_IRQ_SKIPEric Miao2007-07-121-5/+5
| | | | | | | | | | | | | 1. PXA_IRQ_SKIP is defined to be 7 on PXA25x so that the first IRQ starts from zero. This makes IRQ numbering inconsistent between PXA25x and PXA27x. Remove this macro so that the same IRQ_XXXXX definition has the same value on both PXA25x and PXA27x. 2. make IRQ_SSP3..IRQ_PWRI2C valid only if PXA27x is defined, this avoids unintentional use of these macros on PXA25x Signed-off-by: eric miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: Fix PXA27x suspend type validation, remove pxa_pm_prepare()Russell King2007-07-123-27/+6
| | | | | | | | | | | | | | pxa_pm_prepare() tried to validate the suspend method type. As noted in previous commits: eb9289eb20df6b54214c45ac7c6bf5179a149026 9c372d06ce9ddf65e1393f9ea22a6d6bd5f96b42 e8c9c502690efd24b7055bf608e7a3c34216848b the checking of the suspend type in the 'prepare' method is the wrong place to do this; use the 'valid' method instead. This means that pxa_pm_prepare() can be entirely removed. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: move pm_ops structure into CPU specific filesRussell King2007-07-123-29/+34
| | | | | | | | | Move the pm_ops structure into the PXA25x and PXA27x support files. Remove the old pxa_pm_prepare() function, and rename the both pxa_cpu_pm_prepare() functions as pxa_pm_prepare(). We'll fix that later. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: introduce cpu_is_pxaXXX macrosRussell King2007-07-121-4/+2
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: use mutexes instead of semaphoresRussell King2007-07-121-8/+7
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] pxa: remove useless pxa_pm_finish() functionRussell King2007-07-122-12/+0
| | | | | | | | | | pxa_pm_finish() does nothing but return zero. The core code does nothing with this return value, and will not try to call the finish method in the pm_ops structure if it is NULL. Therefore, we can remove this useless function. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] always allow dump_stack() to produce a backtraceRussell King2007-07-051-2/+0
| | | | | | | Don't make this dependent on CONFIG_DEBUG_KERNEL - if we hit a WARN_ON we need the stack trace to work out how we got to that point. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] Fix non-page aligned boot time mappingsRussell King2007-07-041-2/+2
| | | | | | | | | | | | | AT91SAM9260 stopped booting with the recent changes to MM initialisation - it was asking for a non-aligned virtual address which caused loops to be non-terminal. Fix this by rounding virtual addresses down, but remember to include the offset in the length, and round the length up to the following page. This means that asking for a mapping of 4K starting at 2K into a page maps two pages as one would expect. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4458/1: pxa: Fix CKEN usage and hence fix pxa suspend/resumeRichard Purdie2007-07-021-2/+2
| | | | | | | | The PXA CKEN changes broken syspend/resume on the pxa27x. This patch corrects the problem and fixes another couple of bad references. Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4454/1: Use word accesses in Versatile PCI config readsAndrzej Zaborowski2007-07-021-1/+4
| | | | | | | | | | | | ARM Versatile PCI config reads of one byte width have the lowest two bits of the address cleared and result in reading from a wrong place in the config space. This change is to use word size accesses like it is done for halfword reads. Byte reads are used for retrieving the IRQ number of a PCI device and the problem was not exposed until 2.6.20 because the value read was discarded in drivers/pci/setup-irq.c (recently fixed). Signed-off-by: Andrzej Zaborowski <andrew@openedhand.com> Acked-by: Paul Brook <paul@codesourcery.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* PM: introduce set_target method in pm_opsRafael J. Wysocki2007-07-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 52ade9b3b97fd3bea42842a056fe0786c28d0555 changed the suspend code ordering to execute pm_ops->prepare() after the device model per-device .suspend() calls in order to fix some ACPI-related issues. Unfortunately, it broke the at91 platform which assumed that pm_ops->prepare() would be called before suspending devices. at91 used pm_ops->prepare() to get notified of the target system sleep state, so that it could use this information while suspending devices. However, with the current suspend code ordering pm_ops->prepare() is called too late for this purpose. Thus, at91 needs an additional method in 'struct pm_ops' that will be used for notifying the platform of the target system sleep state. Moreover, in the future such a method will also be needed by ACPI. This patch adds the .set_target() method to 'struct pm_ops' and makes the suspend code call it, if implemented, before executing the device model per-device .suspend() calls. It also modifies the at91 code to use pm_ops->set_target() instead of pm_ops->prepare(). Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Acked-by: David Brownell <dbrownell@users.sourceforge.net> Cc: Pavel Machek <pavel@ucw.cz> Cc: Johannes Berg <johannes@sipsolutions.net> Cc: Len Brown <lenb@kernel.org> Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Introduce fixed sys_sync_file_range2() syscall, implement on PowerPC and ARMDavid Woodhouse2007-06-282-14/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Not all the world is an i386. Many architectures need 64-bit arguments to be aligned in suitable pairs of registers, and the original sys_sync_file_range(int, loff_t, loff_t, int) was therefore wasting an argument register for padding after the first integer. Since we don't normally have more than 6 arguments for system calls, that left no room for the final argument on some architectures. Fix this by introducing sys_sync_file_range2(int, int, loff_t, loff_t) which all fits nicely. In fact, ARM already had that, but called it sys_arm_sync_file_range. Move it to fs/sync.c and rename it, then implement the needed compatibility routine. And stop the missing syscall check from bitching about the absence of sys_sync_file_range() if we've implemented sys_sync_file_range2() instead. Tested on PPC32 and with 32-bit and 64-bit userspace on PPC64. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Acked-by: Russell King <rmk+kernel@arm.linux.org.uk> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [ARM] 4449/1: more entries in arch/arm/boot/.gitignoreNicolas Pitre2007-06-251-0/+3
| | | | | Signed-off-by: Nicolas Pitre <npitre@mvista.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4452/1: Force the literal pool dump before reloc_endCatalin Marinas2007-06-251-0/+1
| | | | | | | | | In the arch/arm/boot/compressed/head.S file, the contents of the literal pool accumulated during the relocatable code must be dumped before reloc_end. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] Update show_regs/oops register formatRussell King2007-06-181-28/+35
| | | | | | | | | | | | Add the kernel release and version information to the output of show_regs/oops. Add the CPU PSR register. Avoid using printk to output partial lines; always output a complete line. Re-combine the "Control" and "Table + DAC" lines after nommu separated them; we don't want to waste vertical screen space needlessly. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] Add support for pause_on_oops and display preempt/smp optionsRussell King2007-06-171-1/+19
| | | | | | | | | | Add calls to oops_enter() and oops_exit() to __die(), so that things like lockdep know when an oops occurs. Add suffixes to the oops report to indicate whether the running kernel has been built with preempt or smp support. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4445/1: ANUBIS: Fix CPLD registersBen Dooks2007-06-111-2/+2
| | | | | | | | Update the ANUBIS register definitions inline with the specs and ensure they are registered correctly. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4444/2: OSIRIS: CPLD suspend fixBen Dooks2007-06-111-0/+39
| | | | | | | | Ensure the CPLD 8bit settings are preserved over a suspend/resume cycle as the CPU sends a hard-reset at resume time. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4443/1: OSIRIS: Add watchdog device to machine devicesBen Dooks2007-06-111-0/+1
| | | | | | | | Add the watchdog timer to the list of devices the Osiris registers at startup. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4442/1: OSIRIS: Fix CPLD register definitionsBen Dooks2007-06-111-4/+14
| | | | | | | | Fix the CPLD register definitions to correctly mirror the documentation Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] VFP: fix section mismatch errorRussell King2007-06-102-1/+8
| | | | | | | | | | | | Fix a real section mismatch issue; the test code is thrown away after initialisation, but if we do not detect the VFP hardware, it is left hooked into the exception handler. Any VFP instructions which are subsequently executed risk calling the discarded exception handler. Introduce a new "null" handler which returns to the "unrecognised fault" return address. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] Solve buggy smp_processor_id() usageRussell King2007-06-021-0/+2
| | | | | | | | | BUG: using smp_processor_id() in preemptible [00000001] code: opcontrol/427 Resolve this bug by ensuring that we're not using smp_processor_id() in a preemptable context (by disabling preemption.) Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4419/1: AT91: SAM9 USB clocks check for suspendingAndrew Victor2007-06-021-6/+5
| | | | | | | | | | | When suspending to slow-clock mode, at91_pm_verify_clocks() is called to ensure that all the clocks are disabled or in the correct state. This patch replaces the "#warning TODO" messages for the SAM9 processors with the correct code. Signed-off-by: Andrew Victor <andrew@sanpeople.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4418/1: AT91: Number of programmable clocks differsAndrew Victor2007-06-021-5/+0
| | | | | | | | | | | | | | The number of programmable clocks available on the AT91 processors can differ, therefore do not always display the contents of the PMC_PCKR(0) .. PMC_PCKR(3) registers (ie, assume there are 4 clocks). If CONFIG_AT91_PROGRAMMABLE_CLOCKS is enabled, the programmable clocks will be registered like the other system/peripheral clocks, and the state of the programmable clocks will be displayed like with the other clocks. Signed-off-by: Andrew Victor <andrew@sanpeople.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4392/2: Do not corrupt the SP register in compressed/head.SCatalin Marinas2007-06-021-1/+4
| | | | | | | | | ARMv7 support code requires a valid stack for saving/restoring registers as the whole D-cache flushing function is more complex. This patch ensures that the SP register is not corrupted. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* parse errors in ifdefsYoann Padioleau2007-06-011-1/+1
| | | | | | | | | | | | | | | | Fix various bits of obviously-busted code which we're not happening to compile, due to ifdefs. Cc: "Luck, Tony" <tony.luck@intel.com> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Cc: Richard Henderson <rth@twiddle.net> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Jeff Garzik <jeff@garzik.org> Cc: Jan Kara <jack@ucw.cz> Cc: James Bottomley <James.Bottomley@steeleye.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [ARM] Fix some section mismatch warningsRussell King2007-05-3014-15/+14
| | | | | | | | | | | | | | | | | | | | | | | | | The following patch fixes these section mismatch warnings: WARNING: arch/arm/mach-at91/built-in.o(.text+0xdf4): Section mismatch: reference to .init.data:dk_nand_partition (between 'nand_partitions' and 'at91_leds_event') WARNING: arch/arm/mach-at91/built-in.o(.text+0xbdc): Section mismatch: reference to .init.data:ek_nand_partition (after 'nand_partitions') WARNING: arch/arm/mach-at91/built-in.o(.text+0xbdc): Section mismatch: reference to .init.data:ek_nand_partition (between 'nand_partitions' and 'ads7843_pendown_state') WARNING: arch/arm/mach-at91/built-in.o(.text+0xbdc): Section mismatch: reference to .init.data:ek_nand_partition (after 'nand_partitions') WARNING: arch/arm/mach-at91/built-in.o(.text+0xc28): Section mismatch: reference to .init.data:kb9202_nand_partition (after 'nand_partitions') WARNING: arch/arm/mach-footbridge/built-in.o(.text+0xaa4): Section mismatch: reference to .init.data:cats_pci (between 'cats_pci_init' and 'ebsa285_leds_event')WARNING: arch/arm/mach-ixp2000/built-in.o(.text+0xb54): Section mismatch: reference to .init.text:ixp2000_init_irq (between 'ixdp2x00_init_irq' and 'ixdp2x00_irq_handler') WARNING: arch/arm/mach-ixp23xx/built-in.o(.text+0x670): Section mismatch: reference to .init.text:ixp23xx_pci_common_init (between 'ixp23xx_pci_slave_init' and 'ixp23xx_pci_scan_bus') WARNING: arch/arm/mach-ixp23xx/built-in.o(.text+0x890): Section mismatch: reference to .init.text:ixp23xx_init_irq (between 'ixdp2351_init_irq' and 'roadrunner_pci_preinit') WARNING: arch/arm/mach-ixp23xx/built-in.o(.text+0x9a8): Section mismatch: reference to .init.text:ixp23xx_pci_preinit (after 'roadrunner_pci_preinit') WARNING: arch/arm/mach-imx/built-in.o(__ksymtab+0x80): Section mismatch: reference to .init.text:imx_set_mmc_info (between '__ksymtab_imx_set_mmc_info' and '__ksymtab_set_imx_fb_info') WARNING: arch/arm/mach-imx/built-in.o(__ksymtab+0x88): Section mismatch: reference to .init.text:set_imx_fb_info (after '__ksymtab_set_imx_fb_info') WARNING: arch/arm/mach-sa1100/built-in.o(.text+0x1930): Section mismatch: reference to .init.data:neponset_port_fns (between 'neponset_probe' and 'assabet_leds_event') WARNING: drivers/built-in.o(.text+0x3f100): Section mismatch: reference to .init.text:ps2_clear_input (between 'ps2_probe' and 'ps2_cmd_aborted') WARNING: drivers/built-in.o(.text+0x3f1c8): Section mismatch: reference to .init.text:ps2_clear_input (between 'ps2_probe' and 'ps2_cmd_aborted') WARNING: drivers/built-in.o(.text+0x4f988): Section mismatch: reference to .init.text:ps2_clear_input (between 'ps2_probe' and 'ps2_cmd_aborted') WARNING: drivers/built-in.o(.text+0x4fa50): Section mismatch: reference to .init.text:ps2_clear_input (between 'ps2_probe' and 'ps2_cmd_aborted') Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Acked-by: Lennert Buytenhek <buytenh@wantstofly.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4394/1: ARMv7: Add the TLB range operationsCatalin Marinas2007-05-304-2/+94
| | | | | | | | | We are currently using the ARMv6 operations but need to duplicate some of the code because of the introduction of the new CPU barrier instructions in ARMv7. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4410/1: Remove extern declarations in coyote/ixdpg425-pci.cMichael-Luke Jones2007-05-302-8/+0
| | | | | | | | | | | | This patch removes apparently unnecessary extern declarations in coyote-pci.c and ixdpg425-pci.c within arch/arm/mach-ixp4xx and has been compile-tested without producing warnings or errors. Kernel coding style forbids the use of extern declarations within .c files. Signed-off-by: Michael-Luke Jones <mlj28@cam.ac.uk> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4416/1: NWFPE: fix undeclared symbolsBen Dooks2007-05-301-0/+3
| | | | | | | | | | Fix the undeclared symbols sparse is warning about. arch/arm/nwfpe/softfloat.c:1727:7: warning: symbol 'float64_to_uint32' was not declared. Should it be static? arch/arm/nwfpe/softfloat.c:1753:7: warning: symbol 'float64_to_uint32_round_to_zero' was not declared. Should it be static? Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4415/1: AML5900: fix sparse warnings from map_ioBen Dooks2007-05-301-1/+1
| | | | | | | | | The map_io function does not need to be exported from this file, and therefore should be declared static. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4414/1: S3C2443: sparse fix for clock.cBen Dooks2007-05-301-2/+1
| | | | | | | | | | | | | Fix sparse warnings in the arch/arm/mach-s3c2443/clock.c, including an bug in initialising the cf clock initialiser where two values are being set for the ctrlbit. arch/arm/mach-s3c2443/clock.c:397:12: warning: symbol 'clk_usb_bus_host' was not declared. Should it be static? arch/arm/mach-s3c2443/clock.c:760:4: error: Initializer entry defined twice arch/arm/mach-s3c2443/clock.c:761:4: also defined here Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4412/1: S3C2412: reset errata fixBen Dooks2007-05-301-0/+24
| | | | | | | | | | | | | The S3C2412 has an reset-errata where the clock may cause a glitch switching back to EXTCLK. We force a switch to EXTCLK before writing the reset register to force use of the CLKCON sync logic to properly switch. Fix problem reported by Matthieu Castet. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] oprofile: avoid lockdep warnings on mpcore oprofile initRussell King2007-05-301-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix lockdep warnings, caused by 'set_affinity' being called without the correct locks taken and local interrupts disabled: ================================= [ INFO: inconsistent lock state ] 2.6.22-rc2 #1 --------------------------------- inconsistent {in-hardirq-W} -> {hardirq-on-W} usage. swapper/1 [HC0[0]:SC0[0]:HE1:SE1] takes: (irq_controller_lock){++..}, at: [<c002be50>] gic_set_cpu+0x60/0xa0 {in-hardirq-W} state was registered at: [<c005d9a8>] lock_acquire+0x58/0x6c [<c0233068>] _spin_lock+0x40/0x50 [<c002c020>] gic_mask_irq+0x2c/0x6c [<c0069c64>] handle_level_irq+0x11c/0x14c [<c0020060>] asm_do_IRQ+0x60/0x84 [<c0020d2c>] __irq_svc+0x4c/0xc0 [<c000ed84>] __alloc_bootmem_nopanic+0x74/0x88 [<c000edb0>] __alloc_bootmem+0x18/0x3c [<c000fa00>] alloc_large_system_hash+0x16c/0x200 [<c00108dc>] inode_init_early+0x5c/0xa4 [<c00106dc>] vfs_caches_init_early+0x24/0xa0 [<c0008e54>] start_kernel+0x220/0x2fc [<00008078>] 0x8078 irq event stamp: 88438 hardirqs last enabled at (88438): [<c0020dc0>] preempt_return+0x20/0x2c hardirqs last disabled at (88436): [<c00417bc>] __do_softirq+0xb0/0x138 softirqs last enabled at (88437): [<c0041810>] __do_softirq+0x104/0x138 softirqs last disabled at (88428): [<c0041d9c>] irq_exit+0x68/0x7c other info that might help us debug this: no locks held by swapper/1. stack backtrace: [<c0025ecc>] (dump_stack+0x0/0x14) from [<c005b1e4>] (print_usage_bug+0x138/0x168) [<c005b0ac>] (print_usage_bug+0x0/0x168) from [<c005be80>] (mark_lock+0x484/0x6a0) [<c005b9fc>] (mark_lock+0x0/0x6a0) from [<c005cc48>] (__lock_acquire+0x3c0/0x10c8) [<c005c888>] (__lock_acquire+0x0/0x10c8) from [<c005d9a8>] (lock_acquire+0x58/0x6c) [<c005d950>] (lock_acquire+0x0/0x6c) from [<c0233068>] (_spin_lock+0x40/0x50) [<c0233028>] (_spin_lock+0x0/0x50) from [<c002be50>] (gic_set_cpu+0x60/0xa0) [<c002bdf0>] (gic_set_cpu+0x0/0xa0) from [<c01b04cc>] (em_route_irq+0x38/0x40) [<c01b0494>] (em_route_irq+0x0/0x40) from [<c01b04ec>] (em_setup+0x18/0xa4) [<c01b04d4>] (em_setup+0x0/0xa4) from [<c001570c>] (oprofile_arch_init+0x24/0xe8) [<c00156e8>] (oprofile_arch_init+0x0/0xe8) from [<c0015640>] (oprofile_init+0x1c/0x64) [<c0015624>] (oprofile_init+0x0/0x64) from [<c0008a20>] (kernel_init+0x154/0x368) [<c00088cc>] (kernel_init+0x0/0x368) from [<c003ef34>] (do_exit+0x0/0x904) oprofile: using arm/mpcore Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] Fix stacktrace FP range checkingRussell King2007-05-301-1/+1
| | | | | | | | | Fix an oops in the stacktrace code, caused by improper range checking. We subtract 12 off 'fp' before testing to see if it's below the low bound. However, if 'fp' were zero before, it becomes a very large positive number, causing this test to succeed where it should fail. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] use __used attributeDavid Rientjes2007-05-301-1/+1
| | | | | | | | Use the newly introduced __used attribute in place of the deprecated __attribute_used__. Functionally the same. Signed-off-by: David Rientjes <rientjes@google.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] remove unused header file: arch/arm/mach-s3c2410/bast.hRobert P. J. Day2007-05-261-2/+0
| | | | | | | Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4406/1: Trivial NSLU2 / NAS-100D header & setup code cleanupMichael-Luke Jones2007-05-262-10/+12
| | | | | | | | | | This trivial patch updates the nslu2 and nas-100d headers to remove pointless GPIO defines, and updates nslu2-setup.c accordingly. In addition minor style cleanups to some comments are included. Signed-off-by: Michael-Luke Jones <mlj28@cam.ac.uk> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4405/1: NSLU2, DSM-G600 frequency fixup codeMichael-Luke Jones2007-05-263-13/+31
| | | | | | | | | | This patch is required as the frequency fixup in nslu2_init does not run sufficiently early in the boot sequence to take effect. In addition the dsmg600 setup code behaviour has been improved such that a 'fixup' routine is avoided. Signed-off-by: Michael-Luke Jones <mlj28@cam.ac.uk> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [ARM] 4404/1: Trivial IXP42x Kconfig cleanupMichael-Luke Jones2007-05-261-3/+0
| | | | | | | | Avila and IXDP4xx support were separated in 2.6.21 so this comment isn't correct any more. Signed-off-by: Michael-Luke Jones <mlj28@cam.ac.uk> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixLinus Torvalds2007-05-211-2/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fix: mm/slab: fix section mismatch warning mm: fix section mismatch warnings init/main: use __init_refok to fix section mismatch kbuild: introduce __init_refok/__initdata_refok to supress section mismatch warnings all-archs: consolidate .data section definition in asm-generic all-archs: consolidate .text section definition in asm-generic kbuild: add "Section mismatch" warning whitelist for powerpc kbuild: make better section mismatch reports on i386, arm and mips kbuild: make modpost section warnings clearer kconfig: search harder for curses library in check-lxdialog.sh kbuild: include limits.h in sumversion.c for PATH_MAX powerpc: Fix the MODALIAS generation in modpost for of devices
| * all-archs: consolidate .data section definition in asm-genericSam Ravnborg2007-05-191-1/+1
| | | | | | | | | | | | | | With this consolidation we can now modify the .data section definition in one spot for all archs. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>