]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
phy: amlogic: phy-meson-axg-pcie: Fix PHY creation order in axg-pcie probe
authorAnand Moon <linux.amoon@gmail.com>
Thu, 10 Apr 2025 13:33:21 +0000 (19:03 +0530)
committerVinod Koul <vkoul@kernel.org>
Fri, 11 Apr 2025 11:37:15 +0000 (17:07 +0530)
Reorder the PHY creation in the axg-pcie probe function to ensure all
the resource is mapped before creating the PHY. This change addresses
the issue where the PHY creation was attempted before
mapping the necessary resources, potentially causing failures.

Signed-off-by: Anand Moon <linux.amoon@gmail.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20250410133332.294556-7-linux.amoon@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/amlogic/phy-meson-axg-pcie.c

index 54baf7b8930e1d8c1d9bdf26dd1e9443be5e6292..14dee73f9cb57052b7b530c6d9c6ff4e5eb1fd3c 100644 (file)
@@ -136,11 +136,6 @@ static int phy_axg_pcie_probe(struct platform_device *pdev)
        if (!priv)
                return -ENOMEM;
 
-       priv->phy = devm_phy_create(dev, np, &phy_axg_pcie_ops);
-       if (IS_ERR(priv->phy))
-               return dev_err_probe(dev, PTR_ERR(priv->phy),
-                                    "failed to create PHY\n");
-
        base = devm_platform_ioremap_resource(pdev, 0);
        if (IS_ERR(base))
                return PTR_ERR(base);
@@ -158,6 +153,11 @@ static int phy_axg_pcie_probe(struct platform_device *pdev)
        if (IS_ERR(priv->analog))
                return PTR_ERR(priv->analog);
 
+       priv->phy = devm_phy_create(dev, np, &phy_axg_pcie_ops);
+       if (IS_ERR(priv->phy))
+               return dev_err_probe(dev, PTR_ERR(priv->phy),
+                                    "failed to create PHY\n");
+
        phy_set_drvdata(priv->phy, priv);
        dev_set_drvdata(dev, priv);
        pphy = devm_of_phy_provider_register(dev, of_phy_simple_xlate);