gpio: Drop the chained IRQ handler assign function
authorLinus Walleij <linus.walleij@linaro.org>
Mon, 13 Jan 2020 22:08:00 +0000 (23:08 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 23 Jan 2020 14:54:32 +0000 (15:54 +0100)
gpiochip_set_chained_irqchip() would assign a chained handler
to a GPIO chip. We now populate struct gpio_irq_chip for all
chained GPIO irqchips so drop this function.

Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20200113220800.77817-1-linus.walleij@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Documentation/driver-api/gpio/driver.rst
drivers/gpio/gpio-mt7621.c
drivers/gpio/gpio-xgs-iproc.c
drivers/gpio/gpiolib.c
include/linux/gpio/driver.h

index 2ff7431..8719225 100644 (file)
@@ -507,11 +507,6 @@ available but we try to move away from this:
   cascaded irq has to be handled by a threaded interrupt handler.
   Apart from that it works exactly like the chained irqchip.
 
-- DEPRECATED: gpiochip_set_chained_irqchip(): sets up a chained cascaded irq
-  handler for a gpio_chip from a parent IRQ and passes the struct gpio_chip*
-  as handler data. Notice that we pass is as the handler data, since the
-  irqchip data is likely used by the parent irqchip.
-
 - gpiochip_set_nested_irqchip(): sets up a nested cascaded irq handler for a
   gpio_chip from a parent IRQ. As the parent IRQ has usually been
   explicitly requested by the driver, this does very little more than
index d1d785f..b992321 100644 (file)
@@ -253,8 +253,7 @@ mediatek_gpio_bank_probe(struct device *dev,
 
                /*
                 * Directly request the irq here instead of passing
-                * a flow-handler to gpiochip_set_chained_irqchip,
-                * because the irq is shared.
+                * a flow-handler because the irq is shared.
                 */
                ret = devm_request_irq(dev, mtk->gpio_irq,
                                       mediatek_gpio_irq_handler, IRQF_SHARED,
index 773e5c2..55af836 100644 (file)
@@ -251,8 +251,7 @@ static int iproc_gpio_probe(struct platform_device *pdev)
 
                /*
                 * Directly request the irq here instead of passing
-                * a flow-handler to gpiochip_set_chained_irqchip,
-                * because the irq is shared.
+                * a flow-handler because the irq is shared.
                 */
                ret = devm_request_irq(dev, irq, iproc_gpio_irq_handler,
                                       IRQF_SHARED, chip->gc.label, &chip->gc);
index 9913886..ea19ce5 100644 (file)
@@ -1805,7 +1805,7 @@ EXPORT_SYMBOL_GPL(gpiochip_irqchip_irq_valid);
  * gpiochip_set_cascaded_irqchip() - connects a cascaded irqchip to a gpiochip
  * @gc: the gpiochip to set the irqchip chain to
  * @parent_irq: the irq number corresponding to the parent IRQ for this
- * chained irqchip
+ * cascaded irqchip
  * @parent_handler: the parent interrupt handler for the accumulated IRQ
  * coming out of the gpiochip. If the interrupt is nested rather than
  * cascaded, pass NULL in this handler argument
@@ -1848,29 +1848,6 @@ static void gpiochip_set_cascaded_irqchip(struct gpio_chip *gc,
 }
 
 /**
- * gpiochip_set_chained_irqchip() - connects a chained irqchip to a gpiochip
- * @gpiochip: the gpiochip to set the irqchip chain to
- * @irqchip: the irqchip to chain to the gpiochip
- * @parent_irq: the irq number corresponding to the parent IRQ for this
- * chained irqchip
- * @parent_handler: the parent interrupt handler for the accumulated IRQ
- * coming out of the gpiochip.
- */
-void gpiochip_set_chained_irqchip(struct gpio_chip *gpiochip,
-                                 struct irq_chip *irqchip,
-                                 unsigned int parent_irq,
-                                 irq_flow_handler_t parent_handler)
-{
-       if (gpiochip->irq.threaded) {
-               chip_err(gpiochip, "tried to chain a threaded gpiochip\n");
-               return;
-       }
-
-       gpiochip_set_cascaded_irqchip(gpiochip, parent_irq, parent_handler);
-}
-EXPORT_SYMBOL_GPL(gpiochip_set_chained_irqchip);
-
-/**
  * gpiochip_set_nested_irqchip() - connects a nested irqchip to a gpiochip
  * @gpiochip: the gpiochip to set the irqchip nested handler to
  * @irqchip: the irqchip to nest to the gpiochip
index e2480ef..7067bc7 100644 (file)
@@ -585,11 +585,6 @@ int gpiochip_irq_domain_activate(struct irq_domain *domain,
 void gpiochip_irq_domain_deactivate(struct irq_domain *domain,
                                    struct irq_data *data);
 
-void gpiochip_set_chained_irqchip(struct gpio_chip *gpiochip,
-               struct irq_chip *irqchip,
-               unsigned int parent_irq,
-               irq_flow_handler_t parent_handler);
-
 void gpiochip_set_nested_irqchip(struct gpio_chip *gpiochip,
                struct irq_chip *irqchip,
                unsigned int parent_irq);