diff options
author | Chuhong Yuan <hslester96@gmail.com> | 2019-12-04 19:47:59 +0800 |
---|---|---|
committer | Kishon Vijay Abraham I <kishon@ti.com> | 2019-12-20 17:00:45 +0530 |
commit | 24dbe0aaa0030231d4d35886d3552121d208df69 (patch) | |
tree | 29e91288111f10ad531181a67d223f55f89d9ee1 | |
parent | a3a0641599cd48865d67b098d6d88b5ba66ef860 (diff) | |
download | linux-stable-24dbe0aaa0030231d4d35886d3552121d208df69.tar.gz linux-stable-24dbe0aaa0030231d4d35886d3552121d208df69.tar.bz2 linux-stable-24dbe0aaa0030231d4d35886d3552121d208df69.zip |
phy: ti-pipe3: make clk operations symmetric in probe and remove
The driver calls clk_prepare_enable in probe but the corresponding
clk_disable_unprepare() is in ti_pipe3_disable_clocks().
Move clk_disable_unprepare() to remove to make them symmetric.
Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
Acked-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
-rw-r--r-- | drivers/phy/ti/phy-ti-pipe3.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/drivers/phy/ti/phy-ti-pipe3.c b/drivers/phy/ti/phy-ti-pipe3.c index edd6859afba8..a87946589eb7 100644 --- a/drivers/phy/ti/phy-ti-pipe3.c +++ b/drivers/phy/ti/phy-ti-pipe3.c @@ -850,6 +850,12 @@ static int ti_pipe3_probe(struct platform_device *pdev) static int ti_pipe3_remove(struct platform_device *pdev) { + struct ti_pipe3 *phy = platform_get_drvdata(pdev); + + if (phy->mode == PIPE3_MODE_SATA) { + clk_disable_unprepare(phy->refclk); + phy->sata_refclk_enabled = false; + } pm_runtime_disable(&pdev->dev); return 0; @@ -900,18 +906,8 @@ static void ti_pipe3_disable_clocks(struct ti_pipe3 *phy) { if (!IS_ERR(phy->wkupclk)) clk_disable_unprepare(phy->wkupclk); - if (!IS_ERR(phy->refclk)) { + if (!IS_ERR(phy->refclk)) clk_disable_unprepare(phy->refclk); - /* - * SATA refclk needs an additional disable as we left it - * on in probe to avoid Errata i783 - */ - if (phy->sata_refclk_enabled) { - clk_disable_unprepare(phy->refclk); - phy->sata_refclk_enabled = false; - } - } - if (!IS_ERR(phy->div_clk)) clk_disable_unprepare(phy->div_clk); } |