mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2024-12-29 17:22:07 +00:00
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: Anand Moon <linux.amoon@gmail.com> Link: https://lore.kernel.org/r/20241012071919.3726-6-linux.amoon@gmail.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
bb70d1aae5
commit
96522eeb87
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user