* Russell King - ARM Linux <[email protected]> [120208 08:10]:
> Commit 2fd149645eb4 (ARM: OMAP2+: UART: Remove omap_uart_can_sleep and add 
> pm_qos)
> has caused a regression on OMAP3 platforms.
> 
> When the UART is trying to transmit data, if we enter a low power mode,
> transmission stops, which makes serial on OMAP3 unusable - a 'dmesg'
> takes five minutes to be output at 115200 baud, at a rate of around a
> block of 16 characters every couple of seconds.
> 
> Unfortunately, the commit above can't be reverted because of many other
> changes in this area, so this implements a dirty fix by disabling
> CPU idle in the places the original commit does, irrespective of the
> UART state.
...

> --- a/arch/arm/mach-omap2/pm34xx.c
> +++ b/arch/arm/mach-omap2/pm34xx.c
> @@ -421,7 +421,7 @@ static void omap3_pm_idle(void)
>       local_irq_disable();
>       local_fiq_disable();
>  
> -     if (omap_irq_pending() || need_resched())
> +     if (omap_irq_pending() || need_resched() || 1)
>               goto out;
>  
>       trace_power_start(POWER_CSTATE, 1, smp_processor_id());

Argh, this is just too ugly. There has got to be a better fix for the
-rc series.

Looks like the patches to fix omap-serial.c are queued for v3.4,
so that won't help.

Kevin, what do you have for the -rc fix here to avoid the if (1)
hack?

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to