pinctrl-sx150x: Use handle_bad_irq instead of handle_edge_irq
authorAndrey Smirnov <andrew.smirnov@gmail.com>
Mon, 7 Nov 2016 16:53:21 +0000 (08:53 -0800)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 8 Nov 2016 08:46:53 +0000 (09:46 +0100)
Althought the function passed as a "handler" during GPIO chip
instantiation is not going to ever be called, specifying handle_edge_irq
there makes for a rather confusing read, both because no "ack" callback
in specified for irqchip and because there's no acking action is
necessary.

Specify handle_bad_irq instead a make a note of the situation. This
commit should be a no-op behaviour wise.

Tested-by: Neil Armstrong <narmstrong@baylibre.com>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-sx150x.c

index 78e15c9a73a2e27289066c2ae43a226b87b98533..798a8bb143c117209dbc021d89fd190836b9c551 100644 (file)
@@ -1077,9 +1077,20 @@ static int sx150x_probe(struct i2c_client *client,
                pctl->irq.masked = ~0;
                pctl->irq.sense = 0;
 
+               /*
+                * Because sx150x_irq_threaded_fn invokes all of the
+                * nested interrrupt handlers via handle_nested_irq,
+                * any "handler" passed to gpiochip_irqchip_add()
+                * below is going to be ignored, so the choice of the
+                * function does not matter that much.
+                *
+                * We set it to handle_bad_irq to avoid confusion,
+                * plus it will be instantly noticeable if it is ever
+                * called (should not happen)
+                */
                ret = gpiochip_irqchip_add(&pctl->gpio,
                                           &pctl->irq_chip, 0,
-                                          handle_edge_irq, IRQ_TYPE_NONE);
+                                          handle_bad_irq, IRQ_TYPE_NONE);
                if (ret) {
                        dev_err(dev, "could not connect irqchip to gpiochip\n");
                        return ret;