Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
new patch: revert upstream commit to fix GPIO
  • Loading branch information
stapelberg committed Jan 9, 2022
1 parent 392a26e commit 5aff50c
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 0 deletions.
71 changes: 71 additions & 0 deletions 0001-Revert-pinctrl-bcm2835-Change-init-order-for-gpio-ho.patch
@@ -0,0 +1,71 @@
From 10b3126325b251799e359e7a9b53da0b68178de9 Mon Sep 17 00:00:00 2001
From: Michael Stapelberg <michael@stapelberg.de>
Date: Sun, 9 Jan 2022 10:55:57 +0100
Subject: [PATCH] Revert "pinctrl: bcm2835: Change init order for gpio hogs"

This reverts commit 266423e60ea1b953fcc0cd97f3dad85857e434d1.
---
drivers/pinctrl/bcm/pinctrl-bcm2835.c | 29 ++++++++++++---------------
1 file changed, 13 insertions(+), 16 deletions(-)

diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
index b607d10e4cbd..2abcc6ce4eba 100644
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
@@ -1244,18 +1244,6 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev)
raw_spin_lock_init(&pc->irq_lock[i]);
}

- pc->pctl_desc = *pdata->pctl_desc;
- pc->pctl_dev = devm_pinctrl_register(dev, &pc->pctl_desc, pc);
- if (IS_ERR(pc->pctl_dev)) {
- gpiochip_remove(&pc->gpio_chip);
- return PTR_ERR(pc->pctl_dev);
- }
-
- pc->gpio_range = *pdata->gpio_range;
- pc->gpio_range.base = pc->gpio_chip.base;
- pc->gpio_range.gc = &pc->gpio_chip;
- pinctrl_add_gpio_range(pc->pctl_dev, &pc->gpio_range);
-
girq = &pc->gpio_chip.irq;
girq->chip = &bcm2835_gpio_irq_chip;
girq->parent_handler = bcm2835_gpio_irq_handler;
@@ -1263,10 +1251,8 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev)
girq->parents = devm_kcalloc(dev, BCM2835_NUM_IRQS,
sizeof(*girq->parents),
GFP_KERNEL);
- if (!girq->parents) {
- pinctrl_remove_gpio_range(pc->pctl_dev, &pc->gpio_range);
+ if (!girq->parents)
return -ENOMEM;
- }

if (is_7211) {
pc->wake_irq = devm_kcalloc(dev, BCM2835_NUM_IRQS,
@@ -1321,10 +1307,21 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev)
err = gpiochip_add_data(&pc->gpio_chip, pc);
if (err) {
dev_err(dev, "could not add GPIO chip\n");
- pinctrl_remove_gpio_range(pc->pctl_dev, &pc->gpio_range);
return err;
}

+ pc->pctl_desc = *pdata->pctl_desc;
+ pc->pctl_dev = devm_pinctrl_register(dev, &pc->pctl_desc, pc);
+ if (IS_ERR(pc->pctl_dev)) {
+ gpiochip_remove(&pc->gpio_chip);
+ return PTR_ERR(pc->pctl_dev);
+ }
+
+ pc->gpio_range = *pdata->gpio_range;
+ pc->gpio_range.base = pc->gpio_chip.base;
+ pc->gpio_range.gc = &pc->gpio_chip;
+ pinctrl_add_gpio_range(pc->pctl_dev, &pc->gpio_range);
+
return 0;
}

--
2.34.1

2 changes: 2 additions & 0 deletions cmd/gokr-rebuild-kernel/kernel.go
Expand Up @@ -50,6 +50,8 @@ var patchFiles = []string{
"0201-enable-spidev.patch",
// logo
"0001-gokrazy-logo.patch",
// fix gpio: https://lore.kernel.org/all/95851343-2887-1e04-9598-e8c8ae74a99a@i2se.com/
"0001-Revert-pinctrl-bcm2835-Change-init-order-for-gpio-ho.patch",
}

func copyFile(dest, src string) error {
Expand Down
Binary file modified vmlinuz
Binary file not shown.

0 comments on commit 5aff50c

Please sign in to comment.