| From f09b87e86ce78519ac738cd5af19ecc726e5ceaf Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 30 Jul 2021 22:29:05 +0300 |
| Subject: pinctrl: samsung: Fix pinctrl bank pin count |
| |
| From: Jaehyoung Choi <jkkkkk.choi@samsung.com> |
| |
| [ Upstream commit 70115558ab02fe8d28a6634350b3491a542aaa02 ] |
| |
| Commit 1abd18d1a51a ("pinctrl: samsung: Register pinctrl before GPIO") |
| changes the order of GPIO and pinctrl registration: now pinctrl is |
| registered before GPIO. That means gpio_chip->ngpio is not set when |
| samsung_pinctrl_register() called, and one cannot rely on that value |
| anymore. Use `pin_bank->nr_pins' instead of `pin_bank->gpio_chip.ngpio' |
| to fix mentioned inconsistency. |
| |
| Fixes: 1abd18d1a51a ("pinctrl: samsung: Register pinctrl before GPIO") |
| Signed-off-by: Jaehyoung Choi <jkkkkk.choi@samsung.com> |
| Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> |
| Link: https://lore.kernel.org/r/20210730192905.7173-1-semen.protsenko@linaro.org |
| Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/pinctrl/samsung/pinctrl-samsung.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.c b/drivers/pinctrl/samsung/pinctrl-samsung.c |
| index f26574ef234a..601fffeba39f 100644 |
| --- a/drivers/pinctrl/samsung/pinctrl-samsung.c |
| +++ b/drivers/pinctrl/samsung/pinctrl-samsung.c |
| @@ -918,7 +918,7 @@ static int samsung_pinctrl_register(struct platform_device *pdev, |
| pin_bank->grange.pin_base = drvdata->pin_base |
| + pin_bank->pin_base; |
| pin_bank->grange.base = pin_bank->grange.pin_base; |
| - pin_bank->grange.npins = pin_bank->gpio_chip.ngpio; |
| + pin_bank->grange.npins = pin_bank->nr_pins; |
| pin_bank->grange.gc = &pin_bank->gpio_chip; |
| pinctrl_add_gpio_range(drvdata->pctl_dev, &pin_bank->grange); |
| } |
| -- |
| 2.30.2 |
| |