mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
phy: rockchip-samsung-dcphy: Enable runtime PM at PHY core level
phy_create() only enables runtime PM on the new PHY device if the parent already has it enabled, and this driver enables it afterwards. The PHY device therefore never gets runtime PM, and phy_pm_runtime_get_sync() returns -ENOTSUPP for every phy_init() and phy_power_on(). The block is still resumed today, but only through the supplier link fw_devlink builds from the phys phandle, which fw_devlink=off and =permissive do not. Move devm_pm_runtime_enable() before devm_phy_create(), as done for the sibling HDPTX PHY in commit10ba8479f4("phy: phy-rockchip-samsung-hdptx: Enable runtime PM at PHY core level"). Fixes:b2a1a2ae78("phy: rockchip: Add Samsung MIPI D-/C-PHY driver") Signed-off-by: Jason Yang <jason98166@gmail.com> Reviewed-by: Heiko Stuebner <heiko@sntech.de> Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com> Link: https://patch.msgid.link/20260821-dcphy-rpm-v1-v1-1-a7db728b2539@gmail.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
8c2b331e63
commit
261e84f927
|
|
@ -1610,16 +1610,16 @@ static int samsung_mipi_dcphy_probe(struct platform_device *pdev)
|
|||
return dev_err_probe(dev, PTR_ERR(samsung->grf_apb_rst),
|
||||
"Failed to get system grf_apb_rst control\n");
|
||||
|
||||
ret = devm_pm_runtime_enable(dev);
|
||||
if (ret)
|
||||
return dev_err_probe(dev, ret, "Failed to enable runtime PM\n");
|
||||
|
||||
samsung->phy = devm_phy_create(dev, NULL, &samsung_mipi_dcphy_ops);
|
||||
if (IS_ERR(samsung->phy))
|
||||
return dev_err_probe(dev, PTR_ERR(samsung->phy), "Failed to create MIPI DC-PHY\n");
|
||||
|
||||
phy_set_drvdata(samsung->phy, samsung);
|
||||
|
||||
ret = devm_pm_runtime_enable(dev);
|
||||
if (ret)
|
||||
return dev_err_probe(dev, ret, "Failed to enable runtime PM\n");
|
||||
|
||||
phy_provider = devm_of_phy_provider_register(dev, samsung_mipi_dcphy_xlate);
|
||||
if (IS_ERR(phy_provider))
|
||||
return dev_err_probe(dev, PTR_ERR(phy_provider),
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user