diff options
author | Alexandre Oliva <lxoliva@fsfla.org> | 2017-09-09 06:19:24 +0000 |
---|---|---|
committer | Alexandre Oliva <lxoliva@fsfla.org> | 2017-09-09 06:19:24 +0000 |
commit | 64d42a7a58dcfe61eed613ee85019ebf73c475bc (patch) | |
tree | 5b2a5267059d49d942d15e10d4ba6e00abca5c2b /freed-ora/tags/f26/4.12.11-300.fc26.gnu/bcm2835-pinctrl-Avoid-warning-from-__irq_do_set_handler.patch | |
parent | 091788a6b88e883f14573f45c7a38fb7f0aa0101 (diff) | |
download | linux-libre-raptor-64d42a7a58dcfe61eed613ee85019ebf73c475bc.tar.gz linux-libre-raptor-64d42a7a58dcfe61eed613ee85019ebf73c475bc.zip |
tag 4.12.11-300.fc26.gnu
Diffstat (limited to 'freed-ora/tags/f26/4.12.11-300.fc26.gnu/bcm2835-pinctrl-Avoid-warning-from-__irq_do_set_handler.patch')
-rw-r--r-- | freed-ora/tags/f26/4.12.11-300.fc26.gnu/bcm2835-pinctrl-Avoid-warning-from-__irq_do_set_handler.patch | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/freed-ora/tags/f26/4.12.11-300.fc26.gnu/bcm2835-pinctrl-Avoid-warning-from-__irq_do_set_handler.patch b/freed-ora/tags/f26/4.12.11-300.fc26.gnu/bcm2835-pinctrl-Avoid-warning-from-__irq_do_set_handler.patch new file mode 100644 index 000000000..258d3b210 --- /dev/null +++ b/freed-ora/tags/f26/4.12.11-300.fc26.gnu/bcm2835-pinctrl-Avoid-warning-from-__irq_do_set_handler.patch @@ -0,0 +1,70 @@ +From patchwork Wed Jun 21 18:20:04 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: pinctrl: bcm2835: Avoid warning from __irq_do_set_handler +From: Stefan Wahren <stefan.wahren@i2se.com> +X-Patchwork-Id: 9802555 +Message-Id: <1498069204-28154-1-git-send-email-stefan.wahren@i2se.com> +To: Linus Walleij <linus.walleij@linaro.org>, Eric Anholt <eric@anholt.net> +Cc: Stefan Wahren <stefan.wahren@i2se.com>, linux-gpio@vger.kernel.org, + Phil Elwell <phil@raspberrypi.org>, linux-rpi-kernel@lists.infradead.org, + linux-arm-kernel@lists.infradead.org +Date: Wed, 21 Jun 2017 20:20:04 +0200 + +We get a warning during boot with enabled EARLY_PRINTK that +we try to set a irq_chip without data. This is caused by ignoring +the return value of irq_of_parse_and_map(). So avoid calling +gpiochip_set_chained_irqchip() in error case. + +Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> +Fixes: 85ae9e512f43 ("pinctrl: bcm2835: switch to GPIOLIB_IRQCHIP") +--- + drivers/pinctrl/bcm/pinctrl-bcm2835.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c +index 1eb7a1a..2308831 100644 +--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c ++++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c +@@ -1048,6 +1048,10 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) + for (i = 0; i < BCM2835_NUM_IRQS; i++) { + pc->irq[i] = irq_of_parse_and_map(np, i); + pc->irq_group[i] = i; ++ ++ if (pc->irq[i] == 0) ++ continue; ++ + /* + * Use the same handler for all groups: this is necessary + * since we use one gpiochip to cover all lines - the +From 8aa99fe688734f249b07314cdd7c5e25651c9c6d Mon Sep 17 00:00:00 2001 +From: Phil Elwell <phil@raspberrypi.org> +Date: Thu, 27 Oct 2016 16:21:19 +0100 +Subject: irq-bcm2836: Prevent spurious interrupts, and trap them early + +The old arch-specific IRQ macros included a dsb to ensure the +write to clear the mailbox interrupt completed before returning +from the interrupt. The BCM2836 irqchip driver needs the same +precaution to avoid spurious interrupts. + +Signed-off-by: Phil Elwell <phil@raspberrypi.org> +--- + drivers/irqchip/irq-bcm2836.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/irqchip/irq-bcm2836.c b/drivers/irqchip/irq-bcm2836.c +index e7463e3..a8db33b 100644 +--- a/drivers/irqchip/irq-bcm2836.c ++++ b/drivers/irqchip/irq-bcm2836.c +@@ -175,6 +175,7 @@ __exception_irq_entry bcm2836_arm_irqchip_handle_irq(struct pt_regs *regs) + u32 ipi = ffs(mbox_val) - 1; + + writel(1 << ipi, mailbox0); ++ dsb(sy); + handle_IPI(ipi, regs); + #endif + } else if (stat) { +-- +cgit v0.12 + |