All of lore.kernel.org
 help / color / mirror / Atom feed
From: santosh.shilimkar@ti.com (Santosh Shilimkar)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv2 04/11] arm: arch_timer: standardise counter reading
Date: Tue, 15 Jan 2013 16:08:18 +0530	[thread overview]
Message-ID: <50F5319A.7060905@ti.com> (raw)
In-Reply-To: <20130115102519.GG7990@e106331-lin.cambridge.arm.com>

On Tuesday 15 January 2013 03:55 PM, Mark Rutland wrote:
> On Fri, Jan 11, 2013 at 01:23:33PM +0000, Santosh Shilimkar wrote:
>> On Wednesday 09 January 2013 09:37 PM, Mark Rutland wrote:
>>> We're currently inconsistent with respect to our accesses to the
>>> physical and virtual counters, mixing and matching the two.
>>>
>>> This patch introduces and uses a function for accessing the correct
>>> counter based on whether we're using physical or virtual interrupts.
>>> All current accesses to the counter accessors are redirected through
>>> it.
>>>
>>> Signed-off-by: Mark Rutland <mark.rutland@arm.com>
>>> Acked-by: Catalin Marinas <catalin.marinas@arm.com>
>>> Acked-by: Marc Zyngier <marc.zyngier@arm.com>
>>> ---
>>>    arch/arm/kernel/arch_timer.c |   48 ++++++++++-------------------------------
>>>    1 files changed, 12 insertions(+), 36 deletions(-)
>>>
>>> diff --git a/arch/arm/kernel/arch_timer.c b/arch/arm/kernel/arch_timer.c
>>> index 498c29f..0d2681c 100644
>>> --- a/arch/arm/kernel/arch_timer.c
>>> +++ b/arch/arm/kernel/arch_timer.c
>>> @@ -272,51 +272,32 @@ static int arch_timer_available(void)
>>>    	return 0;
>>>    }
>>>
>>> -static u32 notrace arch_counter_get_cntpct32(void)
>>> +u64 arch_timer_read_counter(void)
>>>    {
>>> -	cycle_t cnt = arch_counter_get_cntpct();
>>> -
>>> -	/*
>>> -	 * The sched_clock infrastructure only knows about counters
>>> -	 * with at most 32bits. Forget about the upper 24 bits for the
>>> -	 * time being...
>>> -	 */
>>> -	return (u32)cnt;
>>> +	if (arch_timer_use_virtual)
>>> +		return arch_counter_get_cntvct();
>>> +	else
>>> +		return arch_counter_get_cntpct();
>>>    }
>>>
>>
>> [...]
>>
>>> @@ -489,18 +470,13 @@ int __init arch_timer_of_register(void)
>>>
>>>    int __init arch_timer_sched_clock_init(void)
>>>    {
>>> -	u32 (*cnt32)(void);
>>>    	int err;
>>>
>>>    	err = arch_timer_available();
>>>    	if (err)
>>>    		return err;
>>>
>>> -	if (arch_timer_use_virtual)
>>> -		cnt32 = arch_counter_get_cntvct32;
>>> -	else
>>> -		cnt32 = arch_counter_get_cntpct32;
>>> -
>>> -	setup_sched_clock(cnt32, 32, arch_timer_rate);
>>> +	setup_sched_clock(arch_timer_read_counter32,
>>> +			  32, arch_timer_rate);
>>>    	return 0;
>>>    }
>>>
>> I think the original idea had merit since the check was needed
>> in init code instead of proposed one which has if check for
>> every counter read function. No ?
>>
>
> The original idea was good in that it avoided the check on each read path, but
> in several places the logic got duplicated (e.g. for choosing which
> width-altering wrapper in the above block). I'd like ensure this logic is
> consolidated.
>
> I'll change arch_timer_read_counter to a function pointer, and set this in
> arch_timer_of_register before registering anything. Everything would still be
> indirected through it, but it won't have to do a check on every read.
>
Sounds good

  reply	other threads:[~2013-01-15 10:38 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-09 16:07 [PATCHv3 00/11] Unify arm_generic and arch_timer drivers Mark Rutland
2013-01-09 16:07 ` [PATCHv2 01/11] arm: arch_timer: balance device_node refcounting Mark Rutland
2013-01-11 12:59   ` Santosh Shilimkar
2013-01-09 16:07 ` [PATCHv2 02/11] arm: arch_timer: remove redundant available check Mark Rutland
2013-01-11 13:11   ` Santosh Shilimkar
2013-01-11 14:07     ` Mark Rutland
2013-01-09 16:07 ` [PATCHv2 03/11] arm: arch_timer: use u64/u32 for register data Mark Rutland
2013-01-11 13:19   ` Santosh Shilimkar
2013-01-09 16:07 ` [PATCHv2 04/11] arm: arch_timer: standardise counter reading Mark Rutland
2013-01-11 13:23   ` Santosh Shilimkar
2013-01-15 10:25     ` Mark Rutland
2013-01-15 10:38       ` Santosh Shilimkar [this message]
2013-01-09 16:07 ` [PATCHv2 05/11] arm: arch_timer: split cntfrq accessor Mark Rutland
2013-01-11 13:27   ` Santosh Shilimkar
2013-01-11 14:16     ` Mark Rutland
2013-01-09 16:07 ` [PATCHv2 06/11] arm: arch_timer: factor out register accessors Mark Rutland
2013-01-11 13:32   ` Santosh Shilimkar
2013-01-11 14:31     ` Mark Rutland
2013-01-09 16:07 ` [PATCHv2 07/11] arm: arch_timer: divorce from local_timer api Mark Rutland
2013-01-11 13:34   ` Santosh Shilimkar
2013-01-11 16:46     ` Catalin Marinas
2013-01-11 16:56       ` Santosh Shilimkar
2013-01-09 16:07 ` [PATCHv2 08/11] arm: arch_timer: add arch_counter_set_user_access Mark Rutland
2013-01-11 13:40   ` Santosh Shilimkar
2013-01-11 14:54     ` Mark Rutland
2013-01-11 15:07       ` Will Deacon
2013-01-11 17:00         ` Santosh Shilimkar
2013-01-11 16:50     ` Catalin Marinas
2013-01-11 16:57       ` Santosh Shilimkar
2013-01-11 17:54       ` Mark Rutland
2013-01-09 16:07 ` [PATCHv2 09/11] arm: arch_timer: move core to drivers/clocksource Mark Rutland
2013-01-11 13:48   ` Santosh Shilimkar
2013-01-11 15:04     ` Mark Rutland
2013-01-09 16:07 ` [PATCHv2 10/11] arm64: move from arm_generic to arm_arch_timer Mark Rutland
2013-01-11 13:50   ` Santosh Shilimkar
2013-01-09 16:07 ` [PATCHv2 11/11] Documentation: Add ARMv8 to arch_timer devicetree Mark Rutland
2013-01-11 13:52   ` Santosh Shilimkar
  -- strict thread matches above, loose matches on Subject: below --
2012-12-19 15:10 [PATCHv2 00/11] Unify arm_generic and arch_timer drivers Mark Rutland
2012-12-19 15:11 ` [PATCHv2 04/11] arm: arch_timer: standardise counter reading Mark Rutland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50F5319A.7060905@ti.com \
    --to=santosh.shilimkar@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.