Subject: [PATCH 1/3] ARM: OMAP2+: Fix realtime_counter_init warning in timer.c

From: [email-masked] (Santosh Shilimkar)
Date: Wed, 28 Nov 2012 21:25:50 +0530

On Wednesday 28 November 2012 09:17 PM, Jon Hunter wrote:
>
> On 11/28/2012 12:09 AM, Santosh Shilimkar wrote:
>> On Wednesday 28 November 2012 07:45 AM, Jon Hunter wrote:
>>> In commit fa6d79d (ARM: OMAP: Add initialisation for the real-time
>>> counter), the function realtime_counter_init() was added. However, if
>>> the kernel configuration option CONFIG_SOC_OMAP5 is not selected then
>>> the following compiler warning is observed.
>>>
>>>     CC      arch/arm/mach-omap2/timer.o
>>>     arch/arm/mach-omap2/timer.c:489:20: warning: ?realtime_counter_init?
>>>     defined but not used [-Wunused-function]
>>>
>>> Commit fa6d79d also introduced the kernel configuration option
>>> CONFIG_SOC_HAS_REALTIME_COUNTER. If this option is not selected then the
>>> a stub function for realtime_counter_init() is defined.
>>>
>>> The option CONFIG_SOC_HAS_REALTIME_COUNTER and stub function are not
>>> really needed because ...
>>>
>>> 1. For non-OMAP5 devices, there is no realtime counter and so
>>>      realtime_counter_init() function is not used.
>>> 2. For OMAP5 devices, CONFIG_SOC_HAS_REALTIME_COUNTER is always selected
>>>      and cannot be disabled, so the stub function for
>>> realtime_counter_init()
>>>      is never used.
>>>
>>> Fix this warning by removing the kernel configuration option
>>> CONFIG_SOC_HAS_REALTIME_COUNTER and stub function, and only include
>>> the function realtime_counter_init() if CONFIG_SOC_OMAP5 is selected.
>>>
>>> Cc: Santosh Shilimkar <[email-masked]>
>>>
>>> Reported-by: Tony Lindgren <[email-masked]>
>>> Signed-off-by: Jon Hunter <[email-masked]>
>>> ---
>> The #ifdef was avoided because the real-time counter can be used on
>> other future SOCs. And the those SOCs just select
>> SOC_HAS_REALTIME_COUNTER. And that stub was added because OMAP5 can
>> work without real-time counter configuration enabled using 32K counter.
>> But since we are any way have that SOC_HAS_REALTIME_COUNTER always
>> set for SOC which wants to use it, we can actually remove the stub
>> and hence avoid the warning. Let me know if below patch is ok
>> with you ? attached the same for mailer issues
>>
>>  From e000aa13e47e29fbe3473bfd0277cb057c3160cc Mon Sep 17 00:00:00 2001
>> From: Santosh Shilimkar <[email-masked]>
>> Date: Wed, 28 Nov 2012 11:28:57 +0530
>> Subject: [PATCH] ARM: OMAP2+: Fix realtime_counter_init warning in timer.c
>> MIME-Version: 1.0
>> Content-Type: text/plain; charset=UTF-8
>> Content-Transfer-Encoding: 8bit
>>
>> In commit fa6d79d (ARM: OMAP: Add initialisation for the real-time
>> counter), the function realtime_counter_init() was added. However, if
>> the kernel configuration option CONFIG_SOC_OMAP5 is not selected then
>> the following compiler warning is observed.
>>
>>      CC      arch/arm/mach-omap2/timer.o
>>      arch/arm/mach-omap2/timer.c:489:20: warning: ?realtime_counter_init?
>>      defined but not used [-Wunused-function]
>>
>> It is because of the stub init function which was added for the cases
>> where realtime_counter_init() is called with
>> !CONFIG_SOC_HAS_REALTIME_COUNTER.
>> This is actually not necessary since the SOC which need this feature
>> will explicitly select the configuration.
>>
>> So just drop the unused stub to avoid the build warning.
>>
>> Patch is made after seeing Jon's patch which was wrapping the
>> real-time counter code under needed SOC #ifdef
>>
>> Cc: Jon Hunter <[email-masked]>
>>
>> Reported-by: Tony Lindgren <[email-masked]>
>> Signed-off-by: Santosh Shilimkar <[email-masked]>
>> ---
>>   arch/arm/mach-omap2/timer.c |    3 ---
>>   1 file changed, 3 deletions(-)
>>
>> diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
>> index 69e4663..79d8e6b 100644
>> --- a/arch/arm/mach-omap2/timer.c
>> +++ b/arch/arm/mach-omap2/timer.c
>> @@ -428,9 +428,6 @@ static void __init realtime_counter_init(void)
>>
>>       iounmap(base);
>>   }
>> -#else
>> -static inline void __init realtime_counter_init(void)
>> -{}
>>   #endif
>>
>>   #define OMAP_SYS_TIMER_INIT(name, clkev_nr, clkev_src,            \
>
> Hi Santosh,
>
> Thanks for the feedback. Unfortunately, the above is not enough. If I
> disable SOC_OMAP5 and leave SOC_HAS_REALTIME_COUNTER enabled, then I
> still see the warning message. So I could see that people could still
> hit this with randconfig.
>
I did mention that but since OMAP5 selects the feature, I was thinking
it is fine.

> Understand the desire to make this a selectable configuration, but given
> to date only OMAP5 uses it, it was simpler and cleaner just to remove
> the option. However, we could keep the option and just do something like ...
>
> diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
> index 813c267..500f2f6 100644
> --- a/arch/arm/mach-omap2/Kconfig
> +++ b/arch/arm/mach-omap2/Kconfig
> @@ -26,6 +26,8 @@ config SOC_HAS_OMAP2_SDRC
>
>   config SOC_HAS_REALTIME_COUNTER
>          bool "Real time free running counter"
> +       depends on SOC_OMAP5
> +       default y
>
>   config ARCH_OMAP2
>          bool "TI OMAP2"
> @@ -79,7 +81,6 @@ config SOC_OMAP5
>          select ARM_GIC
>          select CPU_V7
>          select HAVE_SMP
> -       select SOC_HAS_REALTIME_COUNTER
>          select COMMON_CLK
>
> I have tested this and this resolves the warning.
>
Go ahead and fold above change on top of my patch which
drops the stub.

Regards
Santosh