Re: [PATCH] OMAP3: disable idle early in the suspend sequence

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Nov 22, 2010 at 6:51 PM, Kevin Hilman
<khilman@xxxxxxxxxxxxxxxxxxx> wrote:
> Jean Pihet <jean.pihet@xxxxxxxxxxxxxx> writes:
>
>> Some bad interaction between the idle and the suspend paths has been
>> noticed: the idle code is called during the suspend enter and exit
>> sequences. This could cause corruption or lock-up of resources.
>
>> The solution is to move the call to disable_hlt at the very beginning
>> of the suspend sequence (in omap3_pm_begin instead of omap3_pm_prepare),
>> and the call to enable_hlt at the very end of the suspend sequence
>> (in omap3_pm_end instead of omap3_pm_finish).
>>
>> Tested with RET and OFF on Beagle and OMAP3EVM.
>
> I think the description could have a little more detail.  Something like:
>
> Idle path should be disabled during the entire suspend/resume sequence.
> Currently it is disabled in ->prepare() and re-enabled in ->finish(),
> but the suspend sequence starts with ->begin() and ends with ->end(),
> leaving windows where the suspend/resume sequence is still underway and
> idle code could execute.
>
> To fix, move idle disable and enable into ->begin() and ->end()
> respectively to ensure idle path is disabled for the entire
> suspend/resume sequence.
>
Ok thx for the suggestion.

>>
>> @@ -576,12 +575,12 @@ static int omap3_pm_enter(suspend_state_t unused)
>>
>>  static void omap3_pm_finish(void)
>>  {
>> -     enable_hlt();
>>  }
>
> Might as well remove these empty functions now.
>
>>  /* Hooks to enable / disable UART interrupts during suspend */
>>  static int omap3_pm_begin(suspend_state_t state)
>>  {
>> +     disable_hlt();
>>       suspend_state = state;
>>       omap_uart_enable_irqs(0);
>>       return 0;
>> @@ -591,6 +590,7 @@ static void omap3_pm_end(void)
>>  {
>>       suspend_state = PM_SUSPEND_ON;
>>       omap_uart_enable_irqs(1);
>> +     enable_hlt();
>>       return;
>>  }
>
> Kevin
>

Ok resent!

Thx,
Jean
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux