summaryrefslogtreecommitdiff
path: root/drivers/gpio/gpio-omap.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-07-17 10:40:45 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2015-07-17 10:40:45 -0700
commit9bca4df258735087f37568feaca694913f1b5a5f (patch)
treeb51b17f71399c7cec30e8ba24a8934e164c89cc4 /drivers/gpio/gpio-omap.c
parente05bf4f366ca6dfa9f05e4b3744967953865abba (diff)
parentfdd50409c8b9ce4cdd757ce10bf2e39e9c172de6 (diff)
downloadlwn-9bca4df258735087f37568feaca694913f1b5a5f.tar.gz
lwn-9bca4df258735087f37568feaca694913f1b5a5f.zip
Merge tag 'gpio-v4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio
Pull GPIO fixes from Linus Walleij: "This is a first set of GPIO fixes for the v4.2 series, all hitting individual drivers and nothing else (except for a documentation oneliner. I intended to send a request earlier but life intervened)" * tag 'gpio-v4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: gpio: pca953x: fix nested irqs rescheduling gpio: omap: prevent module from being unloaded while in use gpio: max732x: Add missing dev reference to gpiochip gpio/xilinx: Use correct address when setting initial values. gpio: zynq: Fix problem with unbalanced pm_runtime_enable gpio: omap: add missed spin_unlock_irqrestore in omap_gpio_irq_type gpio: brcmstb: fix null ptr dereference in driver remove gpio: Remove double "base" in comment
Diffstat (limited to 'drivers/gpio/gpio-omap.c')
-rw-r--r--drivers/gpio/gpio-omap.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
index b0c57d505be7..61a731ff9a07 100644
--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -500,8 +500,10 @@ static int omap_gpio_irq_type(struct irq_data *d, unsigned type)
spin_lock_irqsave(&bank->lock, flags);
retval = omap_set_gpio_triggering(bank, offset, type);
- if (retval)
+ if (retval) {
+ spin_unlock_irqrestore(&bank->lock, flags);
goto error;
+ }
omap_gpio_init_irq(bank, offset);
if (!omap_gpio_is_input(bank, offset)) {
spin_unlock_irqrestore(&bank->lock, flags);
@@ -1185,6 +1187,7 @@ static int omap_gpio_probe(struct platform_device *pdev)
bank->irq = res->start;
bank->dev = dev;
bank->chip.dev = dev;
+ bank->chip.owner = THIS_MODULE;
bank->dbck_flag = pdata->dbck_flag;
bank->stride = pdata->bank_stride;
bank->width = pdata->bank_width;