net: stmmac: add clocks management for gmac driver
authorJoakim Zhang <qiangqing.zhang@nxp.com>
Mon, 15 Mar 2021 12:16:46 +0000 (20:16 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 15 Mar 2021 21:46:21 +0000 (14:46 -0700)
commit5ec55823438e850c91c6b92aec93fb04ebde29e2
treec1a2157632c7e16770a5a1ac557aac9862884ab9
parent91de5ac99a6e53ade273722b3335bba1c262899d
net: stmmac: add clocks management for gmac driver

This patch intends to add clocks management for stmmac driver:

If CONFIG_PM enabled:
1. Keep clocks disabled after driver probed.
2. Enable clocks when up the net device, and disable clocks when down
the net device.

If CONFIG_PM disabled:
Keep clocks always enabled after driver probed.

Note:
1. It is fine for ethtool, since the way of implementing ethtool_ops::begin
in stmmac is only can be accessed when interface is enabled, so the clocks
are ticked.
2. The MDIO bus has a different life cycle to the MAC, need ensure
clocks are enabled when _mdio_read/write() need clocks, because these
functions can be called while the interface it not opened.

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/stmicro/stmmac/stmmac.h
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c