[PATCH 05/11] ARM: OMAP2+: hwmod code/data: fix 32K sync timer
Tero Kristo
t-kristo at ti.com
Fri Jun 8 09:22:53 EDT 2012
Hi Paul,
There's a bug in this patch, see below.
<clip>
> {
> @@ -1141,8 +1143,26 @@ static void _enable_sysc(struct omap_hwmod *oh)
> sf = oh->class->sysc->sysc_flags;
>
> if (sf & SYSC_HAS_SIDLEMODE) {
> - idlemode = (oh->flags & HWMOD_SWSUP_SIDLE) ?
> - HWMOD_IDLEMODE_NO : HWMOD_IDLEMODE_SMART;
> + if (oh->flags & HWMOD_SWSUP_SIDLE) {
> + /*
> + * IP blocks without smart idle should be left
> + * in force-idle. Currently this only applies
> + * to 32k sync "timer" which is guaranteed to
> + * be accessible when the kernel is running.
> + * HWMOD_SWSUP_IDLE must also be set on these
> + * IP blocks to indicate a hardware problem.
> + * XXX Not an ideal workaround.
> + */
> + if (oh->class->sysc->idlemodes &
> + (SIDLE_NO | SIDLE_FORCE) &&
> + !(oh->class->sysc->idlemodes &
> + (SIDLE_SMART || SIDLE_SMART_WKUP)))
There should by binary or, not logical here.
-Tero
More information about the linux-arm-kernel
mailing list