Merge tag 'gpio-v4.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw...
[linux] / drivers / gpio / gpio-stmpe.c
index 5b00427..16cbc57 100644 (file)
@@ -413,7 +413,7 @@ static irqreturn_t stmpe_gpio_irq(int irq, void *dev)
                    stmpe->partnum != STMPE1801) {
                        stmpe_reg_write(stmpe, statmsbreg + i, status[i]);
                        stmpe_reg_write(stmpe,
-                                       stmpe->regs[STMPE_IDX_GPEDR_LSB + i],
+                                       stmpe->regs[STMPE_IDX_GPEDR_MSB] + i,
                                        status[i]);
                }
        }
@@ -484,21 +484,20 @@ static int stmpe_gpio_probe(struct platform_device *pdev)
                                if (stmpe_gpio->norequest_mask & BIT(i))
                                        clear_bit(i, stmpe_gpio->chip.irq_valid_mask);
                }
-               ret =  gpiochip_irqchip_add(&stmpe_gpio->chip,
-                                           &stmpe_gpio_irq_chip,
-                                           0,
-                                           handle_simple_irq,
-                                           IRQ_TYPE_NONE);
+               ret =  gpiochip_irqchip_add_nested(&stmpe_gpio->chip,
+                                                  &stmpe_gpio_irq_chip,
+                                                  0,
+                                                  handle_simple_irq,
+                                                  IRQ_TYPE_NONE);
                if (ret) {
                        dev_err(&pdev->dev,
                                "could not connect irqchip to gpiochip\n");
                        goto out_disable;
                }
 
-               gpiochip_set_chained_irqchip(&stmpe_gpio->chip,
-                                            &stmpe_gpio_irq_chip,
-                                            irq,
-                                            NULL);
+               gpiochip_set_nested_irqchip(&stmpe_gpio->chip,
+                                           &stmpe_gpio_irq_chip,
+                                           irq);
        }
 
        platform_set_drvdata(pdev, stmpe_gpio);