[PATCH v9 4/9] clocksource/drivers/arm_arch_timer: use readq to get 64-bit CNTVCT

Timur Tabi timur at codeaurora.org
Mon Jul 25 08:50:29 PDT 2016


Will Deacon wrote:
>> >  {
>> >-	u32 vct_lo, vct_hi, tmp_hi;
>> >-
>> >-	do {
>> >-		vct_hi = readl_relaxed(arch_counter_base + CNTVCT_HI);
>> >-		vct_lo = readl_relaxed(arch_counter_base + CNTVCT_LO);
>> >-		tmp_hi = readl_relaxed(arch_counter_base + CNTVCT_HI);
>> >-	} while (vct_hi != tmp_hi);
>> >-
>> >-	return ((u64) vct_hi << 32) | vct_lo;
>> >+	return readq(arch_counter_base + CNTVCT_LO);
> Please drop this patch. It doesn't work.

On systems where readq() does work, wouldn't it be more optimal than the 
above while-loop?

-- 
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the
Code Aurora Forum, hosted by The Linux Foundation.



More information about the linux-arm-kernel mailing list