diff options
author | Santosh Shilimkar <santosh.shilimkar@ti.com> | 2013-02-16 07:25:08 -0500 |
---|---|---|
committer | Santosh Shilimkar <santosh.shilimkar@ti.com> | 2013-03-28 03:25:59 -0400 |
commit | 6cf38956c9838414b2678c7e661001313d200d8c (patch) | |
tree | 156524286066eceaf0b23196c437ddb0f4e7bdba /arch/arm/mach-omap2/pm44xx.c | |
parent | b699ddd19bf3542d43ffe293c6148161e160b1bc (diff) |
ARM: OMAP4: PM: Remove L4 wakeup depedency with MPU since errata fix exist now
With commit bfd6d021 {ARM: OMAP3+: Implement timer workaround for errata
i103 and i767}, the sync and gptimer synchronization errata got fixed.
Hence the l4_wakeup static dependency with MPU can can be removed
now. Static dependency was one of the proposed workaround but from
power savings perspective, it isn't an ideal workaround.
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2/pm44xx.c')
-rw-r--r-- | arch/arm/mach-omap2/pm44xx.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c index 9e9095c65129..3b5a5a832824 100644 --- a/arch/arm/mach-omap2/pm44xx.c +++ b/arch/arm/mach-omap2/pm44xx.c | |||
@@ -143,7 +143,7 @@ static void omap_default_idle(void) | |||
143 | int __init omap4_pm_init(void) | 143 | int __init omap4_pm_init(void) |
144 | { | 144 | { |
145 | int ret; | 145 | int ret; |
146 | struct clockdomain *emif_clkdm, *mpuss_clkdm, *l3_1_clkdm, *l4wkup; | 146 | struct clockdomain *emif_clkdm, *mpuss_clkdm, *l3_1_clkdm; |
147 | struct clockdomain *ducati_clkdm, *l3_2_clkdm, *l4_per_clkdm; | 147 | struct clockdomain *ducati_clkdm, *l3_2_clkdm, *l4_per_clkdm; |
148 | 148 | ||
149 | if (omap_rev() == OMAP4430_REV_ES1_0) { | 149 | if (omap_rev() == OMAP4430_REV_ES1_0) { |
@@ -171,19 +171,14 @@ int __init omap4_pm_init(void) | |||
171 | * MPUSS -> L4_PER/L3_* and DUCATI -> L3_* doesn't work as | 171 | * MPUSS -> L4_PER/L3_* and DUCATI -> L3_* doesn't work as |
172 | * expected. The hardware recommendation is to enable static | 172 | * expected. The hardware recommendation is to enable static |
173 | * dependencies for these to avoid system lock ups or random crashes. | 173 | * dependencies for these to avoid system lock ups or random crashes. |
174 | * The L4 wakeup depedency is added to workaround the OCP sync hardware | ||
175 | * BUG with 32K synctimer which lead to incorrect timer value read | ||
176 | * from the 32K counter. The BUG applies for GPTIMER1 and WDT2 which | ||
177 | * are part of L4 wakeup clockdomain. | ||
178 | */ | 174 | */ |
179 | mpuss_clkdm = clkdm_lookup("mpuss_clkdm"); | 175 | mpuss_clkdm = clkdm_lookup("mpuss_clkdm"); |
180 | emif_clkdm = clkdm_lookup("l3_emif_clkdm"); | 176 | emif_clkdm = clkdm_lookup("l3_emif_clkdm"); |
181 | l3_1_clkdm = clkdm_lookup("l3_1_clkdm"); | 177 | l3_1_clkdm = clkdm_lookup("l3_1_clkdm"); |
182 | l3_2_clkdm = clkdm_lookup("l3_2_clkdm"); | 178 | l3_2_clkdm = clkdm_lookup("l3_2_clkdm"); |
183 | l4_per_clkdm = clkdm_lookup("l4_per_clkdm"); | 179 | l4_per_clkdm = clkdm_lookup("l4_per_clkdm"); |
184 | l4wkup = clkdm_lookup("l4_wkup_clkdm"); | ||
185 | ducati_clkdm = clkdm_lookup("ducati_clkdm"); | 180 | ducati_clkdm = clkdm_lookup("ducati_clkdm"); |
186 | if ((!mpuss_clkdm) || (!emif_clkdm) || (!l3_1_clkdm) || (!l4wkup) || | 181 | if ((!mpuss_clkdm) || (!emif_clkdm) || (!l3_1_clkdm) || |
187 | (!l3_2_clkdm) || (!ducati_clkdm) || (!l4_per_clkdm)) | 182 | (!l3_2_clkdm) || (!ducati_clkdm) || (!l4_per_clkdm)) |
188 | goto err2; | 183 | goto err2; |
189 | 184 | ||
@@ -191,7 +186,6 @@ int __init omap4_pm_init(void) | |||
191 | ret |= clkdm_add_wkdep(mpuss_clkdm, l3_1_clkdm); | 186 | ret |= clkdm_add_wkdep(mpuss_clkdm, l3_1_clkdm); |
192 | ret |= clkdm_add_wkdep(mpuss_clkdm, l3_2_clkdm); | 187 | ret |= clkdm_add_wkdep(mpuss_clkdm, l3_2_clkdm); |
193 | ret |= clkdm_add_wkdep(mpuss_clkdm, l4_per_clkdm); | 188 | ret |= clkdm_add_wkdep(mpuss_clkdm, l4_per_clkdm); |
194 | ret |= clkdm_add_wkdep(mpuss_clkdm, l4wkup); | ||
195 | ret |= clkdm_add_wkdep(ducati_clkdm, l3_1_clkdm); | 189 | ret |= clkdm_add_wkdep(ducati_clkdm, l3_1_clkdm); |
196 | ret |= clkdm_add_wkdep(ducati_clkdm, l3_2_clkdm); | 190 | ret |= clkdm_add_wkdep(ducati_clkdm, l3_2_clkdm); |
197 | if (ret) { | 191 | if (ret) { |