[RFC PATCH] ARM: OMAP2+: Fix updating of sysconfig register
Tero Kristo
t-kristo at ti.com
Tue Mar 1 23:38:43 PST 2016
On 03/02/2016 05:36 AM, Lokesh Vutla wrote:
>
>
> On Tuesday 01 March 2016 10:33 PM, Paul Walmsley wrote:
>> + Jon Hunter
>>
>> On Tue, 1 Mar 2016, Lokesh Vutla wrote:
>>
>>> commit 127500ccb766f ("ARM: OMAP2+: Only write the sysconfig on idle
>>> when necessary") talks about verification of sysconfig cache value before
>>> updating it, only during idle path. But the patch is adding the
>>> verification in the enable path. So, adding the check in a proper place
>>> as per the commit description.
>>>
>>> Not keeping this check during enable path as there is a chance of losing
>>> context and it is safe to do on idle as the context of the register will
>>> never be lost while the device is active.
>
> When the patch was originally posted[1], this check was in proper place
> itself. Not sure what happened after that.
Looks like a merge conflict to me.
The patch from Lokesh fixes it, so:
Acked-by: Tero Kristo <t-kristo at ti.com>
>
> [1] https://www.mail-archive.com/linux-omap%40vger.kernel.org/msg78032.html
>
> Thanks and regards,
> Lokesh
>
>>>
>>> Signed-off-by: Lokesh Vutla <lokeshvutla at ti.com>
>>> ---
>>> arch/arm/mach-omap2/omap_hwmod.c | 8 ++++----
>>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
>>> index e9f65fe..71b3747 100644
>>> --- a/arch/arm/mach-omap2/omap_hwmod.c
>>> +++ b/arch/arm/mach-omap2/omap_hwmod.c
>>> @@ -1416,9 +1416,7 @@ static void _enable_sysc(struct omap_hwmod *oh)
>>> (sf & SYSC_HAS_CLOCKACTIVITY))
>>> _set_clockactivity(oh, oh->class->sysc->clockact, &v);
>>>
>>> - /* If the cached value is the same as the new value, skip the write */
>>> - if (oh->_sysc_cache != v)
>>> - _write_sysconfig(v, oh);
>>> + _write_sysconfig(v, oh);
>>>
>>> /*
>>> * Set the autoidle bit only after setting the smartidle bit
>>> @@ -1481,7 +1479,9 @@ static void _idle_sysc(struct omap_hwmod *oh)
>>> _set_master_standbymode(oh, idlemode, &v);
>>> }
>>>
>>> - _write_sysconfig(v, oh);
>>> + /* If the cached value is the same as the new value, skip the write */
>>> + if (oh->_sysc_cache != v)
>>> + _write_sysconfig(v, oh);
>>> }
>>>
>>> /**
>>> --
>>> 2.1.4
>>>
>>
>>
>> - Paul
>>
More information about the linux-arm-kernel
mailing list