diff options
Diffstat (limited to 'drivers')
| -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); |
