Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
new patch: revert upstream commit to fix GPIO
- Loading branch information
1 parent
392a26e
commit 5aff50c
Showing
3 changed files
with
73 additions
and
0 deletions.
There are no files selected for viewing
71 changes: 71 additions & 0 deletions
71
0001-Revert-pinctrl-bcm2835-Change-init-order-for-gpio-ho.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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 | ||
|
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters