diff options
| author | Fabio Estevam <festevam@nabladev.com> | 2026-07-29 16:28:30 -0300 |
|---|---|---|
| committer | Vinod Koul <vkoul@kernel.org> | 2026-08-06 21:48:29 +0530 |
| commit | bb82e4327a39a17a9338413554b11b328ced0ffd (patch) | |
| tree | 799fa30b00c796e9c538eb1e07f97db6a92704db | |
| parent | c3b0bb15ef001703b00d79bc4928e7421e24280d (diff) | |
| download | linux-bb82e4327a39a17a9338413554b11b328ced0ffd.tar.gz linux-bb82e4327a39a17a9338413554b11b328ced0ffd.zip | |
phy: freescale: fsl-samsung-hdmi: Balance runtime PM operations
fsl_samsung_hdmi_phy_probe() enables runtime PM, but the remove
callback does not disable it. Unbinding and rebinding the device
therefore results in the following warning on reprobe:
Unbalanced pm_runtime_enable!
Disable runtime PM after removing the clock provider.
Also undo the runtime PM operations when phy_clk_register() fails.
Otherwise, a failed probe leaves runtime PM enabled and the usage
counter incremented.
Signed-off-by: Fabio Estevam <festevam@nabladev.com>
Link: https://patch.msgid.link/20260729192830.487150-1-festevam@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
| -rw-r--r-- | drivers/phy/freescale/phy-fsl-samsung-hdmi.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/phy/freescale/phy-fsl-samsung-hdmi.c b/drivers/phy/freescale/phy-fsl-samsung-hdmi.c index d010fec15671..0f25d81de61b 100644 --- a/drivers/phy/freescale/phy-fsl-samsung-hdmi.c +++ b/drivers/phy/freescale/phy-fsl-samsung-hdmi.c @@ -679,12 +679,15 @@ static int fsl_samsung_hdmi_phy_probe(struct platform_device *pdev) return 0; register_clk_failed: + pm_runtime_disable(phy->dev); + pm_runtime_put_noidle(phy->dev); return ret; } static void fsl_samsung_hdmi_phy_remove(struct platform_device *pdev) { of_clk_del_provider(pdev->dev.of_node); + pm_runtime_disable(&pdev->dev); } static int __maybe_unused fsl_samsung_hdmi_phy_suspend(struct device *dev) |
