Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1630a062 authored by Kamlakant Patel's avatar Kamlakant Patel Committed by Linus Walleij
Browse files

gpio: xlp: Fix vulcan IRQ descriptor allocation



irq_alloc_descs need not be called in case of Vulcan, where we use
a dynamic IRQ range for GPIO interrupt numbers.

Update code not to call irq_alloc_descs and pass 0 as irq_base in
case of Vulcan.

Signed-off-by: default avatarKamlakant Patel <kamlakant.patel@broadcom.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 1bdb5c8e
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -388,15 +388,17 @@ static int xlp_gpio_probe(struct platform_device *pdev)
	gc->get = xlp_gpio_get;

	spin_lock_init(&priv->lock);
	/* XLP has fixed IRQ range for GPIO interrupts */
	if (soc_type == GPIO_VARIANT_VULCAN)
		irq_base = irq_alloc_descs(-1, 0, gc->ngpio, 0);
	else

	/* XLP(MIPS) has fixed range for GPIO IRQs, Vulcan(ARM64) does not */
	if (soc_type != GPIO_VARIANT_VULCAN) {
		irq_base = irq_alloc_descs(-1, XLP_GPIO_IRQ_BASE, gc->ngpio, 0);
		if (irq_base < 0) {
			dev_err(&pdev->dev, "Failed to allocate IRQ numbers\n");
			return irq_base;
		}
	} else {
		irq_base = 0;
	}

	err = gpiochip_add_data(gc, priv);
	if (err < 0)