* [PATCH 0/4] Fix number of pins in 'gpio-ranges' @ 2021-03-03 3:31 Shawn Guo 2021-03-03 3:31 ` [PATCH 1/4] arm64: dts: qcom: sdm845: fix " Shawn Guo ` (3 more replies) 0 siblings, 4 replies; 15+ messages in thread From: Shawn Guo @ 2021-03-03 3:31 UTC (permalink / raw) To: Bjorn Andersson; +Cc: devicetree, linux-gpio, linux-arm-msm, Shawn Guo The fixes are split per SoC to ease the stable kernel pick-up. Shawn Guo (4): arm64: dts: qcom: sdm845: fix number of pins in 'gpio-ranges' arm64: dts: qcom: sm8150: fix number of pins in 'gpio-ranges' arm64: dts: qcom: sm8250: fix number of pins in 'gpio-ranges' arm64: dts: qcom: sm8350: fix number of pins in 'gpio-ranges' arch/arm64/boot/dts/qcom/sdm845.dtsi | 2 +- arch/arm64/boot/dts/qcom/sm8150.dtsi | 2 +- arch/arm64/boot/dts/qcom/sm8250.dtsi | 2 +- arch/arm64/boot/dts/qcom/sm8350.dtsi | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) -- 2.17.1 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 1/4] arm64: dts: qcom: sdm845: fix number of pins in 'gpio-ranges' 2021-03-03 3:31 [PATCH 0/4] Fix number of pins in 'gpio-ranges' Shawn Guo @ 2021-03-03 3:31 ` Shawn Guo 2021-03-05 21:43 ` Bjorn Andersson 2021-03-03 3:31 ` [PATCH 2/4] arm64: dts: qcom: sm8150: " Shawn Guo ` (2 subsequent siblings) 3 siblings, 1 reply; 15+ messages in thread From: Shawn Guo @ 2021-03-03 3:31 UTC (permalink / raw) To: Bjorn Andersson Cc: devicetree, linux-gpio, linux-arm-msm, Shawn Guo, Evan Green The last cell of 'gpio-ranges' should be number of GPIO pins, and in case of qcom platform it should match msm_pinctrl_soc_data.ngpio rather than msm_pinctrl_soc_data.ngpio - 1. This fixes the problem that when the last GPIO pin in the range is configured with the following call sequence, it always fails with -EPROBE_DEFER. pinctrl_gpio_set_config() pinctrl_get_device_gpio_range() pinctrl_match_gpio_range() Fixes: bc2c806293c6 ("arm64: dts: qcom: sdm845: Add gpio-ranges to TLMM node") Cc: Evan Green <evgreen@chromium.org> Signed-off-by: Shawn Guo <shawn.guo@linaro.org> --- arch/arm64/boot/dts/qcom/sdm845.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi index 454f794af547..6a2ed02d383d 100644 --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi @@ -2382,7 +2382,7 @@ #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; - gpio-ranges = <&tlmm 0 0 150>; + gpio-ranges = <&tlmm 0 0 151>; wakeup-parent = <&pdc_intc>; cci0_default: cci0-default { -- 2.17.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 1/4] arm64: dts: qcom: sdm845: fix number of pins in 'gpio-ranges' 2021-03-03 3:31 ` [PATCH 1/4] arm64: dts: qcom: sdm845: fix " Shawn Guo @ 2021-03-05 21:43 ` Bjorn Andersson 2021-03-06 1:28 ` Shawn Guo 0 siblings, 1 reply; 15+ messages in thread From: Bjorn Andersson @ 2021-03-05 21:43 UTC (permalink / raw) To: Shawn Guo; +Cc: devicetree, linux-gpio, linux-arm-msm, Evan Green On Tue 02 Mar 21:31 CST 2021, Shawn Guo wrote: > The last cell of 'gpio-ranges' should be number of GPIO pins, and in > case of qcom platform it should match msm_pinctrl_soc_data.ngpio rather > than msm_pinctrl_soc_data.ngpio - 1. > This is a historical artifact, SDM845 has 150 GPIO pins. In addition to this there's an output-only pin for UFS, which I exposed as an GPIO as well - but it's only supposed to be used as a reset-gpio for the UFS device. Perhaps that still mandates that gpio-ranges should cover it? > This fixes the problem that when the last GPIO pin in the range is > configured with the following call sequence, it always fails with > -EPROBE_DEFER. > > pinctrl_gpio_set_config() > pinctrl_get_device_gpio_range() > pinctrl_match_gpio_range() When do we hit this sequence? I didn't think operations on the UFS GP(I)O would ever take this code path? Regards, Bjorn > > Fixes: bc2c806293c6 ("arm64: dts: qcom: sdm845: Add gpio-ranges to TLMM node") > Cc: Evan Green <evgreen@chromium.org> > Signed-off-by: Shawn Guo <shawn.guo@linaro.org> > --- > arch/arm64/boot/dts/qcom/sdm845.dtsi | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi > index 454f794af547..6a2ed02d383d 100644 > --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi > +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi > @@ -2382,7 +2382,7 @@ > #gpio-cells = <2>; > interrupt-controller; > #interrupt-cells = <2>; > - gpio-ranges = <&tlmm 0 0 150>; > + gpio-ranges = <&tlmm 0 0 151>; > wakeup-parent = <&pdc_intc>; > > cci0_default: cci0-default { > -- > 2.17.1 > ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/4] arm64: dts: qcom: sdm845: fix number of pins in 'gpio-ranges' 2021-03-05 21:43 ` Bjorn Andersson @ 2021-03-06 1:28 ` Shawn Guo 2021-03-06 1:56 ` Bjorn Andersson 0 siblings, 1 reply; 15+ messages in thread From: Shawn Guo @ 2021-03-06 1:28 UTC (permalink / raw) To: Bjorn Andersson; +Cc: devicetree, linux-gpio, linux-arm-msm, Evan Green On Fri, Mar 05, 2021 at 03:43:08PM -0600, Bjorn Andersson wrote: > On Tue 02 Mar 21:31 CST 2021, Shawn Guo wrote: > > > The last cell of 'gpio-ranges' should be number of GPIO pins, and in > > case of qcom platform it should match msm_pinctrl_soc_data.ngpio rather > > than msm_pinctrl_soc_data.ngpio - 1. > > > > This is a historical artifact, SDM845 has 150 GPIO pins. In addition to > this there's an output-only pin for UFS, which I exposed as an GPIO as > well - but it's only supposed to be used as a reset-gpio for the UFS > device. > > Perhaps that still mandates that gpio-ranges should cover it? I think the number in DT gpio-ranges should match msm_pinctrl_soc_data.ngpio. Otherwise, kernel will be confused and be running into the issue like below in some case. > > > This fixes the problem that when the last GPIO pin in the range is > > configured with the following call sequence, it always fails with > > -EPROBE_DEFER. > > > > pinctrl_gpio_set_config() > > pinctrl_get_device_gpio_range() > > pinctrl_match_gpio_range() > > When do we hit this sequence? I didn't think operations on the UFS > GP(I)O would ever take this code path? It will, if we have UFS driver booting from ACPI and requesting reset GPIO. And we are hit this sequence with my patch that adds .set_config for gpio_chip [1]. Shawn [1] https://lore.kernel.org/linux-gpio/YEDVMpHyCGbZOrmF@smile.fi.intel.com/ ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/4] arm64: dts: qcom: sdm845: fix number of pins in 'gpio-ranges' 2021-03-06 1:28 ` Shawn Guo @ 2021-03-06 1:56 ` Bjorn Andersson 2021-03-06 8:00 ` Shawn Guo 0 siblings, 1 reply; 15+ messages in thread From: Bjorn Andersson @ 2021-03-06 1:56 UTC (permalink / raw) To: Shawn Guo; +Cc: devicetree, linux-gpio, linux-arm-msm, Evan Green On Fri 05 Mar 19:28 CST 2021, Shawn Guo wrote: > On Fri, Mar 05, 2021 at 03:43:08PM -0600, Bjorn Andersson wrote: > > On Tue 02 Mar 21:31 CST 2021, Shawn Guo wrote: > > > > > The last cell of 'gpio-ranges' should be number of GPIO pins, and in > > > case of qcom platform it should match msm_pinctrl_soc_data.ngpio rather > > > than msm_pinctrl_soc_data.ngpio - 1. > > > > > > > This is a historical artifact, SDM845 has 150 GPIO pins. In addition to > > this there's an output-only pin for UFS, which I exposed as an GPIO as > > well - but it's only supposed to be used as a reset-gpio for the UFS > > device. > > > > Perhaps that still mandates that gpio-ranges should cover it? > > I think the number in DT gpio-ranges should match msm_pinctrl_soc_data.ngpio. > Otherwise, kernel will be confused and be running into the issue like > below in some case. > > > > > > This fixes the problem that when the last GPIO pin in the range is > > > configured with the following call sequence, it always fails with > > > -EPROBE_DEFER. > > > > > > pinctrl_gpio_set_config() > > > pinctrl_get_device_gpio_range() > > > pinctrl_match_gpio_range() > > > > When do we hit this sequence? I didn't think operations on the UFS > > GP(I)O would ever take this code path? > > It will, if we have UFS driver booting from ACPI and requesting reset > GPIO. But does the UFS driver somehow request GPIO 190 on SC8180x? I made up the idea that this is a GPIO, there really only is 190 (0-189) GPIOs on thie SoC. Downstream they use a pinconf node with "output-high"/"output-low" to toggle the reset pin and I don't find any references in the Flex 5G DSDT. > And we are hit this sequence with my patch that adds .set_config > for gpio_chip [1]. > What's calling pinctrl_gpio_set_config() in this case? Regards, Bjorn > Shawn > > [1] https://lore.kernel.org/linux-gpio/YEDVMpHyCGbZOrmF@smile.fi.intel.com/ ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/4] arm64: dts: qcom: sdm845: fix number of pins in 'gpio-ranges' 2021-03-06 1:56 ` Bjorn Andersson @ 2021-03-06 8:00 ` Shawn Guo 2021-03-10 18:22 ` Bjorn Andersson 0 siblings, 1 reply; 15+ messages in thread From: Shawn Guo @ 2021-03-06 8:00 UTC (permalink / raw) To: Bjorn Andersson; +Cc: devicetree, linux-gpio, linux-arm-msm, Evan Green On Fri, Mar 05, 2021 at 07:56:02PM -0600, Bjorn Andersson wrote: > On Fri 05 Mar 19:28 CST 2021, Shawn Guo wrote: > > > On Fri, Mar 05, 2021 at 03:43:08PM -0600, Bjorn Andersson wrote: > > > On Tue 02 Mar 21:31 CST 2021, Shawn Guo wrote: > > > > > > > The last cell of 'gpio-ranges' should be number of GPIO pins, and in > > > > case of qcom platform it should match msm_pinctrl_soc_data.ngpio rather > > > > than msm_pinctrl_soc_data.ngpio - 1. > > > > > > > > > > This is a historical artifact, SDM845 has 150 GPIO pins. In addition to > > > this there's an output-only pin for UFS, which I exposed as an GPIO as > > > well - but it's only supposed to be used as a reset-gpio for the UFS > > > device. > > > > > > Perhaps that still mandates that gpio-ranges should cover it? > > > > I think the number in DT gpio-ranges should match msm_pinctrl_soc_data.ngpio. > > Otherwise, kernel will be confused and be running into the issue like > > below in some case. > > > > > > > > > This fixes the problem that when the last GPIO pin in the range is > > > > configured with the following call sequence, it always fails with > > > > -EPROBE_DEFER. > > > > > > > > pinctrl_gpio_set_config() > > > > pinctrl_get_device_gpio_range() > > > > pinctrl_match_gpio_range() > > > > > > When do we hit this sequence? I didn't think operations on the UFS > > > GP(I)O would ever take this code path? > > > > It will, if we have UFS driver booting from ACPI and requesting reset > > GPIO. > > But does the UFS driver somehow request GPIO 190 on SC8180x? > > I made up the idea that this is a GPIO, there really only is 190 (0-189) > GPIOs on thie SoC. > > Downstream they use a pinconf node with "output-high"/"output-low" to > toggle the reset pin and I don't find any references in the Flex 5G > DSDT. Right now, I do not have to request and configure this UFS GPIO for getting UFS work with ACPI kernel. And the immediate problem we have is that with gpio_chip .set_config patch, devm_gpiod_get_optional() call from UFS driver always gets -EPROBE_DEFER. > > > And we are hit this sequence with my patch that adds .set_config > > for gpio_chip [1]. > > > > What's calling pinctrl_gpio_set_config() in this case? ufs_qcom_probe ufshcd_pltfrm_init ufshcd_init ufs_qcom_init devm_gpiod_get_optional devm_gpiod_get_index gpiod_get_index gpiod_configure_flags gpiod_direction_output gpiochip_generic_config Shawn ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/4] arm64: dts: qcom: sdm845: fix number of pins in 'gpio-ranges' 2021-03-06 8:00 ` Shawn Guo @ 2021-03-10 18:22 ` Bjorn Andersson 2021-03-11 1:19 ` Shawn Guo 0 siblings, 1 reply; 15+ messages in thread From: Bjorn Andersson @ 2021-03-10 18:22 UTC (permalink / raw) To: Shawn Guo; +Cc: devicetree, linux-gpio, linux-arm-msm, Evan Green On Sat 06 Mar 02:00 CST 2021, Shawn Guo wrote: > On Fri, Mar 05, 2021 at 07:56:02PM -0600, Bjorn Andersson wrote: > > On Fri 05 Mar 19:28 CST 2021, Shawn Guo wrote: > > > > > On Fri, Mar 05, 2021 at 03:43:08PM -0600, Bjorn Andersson wrote: > > > > On Tue 02 Mar 21:31 CST 2021, Shawn Guo wrote: > > > > > > > > > The last cell of 'gpio-ranges' should be number of GPIO pins, and in > > > > > case of qcom platform it should match msm_pinctrl_soc_data.ngpio rather > > > > > than msm_pinctrl_soc_data.ngpio - 1. > > > > > > > > > > > > > This is a historical artifact, SDM845 has 150 GPIO pins. In addition to > > > > this there's an output-only pin for UFS, which I exposed as an GPIO as > > > > well - but it's only supposed to be used as a reset-gpio for the UFS > > > > device. > > > > > > > > Perhaps that still mandates that gpio-ranges should cover it? > > > > > > I think the number in DT gpio-ranges should match msm_pinctrl_soc_data.ngpio. > > > Otherwise, kernel will be confused and be running into the issue like > > > below in some case. > > > > > > > > > > > > This fixes the problem that when the last GPIO pin in the range is > > > > > configured with the following call sequence, it always fails with > > > > > -EPROBE_DEFER. > > > > > > > > > > pinctrl_gpio_set_config() > > > > > pinctrl_get_device_gpio_range() > > > > > pinctrl_match_gpio_range() > > > > > > > > When do we hit this sequence? I didn't think operations on the UFS > > > > GP(I)O would ever take this code path? > > > > > > It will, if we have UFS driver booting from ACPI and requesting reset > > > GPIO. > > > > But does the UFS driver somehow request GPIO 190 on SC8180x? > > > > I made up the idea that this is a GPIO, there really only is 190 (0-189) > > GPIOs on thie SoC. > > > > Downstream they use a pinconf node with "output-high"/"output-low" to > > toggle the reset pin and I don't find any references in the Flex 5G > > DSDT. > > Right now, I do not have to request and configure this UFS GPIO for > getting UFS work with ACPI kernel. And the immediate problem we have is > that with gpio_chip .set_config patch, devm_gpiod_get_optional() call > from UFS driver always gets -EPROBE_DEFER. > But we don't have a "reset" GPIO specified in the ACPI node, or you mean with the introduction of .set_config DT no longer works? Regards, Bjorn > > > > > And we are hit this sequence with my patch that adds .set_config > > > for gpio_chip [1]. > > > > > > > What's calling pinctrl_gpio_set_config() in this case? > > ufs_qcom_probe > ufshcd_pltfrm_init > ufshcd_init > ufs_qcom_init > devm_gpiod_get_optional > devm_gpiod_get_index > gpiod_get_index > gpiod_configure_flags > gpiod_direction_output > gpiochip_generic_config > > Shawn ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/4] arm64: dts: qcom: sdm845: fix number of pins in 'gpio-ranges' 2021-03-10 18:22 ` Bjorn Andersson @ 2021-03-11 1:19 ` Shawn Guo 2021-03-11 16:53 ` Bjorn Andersson 0 siblings, 1 reply; 15+ messages in thread From: Shawn Guo @ 2021-03-11 1:19 UTC (permalink / raw) To: Bjorn Andersson; +Cc: devicetree, linux-gpio, linux-arm-msm, Evan Green On Wed, Mar 10, 2021 at 12:22:32PM -0600, Bjorn Andersson wrote: > On Sat 06 Mar 02:00 CST 2021, Shawn Guo wrote: > > > On Fri, Mar 05, 2021 at 07:56:02PM -0600, Bjorn Andersson wrote: > > > On Fri 05 Mar 19:28 CST 2021, Shawn Guo wrote: > > > > > > > On Fri, Mar 05, 2021 at 03:43:08PM -0600, Bjorn Andersson wrote: > > > > > On Tue 02 Mar 21:31 CST 2021, Shawn Guo wrote: > > > > > > > > > > > The last cell of 'gpio-ranges' should be number of GPIO pins, and in > > > > > > case of qcom platform it should match msm_pinctrl_soc_data.ngpio rather > > > > > > than msm_pinctrl_soc_data.ngpio - 1. > > > > > > > > > > > > > > > > This is a historical artifact, SDM845 has 150 GPIO pins. In addition to > > > > > this there's an output-only pin for UFS, which I exposed as an GPIO as > > > > > well - but it's only supposed to be used as a reset-gpio for the UFS > > > > > device. > > > > > > > > > > Perhaps that still mandates that gpio-ranges should cover it? > > > > > > > > I think the number in DT gpio-ranges should match msm_pinctrl_soc_data.ngpio. > > > > Otherwise, kernel will be confused and be running into the issue like > > > > below in some case. > > > > > > > > > > > > > > > This fixes the problem that when the last GPIO pin in the range is > > > > > > configured with the following call sequence, it always fails with > > > > > > -EPROBE_DEFER. > > > > > > > > > > > > pinctrl_gpio_set_config() > > > > > > pinctrl_get_device_gpio_range() > > > > > > pinctrl_match_gpio_range() > > > > > > > > > > When do we hit this sequence? I didn't think operations on the UFS > > > > > GP(I)O would ever take this code path? > > > > > > > > It will, if we have UFS driver booting from ACPI and requesting reset > > > > GPIO. > > > > > > But does the UFS driver somehow request GPIO 190 on SC8180x? > > > > > > I made up the idea that this is a GPIO, there really only is 190 (0-189) > > > GPIOs on thie SoC. > > > > > > Downstream they use a pinconf node with "output-high"/"output-low" to > > > toggle the reset pin and I don't find any references in the Flex 5G > > > DSDT. > > > > Right now, I do not have to request and configure this UFS GPIO for > > getting UFS work with ACPI kernel. And the immediate problem we have is > > that with gpio_chip .set_config patch, devm_gpiod_get_optional() call > > from UFS driver always gets -EPROBE_DEFER. > > > > But we don't have a "reset" GPIO specified in the ACPI node, or you mean > with the introduction of .set_config DT no longer works? Yes, DT stops working because of the mismatch between msm_pinctrl_soc_data.ngpio and gpio-ranges. Shawn ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/4] arm64: dts: qcom: sdm845: fix number of pins in 'gpio-ranges' 2021-03-11 1:19 ` Shawn Guo @ 2021-03-11 16:53 ` Bjorn Andersson 2021-03-11 23:09 ` Shawn Guo 2021-03-15 16:11 ` Linus Walleij 0 siblings, 2 replies; 15+ messages in thread From: Bjorn Andersson @ 2021-03-11 16:53 UTC (permalink / raw) To: Shawn Guo, Linus Walleij Cc: devicetree, linux-gpio, linux-arm-msm, Evan Green On Wed 10 Mar 19:19 CST 2021, Shawn Guo wrote: > On Wed, Mar 10, 2021 at 12:22:32PM -0600, Bjorn Andersson wrote: > > On Sat 06 Mar 02:00 CST 2021, Shawn Guo wrote: > > > > > On Fri, Mar 05, 2021 at 07:56:02PM -0600, Bjorn Andersson wrote: > > > > On Fri 05 Mar 19:28 CST 2021, Shawn Guo wrote: > > > > > > > > > On Fri, Mar 05, 2021 at 03:43:08PM -0600, Bjorn Andersson wrote: > > > > > > On Tue 02 Mar 21:31 CST 2021, Shawn Guo wrote: > > > > > > > > > > > > > The last cell of 'gpio-ranges' should be number of GPIO pins, and in > > > > > > > case of qcom platform it should match msm_pinctrl_soc_data.ngpio rather > > > > > > > than msm_pinctrl_soc_data.ngpio - 1. > > > > > > > > > > > > > > > > > > > This is a historical artifact, SDM845 has 150 GPIO pins. In addition to > > > > > > this there's an output-only pin for UFS, which I exposed as an GPIO as > > > > > > well - but it's only supposed to be used as a reset-gpio for the UFS > > > > > > device. > > > > > > > > > > > > Perhaps that still mandates that gpio-ranges should cover it? > > > > > > > > > > I think the number in DT gpio-ranges should match msm_pinctrl_soc_data.ngpio. > > > > > Otherwise, kernel will be confused and be running into the issue like > > > > > below in some case. > > > > > > > > > > > > > > > > > > This fixes the problem that when the last GPIO pin in the range is > > > > > > > configured with the following call sequence, it always fails with > > > > > > > -EPROBE_DEFER. > > > > > > > > > > > > > > pinctrl_gpio_set_config() > > > > > > > pinctrl_get_device_gpio_range() > > > > > > > pinctrl_match_gpio_range() > > > > > > > > > > > > When do we hit this sequence? I didn't think operations on the UFS > > > > > > GP(I)O would ever take this code path? > > > > > > > > > > It will, if we have UFS driver booting from ACPI and requesting reset > > > > > GPIO. > > > > > > > > But does the UFS driver somehow request GPIO 190 on SC8180x? > > > > > > > > I made up the idea that this is a GPIO, there really only is 190 (0-189) > > > > GPIOs on thie SoC. > > > > > > > > Downstream they use a pinconf node with "output-high"/"output-low" to > > > > toggle the reset pin and I don't find any references in the Flex 5G > > > > DSDT. > > > > > > Right now, I do not have to request and configure this UFS GPIO for > > > getting UFS work with ACPI kernel. And the immediate problem we have is > > > that with gpio_chip .set_config patch, devm_gpiod_get_optional() call > > > from UFS driver always gets -EPROBE_DEFER. > > > > > > > But we don't have a "reset" GPIO specified in the ACPI node, or you mean > > with the introduction of .set_config DT no longer works? > > Yes, DT stops working because of the mismatch between > msm_pinctrl_soc_data.ngpio and gpio-ranges. > So what you're saying is that when Linus merged the .set_config patch yesterday he broke storage on every single Qualcomm device? Regards, Bjorn ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/4] arm64: dts: qcom: sdm845: fix number of pins in 'gpio-ranges' 2021-03-11 16:53 ` Bjorn Andersson @ 2021-03-11 23:09 ` Shawn Guo 2021-03-11 23:17 ` Bjorn Andersson 2021-03-15 16:11 ` Linus Walleij 1 sibling, 1 reply; 15+ messages in thread From: Shawn Guo @ 2021-03-11 23:09 UTC (permalink / raw) To: Bjorn Andersson Cc: Linus Walleij, devicetree, linux-gpio, linux-arm-msm, Evan Green On Thu, Mar 11, 2021 at 10:53:49AM -0600, Bjorn Andersson wrote: > On Wed 10 Mar 19:19 CST 2021, Shawn Guo wrote: > > Yes, DT stops working because of the mismatch between > > msm_pinctrl_soc_data.ngpio and gpio-ranges. > > > > So what you're saying is that when Linus merged the .set_config patch > yesterday he broke storage on every single Qualcomm device? Better than that. Only the ones that have mismatching between msm_pinctrl_soc_data.ngpio and gpio-ranges. More specifically, the ones that the series are fixing. I didn't realize this break when I was working on the .set_config change for ACPI. It was a surprise when I tested DT later. You can ask Linus to drop .set_config patch, if you do not like this break. But I think the mismatch issue still needs to be resolved in some way. Shawn ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/4] arm64: dts: qcom: sdm845: fix number of pins in 'gpio-ranges' 2021-03-11 23:09 ` Shawn Guo @ 2021-03-11 23:17 ` Bjorn Andersson 0 siblings, 0 replies; 15+ messages in thread From: Bjorn Andersson @ 2021-03-11 23:17 UTC (permalink / raw) To: Shawn Guo Cc: Linus Walleij, devicetree, linux-gpio, linux-arm-msm, Evan Green On Thu 11 Mar 17:09 CST 2021, Shawn Guo wrote: > On Thu, Mar 11, 2021 at 10:53:49AM -0600, Bjorn Andersson wrote: > > On Wed 10 Mar 19:19 CST 2021, Shawn Guo wrote: > > > Yes, DT stops working because of the mismatch between > > > msm_pinctrl_soc_data.ngpio and gpio-ranges. > > > > > > > So what you're saying is that when Linus merged the .set_config patch > > yesterday he broke storage on every single Qualcomm device? > > Better than that. Only the ones that have mismatching between > msm_pinctrl_soc_data.ngpio and gpio-ranges. More specifically, the ones > that the series are fixing. > > I didn't realize this break when I was working on the .set_config change > for ACPI. It was a surprise when I tested DT later. You can ask Linus > to drop .set_config patch, if you do not like this break. But I think > the mismatch issue still needs to be resolved in some way. > We're exposing the UFS as a gpio and I think that these patches therefore are correct, so I've picked them up. But I don't think we should break backwards compatibility will all existing DTBs... Regards, Bjorn ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/4] arm64: dts: qcom: sdm845: fix number of pins in 'gpio-ranges' 2021-03-11 16:53 ` Bjorn Andersson 2021-03-11 23:09 ` Shawn Guo @ 2021-03-15 16:11 ` Linus Walleij 1 sibling, 0 replies; 15+ messages in thread From: Linus Walleij @ 2021-03-15 16:11 UTC (permalink / raw) To: Bjorn Andersson Cc: Shawn Guo, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, open list:GPIO SUBSYSTEM, MSM, Evan Green On Thu, Mar 11, 2021 at 5:53 PM Bjorn Andersson <bjorn.andersson@linaro.org> wrote: > On Wed 10 Mar 19:19 CST 2021, Shawn Guo wrote: > > > But we don't have a "reset" GPIO specified in the ACPI node, or you mean > > > with the introduction of .set_config DT no longer works? > > > > Yes, DT stops working because of the mismatch between > > msm_pinctrl_soc_data.ngpio and gpio-ranges. > > > > So what you're saying is that when Linus merged the .set_config patch > yesterday he broke storage on every single Qualcomm device? I took out that patch for now. Maybe we can keep all the stuff in one series if it has strict dependencies? Yours, Linus Walleij ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 2/4] arm64: dts: qcom: sm8150: fix number of pins in 'gpio-ranges' 2021-03-03 3:31 [PATCH 0/4] Fix number of pins in 'gpio-ranges' Shawn Guo 2021-03-03 3:31 ` [PATCH 1/4] arm64: dts: qcom: sdm845: fix " Shawn Guo @ 2021-03-03 3:31 ` Shawn Guo 2021-03-03 3:31 ` [PATCH 3/4] arm64: dts: qcom: sm8250: " Shawn Guo 2021-03-03 3:31 ` [PATCH 4/4] arm64: dts: qcom: sm8350: " Shawn Guo 3 siblings, 0 replies; 15+ messages in thread From: Shawn Guo @ 2021-03-03 3:31 UTC (permalink / raw) To: Bjorn Andersson Cc: devicetree, linux-gpio, linux-arm-msm, Shawn Guo, Vinod Koul The last cell of 'gpio-ranges' should be number of GPIO pins, and in case of qcom platform it should match msm_pinctrl_soc_data.ngpio rather than msm_pinctrl_soc_data.ngpio - 1. This fixes the problem that when the last GPIO pin in the range is configured with the following call sequence, it always fails with -EPROBE_DEFER. pinctrl_gpio_set_config() pinctrl_get_device_gpio_range() pinctrl_match_gpio_range() Fixes: e13c6d144fa0 ("arm64: dts: qcom: sm8150: Add base dts file") Cc: Vinod Koul <vkoul@kernel.org> Signed-off-by: Shawn Guo <shawn.guo@linaro.org> --- arch/arm64/boot/dts/qcom/sm8150.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/sm8150.dtsi b/arch/arm64/boot/dts/qcom/sm8150.dtsi index e5bb17bc2f46..778613d3410b 100644 --- a/arch/arm64/boot/dts/qcom/sm8150.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi @@ -914,7 +914,7 @@ <0x0 0x03D00000 0x0 0x300000>; reg-names = "west", "east", "north", "south"; interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; - gpio-ranges = <&tlmm 0 0 175>; + gpio-ranges = <&tlmm 0 0 176>; gpio-controller; #gpio-cells = <2>; interrupt-controller; -- 2.17.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 3/4] arm64: dts: qcom: sm8250: fix number of pins in 'gpio-ranges' 2021-03-03 3:31 [PATCH 0/4] Fix number of pins in 'gpio-ranges' Shawn Guo 2021-03-03 3:31 ` [PATCH 1/4] arm64: dts: qcom: sdm845: fix " Shawn Guo 2021-03-03 3:31 ` [PATCH 2/4] arm64: dts: qcom: sm8150: " Shawn Guo @ 2021-03-03 3:31 ` Shawn Guo 2021-03-03 3:31 ` [PATCH 4/4] arm64: dts: qcom: sm8350: " Shawn Guo 3 siblings, 0 replies; 15+ messages in thread From: Shawn Guo @ 2021-03-03 3:31 UTC (permalink / raw) To: Bjorn Andersson; +Cc: devicetree, linux-gpio, linux-arm-msm, Shawn Guo The last cell of 'gpio-ranges' should be number of GPIO pins, and in case of qcom platform it should match msm_pinctrl_soc_data.ngpio rather than msm_pinctrl_soc_data.ngpio - 1. This fixes the problem that when the last GPIO pin in the range is configured with the following call sequence, it always fails with -EPROBE_DEFER. pinctrl_gpio_set_config() pinctrl_get_device_gpio_range() pinctrl_match_gpio_range() Fixes: 16951b490b20 ("arm64: dts: qcom: sm8250: Add TLMM pinctrl node") Cc: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Shawn Guo <shawn.guo@linaro.org> --- arch/arm64/boot/dts/qcom/sm8250.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi index 947e1accae3a..e7edb2593ba1 100644 --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi @@ -2689,7 +2689,7 @@ #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; - gpio-ranges = <&tlmm 0 0 180>; + gpio-ranges = <&tlmm 0 0 181>; wakeup-parent = <&pdc>; pri_mi2s_active: pri-mi2s-active { -- 2.17.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 4/4] arm64: dts: qcom: sm8350: fix number of pins in 'gpio-ranges' 2021-03-03 3:31 [PATCH 0/4] Fix number of pins in 'gpio-ranges' Shawn Guo ` (2 preceding siblings ...) 2021-03-03 3:31 ` [PATCH 3/4] arm64: dts: qcom: sm8250: " Shawn Guo @ 2021-03-03 3:31 ` Shawn Guo 3 siblings, 0 replies; 15+ messages in thread From: Shawn Guo @ 2021-03-03 3:31 UTC (permalink / raw) To: Bjorn Andersson Cc: devicetree, linux-gpio, linux-arm-msm, Shawn Guo, Vinod Koul The last cell of 'gpio-ranges' should be number of GPIO pins, and in case of qcom platform it should match msm_pinctrl_soc_data.ngpio rather than msm_pinctrl_soc_data.ngpio - 1. This fixes the problem that when the last GPIO pin in the range is configured with the following call sequence, it always fails with -EPROBE_DEFER. pinctrl_gpio_set_config() pinctrl_get_device_gpio_range() pinctrl_match_gpio_range() Fixes: b7e8f433a673 ("arm64: dts: qcom: Add basic devicetree support for SM8350 SoC") Cc: Vinod Koul <vkoul@kernel.org> Signed-off-by: Shawn Guo <shawn.guo@linaro.org> --- arch/arm64/boot/dts/qcom/sm8350.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/sm8350.dtsi b/arch/arm64/boot/dts/qcom/sm8350.dtsi index 5ef460458f5c..fab211298c35 100644 --- a/arch/arm64/boot/dts/qcom/sm8350.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8350.dtsi @@ -382,7 +382,7 @@ #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; - gpio-ranges = <&tlmm 0 0 203>; + gpio-ranges = <&tlmm 0 0 204>; qup_uart3_default_state: qup-uart3-default-state { rx { -- 2.17.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
end of thread, other threads:[~2021-03-15 16:12 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-03-03 3:31 [PATCH 0/4] Fix number of pins in 'gpio-ranges' Shawn Guo 2021-03-03 3:31 ` [PATCH 1/4] arm64: dts: qcom: sdm845: fix " Shawn Guo 2021-03-05 21:43 ` Bjorn Andersson 2021-03-06 1:28 ` Shawn Guo 2021-03-06 1:56 ` Bjorn Andersson 2021-03-06 8:00 ` Shawn Guo 2021-03-10 18:22 ` Bjorn Andersson 2021-03-11 1:19 ` Shawn Guo 2021-03-11 16:53 ` Bjorn Andersson 2021-03-11 23:09 ` Shawn Guo 2021-03-11 23:17 ` Bjorn Andersson 2021-03-15 16:11 ` Linus Walleij 2021-03-03 3:31 ` [PATCH 2/4] arm64: dts: qcom: sm8150: " Shawn Guo 2021-03-03 3:31 ` [PATCH 3/4] arm64: dts: qcom: sm8250: " Shawn Guo 2021-03-03 3:31 ` [PATCH 4/4] arm64: dts: qcom: sm8350: " Shawn Guo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).