[PATCH] arm64: dts: qcom: ipq6018: Fix gpio-ranges property

Florian Fainelli f.fainelli at gmail.com
Wed Dec 15 14:44:48 PST 2021


On 12/6/21 11:27 PM, Baruch Siach wrote:
> There must be three parameters in gpio-ranges property. Fixes this not
> very helpful error message:
> 
>   OF: /soc/pinctrl at 1000000: (null) = 3 found 3
> 
> Fixes: 1e8277854b49 ("arm64: dts: Add ipq6018 SoC and CP01 board support")
> Cc: Sricharan R <sricharan at codeaurora.org>
> Signed-off-by: Baruch Siach <baruch at tkos.co.il>
> ---
> 
> The error message was improved in commit af3be70a321 ("of: Improve
> of_phandle_iterator_next() error message"), but there is evidently some
> more room for improvement. As I don't really understand the code, I
> added the commit author and the DT list to Cc.

In the commit message you find what the error message was and then
became which tells you which property was used to determine the cell
size, and what count was obtained instead.

In your particular case here however, since the proper was with the
'gpio-ranges' property and there is no property that indicates the cell
size AFAICT, it might been more helpful to revert back to the old
message maybe? So maybe something like which is hopefully the best of
both worlds:

diff --git a/drivers/of/base.c b/drivers/of/base.c
index 372a177f3b80..63bff37bf035 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -1378,9 +1378,13 @@ int of_phandle_iterator_next(struct
of_phandle_iterator *it)
                 * property data length
                 */
                if (it->cur + count > it->list_end) {
-                       pr_err("%pOF: %s = %d found %d\n",
-                              it->parent, it->cells_name,
-                              count, it->cell_count);
+                       if (it->cells_name)
+                               pr_err("%pOF: %s = %d found %d\n",
+                                       it->parent, it->cells_name,
+                                       count, it->cell_count);
+                       else
+                               pr_err("%pOF: arguments longer than
property\n",
+                                      it->parent);
                        goto err;
                }
        }


> ---
>  arch/arm64/boot/dts/qcom/ipq6018.dtsi | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/ipq6018.dtsi b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
> index 6a22bb5f42f4..a717fc17523d 100644
> --- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
> +++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
> @@ -220,7 +220,7 @@ tlmm: pinctrl at 1000000 {
>  			interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
>  			gpio-controller;
>  			#gpio-cells = <2>;
> -			gpio-ranges = <&tlmm 0 80>;
> +			gpio-ranges = <&tlmm 0 0 80>;
>  			interrupt-controller;
>  			#interrupt-cells = <2>;
>  
> 


-- 
Florian



More information about the linux-arm-kernel mailing list