pinctrl-bcm2835: Only request the interrupts listed in the DTB
authorPhil Elwell <phil@raspberrypi.org>
Thu, 26 Feb 2015 09:58:22 +0000 (09:58 +0000)
committerpopcornmix <popcornmix@gmail.com>
Mon, 20 Feb 2017 12:17:38 +0000 (12:17 +0000)
Although the GPIO controller can generate three interrupts (four counting
the common one), the device tree files currently only specify two. In the
absence of the third, simply don't register that interrupt (as opposed to
registering 0), which has the effect of making it impossible to generate
interrupts for GPIOs 46-53 which, since they share pins with the SD card
interface, is unlikely to be a problem.

drivers/pinctrl/bcm/pinctrl-bcm2835.c

index 107ad7d58de8f8a7f55e09c9cdcf7d66fa7ab66b..644bdecbcfcb79d3b84a33769265fca5d3d0c9e5 100644 (file)
@@ -1042,6 +1042,8 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev)
                int len;
                char *name;
                pc->irq[i] = irq_of_parse_and_map(np, i);
+               if (pc->irq[i] == 0)
+                       break;
                pc->irq_data[i].pc = pc;
                pc->irq_data[i].irqgroup = i;