aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMurali Karicheri2012-09-21 11:02:00 -0500
committerMurali Karicheri2014-12-03 10:38:05 -0600
commit8621c13fdb71313d5399b77d01e0ed4a250ac810 (patch)
treead32b379c40cdfaca978ebc5fec63291375c6881 /drivers/net/ethernet/ti
parent252f23ea5987a4730e3399ef1ad5d78efcc786c9 (diff)
downloadlinux-8621c13fdb71313d5399b77d01e0ed4a250ac810.tar.gz
linux-8621c13fdb71313d5399b77d01e0ed4a250ac810.tar.xz
linux-8621c13fdb71313d5399b77d01e0ed4a250ac810.zip
net: davinci_mdio - fix to work with run time pm
When run time PM is enable, the clk_enable() gets called via pm_runtime_get_sync() -> pm_clk_resume(). At this point clk is not prepared. So this fix make sure the clk is prepared at before calling pm_runtime_get_sync(). Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Diffstat (limited to 'drivers/net/ethernet/ti')
-rw-r--r--drivers/net/ethernet/ti/davinci_mdio.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c
index c47f0dbcebb..bf39e8b8dd3 100644
--- a/drivers/net/ethernet/ti/davinci_mdio.c
+++ b/drivers/net/ethernet/ti/davinci_mdio.c
@@ -348,7 +348,6 @@ static int davinci_mdio_probe(struct platform_device *pdev)
348 data->bus->priv = data; 348 data->bus->priv = data;
349 349
350 pm_runtime_enable(&pdev->dev); 350 pm_runtime_enable(&pdev->dev);
351 pm_runtime_get_sync(&pdev->dev);
352 data->clk = clk_get(&pdev->dev, "fck"); 351 data->clk = clk_get(&pdev->dev, "fck");
353 if (IS_ERR(data->clk)) { 352 if (IS_ERR(data->clk)) {
354 dev_err(dev, "failed to get device clock\n"); 353 dev_err(dev, "failed to get device clock\n");
@@ -357,6 +356,8 @@ static int davinci_mdio_probe(struct platform_device *pdev)
357 goto bail_out; 356 goto bail_out;
358 } 357 }
359 358
359 clk_prepare(data->clk);
360 pm_runtime_get_sync(&pdev->dev);
360 dev_set_drvdata(dev, data); 361 dev_set_drvdata(dev, data);
361 data->dev = dev; 362 data->dev = dev;
362 spin_lock_init(&data->lock); 363 spin_lock_init(&data->lock);