]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
clocksource/drivers/samsung_pwm_timer: Fix endian accessors
authorMatthew Leach <matthew@mattleach.net>
Thu, 16 Jun 2016 13:51:29 +0000 (15:51 +0200)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Tue, 28 Jun 2016 08:16:49 +0000 (10:16 +0200)
Fix the Samsung pwm timer access code to deal with kernels built for big
endian operation.

Signed-off-by: Matthew Leach <matthew@mattleach.net>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
drivers/clocksource/samsung_pwm_timer.c

index 9502bc4c3f6d9a17ec7616bf743c5bfc26c3f638..47e0515ae5042d471603d8a2c63f7c752a664cff 100644 (file)
@@ -130,9 +130,9 @@ static void samsung_time_stop(unsigned int channel)
 
        spin_lock_irqsave(&samsung_pwm_lock, flags);
 
-       tcon = __raw_readl(pwm.base + REG_TCON);
+       tcon = readl_relaxed(pwm.base + REG_TCON);
        tcon &= ~TCON_START(channel);
-       __raw_writel(tcon, pwm.base + REG_TCON);
+       writel_relaxed(tcon, pwm.base + REG_TCON);
 
        spin_unlock_irqrestore(&samsung_pwm_lock, flags);
 }
@@ -148,14 +148,14 @@ static void samsung_time_setup(unsigned int channel, unsigned long tcnt)
 
        spin_lock_irqsave(&samsung_pwm_lock, flags);
 
-       tcon = __raw_readl(pwm.base + REG_TCON);
+       tcon = readl_relaxed(pwm.base + REG_TCON);
 
        tcon &= ~(TCON_START(tcon_chan) | TCON_AUTORELOAD(tcon_chan));
        tcon |= TCON_MANUALUPDATE(tcon_chan);
 
-       __raw_writel(tcnt, pwm.base + REG_TCNTB(channel));
-       __raw_writel(tcnt, pwm.base + REG_TCMPB(channel));
-       __raw_writel(tcon, pwm.base + REG_TCON);
+       writel_relaxed(tcnt, pwm.base + REG_TCNTB(channel));
+       writel_relaxed(tcnt, pwm.base + REG_TCMPB(channel));
+       writel_relaxed(tcon, pwm.base + REG_TCON);
 
        spin_unlock_irqrestore(&samsung_pwm_lock, flags);
 }
@@ -170,7 +170,7 @@ static void samsung_time_start(unsigned int channel, bool periodic)
 
        spin_lock_irqsave(&samsung_pwm_lock, flags);
 
-       tcon = __raw_readl(pwm.base + REG_TCON);
+       tcon = readl_relaxed(pwm.base + REG_TCON);
 
        tcon &= ~TCON_MANUALUPDATE(channel);
        tcon |= TCON_START(channel);
@@ -180,7 +180,7 @@ static void samsung_time_start(unsigned int channel, bool periodic)
        else
                tcon &= ~TCON_AUTORELOAD(channel);
 
-       __raw_writel(tcon, pwm.base + REG_TCON);
+       writel_relaxed(tcon, pwm.base + REG_TCON);
 
        spin_unlock_irqrestore(&samsung_pwm_lock, flags);
 }