From ea9b87c779d8a81a26e53c8b4068a8c1b04e0ff3 Mon Sep 17 00:00:00 2001
From: Myron Stowe <mstowe@redhat.com>
Date: Sat, 29 Mar 2025 08:38:45 -0600
Subject: [PATCH] PCI: layerscape: Fix arg_count to
 syscon_regmap_lookup_by_phandle_args()

JIRA: https://issues.redhat.com/browse/RHEL-83611
Upstream Status: 4c8c0ffd41d16cf08ccb0d3626beb54adfe5450a

commit 4c8c0ffd41d16cf08ccb0d3626beb54adfe5450a
Author: Ioana Ciornei <ioana.ciornei@nxp.com>
Date:   Thu Mar 27 17:19:49 2025 +0200

    PCI: layerscape: Fix arg_count to syscon_regmap_lookup_by_phandle_args()

    The arg_count parameter to syscon_regmap_lookup_by_phandle_args()
    represents the number of argument cells following the phandle. In this
    case, the number of arguments should be 1 instead of 2 since the dt
    property looks like this:

      fsl,pcie-scfg = <&scfg 0>;

    Without this fix, layerscape-pcie fails with the following message on
    LS1043A:

      OF: /soc/pcie@3500000: phandle scfg@1570000 needs 2, found 1
      layerscape-pcie 3500000.pcie: No syscfg phandle specified
      layerscape-pcie 3500000.pcie: probe with driver layerscape-pcie failed with error -22

    Link: https://lore.kernel.org/r/20250327151949.2765193-1-ioana.ciornei@nxp.com
    Fixes: 149fc35734e5 ("PCI: layerscape: Use syscon_regmap_lookup_by_phandle_args")
    Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: Frank Li <Frank.Li@nxp.com>
    Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Acked-by: Roy Zang <Roy.Zang@nxp.com>
    Cc: stable@vger.kernel.org

Signed-off-by: Myron Stowe <mstowe@redhat.com>
---
 drivers/pci/controller/dwc/pci-layerscape.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pci/controller/dwc/pci-layerscape.c b/drivers/pci/controller/dwc/pci-layerscape.c
index 239a05b36e8e6..a44b5c256d6e2 100644
--- a/drivers/pci/controller/dwc/pci-layerscape.c
+++ b/drivers/pci/controller/dwc/pci-layerscape.c
@@ -356,7 +356,7 @@ static int ls_pcie_probe(struct platform_device *pdev)
 	if (pcie->drvdata->scfg_support) {
 		pcie->scfg =
 			syscon_regmap_lookup_by_phandle_args(dev->of_node,
-							     "fsl,pcie-scfg", 2,
+							     "fsl,pcie-scfg", 1,
 							     index);
 		if (IS_ERR(pcie->scfg)) {
 			dev_err(dev, "No syscfg phandle specified\n");
-- 
GitLab