Commit b25e10f8 authored by Linus Walleij's avatar Linus Walleij
Browse files

gpio: siox: Pass irqchip when adding gpiochip



We need to convert all old gpio irqchips to pass the irqchip
setup along when adding the gpio_chip.

For chained irqchips this is a pretty straight-forward
conversion.

Cc: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cc: Thierry Reding <treding@nvidia.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 87b70378
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -211,6 +211,7 @@ static int gpio_siox_get_direction(struct gpio_chip *chip, unsigned int offset)
static int gpio_siox_probe(struct siox_device *sdevice)
{
	struct gpio_siox_ddata *ddata;
	struct gpio_irq_chip *girq;
	int ret;

	ddata = devm_kzalloc(&sdevice->dev, sizeof(*ddata), GFP_KERNEL);
@@ -239,18 +240,15 @@ static int gpio_siox_probe(struct siox_device *sdevice)
	ddata->ichip.irq_unmask = gpio_siox_irq_unmask;
	ddata->ichip.irq_set_type = gpio_siox_irq_set_type;

	ret = gpiochip_add(&ddata->gchip);
	if (ret) {
		dev_err(&sdevice->dev,
			"Failed to register gpio chip (%d)\n", ret);
		return ret;
	}
	girq = &ddata->gchip.irq;
	girq->chip = &ddata->ichip;
	girq->default_type = IRQ_TYPE_NONE;
	girq->handler = handle_level_irq;

	ret = gpiochip_irqchip_add(&ddata->gchip, &ddata->ichip,
				   0, handle_level_irq, IRQ_TYPE_NONE);
	ret = gpiochip_add(&ddata->gchip);
	if (ret)
		dev_err(&sdevice->dev,
			"Failed to register irq chip (%d)\n", ret);
			"Failed to register gpio chip (%d)\n", ret);

	return ret;
}