aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.10/950-0187-pinctrl-bcm2835-Accept-fewer-than-expected-IRQs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0187-pinctrl-bcm2835-Accept-fewer-than-expected-IRQs.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.10/950-0187-pinctrl-bcm2835-Accept-fewer-than-expected-IRQs.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0187-pinctrl-bcm2835-Accept-fewer-than-expected-IRQs.patch b/target/linux/bcm27xx/patches-5.10/950-0187-pinctrl-bcm2835-Accept-fewer-than-expected-IRQs.patch
new file mode 100644
index 0000000000..4456504ee8
--- /dev/null
+++ b/target/linux/bcm27xx/patches-5.10/950-0187-pinctrl-bcm2835-Accept-fewer-than-expected-IRQs.patch
@@ -0,0 +1,31 @@
+From 9ab71458b5475c7d8d42896721e593f6ef1a5c7a Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.com>
+Date: Tue, 25 Feb 2020 17:38:20 +0000
+Subject: [PATCH] pinctrl: bcm2835: Accept fewer than expected IRQs
+
+The downstream .dts files only request two GPIO IRQs. Truncate the
+array of parent IRQs when irq_of_parse_and_map returns 0.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.com>
+---
+ drivers/pinctrl/bcm/pinctrl-bcm2835.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
++++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+@@ -1288,9 +1288,13 @@ static int bcm2835_pinctrl_probe(struct
+ char *name;
+
+ girq->parents[i] = irq_of_parse_and_map(np, i);
+- if (!is_7211)
++ if (!is_7211) {
++ if (!girq->parents[i]) {
++ girq->num_parents = i;
++ break;
++ }
+ continue;
+-
++ }
+ /* Skip over the all banks interrupts */
+ pc->wake_irq[i] = irq_of_parse_and_map(np, i +
+ BCM2835_NUM_IRQS + 1);