gpio: Drop the chained IRQ handler assign function

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>
This commit is contained in:
Linus Walleij 2020-01-13 23:08:00 +01:00
parent eec6d97d6d
commit 72780ce5f1
5 changed files with 3 additions and 38 deletions

View 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. cascaded irq has to be handled by a threaded interrupt handler.
Apart from that it works exactly like the chained irqchip. 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 - 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 gpio_chip from a parent IRQ. As the parent IRQ has usually been
explicitly requested by the driver, this does very little more than explicitly requested by the driver, this does very little more than

View File

@ -253,8 +253,7 @@ mediatek_gpio_bank_probe(struct device *dev,
/* /*
* Directly request the irq here instead of passing * Directly request the irq here instead of passing
* a flow-handler to gpiochip_set_chained_irqchip, * a flow-handler because the irq is shared.
* because the irq is shared.
*/ */
ret = devm_request_irq(dev, mtk->gpio_irq, ret = devm_request_irq(dev, mtk->gpio_irq,
mediatek_gpio_irq_handler, IRQF_SHARED, mediatek_gpio_irq_handler, IRQF_SHARED,

View File

@ -251,8 +251,7 @@ static int iproc_gpio_probe(struct platform_device *pdev)
/* /*
* Directly request the irq here instead of passing * Directly request the irq here instead of passing
* a flow-handler to gpiochip_set_chained_irqchip, * a flow-handler because the irq is shared.
* because the irq is shared.
*/ */
ret = devm_request_irq(dev, irq, iproc_gpio_irq_handler, ret = devm_request_irq(dev, irq, iproc_gpio_irq_handler,
IRQF_SHARED, chip->gc.label, &chip->gc); IRQF_SHARED, chip->gc.label, &chip->gc);

View File

@ -1805,7 +1805,7 @@ EXPORT_SYMBOL_GPL(gpiochip_irqchip_irq_valid);
* gpiochip_set_cascaded_irqchip() - connects a cascaded irqchip to a gpiochip * gpiochip_set_cascaded_irqchip() - connects a cascaded irqchip to a gpiochip
* @gc: the gpiochip to set the irqchip chain to * @gc: the gpiochip to set the irqchip chain to
* @parent_irq: the irq number corresponding to the parent IRQ for this * @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 * @parent_handler: the parent interrupt handler for the accumulated IRQ
* coming out of the gpiochip. If the interrupt is nested rather than * coming out of the gpiochip. If the interrupt is nested rather than
* cascaded, pass NULL in this handler argument * cascaded, pass NULL in this handler argument
@ -1847,29 +1847,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_set_nested_irqchip() - connects a nested irqchip to a gpiochip
* @gpiochip: the gpiochip to set the irqchip nested handler to * @gpiochip: the gpiochip to set the irqchip nested handler to

View File

@ -585,11 +585,6 @@ int gpiochip_irq_domain_activate(struct irq_domain *domain,
void gpiochip_irq_domain_deactivate(struct irq_domain *domain, void gpiochip_irq_domain_deactivate(struct irq_domain *domain,
struct irq_data *data); 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, void gpiochip_set_nested_irqchip(struct gpio_chip *gpiochip,
struct irq_chip *irqchip, struct irq_chip *irqchip,
unsigned int parent_irq); unsigned int parent_irq);