aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorMugunthan V N <mugunthanvnm@ti.com>2013-06-11 06:02:05 -0400
committerDavid S. Miller <davem@davemloft.net>2013-06-13 05:56:54 -0400
commitcc60ab0a8b5b62ea6b5cc1c6397adb5b4bd41271 (patch)
treec016cca4d63e8da8d93d76e6e7e214c13deed3cb /drivers/net
parent5033ec3e3f923a371c28f0c3df45905a9dd9c457 (diff)
drivers: net: davinci_mdio: restore mdio clk divider in mdio resume
During suspend resume cycle all the register data is lost, so MDIO clock divier value gets reset. This patch restores the clock divider value. Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/ethernet/ti/davinci_mdio.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c
index 74e56b3fba11..c47f0dbcebb5 100644
--- a/drivers/net/ethernet/ti/davinci_mdio.c
+++ b/drivers/net/ethernet/ti/davinci_mdio.c
@@ -459,15 +459,12 @@ static int davinci_mdio_suspend(struct device *dev)
459static int davinci_mdio_resume(struct device *dev) 459static int davinci_mdio_resume(struct device *dev)
460{ 460{
461 struct davinci_mdio_data *data = dev_get_drvdata(dev); 461 struct davinci_mdio_data *data = dev_get_drvdata(dev);
462 u32 ctrl;
463 462
464 pm_runtime_get_sync(data->dev); 463 pm_runtime_get_sync(data->dev);
465 464
466 spin_lock(&data->lock); 465 spin_lock(&data->lock);
467 /* restart the scan state machine */ 466 /* restart the scan state machine */
468 ctrl = __raw_readl(&data->regs->control); 467 __davinci_mdio_reset(data);
469 ctrl |= CONTROL_ENABLE;
470 __raw_writel(ctrl, &data->regs->control);
471 468
472 data->suspended = false; 469 data->suspended = false;
473 spin_unlock(&data->lock); 470 spin_unlock(&data->lock);