Subject: [PATCH] Revert "ARM: AM33xx: fix module_wait_ready without clkctrl register"

From: [email-masked] (Dave Gerlach)
Date: Tue, 12 Jul 2016 08:34:26 -0500

On 07/12/2016 01:27 AM, Tero Kristo wrote:
> On 12/07/16 06:34, Lokesh Vutla wrote:
>>
>>
>> On Tuesday 12 July 2016 03:09 AM, Dave Gerlach wrote:
>>> This reverts commit 183e2077d007aa4b697efba095ecfea7244a6107.
>>>
>>> The original patch added a check to am33xx_cm_wait_module_ready for a
>>> clkctrl offset of 0 as an invalid case, however, clkctrl offset of 0 is
>>> perfectly valid for hwmods, in particular the rtc.
>>
>> Looks like a similar check is present for am33xx_cm_wait_module_idle.
>> Shouldn't that also be removed?
>
> Oh this is annoying, I didn't notice that RTC had mutant register when I
> did the patch to add the check in place, and didn't face this issue
> either during testing. However, this check must be in there to avoid any
> issues with the transition to the hwmod clock data, as all the clkctrl
> offsets will be removed from hwmod data.
>
> I think for RTC we probably need to add some sort of HWMOD flag, and add
> a check within the hwmod code itself against this. Just reverting this
> patch is wrong approach, as you need to fix it some other way then.

I agree, that was another option I considered, but I went with reverting 
it for now as there were no ill effects and we've made it this long with 
out it.

I can send a new version with a flag soon.

Regards,
Dave

>
> -Tero
>
>>
>> Thanks and regards,
>> Lokesh
>>
>>>
>>> Without reverting this patch sometimes external aborts are seen on
>>> am335x during boot. This is due to the am33xx_cm_wait_module_ready
>>> function immediately returning 0 rather than waiting for the RTC_CLKCTRL
>>> register to indicate it is actually ready before rtc register accesses
>>> happen.
>>>
>>> Signed-off-by: Dave Gerlach <[email-masked]>
>>> ---
>>>   arch/arm/mach-omap2/cm33xx.c | 3 ---
>>>   1 file changed, 3 deletions(-)
>>>
>>> diff --git a/arch/arm/mach-omap2/cm33xx.c b/arch/arm/mach-omap2/cm33xx.c
>>> index c073fb57dd13..7b181f929525 100644
>>> --- a/arch/arm/mach-omap2/cm33xx.c
>>> +++ b/arch/arm/mach-omap2/cm33xx.c
>>> @@ -220,9 +220,6 @@ static int am33xx_cm_wait_module_ready(u8 part,
>>> s16 inst, u16 clkctrl_offs,
>>>   {
>>>       int i = 0;
>>>
>>> -    if (!clkctrl_offs)
>>> -        return 0;
>>> -
>>>       omap_test_timeout(_is_module_ready(inst, clkctrl_offs),
>>>                 MAX_MODULE_READY_TIME, i);
>>>
>>>
>