hc
2024-05-14 bedbef8ad3e75a304af6361af235302bcc61d06b
kernel/drivers/watchdog/mtx-1_wdt.c
....@@ -39,7 +39,7 @@
3939 #include <linux/platform_device.h>
4040 #include <linux/io.h>
4141 #include <linux/uaccess.h>
42
-#include <linux/gpio.h>
42
+#include <linux/gpio/consumer.h>
4343
4444 #include <asm/mach-au1x00/au1000.h>
4545
....@@ -55,7 +55,7 @@
5555 int queue;
5656 int default_ticks;
5757 unsigned long inuse;
58
- unsigned gpio;
58
+ struct gpio_desc *gpiod;
5959 unsigned int gstate;
6060 } mtx1_wdt_device;
6161
....@@ -67,7 +67,7 @@
6767
6868 /* toggle wdt gpio */
6969 mtx1_wdt_device.gstate = !mtx1_wdt_device.gstate;
70
- gpio_set_value(mtx1_wdt_device.gpio, mtx1_wdt_device.gstate);
70
+ gpiod_set_value(mtx1_wdt_device.gpiod, mtx1_wdt_device.gstate);
7171
7272 if (mtx1_wdt_device.queue && ticks)
7373 mod_timer(&mtx1_wdt_device.timer, jiffies + MTX1_WDT_INTERVAL);
....@@ -90,7 +90,7 @@
9090 if (!mtx1_wdt_device.queue) {
9191 mtx1_wdt_device.queue = 1;
9292 mtx1_wdt_device.gstate = 1;
93
- gpio_set_value(mtx1_wdt_device.gpio, 1);
93
+ gpiod_set_value(mtx1_wdt_device.gpiod, 1);
9494 mod_timer(&mtx1_wdt_device.timer, jiffies + MTX1_WDT_INTERVAL);
9595 }
9696 mtx1_wdt_device.running++;
....@@ -105,7 +105,7 @@
105105 if (mtx1_wdt_device.queue) {
106106 mtx1_wdt_device.queue = 0;
107107 mtx1_wdt_device.gstate = 0;
108
- gpio_set_value(mtx1_wdt_device.gpio, 0);
108
+ gpiod_set_value(mtx1_wdt_device.gpiod, 0);
109109 }
110110 ticks = mtx1_wdt_device.default_ticks;
111111 spin_unlock_irqrestore(&mtx1_wdt_device.lock, flags);
....@@ -118,7 +118,7 @@
118118 {
119119 if (test_and_set_bit(0, &mtx1_wdt_device.inuse))
120120 return -EBUSY;
121
- return nonseekable_open(inode, file);
121
+ return stream_open(inode, file);
122122 }
123123
124124
....@@ -181,6 +181,7 @@
181181 .owner = THIS_MODULE,
182182 .llseek = no_llseek,
183183 .unlocked_ioctl = mtx1_wdt_ioctl,
184
+ .compat_ioctl = compat_ptr_ioctl,
184185 .open = mtx1_wdt_open,
185186 .write = mtx1_wdt_write,
186187 .release = mtx1_wdt_release,
....@@ -198,12 +199,11 @@
198199 {
199200 int ret;
200201
201
- mtx1_wdt_device.gpio = pdev->resource[0].start;
202
- ret = devm_gpio_request_one(&pdev->dev, mtx1_wdt_device.gpio,
203
- GPIOF_OUT_INIT_HIGH, "mtx1-wdt");
204
- if (ret < 0) {
202
+ mtx1_wdt_device.gpiod = devm_gpiod_get(&pdev->dev,
203
+ NULL, GPIOD_OUT_HIGH);
204
+ if (IS_ERR(mtx1_wdt_device.gpiod)) {
205205 dev_err(&pdev->dev, "failed to request gpio");
206
- return ret;
206
+ return PTR_ERR(mtx1_wdt_device.gpiod);
207207 }
208208
209209 spin_lock_init(&mtx1_wdt_device.lock);