driver: net: ethernet: cpsw: runtime PM support
authorMugunthan V N <mugunthanvnm@ti.com>
Tue, 5 Jun 2012 07:59:06 +0000 (13:29 +0530)
committerMugunthan V N <mugunthanvnm@ti.com>
Tue, 12 Jun 2012 13:05:06 +0000 (18:35 +0530)
commita691913b9e2f1f4dfefde3c8f0a555f96c5302b9
treec26aa548b24cf2db4cbcfbe30d5799526dc06105
parenta28da2ac98f173f97dbbb46be1ce0a3879f21a11
driver: net: ethernet: cpsw: runtime PM support

Enabling runtime PM support for cpsw and davinci mdio modules

As per hardware specs cpsw and mdio are of same module and has only one
clock control and sys control register. In software cpsw and davinci mdio
are two different independent devices, even if we specify cpsw as parent
and mdio as child, hwmod doesn't traverse the tree to ensure that all its
children are in disabled state before disabling parent's clock. To over
come this issue, cpgmac clock is enabled in cpsw probe itself, so that
cpgmac clock enable/disable happens only in cpsw/mdio probe/remove and
suspend/resume.

Side effects:
cpgmac module will be enabled even when Ethernet interface is not brought
up. For power optimization with no Ethernet, it is recommended to remove
the cpsw and mdio modules in kernel config which will make cpgmac to be
disabled state.

Todo:
Find a way in hwmod or driver to specify mdio and cpsw devices shares
same clock and the clock can be disabled only when both the devices are
in closed state

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
drivers/net/ethernet/ti/cpsw.c
drivers/net/ethernet/ti/davinci_cpdma.c
drivers/net/ethernet/ti/davinci_mdio.c