aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/watchdog/sa1100_wdt.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/watchdog/sa1100_wdt.c')
-rw-r--r--drivers/watchdog/sa1100_wdt.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/watchdog/sa1100_wdt.c b/drivers/watchdog/sa1100_wdt.c
index 54984deb8561..ccd6b29e21bf 100644
--- a/drivers/watchdog/sa1100_wdt.c
+++ b/drivers/watchdog/sa1100_wdt.c
@@ -54,10 +54,10 @@ static int sa1100dog_open(struct inode *inode, struct file *file)
54 return -EBUSY; 54 return -EBUSY;
55 55
56 /* Activate SA1100 Watchdog timer */ 56 /* Activate SA1100 Watchdog timer */
57 OSMR3 = OSCR + pre_margin; 57 writel_relaxed(readl_relaxed(OSCR) + pre_margin, OSMR3);
58 OSSR = OSSR_M3; 58 writel_relaxed(OSSR_M3, OSSR);
59 OWER = OWER_WME; 59 writel_relaxed(OWER_WME, OWER);
60 OIER |= OIER_E3; 60 writel_relaxed(readl_relaxed(OIER) | OIER_E3, OIER);
61 return nonseekable_open(inode, file); 61 return nonseekable_open(inode, file);
62} 62}
63 63
@@ -80,7 +80,7 @@ static ssize_t sa1100dog_write(struct file *file, const char __user *data,
80{ 80{
81 if (len) 81 if (len)
82 /* Refresh OSMR3 timer. */ 82 /* Refresh OSMR3 timer. */
83 OSMR3 = OSCR + pre_margin; 83 writel_relaxed(readl_relaxed(OSCR) + pre_margin, OSMR3);
84 return len; 84 return len;
85} 85}
86 86
@@ -114,7 +114,7 @@ static long sa1100dog_ioctl(struct file *file, unsigned int cmd,
114 break; 114 break;
115 115
116 case WDIOC_KEEPALIVE: 116 case WDIOC_KEEPALIVE:
117 OSMR3 = OSCR + pre_margin; 117 writel_relaxed(readl_relaxed(OSCR) + pre_margin, OSMR3);
118 ret = 0; 118 ret = 0;
119 break; 119 break;
120 120
@@ -129,7 +129,7 @@ static long sa1100dog_ioctl(struct file *file, unsigned int cmd,
129 } 129 }
130 130
131 pre_margin = oscr_freq * time; 131 pre_margin = oscr_freq * time;
132 OSMR3 = OSCR + pre_margin; 132 writel_relaxed(readl_relaxed(OSCR) + pre_margin, OSMR3);
133 /*fall through*/ 133 /*fall through*/
134 134
135 case WDIOC_GETTIMEOUT: 135 case WDIOC_GETTIMEOUT: