linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/15] drivers: net: cpsw: improve runtime pm
@ 2016-06-15 11:55 Grygorii Strashko
  2016-06-15 11:55 ` [PATCH 01/15] drivers: net: cpsw: fix suspend when all ethX devices are down Grygorii Strashko
                   ` (14 more replies)
  0 siblings, 15 replies; 24+ messages in thread
From: Grygorii Strashko @ 2016-06-15 11:55 UTC (permalink / raw)
  To: David S. Miller, netdev, Sekhar Nori, Mugunthan V N
  Cc: linux-kernel, linux-omap, Ivan Khoronzhuk, Rob Herring,
	devicetree, Grygorii Strashko

This series intended to improve runtime PM and allow CPSW to be
RPM suspended when all ethX netdevices are down.

To achieve above goal it is required to relax runtime PM constraints for
Davinci MDIO which blocks CPSW runtime PM now, because Davinci MDIO is always
powered on during probe and powered off only when it's going to be removed.
- Patches 6-11 implement PM runtime autosuspend for Davinci MDIO, but keep it
disabled by default, because Davinci MDIO is integrated in big set of TI devices
and not all of them verified to work correctly with RPM autosuspend enabled:
 expected to work on SoCs where MDIO is defined as part of CPSW in DT
 (cpsw.c DRA7/am57x, am437x, am335x)
The CPSW need to be fixed before RPM suspended can be allowed:
 - Patches 1-5 ensure that CPSW will not cause L3 errors while it is in RPM
   suspended state.

Davinci MDIO RPM autosuspend can be enabled through sysfs:
 echo 100 > /sys/devices/../48484000.ethernet/48485000.mdio/power/autosuspend_delay_ms

Patches 12 - 15: introduce new compatible string "ti,cpsw-mdio" which is used
then to enable RPM for am335x/am437x/dra7 SoCs.

Tested on am335x, am437x, am572x and k2g (on k2g with RPM disabled for Davinci MDIO)
These changes should not affect on errata i877 implementation on DRA7.

Power measurement on am335x GP EVM:
 Without this series:  547.60 mW total SoC power
 With this series + "ifconfig eth0 down": 477.32 mW Total Soc Power 

Grygorii Strashko (15):
  drivers: net: cpsw: fix suspend when all ethX devices are down
  drivers: net: cpsw: check return code from pm runtime calls
  drivers: net: cpsw: remove pm runtime calls from suspend callbacks
  drivers: net: cpsw: ethtool: fix accessing to suspended device
  drivers: net: cpsw: ndev: fix accessing to suspended device
  drivers: net: davinci_mdio: do pm runtime initialization later in
    probe
  drivers: net: davinci_mdio: remove pm runtime calls from suspend
    callbacks
  drivers: net: davinci_mdio: drop suspended and lock fields from
    mdio_data
  drivers: net: davinci_mdio: split reset function on init_clk and
    enable
  drivers: net: davinci_mdio: add pm runtime callbacks
  drivers: net: davinci_mdio: implement pm runtime auto mode
  net: davinci_mdio: document missed "ti,am4372-mdio" compat string
  net: davinci_mdio: introduce "ti,cpsw-mdio" compat string
  drivers: net: davinci_mdio: enable pm runtime auto for ti cpsw-mdio
  ARM: dts: am335x/am437x/dra7: use new "ti,cpsw-mdio" compat string

 .../devicetree/bindings/net/davinci-mdio.txt       |   3 +-
 arch/arm/boot/dts/am33xx.dtsi                      |   2 +-
 arch/arm/boot/dts/am4372.dtsi                      |   2 +-
 arch/arm/boot/dts/dra7.dtsi                        |   2 +-
 drivers/net/ethernet/ti/cpsw.c                     |  88 +++++++++--
 drivers/net/ethernet/ti/davinci_mdio.c             | 169 +++++++++++++--------
 6 files changed, 189 insertions(+), 77 deletions(-)

-- 
2.8.4

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2016-06-22 10:36 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-15 11:55 [PATCH 00/15] drivers: net: cpsw: improve runtime pm Grygorii Strashko
2016-06-15 11:55 ` [PATCH 01/15] drivers: net: cpsw: fix suspend when all ethX devices are down Grygorii Strashko
2016-06-15 11:55 ` [PATCH 02/15] drivers: net: cpsw: check return code from pm runtime calls Grygorii Strashko
2016-06-15 11:55 ` [PATCH 03/15] drivers: net: cpsw: remove pm runtime calls from suspend callbacks Grygorii Strashko
2016-06-15 11:55 ` [PATCH 04/15] drivers: net: cpsw: ethtool: fix accessing to suspended device Grygorii Strashko
2016-06-15 16:14   ` Florian Fainelli
2016-06-15 16:45     ` Grygorii Strashko
2016-06-16 12:48       ` Ivan Khoronzhuk
2016-06-16 13:32         ` Ivan Khoronzhuk
2016-06-15 11:55 ` [PATCH 05/15] drivers: net: cpsw: ndev: " Grygorii Strashko
2016-06-15 11:55 ` [PATCH 06/15] drivers: net: davinci_mdio: do pm runtime initialization later in probe Grygorii Strashko
2016-06-15 11:55 ` [PATCH 07/15] drivers: net: davinci_mdio: remove pm runtime calls from suspend callbacks Grygorii Strashko
2016-06-15 11:55 ` [PATCH 08/15] drivers: net: davinci_mdio: drop suspended and lock fields from mdio_data Grygorii Strashko
2016-06-15 11:55 ` [PATCH 09/15] drivers: net: davinci_mdio: split reset function on init_clk and enable Grygorii Strashko
2016-06-15 11:55 ` [PATCH 10/15] drivers: net: davinci_mdio: add pm runtime callbacks Grygorii Strashko
2016-06-15 11:55 ` [PATCH 11/15] drivers: net: davinci_mdio: implement pm runtime auto mode Grygorii Strashko
2016-06-15 11:56 ` [PATCH 12/15] net: davinci_mdio: document missed "ti,am4372-mdio" compat string Grygorii Strashko
2016-06-19 14:35   ` Rob Herring
2016-06-22 10:26     ` Grygorii Strashko
2016-06-15 11:56 ` [PATCH 13/15] net: davinci_mdio: introduce "ti,cpsw-mdio" " Grygorii Strashko
2016-06-15 11:56 ` [PATCH 14/15] drivers: net: davinci_mdio: enable pm runtime auto for ti cpsw-mdio Grygorii Strashko
2016-06-15 13:48   ` kbuild test robot
2016-06-15 11:56 ` [PATCH 15/15] ARM: dts: am335x/am437x/dra7: use new "ti,cpsw-mdio" compat string Grygorii Strashko
2016-06-21 11:34   ` Tony Lindgren

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).