Message ID | 20240627003654.242870-1-alexey.klimov@linaro.org |
---|---|
State | New |
Headers | show |
Series | pinctrl: qcom: lpass-lpi: increase MAX_NR_GPIO to 32 | expand |
On Thu, Jun 27, 2024 at 01:36:54AM GMT, Alexey Klimov wrote: > Account for more than only 23 GPIOs in LPASS Low Power Island pinctrl > generic driver. The previous value 23 was chosen to satisfy existing > SoC-specific drivers. However SM4250 LPI pinctrl uses more than 23 GPIOs > and its probe routine fails on: > > if (WARN_ON(data->npins > MAX_NR_GPIO)) > return -EINVAL; > > with the following message: > > [ 10.709014] ------------[ cut here ]------------ > [ 10.719085] WARNING: CPU: 1 PID: 56 at > drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:446 > lpi_pinctrl_probe+0x308/0x388 [pinctrl_lpass_lpi] > [ 10.719108] Modules linked in: [...] > [ 10.719238] CPU: 1 PID: 56 Comm: kworker/u33:0 Not tainted > 6.10.0-rc2-00012-ge45ddb1f8d34-dirty #7 > [ 10.719245] Hardware name: Qualcomm Technologies, Inc. QRB4210 RB2 (DT) > [ 10.719250] Workqueue: events_unbound deferred_probe_work_func > [ 10.719265] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) > [ 10.719271] pc : lpi_pinctrl_probe+0x308/0x388 [pinctrl_lpass_lpi] > [ 10.719278] lr : lpi_pinctrl_probe+0x44/0x388 [pinctrl_lpass_lpi] > ... > [ 10.719357] Call trace: > [ 10.719361] lpi_pinctrl_probe+0x308/0x388 [pinctrl_lpass_lpi] > [ 10.719369] platform_probe+0x68/0xc4 > [ 10.719378] really_probe+0xbc/0x29c > [ 10.719384] __driver_probe_device+0x78/0x12c > [ 10.719390] driver_probe_device+0xd8/0x15c > [ 10.719395] __device_attach_driver+0xb8/0x134 > [ 10.719401] bus_for_each_drv+0x88/0xe8 > [ 10.719407] __device_attach+0xa0/0x190 > [ 10.719412] device_initial_probe+0x14/0x20 > [ 10.719418] bus_probe_device+0xac/0xb0 > [ 10.719423] deferred_probe_work_func+0x88/0xc0 > [ 10.719429] process_one_work+0x150/0x294 > [ 10.719439] worker_thread+0x2f8/0x408 > [ 10.719445] kthread+0x110/0x114 > [ 10.719452] ret_from_fork+0x10/0x20 > [ 10.719459] ---[ end trace 0000000000000000 ]--- > [ 10.719589] qcom-sm4250-lpass-lpi-pinctrl a7c0000.pinctrl: probe Nit: usually you can ommit timestamps when posting the backtrace. > with driver qcom-sm4250-lpass-lpi-pinctrl failed with error -22 > > Fixes: c2e5a25e8d88 ("pinctrl: qcom: Introduce SM4250 LPI pinctrl driver") > Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org> > --- > drivers/pinctrl/qcom/pinctrl-lpass-lpi.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
On Thu, Jun 27, 2024 at 2:36 AM Alexey Klimov <alexey.klimov@linaro.org> wrote: > Account for more than only 23 GPIOs in LPASS Low Power Island pinctrl > generic driver. The previous value 23 was chosen to satisfy existing > SoC-specific drivers. However SM4250 LPI pinctrl uses more than 23 GPIOs > and its probe routine fails on: Patch applied! Yours, Linus Walleij
diff --git a/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c index 0d98008e33ee..7366aba5a199 100644 --- a/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c +++ b/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c @@ -20,7 +20,7 @@ #include "pinctrl-lpass-lpi.h" -#define MAX_NR_GPIO 23 +#define MAX_NR_GPIO 32 #define GPIO_FUNC 0 #define MAX_LPI_NUM_CLKS 2
Account for more than only 23 GPIOs in LPASS Low Power Island pinctrl generic driver. The previous value 23 was chosen to satisfy existing SoC-specific drivers. However SM4250 LPI pinctrl uses more than 23 GPIOs and its probe routine fails on: if (WARN_ON(data->npins > MAX_NR_GPIO)) return -EINVAL; with the following message: [ 10.709014] ------------[ cut here ]------------ [ 10.719085] WARNING: CPU: 1 PID: 56 at drivers/pinctrl/qcom/pinctrl-lpass-lpi.c:446 lpi_pinctrl_probe+0x308/0x388 [pinctrl_lpass_lpi] [ 10.719108] Modules linked in: [...] [ 10.719238] CPU: 1 PID: 56 Comm: kworker/u33:0 Not tainted 6.10.0-rc2-00012-ge45ddb1f8d34-dirty #7 [ 10.719245] Hardware name: Qualcomm Technologies, Inc. QRB4210 RB2 (DT) [ 10.719250] Workqueue: events_unbound deferred_probe_work_func [ 10.719265] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 10.719271] pc : lpi_pinctrl_probe+0x308/0x388 [pinctrl_lpass_lpi] [ 10.719278] lr : lpi_pinctrl_probe+0x44/0x388 [pinctrl_lpass_lpi] ... [ 10.719357] Call trace: [ 10.719361] lpi_pinctrl_probe+0x308/0x388 [pinctrl_lpass_lpi] [ 10.719369] platform_probe+0x68/0xc4 [ 10.719378] really_probe+0xbc/0x29c [ 10.719384] __driver_probe_device+0x78/0x12c [ 10.719390] driver_probe_device+0xd8/0x15c [ 10.719395] __device_attach_driver+0xb8/0x134 [ 10.719401] bus_for_each_drv+0x88/0xe8 [ 10.719407] __device_attach+0xa0/0x190 [ 10.719412] device_initial_probe+0x14/0x20 [ 10.719418] bus_probe_device+0xac/0xb0 [ 10.719423] deferred_probe_work_func+0x88/0xc0 [ 10.719429] process_one_work+0x150/0x294 [ 10.719439] worker_thread+0x2f8/0x408 [ 10.719445] kthread+0x110/0x114 [ 10.719452] ret_from_fork+0x10/0x20 [ 10.719459] ---[ end trace 0000000000000000 ]--- [ 10.719589] qcom-sm4250-lpass-lpi-pinctrl a7c0000.pinctrl: probe with driver qcom-sm4250-lpass-lpi-pinctrl failed with error -22 Fixes: c2e5a25e8d88 ("pinctrl: qcom: Introduce SM4250 LPI pinctrl driver") Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org> --- drivers/pinctrl/qcom/pinctrl-lpass-lpi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)