PNP: support optional IRQ resources
[firefly-linux-kernel-4.4.55.git] / drivers / pnp / manager.c
index 7ea9e1e28003f110bc6e86145be9e7a6de9bf2bf..a20accb5ef8fe16ce5486f6e9747ea5111a463e7 100644 (file)
@@ -153,6 +153,15 @@ static int pnp_assign_irq(struct pnp_dev *dev, struct pnp_irq *rule, int idx)
                                goto __add;
                }
        }
+
+       if (rule->flags & IORESOURCE_IRQ_OPTIONAL) {
+               res->start = -1;
+               res->end = -1;
+               res->flags |= IORESOURCE_DISABLED;
+               dev_dbg(&dev->dev, "  irq %d disabled (optional)\n", idx);
+               goto __add;
+       }
+
        dev_dbg(&dev->dev, "  couldn't assign irq %d\n", idx);
        return -EBUSY;