diff options
author | Linus Walleij <linus.walleij@stericsson.com> | 2010-08-05 10:58:13 +0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-08-11 01:10:55 +0400 |
commit | 379aae5d6c3d8d9751d85a8022e68a90df13a7ae (patch) | |
tree | e4484124e084be47d26cb43287f99edbd887d615 /arch/arm/mach-u300/core.c | |
parent | c2fab1242a16f8e66b680d664322c3811e7b003d (diff) | |
download | linux-379aae5d6c3d8d9751d85a8022e68a90df13a7ae.tar.xz |
ARM: 6295/1: fix U300 apb_pclk split
This fixes a regression due to the new apb_pclk stuff in the U300
platform, makes it run by splitting the apb clock off the single
UART clocks. For the MMCI and PL022 clocks we don't split them:
these are actually hardwired to the same clock terminal and will
thus simply have a double reference count and will be referenced
twice.
We also move clock registration to .init_irq() so they are
available early enough for probing to be successful and remove the
earlier quirk to clock primecells during PrimeCell registration.
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-u300/core.c')
-rw-r--r-- | arch/arm/mach-u300/core.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/mach-u300/core.c b/arch/arm/mach-u300/core.c index 653b3e0ab7ba..b18976370824 100644 --- a/arch/arm/mach-u300/core.c +++ b/arch/arm/mach-u300/core.c @@ -1479,6 +1479,9 @@ void __init u300_init_irq(void) u32 mask[2] = {0, 0}; int i; + /* initialize clocking early, we want to clock the INTCON */ + u300_clock_init(); + for (i = 0; i < NR_IRQS; i++) set_bit(i, (unsigned long *) &mask[0]); u300_enable_intcon_clock(); @@ -1635,12 +1638,10 @@ void __init u300_init_devices(void) u300_spi_init(&pl022_device); /* Register the AMBA devices in the AMBA bus abstraction layer */ - u300_clock_primecells(); for (i = 0; i < ARRAY_SIZE(amba_devs); i++) { struct amba_device *d = amba_devs[i]; amba_device_register(d, &iomem_resource); } - u300_unclock_primecells(); u300_assign_physmem(); |