Commit 6323f916 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Linus Walleij
Browse files

pinctrl: microchip-sgpio: Correct the fwnode_irq_get() return value check



fwnode_irq_get() may return all possible signed values, such as Linux
error code. Fix the code to handle this properly.

Fixes: be2dc859 ("pinctrl: pinctrl-microchip-sgpio: Add irq support (for sparx5)")
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: default avatarMichael Walle <michael@walle.cc>
Link: https://lore.kernel.org/r/20220906115021.8661-1-andriy.shevchenko@linux.intel.com


Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 8c943137
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -864,9 +864,10 @@ static int microchip_sgpio_register_bank(struct device *dev,
	gc->can_sleep		= !bank->is_input;
	gc->can_sleep		= !bank->is_input;


	if (bank->is_input && priv->properties->flags & SGPIO_FLAGS_HAS_IRQ) {
	if (bank->is_input && priv->properties->flags & SGPIO_FLAGS_HAS_IRQ) {
		int irq = fwnode_irq_get(fwnode, 0);
		int irq;


		if (irq) {
		irq = fwnode_irq_get(fwnode, 0);
		if (irq > 0) {
			struct gpio_irq_chip *girq = &gc->irq;
			struct gpio_irq_chip *girq = &gc->irq;


			gpio_irq_chip_set_chip(girq, &microchip_sgpio_irqchip);
			gpio_irq_chip_set_chip(girq, &microchip_sgpio_irqchip);