diff mbox

[V4] ARM: OMAP5/DRA7: realtime_counter: Configure CNTFRQ register

Message ID 525481A2.4020900@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Santosh Shilimkar Oct. 8, 2013, 10:05 p.m. UTC
On Tuesday 08 October 2013 05:45 PM, Tony Lindgren wrote:
> * Sricharan R <r.sricharan@ti.com> [131003 03:27]:
>> On Wednesday 18 September 2013 09:32 PM, Sricharan R wrote:
>>> --- a/arch/arm/boot/dts/omap5.dtsi
>>> +++ b/arch/arm/boot/dts/omap5.dtsi
>>> @@ -52,7 +52,6 @@
>>>  			     <GIC_PPI 14 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
>>>  			     <GIC_PPI 11 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
>>>  			     <GIC_PPI 10 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>;
>>> -		clock-frequency = <6144000>;
>>>  	};
>>>  
>>>  	gic: interrupt-controller@48211000 {
> 
> Can the above be done later on in a separate clean-up patch?
> If so I can drop that part as that removes a dependency to the
> .dts patches queued by Benoit.
>
This can be applied separately. 

 
>>> --- a/arch/arm/mach-omap2/omap-smp.c
>>> +++ b/arch/arm/mach-omap2/omap-smp.c
>>> @@ -41,6 +41,8 @@
>>>  
>>>  u16 pm44xx_errata;
>>>  
>>> +extern unsigned long arch_timer_freq;
>>> +
>>>  /* SCU base address */
>>>  static void __iomem *scu_base;
>>>  
> 
> No externs in *.c files please, checkpatch.pl and sparse should warn
> about this.
> 
>>  Are you planning to pull this patch and the below $subject patch as well? They are
>>  acked and tested.
>>
>>  ARM: DRA7: realtime_counter: Add ratio registers for 20MHZ sys-clk frequency
>>
>>   http://www.spinics.net/lists/linux-omap/msg97281.html
> 
> The 20MHz patch I've applied, just noticed the above things
> when was about to apply this.
> 
Now re-looking at the patch, I think this extern stuff can be and
should be avoided. It needs order change though like below. Not
tested but should work.

Then, the CNTFREQ programming needs to be moved to
realtime_counter_init(). It should be actually part of that
first place instead of timer_init().

On secondary CPU then a simple asm accessor can
read the CNTFREQ and pass that to SMC.

Sricharan,
Can you try above and see if everything works as expected.
If it does, please post an updated patch based on above.

Regards,
santosh



--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

R Sricharan Oct. 9, 2013, 1:15 p.m. UTC | #1
Santosh,

On Wednesday 09 October 2013 03:35 AM, Santosh Shilimkar wrote:
> On Tuesday 08 October 2013 05:45 PM, Tony Lindgren wrote:
>> * Sricharan R <r.sricharan@ti.com> [131003 03:27]:
>>> On Wednesday 18 September 2013 09:32 PM, Sricharan R wrote:
>>>> --- a/arch/arm/boot/dts/omap5.dtsi
>>>> +++ b/arch/arm/boot/dts/omap5.dtsi
>>>> @@ -52,7 +52,6 @@
>>>>  			     <GIC_PPI 14 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
>>>>  			     <GIC_PPI 11 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
>>>>  			     <GIC_PPI 10 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>;
>>>> -		clock-frequency = <6144000>;
>>>>  	};
>>>>  
>>>>  	gic: interrupt-controller@48211000 {
>> Can the above be done later on in a separate clean-up patch?
>> If so I can drop that part as that removes a dependency to the
>> .dts patches queued by Benoit.
>>
> This can be applied separately. 
>
>  
>>>> --- a/arch/arm/mach-omap2/omap-smp.c
>>>> +++ b/arch/arm/mach-omap2/omap-smp.c
>>>> @@ -41,6 +41,8 @@
>>>>  
>>>>  u16 pm44xx_errata;
>>>>  
>>>> +extern unsigned long arch_timer_freq;
>>>> +
>>>>  /* SCU base address */
>>>>  static void __iomem *scu_base;
>>>>  
>> No externs in *.c files please, checkpatch.pl and sparse should warn
>> about this.
>>
>>>  Are you planning to pull this patch and the below $subject patch as well? They are
>>>  acked and tested.
>>>
>>>  ARM: DRA7: realtime_counter: Add ratio registers for 20MHZ sys-clk frequency
>>>
>>>   http://www.spinics.net/lists/linux-omap/msg97281.html
>> The 20MHz patch I've applied, just noticed the above things
>> when was about to apply this.
>>
> Now re-looking at the patch, I think this extern stuff can be and
> should be avoided. It needs order change though like below. Not
> tested but should work.
>
> diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
> index fa74a06..c8d8308 100644
> --- a/arch/arm/mach-omap2/timer.c
> +++ b/arch/arm/mach-omap2/timer.c
> @@ -631,10 +631,9 @@ void __init omap4_local_timer_init(void)
>  #ifdef CONFIG_SOC_OMAP5
>  void __init omap5_realtime_timer_init(void)
>  {
> -	omap4_sync32k_timer_init();
>  	realtime_counter_init();
> -
>  	clocksource_of_init();
> +	omap4_sync32k_timer_init();
>  }
>  #endif /* CONFIG_SOC_OMAP5 */
>  
> Then, the CNTFREQ programming needs to be moved to
> realtime_counter_init(). It should be actually part of that
> first place instead of timer_init().
>
> On secondary CPU then a simple asm accessor can
> read the CNTFREQ and pass that to SMC.
Sorry,  I did not quite get you here. You mean an asm accessor to
 the read the variable that is set in timer.c ?

Regards,
 Sricharan
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
R Sricharan Oct. 9, 2013, 1:16 p.m. UTC | #2
On Wednesday 09 October 2013 06:45 PM, Sricharan R wrote:
> Santosh,
>
> On Wednesday 09 October 2013 03:35 AM, Santosh Shilimkar wrote:
>> On Tuesday 08 October 2013 05:45 PM, Tony Lindgren wrote:
>>> * Sricharan R <r.sricharan@ti.com> [131003 03:27]:
>>>> On Wednesday 18 September 2013 09:32 PM, Sricharan R wrote:
>>>>> --- a/arch/arm/boot/dts/omap5.dtsi
>>>>> +++ b/arch/arm/boot/dts/omap5.dtsi
>>>>> @@ -52,7 +52,6 @@
>>>>>  			     <GIC_PPI 14 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
>>>>>  			     <GIC_PPI 11 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
>>>>>  			     <GIC_PPI 10 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>;
>>>>> -		clock-frequency = <6144000>;
>>>>>  	};
>>>>>  
>>>>>  	gic: interrupt-controller@48211000 {
>>> Can the above be done later on in a separate clean-up patch?
>>> If so I can drop that part as that removes a dependency to the
>>> .dts patches queued by Benoit.
>>>
>> This can be applied separately. 
>>
>>  
>>>>> --- a/arch/arm/mach-omap2/omap-smp.c
>>>>> +++ b/arch/arm/mach-omap2/omap-smp.c
>>>>> @@ -41,6 +41,8 @@
>>>>>  
>>>>>  u16 pm44xx_errata;
>>>>>  
>>>>> +extern unsigned long arch_timer_freq;
>>>>> +
>>>>>  /* SCU base address */
>>>>>  static void __iomem *scu_base;
>>>>>  
>>> No externs in *.c files please, checkpatch.pl and sparse should warn
>>> about this.
>>>
>>>>  Are you planning to pull this patch and the below $subject patch as well? They are
>>>>  acked and tested.
>>>>
>>>>  ARM: DRA7: realtime_counter: Add ratio registers for 20MHZ sys-clk frequency
>>>>
>>>>   http://www.spinics.net/lists/linux-omap/msg97281.html
>>> The 20MHz patch I've applied, just noticed the above things
>>> when was about to apply this.
>>>
>> Now re-looking at the patch, I think this extern stuff can be and
>> should be avoided. It needs order change though like below. Not
>> tested but should work.
>>
>> diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
>> index fa74a06..c8d8308 100644
>> --- a/arch/arm/mach-omap2/timer.c
>> +++ b/arch/arm/mach-omap2/timer.c
>> @@ -631,10 +631,9 @@ void __init omap4_local_timer_init(void)
>>  #ifdef CONFIG_SOC_OMAP5
>>  void __init omap5_realtime_timer_init(void)
>>  {
>> -	omap4_sync32k_timer_init();
>>  	realtime_counter_init();
>> -
>>  	clocksource_of_init();
>> +	omap4_sync32k_timer_init();
>>  }
>>  #endif /* CONFIG_SOC_OMAP5 */
>>  
>> Then, the CNTFREQ programming needs to be moved to
>> realtime_counter_init(). It should be actually part of that
>> first place instead of timer_init().
>>
>> On secondary CPU then a simple asm accessor can
>> read the CNTFREQ and pass that to SMC.
> Sorry,  I did not quite get you here. You mean an asm accessor to
>  the read the variable that is set in timer.c ?
 Also, is it not ok to move the extern to a .h file instead ?

Regards,
 Sricharan

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Santosh Shilimkar Oct. 9, 2013, 1:17 p.m. UTC | #3
On Wednesday 09 October 2013 09:15 AM, Sricharan R wrote:
> Santosh,
> 
> On Wednesday 09 October 2013 03:35 AM, Santosh Shilimkar wrote:
>> On Tuesday 08 October 2013 05:45 PM, Tony Lindgren wrote:
>>> * Sricharan R <r.sricharan@ti.com> [131003 03:27]:
>>>> On Wednesday 18 September 2013 09:32 PM, Sricharan R wrote:
>>>>> --- a/arch/arm/boot/dts/omap5.dtsi
>>>>> +++ b/arch/arm/boot/dts/omap5.dtsi
>>>>> @@ -52,7 +52,6 @@
>>>>>  			     <GIC_PPI 14 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
>>>>>  			     <GIC_PPI 11 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
>>>>>  			     <GIC_PPI 10 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>;
>>>>> -		clock-frequency = <6144000>;
>>>>>  	};
>>>>>  
>>>>>  	gic: interrupt-controller@48211000 {
>>> Can the above be done later on in a separate clean-up patch?
>>> If so I can drop that part as that removes a dependency to the
>>> .dts patches queued by Benoit.
>>>
>> This can be applied separately. 
>>
>>  
>>>>> --- a/arch/arm/mach-omap2/omap-smp.c
>>>>> +++ b/arch/arm/mach-omap2/omap-smp.c
>>>>> @@ -41,6 +41,8 @@
>>>>>  
>>>>>  u16 pm44xx_errata;
>>>>>  
>>>>> +extern unsigned long arch_timer_freq;
>>>>> +
>>>>>  /* SCU base address */
>>>>>  static void __iomem *scu_base;
>>>>>  
>>> No externs in *.c files please, checkpatch.pl and sparse should warn
>>> about this.
>>>
>>>>  Are you planning to pull this patch and the below $subject patch as well? They are
>>>>  acked and tested.
>>>>
>>>>  ARM: DRA7: realtime_counter: Add ratio registers for 20MHZ sys-clk frequency
>>>>
>>>>   http://www.spinics.net/lists/linux-omap/msg97281.html
>>> The 20MHz patch I've applied, just noticed the above things
>>> when was about to apply this.
>>>
>> Now re-looking at the patch, I think this extern stuff can be and
>> should be avoided. It needs order change though like below. Not
>> tested but should work.
>>
>> diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
>> index fa74a06..c8d8308 100644
>> --- a/arch/arm/mach-omap2/timer.c
>> +++ b/arch/arm/mach-omap2/timer.c
>> @@ -631,10 +631,9 @@ void __init omap4_local_timer_init(void)
>>  #ifdef CONFIG_SOC_OMAP5
>>  void __init omap5_realtime_timer_init(void)
>>  {
>> -	omap4_sync32k_timer_init();
>>  	realtime_counter_init();
>> -
>>  	clocksource_of_init();
>> +	omap4_sync32k_timer_init();
>>  }
>>  #endif /* CONFIG_SOC_OMAP5 */
>>  
>> Then, the CNTFREQ programming needs to be moved to
>> realtime_counter_init(). It should be actually part of that
>> first place instead of timer_init().
>>
>> On secondary CPU then a simple asm accessor can
>> read the CNTFREQ and pass that to SMC.
> Sorry,  I did not quite get you here. You mean an asm accessor to
>  the read the variable that is set in timer.c ?
> 
Reading CNTFREQ CP15 directly....

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Santosh Shilimkar Oct. 9, 2013, 1:18 p.m. UTC | #4
On Wednesday 09 October 2013 09:16 AM, Sricharan R wrote:
> On Wednesday 09 October 2013 06:45 PM, Sricharan R wrote:
>> Santosh,
>>
>> On Wednesday 09 October 2013 03:35 AM, Santosh Shilimkar wrote:
>>> On Tuesday 08 October 2013 05:45 PM, Tony Lindgren wrote:
>>>> * Sricharan R <r.sricharan@ti.com> [131003 03:27]:
>>>>> On Wednesday 18 September 2013 09:32 PM, Sricharan R wrote:
>>>>>> --- a/arch/arm/boot/dts/omap5.dtsi
>>>>>> +++ b/arch/arm/boot/dts/omap5.dtsi
>>>>>> @@ -52,7 +52,6 @@
>>>>>>  			     <GIC_PPI 14 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
>>>>>>  			     <GIC_PPI 11 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
>>>>>>  			     <GIC_PPI 10 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>;
>>>>>> -		clock-frequency = <6144000>;
>>>>>>  	};
>>>>>>  
>>>>>>  	gic: interrupt-controller@48211000 {
>>>> Can the above be done later on in a separate clean-up patch?
>>>> If so I can drop that part as that removes a dependency to the
>>>> .dts patches queued by Benoit.
>>>>
>>> This can be applied separately. 
>>>
>>>  
>>>>>> --- a/arch/arm/mach-omap2/omap-smp.c
>>>>>> +++ b/arch/arm/mach-omap2/omap-smp.c
>>>>>> @@ -41,6 +41,8 @@
>>>>>>  
>>>>>>  u16 pm44xx_errata;
>>>>>>  
>>>>>> +extern unsigned long arch_timer_freq;
>>>>>> +
>>>>>>  /* SCU base address */
>>>>>>  static void __iomem *scu_base;
>>>>>>  
>>>> No externs in *.c files please, checkpatch.pl and sparse should warn
>>>> about this.
>>>>
>>>>>  Are you planning to pull this patch and the below $subject patch as well? They are
>>>>>  acked and tested.
>>>>>
>>>>>  ARM: DRA7: realtime_counter: Add ratio registers for 20MHZ sys-clk frequency
>>>>>
>>>>>   http://www.spinics.net/lists/linux-omap/msg97281.html
>>>> The 20MHz patch I've applied, just noticed the above things
>>>> when was about to apply this.
>>>>
>>> Now re-looking at the patch, I think this extern stuff can be and
>>> should be avoided. It needs order change though like below. Not
>>> tested but should work.
>>>
>>> diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
>>> index fa74a06..c8d8308 100644
>>> --- a/arch/arm/mach-omap2/timer.c
>>> +++ b/arch/arm/mach-omap2/timer.c
>>> @@ -631,10 +631,9 @@ void __init omap4_local_timer_init(void)
>>>  #ifdef CONFIG_SOC_OMAP5
>>>  void __init omap5_realtime_timer_init(void)
>>>  {
>>> -	omap4_sync32k_timer_init();
>>>  	realtime_counter_init();
>>> -
>>>  	clocksource_of_init();
>>> +	omap4_sync32k_timer_init();
>>>  }
>>>  #endif /* CONFIG_SOC_OMAP5 */
>>>  
>>> Then, the CNTFREQ programming needs to be moved to
>>> realtime_counter_init(). It should be actually part of that
>>> first place instead of timer_init().
>>>
>>> On secondary CPU then a simple asm accessor can
>>> read the CNTFREQ and pass that to SMC.
>> Sorry,  I did not quite get you here. You mean an asm accessor to
>>  the read the variable that is set in timer.c ?
>  Also, is it not ok to move the extern to a .h file instead ?
> 
I think you can avoid that variable export with above suggestion

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
R Sricharan Oct. 9, 2013, 1:20 p.m. UTC | #5
On Wednesday 09 October 2013 06:47 PM, Santosh Shilimkar wrote:
> On Wednesday 09 October 2013 09:15 AM, Sricharan R wrote:
>> Santosh,
>>
>> On Wednesday 09 October 2013 03:35 AM, Santosh Shilimkar wrote:
>>> On Tuesday 08 October 2013 05:45 PM, Tony Lindgren wrote:
>>>> * Sricharan R <r.sricharan@ti.com> [131003 03:27]:
>>>>> On Wednesday 18 September 2013 09:32 PM, Sricharan R wrote:
>>>>>> --- a/arch/arm/boot/dts/omap5.dtsi
>>>>>> +++ b/arch/arm/boot/dts/omap5.dtsi
>>>>>> @@ -52,7 +52,6 @@
>>>>>>  			     <GIC_PPI 14 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
>>>>>>  			     <GIC_PPI 11 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
>>>>>>  			     <GIC_PPI 10 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>;
>>>>>> -		clock-frequency = <6144000>;
>>>>>>  	};
>>>>>>  
>>>>>>  	gic: interrupt-controller@48211000 {
>>>> Can the above be done later on in a separate clean-up patch?
>>>> If so I can drop that part as that removes a dependency to the
>>>> .dts patches queued by Benoit.
>>>>
>>> This can be applied separately. 
>>>
>>>  
>>>>>> --- a/arch/arm/mach-omap2/omap-smp.c
>>>>>> +++ b/arch/arm/mach-omap2/omap-smp.c
>>>>>> @@ -41,6 +41,8 @@
>>>>>>  
>>>>>>  u16 pm44xx_errata;
>>>>>>  
>>>>>> +extern unsigned long arch_timer_freq;
>>>>>> +
>>>>>>  /* SCU base address */
>>>>>>  static void __iomem *scu_base;
>>>>>>  
>>>> No externs in *.c files please, checkpatch.pl and sparse should warn
>>>> about this.
>>>>
>>>>>  Are you planning to pull this patch and the below $subject patch as well? They are
>>>>>  acked and tested.
>>>>>
>>>>>  ARM: DRA7: realtime_counter: Add ratio registers for 20MHZ sys-clk frequency
>>>>>
>>>>>   http://www.spinics.net/lists/linux-omap/msg97281.html
>>>> The 20MHz patch I've applied, just noticed the above things
>>>> when was about to apply this.
>>>>
>>> Now re-looking at the patch, I think this extern stuff can be and
>>> should be avoided. It needs order change though like below. Not
>>> tested but should work.
>>>
>>> diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
>>> index fa74a06..c8d8308 100644
>>> --- a/arch/arm/mach-omap2/timer.c
>>> +++ b/arch/arm/mach-omap2/timer.c
>>> @@ -631,10 +631,9 @@ void __init omap4_local_timer_init(void)
>>>  #ifdef CONFIG_SOC_OMAP5
>>>  void __init omap5_realtime_timer_init(void)
>>>  {
>>> -	omap4_sync32k_timer_init();
>>>  	realtime_counter_init();
>>> -
>>>  	clocksource_of_init();
>>> +	omap4_sync32k_timer_init();
>>>  }
>>>  #endif /* CONFIG_SOC_OMAP5 */
>>>  
>>> Then, the CNTFREQ programming needs to be moved to
>>> realtime_counter_init(). It should be actually part of that
>>> first place instead of timer_init().
>>>
>>> On secondary CPU then a simple asm accessor can
>>> read the CNTFREQ and pass that to SMC.
>> Sorry,  I did not quite get you here. You mean an asm accessor to
>>  the read the variable that is set in timer.c ?
>>
> Reading CNTFREQ CP15 directly....
>
  Sorry, Still not clear. CNTFREQ is per-cpu register. So when
 the secondary cpu init happens on CPU1, then you mean we will have
 to read it from CPU0 register and pass it for secondary ?

Regards,
 Sricharan
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Santosh Shilimkar Oct. 9, 2013, 1:23 p.m. UTC | #6
On Wednesday 09 October 2013 09:20 AM, Sricharan R wrote:
> On Wednesday 09 October 2013 06:47 PM, Santosh Shilimkar wrote:
>> On Wednesday 09 October 2013 09:15 AM, Sricharan R wrote:
>>> Santosh,
>>>
>>> On Wednesday 09 October 2013 03:35 AM, Santosh Shilimkar wrote:
>>>> On Tuesday 08 October 2013 05:45 PM, Tony Lindgren wrote:
>>>>> * Sricharan R <r.sricharan@ti.com> [131003 03:27]:
>>>>>> On Wednesday 18 September 2013 09:32 PM, Sricharan R wrote:
>>>>>>> --- a/arch/arm/boot/dts/omap5.dtsi
>>>>>>> +++ b/arch/arm/boot/dts/omap5.dtsi
>>>>>>> @@ -52,7 +52,6 @@
>>>>>>>  			     <GIC_PPI 14 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
>>>>>>>  			     <GIC_PPI 11 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
>>>>>>>  			     <GIC_PPI 10 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>;
>>>>>>> -		clock-frequency = <6144000>;
>>>>>>>  	};
>>>>>>>  
>>>>>>>  	gic: interrupt-controller@48211000 {
>>>>> Can the above be done later on in a separate clean-up patch?
>>>>> If so I can drop that part as that removes a dependency to the
>>>>> .dts patches queued by Benoit.
>>>>>
>>>> This can be applied separately. 
>>>>
>>>>  
>>>>>>> --- a/arch/arm/mach-omap2/omap-smp.c
>>>>>>> +++ b/arch/arm/mach-omap2/omap-smp.c
>>>>>>> @@ -41,6 +41,8 @@
>>>>>>>  
>>>>>>>  u16 pm44xx_errata;
>>>>>>>  
>>>>>>> +extern unsigned long arch_timer_freq;
>>>>>>> +
>>>>>>>  /* SCU base address */
>>>>>>>  static void __iomem *scu_base;
>>>>>>>  
>>>>> No externs in *.c files please, checkpatch.pl and sparse should warn
>>>>> about this.
>>>>>
>>>>>>  Are you planning to pull this patch and the below $subject patch as well? They are
>>>>>>  acked and tested.
>>>>>>
>>>>>>  ARM: DRA7: realtime_counter: Add ratio registers for 20MHZ sys-clk frequency
>>>>>>
>>>>>>   http://www.spinics.net/lists/linux-omap/msg97281.html
>>>>> The 20MHz patch I've applied, just noticed the above things
>>>>> when was about to apply this.
>>>>>
>>>> Now re-looking at the patch, I think this extern stuff can be and
>>>> should be avoided. It needs order change though like below. Not
>>>> tested but should work.
>>>>
>>>> diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
>>>> index fa74a06..c8d8308 100644
>>>> --- a/arch/arm/mach-omap2/timer.c
>>>> +++ b/arch/arm/mach-omap2/timer.c
>>>> @@ -631,10 +631,9 @@ void __init omap4_local_timer_init(void)
>>>>  #ifdef CONFIG_SOC_OMAP5
>>>>  void __init omap5_realtime_timer_init(void)
>>>>  {
>>>> -	omap4_sync32k_timer_init();
>>>>  	realtime_counter_init();
>>>> -
>>>>  	clocksource_of_init();
>>>> +	omap4_sync32k_timer_init();
>>>>  }
>>>>  #endif /* CONFIG_SOC_OMAP5 */
>>>>  
>>>> Then, the CNTFREQ programming needs to be moved to
>>>> realtime_counter_init(). It should be actually part of that
>>>> first place instead of timer_init().
>>>>
>>>> On secondary CPU then a simple asm accessor can
>>>> read the CNTFREQ and pass that to SMC.
>>> Sorry,  I did not quite get you here. You mean an asm accessor to
>>>  the read the variable that is set in timer.c ?
>>>
>> Reading CNTFREQ CP15 directly....
>>
>   Sorry, Still not clear. CNTFREQ is per-cpu register. So when
>  the secondary cpu init happens on CPU1, then you mean we will have
>  to read it from CPU0 register and pass it for secondary ?
> 
Create a function within timer.c which sets the freq for a given CPU.
On Boot CPU you figure out frequency and then just use that static
variable.

Regards,
Santosh


--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
index fa74a06..c8d8308 100644
--- a/arch/arm/mach-omap2/timer.c
+++ b/arch/arm/mach-omap2/timer.c
@@ -631,10 +631,9 @@  void __init omap4_local_timer_init(void)
 #ifdef CONFIG_SOC_OMAP5
 void __init omap5_realtime_timer_init(void)
 {
-	omap4_sync32k_timer_init();
 	realtime_counter_init();
-
 	clocksource_of_init();
+	omap4_sync32k_timer_init();
 }
 #endif /* CONFIG_SOC_OMAP5 */