aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2
diff options
context:
space:
mode:
authorJon Hunter <jon-hunter@ti.com>2012-10-08 18:24:15 -0400
committerPaul Walmsley <paul@pwsan.com>2012-10-09 00:39:07 -0400
commitcf956d9f0734b4888655d6b7420e4dac9dba22d0 (patch)
tree87ee6bc34ee267a6f246616c322b3560eea71df5 /arch/arm/mach-omap2
parent695f0117e7d80709c7aec54d5fffb8051c97cf23 (diff)
ARM: OMAP3: fix workaround for EMU clockdomain
Commit b71c721 (ARM: OMAP2+: clockdomain/hwmod: add workaround for EMU clockdomain idle problems) added a workaround for the EMU clock domain on OMAP3/4 devices to prevent the clock domain for transitioning while it is in use. In the proposed patch [1] code was added to the omap3xxx_clkdm_clk_enable() and omap3xxx_clkdm_clk_disable() functions to check for the flag CLKDM_MISSING_IDLE_REPORTING and perform the appropriate action. However, in the merged patch it appears that this code was added to the omap2_clkdm_clk_enable() and omap2_clkdm_clk_disable() functions by mistake. [1] http://marc.info/?l=linux-arm-kernel&m=134383567112518&w=2 Signed-off-by: Jon Hunter <jon-hunter@ti.com> Signed-off-by: Paul Walmsley <paul@pwsan.com>
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r--arch/arm/mach-omap2/clockdomain2xxx_3xxx.c44
1 files changed, 22 insertions, 22 deletions
diff --git a/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c b/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c
index 9a7792aec673..70294f54e35a 100644
--- a/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c
+++ b/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c
@@ -183,17 +183,6 @@ static int omap2_clkdm_clk_enable(struct clockdomain *clkdm)
183 if (!clkdm->clktrctrl_mask) 183 if (!clkdm->clktrctrl_mask)
184 return 0; 184 return 0;
185 185
186 /*
187 * The CLKDM_MISSING_IDLE_REPORTING flag documentation has
188 * more details on the unpleasant problem this is working
189 * around
190 */
191 if (clkdm->flags & CLKDM_MISSING_IDLE_REPORTING &&
192 !(clkdm->flags & CLKDM_CAN_FORCE_SLEEP)) {
193 _enable_hwsup(clkdm);
194 return 0;
195 }
196
197 hwsup = omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs, 186 hwsup = omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs,
198 clkdm->clktrctrl_mask); 187 clkdm->clktrctrl_mask);
199 188
@@ -217,17 +206,6 @@ static int omap2_clkdm_clk_disable(struct clockdomain *clkdm)
217 if (!clkdm->clktrctrl_mask) 206 if (!clkdm->clktrctrl_mask)
218 return 0; 207 return 0;
219 208
220 /*
221 * The CLKDM_MISSING_IDLE_REPORTING flag documentation has
222 * more details on the unpleasant problem this is working
223 * around
224 */
225 if ((clkdm->flags & CLKDM_MISSING_IDLE_REPORTING) &&
226 (clkdm->flags & CLKDM_CAN_FORCE_WAKEUP)) {
227 omap3_clkdm_wakeup(clkdm);
228 return 0;
229 }
230
231 hwsup = omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs, 209 hwsup = omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs,
232 clkdm->clktrctrl_mask); 210 clkdm->clktrctrl_mask);
233 211
@@ -269,6 +247,17 @@ static int omap3xxx_clkdm_clk_enable(struct clockdomain *clkdm)
269 if (!clkdm->clktrctrl_mask) 247 if (!clkdm->clktrctrl_mask)
270 return 0; 248 return 0;
271 249
250 /*
251 * The CLKDM_MISSING_IDLE_REPORTING flag documentation has
252 * more details on the unpleasant problem this is working
253 * around
254 */
255 if ((clkdm->flags & CLKDM_MISSING_IDLE_REPORTING) &&
256 (clkdm->flags & CLKDM_CAN_FORCE_WAKEUP)) {
257 omap3_clkdm_wakeup(clkdm);
258 return 0;
259 }
260
272 hwsup = omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs, 261 hwsup = omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs,
273 clkdm->clktrctrl_mask); 262 clkdm->clktrctrl_mask);
274 263
@@ -292,6 +281,17 @@ static int omap3xxx_clkdm_clk_disable(struct clockdomain *clkdm)
292 if (!clkdm->clktrctrl_mask) 281 if (!clkdm->clktrctrl_mask)
293 return 0; 282 return 0;
294 283
284 /*
285 * The CLKDM_MISSING_IDLE_REPORTING flag documentation has
286 * more details on the unpleasant problem this is working
287 * around
288 */
289 if (clkdm->flags & CLKDM_MISSING_IDLE_REPORTING &&
290 !(clkdm->flags & CLKDM_CAN_FORCE_SLEEP)) {
291 _enable_hwsup(clkdm);
292 return 0;
293 }
294
295 hwsup = omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs, 295 hwsup = omap2_cm_is_clkdm_in_hwsup(clkdm->pwrdm.ptr->prcm_offs,
296 clkdm->clktrctrl_mask); 296 clkdm->clktrctrl_mask);
297 297