[PATCH v2 1/4] clocksource: arm_global_timer: Only check for unusable timer on A9

Daniel Lezcano daniel.lezcano at linaro.org
Tue Apr 15 09:51:37 PDT 2014


On 03/14/2014 11:18 AM, Matthew Leach wrote:
> The check for a usable global timer in the probe code does not enquire
> which CPU we are currently running on. This can cause the driver to
> incorrectly assume we have an unusable global timer if we are running
> on a CPU other than A9.
>
> Before checking the CPU revision, ensure we are running on an A9 CPU.
>
> Acked-by: Will Deacon <will.deacon at arm.com>
> Signed-off-by: Matthew Leach <matthew.leach at arm.com>
> ---
>   drivers/clocksource/arm_global_timer.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/clocksource/arm_global_timer.c b/drivers/clocksource/arm_global_timer.c
> index 0fc31d0..60e5a170 100644
> --- a/drivers/clocksource/arm_global_timer.c
> +++ b/drivers/clocksource/arm_global_timer.c
> @@ -246,11 +246,12 @@ static void __init global_timer_of_register(struct device_node *np)
>   	int err = 0;
>
>   	/*
> -	 * In r2p0 the comparators for each processor with the global timer
> +	 * In A9 r2p0 the comparators for each processor with the global timer
>   	 * fire when the timer value is greater than or equal to. In previous
>   	 * revisions the comparators fired when the timer value was equal to.
>   	 */
> -	if ((read_cpuid_id() & 0xf0000f) < 0x200000) {
> +	if (read_cpuid_part_number() == ARM_CPU_PART_CORTEX_A9
> +	    && (read_cpuid_id() & 0xf0000f) < 0x200000) {
>   		pr_warn("global-timer: non support for this cpu version.\n");
>   		return;
>   	}

Applied on my tree for 3.16


-- 
  <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog




More information about the linux-arm-kernel mailing list