Commit 72780ce5 authored by Linus Walleij's avatar Linus Walleij
Browse files

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: default avatarLinus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20200113220800.77817-1-linus.walleij@linaro.org


Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent eec6d97d
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -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
+1 −2
Original line number Diff line number Diff line
@@ -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,
+1 −2
Original line number Diff line number Diff line
@@ -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);
+1 −24
Original line number Diff line number Diff line
@@ -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
@@ -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: the gpiochip to set the irqchip nested handler to
+0 −5
Original line number Diff line number Diff line
@@ -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);