net: fec: Ensure clocks are enabled while using mdio bus
authorAndrew Lunn <andrew@lunn.ch>
Mon, 6 Jul 2015 18:34:55 +0000 (20:34 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 8 Jul 2015 22:59:04 +0000 (15:59 -0700)
commit6c3e921b18edca290099adfddde8a50236bf2d80
treed0e5c257f21b489a29a8fe7319bc2ccb54d784c6
parentcfbfd86bfde15020bccde377e11586ee5c8b701d
net: fec: Ensure clocks are enabled while using mdio bus

When a switch is attached to the mdio bus, the mdio bus can be used
while the interface is not open. If the IPG clock is not enabled, MDIO
reads/writes will simply time out.

Add support for runtime PM to control this clock. Enable/disable this
clock using runtime PM, with open()/close() and mdio read()/write()
function triggering runtime PM operations. Since PM is optional, the
IPG clock is enabled at probe and is no longer modified by
fec_enet_clk_enable(), thus if PM is not enabled in the kernel, it is
guaranteed the clock is running when MDIO operations are performed.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/fec_main.c