aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
authorFlorian Fainelli <florian@openwrt.org>2010-10-31 21:45:49 +0000
committerFlorian Fainelli <florian@openwrt.org>2010-10-31 21:45:49 +0000
commit1964050e32db1fd6934ea89ba846d0edc139cfad (patch)
treebfd8090e8e6f25440b90d7b8e7402da23b4d9cb4 /target/linux
parentf559fde6a6ef28b840430ae3f500f32793707350 (diff)
downloadmaster-187ad058-1964050e32db1fd6934ea89ba846d0edc139cfad.tar.gz
master-187ad058-1964050e32db1fd6934ea89ba846d0edc139cfad.tar.bz2
master-187ad058-1964050e32db1fd6934ea89ba846d0edc139cfad.zip
[ar7] initialize clocks earlier for lpj to be correct (#7548)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23746 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/ar7/patches-2.6.32/170-clocks_init_earlier.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/target/linux/ar7/patches-2.6.32/170-clocks_init_earlier.patch b/target/linux/ar7/patches-2.6.32/170-clocks_init_earlier.patch
new file mode 100644
index 0000000000..a0b384aae9
--- /dev/null
+++ b/target/linux/ar7/patches-2.6.32/170-clocks_init_earlier.patch
@@ -0,0 +1,53 @@
+--- a/arch/mips/ar7/clock.c
++++ b/arch/mips/ar7/clock.c
+@@ -232,12 +232,12 @@ static void tnetd7300_set_clock(u32 shif
+ calculate(base_clock, frequency, &prediv, &postdiv, &mul);
+
+ writel(((prediv - 1) << PREDIV_SHIFT) | (postdiv - 1), &clock->ctrl);
+- msleep(1);
++ mdelay(1);
+ writel(4, &clock->pll);
+ while (readl(&clock->pll) & PLL_STATUS)
+ ;
+ writel(((mul - 1) << MUL_SHIFT) | (0xff << 3) | 0x0e, &clock->pll);
+- msleep(75);
++ mdelay(75);
+ }
+
+ static void __init tnetd7300_init_clocks(void)
+@@ -407,7 +407,7 @@ static void __init tnetd7200_init_clocks
+ iounmap(bootcr);
+ }
+
+-int __init ar7_init_clocks(void)
++void __init ar7_init_clocks(void)
+ {
+ switch (ar7_chip_id()) {
+ case AR7_CHIP_7100:
+@@ -421,7 +421,4 @@ int __init ar7_init_clocks(void)
+ default:
+ break;
+ }
+-
+- return 0;
+ }
+-arch_initcall(ar7_init_clocks);
+--- a/arch/mips/ar7/time.c
++++ b/arch/mips/ar7/time.c
+@@ -26,5 +26,7 @@
+
+ void __init plat_time_init(void)
+ {
++ ar7_init_clocks();
++
+ mips_hpt_frequency = ar7_cpu_freq() / 2;
+ }
+--- a/arch/mips/include/asm/mach-ar7/ar7.h
++++ b/arch/mips/include/asm/mach-ar7/ar7.h
+@@ -178,4 +178,6 @@ static inline void ar7_device_off(u32 bi
+ msleep(20);
+ }
+
++extern void __init ar7_init_clocks(void);
++
+ #endif /* __AR7_H__ */