[PATCH 2/2] clocksource/drivers/lpc32xx: Support timer-based ARM delay
flat view
STALE3899d
From: Joachim Eastwood <hidden>
Date: 2016-01-31 21:48:56
On 31 January 2016 at 21:15, Ezequiel Garcia [off-list ref] wrote:
On 30 January 2016 at 16:27, Joachim Eastwood [off-list ref] wrote:quoted
Hi Ezequiel, On 30 January 2016 at 07:46, Ezequiel Garcia [off-list ref] wrote:quoted
This commit implements the ARM timer-based delay timer for the LPC32xx, LPC18xx, LPC43xx family of SoCs. Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> --- drivers/clocksource/time-lpc32xx.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)diff --git a/drivers/clocksource/time-lpc32xx.c b/drivers/clocksource/time-lpc32xx.c index 9b3d4a38c716..223bb08720d6 100644 --- a/drivers/clocksource/time-lpc32xx.c +++ b/drivers/clocksource/time-lpc32xx.c@@ -18,6 +18,7 @@ #include <linux/clk.h> #include <linux/clockchips.h> #include <linux/clocksource.h> +#include <linux/delay.h> #include <linux/interrupt.h> #include <linux/irq.h> #include <linux/kernel.h>@@ -55,6 +56,15 @@ static u64 notrace lpc32xx_read_sched_clock(void) return readl(clocksource_timer_counter); } +static unsigned long lpc32xx_delay_timer_read(void) +{ + return readl(clocksource_timer_counter); +}Could this use the relaxed version?It seems read_current_timer is used in a busy loop in __timer_delay, and I'd that's why other drivers use readl() here.
As far as I can see only the armada370 and u300 clocksource drivers use readl() in the read_current_timer callback.
In any case, isn't __iormb a no-op on CPU_V7M ?
For LPC18xx and LPC43xx, which is ARMV7m, I don't think it matters. But we should also consider LPC32xx, which is ARM9, as it will soon start to use this driver. Anyway I am fine with using readl() for now. It can always be changed later. regards, Joachim Eastwood