mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-05 01:54:09 +08:00
watchdog: sp805: replace readl/writel with lighter _relaxed variants
readl/writel versions for ARM contain memory barrier instruction for synchronizing DMA buffers. These are not required at least on this module. So use lighter _relaxed variants. Signed-off-by: Viresh Kumar <viresh.kumar@st.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
This commit is contained in:
parent
bfae14b679
commit
d2e8919bcf
@ -113,10 +113,10 @@ static u32 wdt_timeleft(void)
|
||||
rate = clk_get_rate(wdt->clk);
|
||||
|
||||
spin_lock(&wdt->lock);
|
||||
load = readl(wdt->base + WDTVALUE);
|
||||
load = readl_relaxed(wdt->base + WDTVALUE);
|
||||
|
||||
/*If the interrupt is inactive then time left is WDTValue + WDTLoad. */
|
||||
if (!(readl(wdt->base + WDTRIS) & INT_MASK))
|
||||
if (!(readl_relaxed(wdt->base + WDTRIS) & INT_MASK))
|
||||
load += wdt->load_val + 1;
|
||||
spin_unlock(&wdt->lock);
|
||||
|
||||
@ -128,14 +128,14 @@ static void wdt_enable(void)
|
||||
{
|
||||
spin_lock(&wdt->lock);
|
||||
|
||||
writel(UNLOCK, wdt->base + WDTLOCK);
|
||||
writel(wdt->load_val, wdt->base + WDTLOAD);
|
||||
writel(INT_MASK, wdt->base + WDTINTCLR);
|
||||
writel(INT_ENABLE | RESET_ENABLE, wdt->base + WDTCONTROL);
|
||||
writel(LOCK, wdt->base + WDTLOCK);
|
||||
writel_relaxed(UNLOCK, wdt->base + WDTLOCK);
|
||||
writel_relaxed(wdt->load_val, wdt->base + WDTLOAD);
|
||||
writel_relaxed(INT_MASK, wdt->base + WDTINTCLR);
|
||||
writel_relaxed(INT_ENABLE | RESET_ENABLE, wdt->base + WDTCONTROL);
|
||||
writel_relaxed(LOCK, wdt->base + WDTLOCK);
|
||||
|
||||
/* Flush posted writes. */
|
||||
readl(wdt->base + WDTLOCK);
|
||||
readl_relaxed(wdt->base + WDTLOCK);
|
||||
spin_unlock(&wdt->lock);
|
||||
}
|
||||
|
||||
@ -144,12 +144,12 @@ static void wdt_disable(void)
|
||||
{
|
||||
spin_lock(&wdt->lock);
|
||||
|
||||
writel(UNLOCK, wdt->base + WDTLOCK);
|
||||
writel(0, wdt->base + WDTCONTROL);
|
||||
writel(LOCK, wdt->base + WDTLOCK);
|
||||
writel_relaxed(UNLOCK, wdt->base + WDTLOCK);
|
||||
writel_relaxed(0, wdt->base + WDTCONTROL);
|
||||
writel_relaxed(LOCK, wdt->base + WDTLOCK);
|
||||
|
||||
/* Flush posted writes. */
|
||||
readl(wdt->base + WDTLOCK);
|
||||
readl_relaxed(wdt->base + WDTLOCK);
|
||||
spin_unlock(&wdt->lock);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user