diff options
Diffstat (limited to 'drivers/watchdog')
-rw-r--r-- | drivers/watchdog/mtx-1_wdt.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/watchdog/mtx-1_wdt.c b/drivers/watchdog/mtx-1_wdt.c index aa011da1d5fb..54aa90042484 100644 --- a/drivers/watchdog/mtx-1_wdt.c +++ b/drivers/watchdog/mtx-1_wdt.c | |||
@@ -66,7 +66,7 @@ static struct { | |||
66 | int default_ticks; | 66 | int default_ticks; |
67 | unsigned long inuse; | 67 | unsigned long inuse; |
68 | unsigned gpio; | 68 | unsigned gpio; |
69 | int gstate; | 69 | unsigned int gstate; |
70 | } mtx1_wdt_device; | 70 | } mtx1_wdt_device; |
71 | 71 | ||
72 | static void mtx1_wdt_trigger(unsigned long unused) | 72 | static void mtx1_wdt_trigger(unsigned long unused) |
@@ -78,11 +78,8 @@ static void mtx1_wdt_trigger(unsigned long unused) | |||
78 | ticks--; | 78 | ticks--; |
79 | 79 | ||
80 | /* toggle wdt gpio */ | 80 | /* toggle wdt gpio */ |
81 | mtx1_wdt_device.gstate = ~mtx1_wdt_device.gstate; | 81 | mtx1_wdt_device.gstate = !mtx1_wdt_device.gstate; |
82 | if (mtx1_wdt_device.gstate) | 82 | gpio_set_value(mtx1_wdt_device.gpio, mtx1_wdt_device.gstate); |
83 | gpio_direction_output(mtx1_wdt_device.gpio, 1); | ||
84 | else | ||
85 | gpio_direction_input(mtx1_wdt_device.gpio); | ||
86 | 83 | ||
87 | if (mtx1_wdt_device.queue && ticks) | 84 | if (mtx1_wdt_device.queue && ticks) |
88 | mod_timer(&mtx1_wdt_device.timer, jiffies + MTX1_WDT_INTERVAL); | 85 | mod_timer(&mtx1_wdt_device.timer, jiffies + MTX1_WDT_INTERVAL); |
@@ -105,7 +102,7 @@ static void mtx1_wdt_start(void) | |||
105 | if (!mtx1_wdt_device.queue) { | 102 | if (!mtx1_wdt_device.queue) { |
106 | mtx1_wdt_device.queue = 1; | 103 | mtx1_wdt_device.queue = 1; |
107 | mtx1_wdt_device.gstate = 1; | 104 | mtx1_wdt_device.gstate = 1; |
108 | gpio_direction_output(mtx1_wdt_device.gpio, 1); | 105 | gpio_set_value(mtx1_wdt_device.gpio, 1); |
109 | mod_timer(&mtx1_wdt_device.timer, jiffies + MTX1_WDT_INTERVAL); | 106 | mod_timer(&mtx1_wdt_device.timer, jiffies + MTX1_WDT_INTERVAL); |
110 | } | 107 | } |
111 | mtx1_wdt_device.running++; | 108 | mtx1_wdt_device.running++; |
@@ -120,7 +117,7 @@ static int mtx1_wdt_stop(void) | |||
120 | if (mtx1_wdt_device.queue) { | 117 | if (mtx1_wdt_device.queue) { |
121 | mtx1_wdt_device.queue = 0; | 118 | mtx1_wdt_device.queue = 0; |
122 | mtx1_wdt_device.gstate = 0; | 119 | mtx1_wdt_device.gstate = 0; |
123 | gpio_direction_output(mtx1_wdt_device.gpio, 0); | 120 | gpio_set_value(mtx1_wdt_device.gpio, 0); |
124 | } | 121 | } |
125 | ticks = mtx1_wdt_device.default_ticks; | 122 | ticks = mtx1_wdt_device.default_ticks; |
126 | spin_unlock_irqrestore(&mtx1_wdt_device.lock, flags); | 123 | spin_unlock_irqrestore(&mtx1_wdt_device.lock, flags); |