[RFC PATCH] ARM: OMAP2+: Fix updating of sysconfig register

Lokesh Vutla a0131933 at ti.com
Tue Mar 1 19:36:52 PST 2016



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.

[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