diff options
author | Joel Stanley <joel@jms.id.au> | 2019-04-08 12:35:00 +0930 |
---|---|---|
committer | Joel Stanley <joel@jms.id.au> | 2019-04-08 12:35:05 +0930 |
commit | 0b37f9a0bd24d9622f75d981feac67e72351b6e8 (patch) | |
tree | d40154b713e136a2d9dfb3fcb1903dd730bd234f /drivers/gpio | |
parent | df66fbc97853fbba90a0bfa44de32f3d5f7602b4 (diff) | |
parent | 8b298d3a0bd5feeb47129c4889356b38b78ab231 (diff) | |
download | talos-obmc-linux-0b37f9a0bd24d9622f75d981feac67e72351b6e8.tar.gz talos-obmc-linux-0b37f9a0bd24d9622f75d981feac67e72351b6e8.zip |
Merge tag 'v5.0.7' into dev-5.0
This is the 5.0.7 stable release
Signed-off-by: Joel Stanley <joel@jms.id.au>
Diffstat (limited to 'drivers/gpio')
-rw-r--r-- | drivers/gpio/gpio-omap.c | 14 | ||||
-rw-r--r-- | drivers/gpio/gpiolib-of.c | 3 |
2 files changed, 10 insertions, 7 deletions
diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c index f4e9921fa966..7f33024b6d83 100644 --- a/drivers/gpio/gpio-omap.c +++ b/drivers/gpio/gpio-omap.c @@ -883,14 +883,16 @@ static void omap_gpio_unmask_irq(struct irq_data *d) if (trigger) omap_set_gpio_triggering(bank, offset, trigger); - /* For level-triggered GPIOs, the clearing must be done after - * the HW source is cleared, thus after the handler has run */ - if (bank->level_mask & BIT(offset)) { - omap_set_gpio_irqenable(bank, offset, 0); + omap_set_gpio_irqenable(bank, offset, 1); + + /* + * For level-triggered GPIOs, clearing must be done after the source + * is cleared, thus after the handler has run. OMAP4 needs this done + * after enabing the interrupt to clear the wakeup status. + */ + if (bank->level_mask & BIT(offset)) omap_clear_gpio_irqstatus(bank, offset); - } - omap_set_gpio_irqenable(bank, offset, 1); raw_spin_unlock_irqrestore(&bank->lock, flags); } diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c index a6e1891217e2..a1dd2f1c0d02 100644 --- a/drivers/gpio/gpiolib-of.c +++ b/drivers/gpio/gpiolib-of.c @@ -86,7 +86,8 @@ static void of_gpio_flags_quirks(struct device_node *np, if (IS_ENABLED(CONFIG_REGULATOR) && (of_device_is_compatible(np, "regulator-fixed") || of_device_is_compatible(np, "reg-fixed-voltage") || - of_device_is_compatible(np, "regulator-gpio"))) { + (of_device_is_compatible(np, "regulator-gpio") && + strcmp(propname, "enable-gpio") == 0))) { /* * The regulator GPIO handles are specified such that the * presence or absence of "enable-active-high" solely controls |