Skip to content

Commit

Permalink
gpio: dwapb: Don't use IRQ 0 as valid Linux interrupt
Browse files Browse the repository at this point in the history
IRQ 0 is not valid in Linux interrupt number space.
Refactor the code with this kept in mind.

Signed-off-by: Andy Shevchenko <[email protected]>
Tested-by: Serge Semin <[email protected]>
Acked-by: Serge Semin <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Linus Walleij <[email protected]>
  • Loading branch information
andy-shev authored and linusw committed May 25, 2020
1 parent d7cc236 commit aa90939
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions drivers/gpio/gpio-dwapb.c
Original file line number Diff line number Diff line change
Expand Up @@ -417,7 +417,7 @@ static void dwapb_configure_irqs(struct dwapb_gpio *gpio,
int i;

for (i = 0; i < pp->ngpio; i++) {
if (pp->irq[i] >= 0)
if (pp->irq[i])
irq_set_chained_handler_and_data(pp->irq[i],
dwapb_irq_handler, gpio);
}
Expand Down Expand Up @@ -538,20 +538,20 @@ static void dwapb_get_irq(struct device *dev, struct fwnode_handle *fwnode,
struct dwapb_port_property *pp)
{
struct device_node *np = NULL;
int j;
int irq = -ENXIO, j;

if (fwnode_property_read_bool(fwnode, "interrupt-controller"))
np = to_of_node(fwnode);

for (j = 0; j < pp->ngpio; j++) {
pp->irq[j] = -ENXIO;

if (np)
pp->irq[j] = of_irq_get(np, j);
irq = of_irq_get(np, j);
else if (has_acpi_companion(dev))
pp->irq[j] = platform_get_irq_optional(to_platform_device(dev), j);
irq = platform_get_irq_optional(to_platform_device(dev), j);
if (irq > 0)
pp->irq[j] = irq;

if (pp->irq[j] >= 0)
if (pp->irq[j])
pp->has_irq = true;
}

Expand Down

0 comments on commit aa90939

Please sign in to comment.