Subject: [PATCH] ARM: OMAP4: Fix the boot regression with CPU_IDLE enabled

From: [email-masked] (Santosh Shilimkar)
Date: Tue, 27 May 2014 17:03:59 -0400

On Tuesday 27 May 2014 04:34 PM, Tony Lindgren wrote:
> * Daniel Lezcano <[email-masked]> [140523 13:53]:
>> On 23 May 2014 20:32, Tony Lindgren <[email-masked]> wrote:
>>
>>> * Tony Lindgren <[email-masked]> [140523 07:45]:
>>>> * Tobias Jakobi <[email-masked]> [140519 14:19]:
>>>>>
>>>>> But even if I don't connect via WiFi at all, just boot and let me
>>> system
>>>>> run with serial console connected, after some time I get a kernel
>>> 'WARNING':
>>>>> http://www.math.uni-bielefeld.de/~tjakobi/archive/dmesg.1.log
>>>>
>>>> BTW, care to update the bugzilla page with the second warning
>>>> in this log?
>>>>
>>>> That's the WARNING: CPU: 1 PID: 0 at kernel/timer.c:1147 that's
>>>> at 238 seconds.
>>>
>>> Also, with Santosh's fix applied, can you also try disabling one
>>> or more of the idle states for cpuidle and see if that helps?
>>>
>>> Something like this patch below. If that helps with the WARNING
>>> above you're getting it narrows down the problem down quite a bit.
>>>
>>> Regards,
>>>
>>> Tony
>>>
>>> --- a/arch/arm/mach-omap2/cpuidle44xx.c
>>> +++ b/arch/arm/mach-omap2/cpuidle44xx.c
>>> @@ -44,11 +44,13 @@ static struct idle_statedata omap4_idle_data[] = {
>>>                 .mpu_state = PWRDM_POWER_RET,
>>>                 .mpu_logic_state = PWRDM_POWER_RET,
>>>         },
>>> +#if 0
>>>         {
>>>                 .cpu_state = PWRDM_POWER_OFF,
>>>                 .mpu_state = PWRDM_POWER_RET,
>>>                 .mpu_logic_state = PWRDM_POWER_OFF,
>>>         },
>>> +#endif
>>>
>>
>> Hmm, I am afraid that will lead to a fault. Safer to set the state_count =
>> 2 instead.
> 
> Hmm don't we have state_count = ARRAY_SIZE(omap4_idle_data) or am I
> missing something?
> 
I don't think you are missing anything. The change should work.