All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/6] net: dsa: mv88e6xxx: rework reset and PPU code
@ 2016-11-30 22:59 Vivien Didelot
  2016-11-30 22:59 ` [PATCH net-next 1/6] net: dsa: mv88e6xxx: add helper to disable ports Vivien Didelot
                   ` (5 more replies)
  0 siblings, 6 replies; 16+ messages in thread
From: Vivien Didelot @ 2016-11-30 22:59 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, kernel, David S. Miller, Florian Fainelli,
	Andrew Lunn, Vivien Didelot

Old Marvell chips (like 88E6060) don't have a PHY Polling Unit (PPU).

Next chips (like 88E6185) have a PPU, which has exclusive access to the
PHY registers, thus must be disabled before access.

Newer chips (like 88E6352) have an indirect mechanism to access the PHY
registers whenever, thus loose control over the PPU (alway enabled).

Here's a summary:

Model | PPU? | Has PPU ctrl?  | PPU state readable? | PHY access
----- | ---- | -------------- | ------------------- | ----------
 6060 | no   | no             | no                  | direct
 6185 | yes  | yes, PPUEn bit | yes, PPUState 2-bit | direct w/ PPU dis.
 6352 | yes  | no             | yes, PPUState 1-bit | indirect
 6390 | yes  | no             | yes, InitState bit  | indirect

Depending on the PPU control, a switch may have to restart the PPU when
resetting the switch. Once the switch is reset, we must wait for the PPU
state to be active polling again before accessing the registers.

For that purpose, add new operations to the chips to enable/disable the
PPU and check its polling state, and execute software reset. With these
new ops in place, rework the switch reset code and finally get rid of
the MV88E6XXX_FLAG_PPU* flags.

Vivien Didelot (6):
  net: dsa: mv88e6xxx: add helper to disable ports
  net: dsa: mv88e6xxx: add helper to hardware reset
  net: dsa: mv88e6xxx: add a software reset op
  net: dsa: mv88e6xxx: add a PPU polling op
  net: dsa: mv88e6xxx: add helper for switch ready
  net: dsa: mv88e6xxx: add PPU enable/disable ops

 drivers/net/dsa/mv88e6xxx/chip.c      | 241 ++++++++++++++++++++++------------
 drivers/net/dsa/mv88e6xxx/global1.c   | 111 ++++++++++++++++
 drivers/net/dsa/mv88e6xxx/global1.h   |  10 ++
 drivers/net/dsa/mv88e6xxx/mv88e6xxx.h |  35 ++---
 4 files changed, 292 insertions(+), 105 deletions(-)

-- 
2.10.2

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

end of thread, other threads:[~2016-12-02 17:36 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-30 22:59 [PATCH net-next 0/6] net: dsa: mv88e6xxx: rework reset and PPU code Vivien Didelot
2016-11-30 22:59 ` [PATCH net-next 1/6] net: dsa: mv88e6xxx: add helper to disable ports Vivien Didelot
2016-11-30 23:20   ` Andrew Lunn
2016-11-30 22:59 ` [PATCH net-next 2/6] net: dsa: mv88e6xxx: add helper to hardware reset Vivien Didelot
2016-11-30 23:21   ` Andrew Lunn
2016-11-30 22:59 ` [PATCH net-next 3/6] net: dsa: mv88e6xxx: add a software reset op Vivien Didelot
2016-11-30 23:26   ` Andrew Lunn
2016-12-01 20:41     ` Vivien Didelot
2016-12-02 15:43       ` Andrew Lunn
2016-12-02 17:30         ` Vivien Didelot
2016-12-02 17:23   ` David Miller
2016-11-30 22:59 ` [PATCH net-next 4/6] net: dsa: mv88e6xxx: add a PPU polling op Vivien Didelot
2016-11-30 22:59 ` [PATCH net-next 5/6] net: dsa: mv88e6xxx: add helper for switch ready Vivien Didelot
2016-11-30 23:38   ` Andrew Lunn
2016-12-01 20:31     ` Vivien Didelot
2016-11-30 22:59 ` [PATCH net-next 6/6] net: dsa: mv88e6xxx: add PPU enable/disable ops Vivien Didelot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.