Commit 96522eeb authored by Anand Moon's avatar Anand Moon Committed by Vinod Koul
Browse files

phy: rockchip-pcie: Refactor mutex handling in rockchip_pcie_phy_power_on()



Refactor the mutex handling in the rockchip_pcie_phy_power_on() 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_deassert() or regmap_read_poll_timeout()
function, with 0 indicating success and an error code indicating failure.

Signed-off-by: default avatarAnand Moon <linux.amoon@gmail.com>
Link: https://lore.kernel.org/r/20241012071919.3726-6-linux.amoon@gmail.com


Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent bb70d1aa
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -163,13 +163,17 @@ static int rockchip_pcie_phy_power_on(struct phy *phy)

	mutex_lock(&rk_phy->pcie_mutex);

	if (rk_phy->pwr_cnt++)
		goto err_out;
	if (rk_phy->pwr_cnt++) {
		mutex_unlock(&rk_phy->pcie_mutex);
		return 0;
	}

	err = reset_control_deassert(rk_phy->phy_rst);
	if (err) {
		dev_err(&phy->dev, "deassert phy_rst err %d\n", err);
		goto err_pwr_cnt;
		rk_phy->pwr_cnt--;
		mutex_unlock(&rk_phy->pcie_mutex);
		return err;
	}

	regmap_write(rk_phy->reg_base, rk_phy->phy_data->pcie_conf,
@@ -226,13 +230,11 @@ static int rockchip_pcie_phy_power_on(struct phy *phy)
		goto err_pll_lock;
	}

err_out:
	mutex_unlock(&rk_phy->pcie_mutex);
	return 0;
	return err;

err_pll_lock:
	reset_control_assert(rk_phy->phy_rst);
err_pwr_cnt:
	rk_phy->pwr_cnt--;
	mutex_unlock(&rk_phy->pcie_mutex);
	return err;