phy: amlogic: phy-meson-axg-mipi-pcie-analog: Hold reference returned by of_get_parent()
authorLiang He <windhl@126.com>
Thu, 15 Sep 2022 09:35:06 +0000 (17:35 +0800)
committerVinod Koul <vkoul@kernel.org>
Tue, 20 Sep 2022 06:26:38 +0000 (11:56 +0530)
As the of_get_parent() will increase the refcount of the node->parent
and the reference will be discarded, so we should hold the reference
with which we can decrease the refcount when done.

Fixes: 8eff8b4e22d9 ("phy: amlogic: phy-meson-axg-mipi-pcie-analog: add support for MIPI DSI analog")
Signed-off-by: Liang He <windhl@126.com>
Link: https://lore.kernel.org/r/20220915093506.4009456-1-windhl@126.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/amlogic/phy-meson-axg-mipi-pcie-analog.c

index 1027ece..a3e1108 100644 (file)
@@ -197,7 +197,7 @@ static int phy_axg_mipi_pcie_analog_probe(struct platform_device *pdev)
        struct phy_provider *phy;
        struct device *dev = &pdev->dev;
        struct phy_axg_mipi_pcie_analog_priv *priv;
-       struct device_node *np = dev->of_node;
+       struct device_node *np = dev->of_node, *parent_np;
        struct regmap *map;
        int ret;
 
@@ -206,7 +206,9 @@ static int phy_axg_mipi_pcie_analog_probe(struct platform_device *pdev)
                return -ENOMEM;
 
        /* Get the hhi system controller node */
-       map = syscon_node_to_regmap(of_get_parent(dev->of_node));
+       parent_np = of_get_parent(dev->of_node);
+       map = syscon_node_to_regmap(parent_np);
+       of_node_put(parent_np);
        if (IS_ERR(map)) {
                dev_err(dev,
                        "failed to get HHI regmap\n");