| From 9b19d40aa3ebaf1078779da10555da2ab8512422 Mon Sep 17 00:00:00 2001 |
| From: Florian Fainelli <florian@openwrt.org> |
| Date: Wed, 15 Jun 2011 19:15:23 +0200 |
| Subject: watchdog: mtx1-wdt: request gpio before using it |
| |
| From: Florian Fainelli <florian@openwrt.org> |
| |
| commit 9b19d40aa3ebaf1078779da10555da2ab8512422 upstream. |
| |
| Otherwise, the gpiolib autorequest feature will produce a WARN_ON(): |
| |
| WARNING: at drivers/gpio/gpiolib.c:101 0x8020ec6c() |
| autorequest GPIO-215 |
| [...] |
| |
| Signed-off-by: Florian Fainelli <florian@openwrt.org> |
| Signed-off-by: Wim Van Sebroeck <wim@iguana.be> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/watchdog/mtx-1_wdt.c | 8 ++++++++ |
| 1 file changed, 8 insertions(+) |
| |
| --- a/drivers/watchdog/mtx-1_wdt.c |
| +++ b/drivers/watchdog/mtx-1_wdt.c |
| @@ -211,6 +211,12 @@ static int __devinit mtx1_wdt_probe(stru |
| int ret; |
| |
| mtx1_wdt_device.gpio = pdev->resource[0].start; |
| + ret = gpio_request_one(mtx1_wdt_device.gpio, |
| + GPIOF_OUT_INIT_HIGH, "mtx1-wdt"); |
| + if (ret < 0) { |
| + dev_err(&pdev->dev, "failed to request gpio"); |
| + return ret; |
| + } |
| |
| spin_lock_init(&mtx1_wdt_device.lock); |
| init_completion(&mtx1_wdt_device.stop); |
| @@ -236,6 +242,8 @@ static int __devexit mtx1_wdt_remove(str |
| mtx1_wdt_device.queue = 0; |
| wait_for_completion(&mtx1_wdt_device.stop); |
| } |
| + |
| + gpio_free(mtx1_wdt_device.gpio); |
| misc_deregister(&mtx1_wdt_misc); |
| return 0; |
| } |