]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
phy: rockchip-pcie: Refactor mutex handling in rockchip_pcie_phy_power_off()
authorAnand Moon <linux.amoon@gmail.com>
Sat, 12 Oct 2024 07:19:06 +0000 (12:49 +0530)
committerVinod Koul <vkoul@kernel.org>
Wed, 4 Dec 2024 13:27:08 +0000 (18:57 +0530)
Refactor the mutex handling in the rockchip_pcie_phy_power_off() function
to improve code readability and maintainability. The goto statement has
been removed, and the mutex_unlock call is now directly within the
conditional block.

Return the result of reset_control_assert() function, with 0 indicating
success and an error code indicating failure

Signed-off-by: Anand Moon <linux.amoon@gmail.com>
Link: https://lore.kernel.org/r/20241012071919.3726-5-linux.amoon@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/rockchip/phy-rockchip-pcie.c

index e60f24b0b363e609cb5e122203d0159ca92a4586..c84a3c20931557b9521dd50afc6d3ebdfb8828b4 100644 (file)
@@ -132,26 +132,24 @@ static int rockchip_pcie_phy_power_off(struct phy *phy)
                                   PHY_LANE_IDLE_MASK,
                                   PHY_LANE_IDLE_A_SHIFT + inst->index));
 
-       if (--rk_phy->pwr_cnt)
-               goto err_out;
+       if (--rk_phy->pwr_cnt) {
+               mutex_unlock(&rk_phy->pcie_mutex);
+               return 0;
+       }
 
        err = reset_control_assert(rk_phy->phy_rst);
        if (err) {
                dev_err(&phy->dev, "assert phy_rst err %d\n", err);
-               goto err_restore;
+               rk_phy->pwr_cnt++;
+               regmap_write(rk_phy->reg_base,
+                            rk_phy->phy_data->pcie_laneoff,
+                            HIWORD_UPDATE(!PHY_LANE_IDLE_OFF,
+                                          PHY_LANE_IDLE_MASK,
+                                          PHY_LANE_IDLE_A_SHIFT + inst->index));
+               mutex_unlock(&rk_phy->pcie_mutex);
+               return err;
        }
 
-err_out:
-       mutex_unlock(&rk_phy->pcie_mutex);
-       return 0;
-
-err_restore:
-       rk_phy->pwr_cnt++;
-       regmap_write(rk_phy->reg_base,
-                    rk_phy->phy_data->pcie_laneoff,
-                    HIWORD_UPDATE(!PHY_LANE_IDLE_OFF,
-                                  PHY_LANE_IDLE_MASK,
-                                  PHY_LANE_IDLE_A_SHIFT + inst->index));
        mutex_unlock(&rk_phy->pcie_mutex);
        return err;
 }