diff options
author | Murali Karicheri | 2012-09-21 11:02:00 -0500 |
---|---|---|
committer | Murali Karicheri | 2014-12-03 10:38:05 -0600 |
commit | 8621c13fdb71313d5399b77d01e0ed4a250ac810 (patch) | |
tree | ad32b379c40cdfaca978ebc5fec63291375c6881 /drivers/net/ethernet/ti | |
parent | 252f23ea5987a4730e3399ef1ad5d78efcc786c9 (diff) | |
download | linux-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.c | 3 |
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); |