netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RFC 00/28] DSA: Restructure probing
@ 2015-12-23 12:56 Andrew Lunn
  2015-12-23 12:56 ` [PATCH RFC 01/28] component: remove old add_components method Andrew Lunn
                   ` (28 more replies)
  0 siblings, 29 replies; 60+ messages in thread
From: Andrew Lunn @ 2015-12-23 12:56 UTC (permalink / raw)
  To: Florian Fainelli, narmstrong, vivien.didelot; +Cc: netdev, Andrew Lunn

As noted in Documentation/networking/dsa/dsa.txt, the current DSA
architecture has a few architecture problems:

DSA is implemented as a DSA platform device driver which is convenient because
it will register the entire DSA switch tree attached to a master network device
in one-shot, facilitating the device creation and simplifying the device driver
model a bit, this comes however with a number of limitations:

- building DSA and its switch drivers as modules is currently not working
- the device driver parenting does not necessarily reflect the original
  bus/device the switch can be created from
- supporting non-MDIO and non-MMIO (platform) switches is not possible

This RFC patchset attempts to address this. It allows the switch
device to be true Linux devices, and use of the device component
framework to bind the switch devices to the DSA framework, similar to
the way GPU engines are bound to the master GPU driver. The drivers
are now modules, which can be loaded and unloaded. Reloading however
currently causes an Opps, hence RFC.

The code remains backwards compatible with the old binding, and adds a
new property to facilitate the component framework. Switch drivers get
there own binding, allowing them to be probed independent of DSA.

Additionally, at this RFC stage, the DTS files for a development board
with three switches is included, to demonstrate the new binding, and
show that D in DSA is supported. At some point this DTS file will be
submitted to arm-soc.

Andrew Lunn (24):
  dsa: Rename mv88e6123_61_65 to mv88e6123 to be consistent
  net: dsa: Pass the dsa device to the switch drivers
  net: dsa: Have the switch driver allocate there own private memory
  net: dsa: Remove allocation of driver private memory
  net: dsa: Keep the mii bus and address in the private structure
  net: dsa: Add basic support for component master support
  net: dsa: Keep a reference to the switch device for component matching
  net: dsa: Add slave component matches based on a phandle to the slave.
  net: dsa: Make dsa,mii-bus optional
  net: dsa: Add register/unregister functions for switch drivers
  net: dsa: Rename DSA probe function.
  of_mdio: Add "mii-bus" and address property parser
  dsa: mv88e6xxx: Use bus in mv88e6xxx_lookup_name()
  dsa: mv88e6xxx: Add shared code for binding/unbinding a switch driver.
  dsa: Add platform device support to Marvell switches
  vf610: Zii: Convert rev b to switches as individual devices
  net: dsa: Add some debug prints for error cases
  net: dsa: Setup the switches after all have been probed
  net: dsa: Only setup platform switches, not device switches
  net: dsa: If a switch fails to probe, defer probing
  Documentation: DSA: Describe how probe of DSA and switches work.
  dsa: Convert mv88e6xxx into a library allowing driver modules
  dsa: slave: Don't reference NULL pointer during phy_disconnect
  dsa: Destroy fixed link phys after the phy has been disconnected

Cory T. Tusar (1):
  ARM: VF610: Add Zodiac Inflight Innovations development boards.

Florian Fainelli (2):
  net: dsa: Move platform data allocation for OF
  net: dsa: bcm_sf2: make it a real platform driver

Russell King (1):
  component: remove old add_components method

 .../devicetree/bindings/net/dsa/broadcom.txt       |  48 +++
 Documentation/devicetree/bindings/net/dsa/dsa.txt  |   5 +-
 .../devicetree/bindings/net/dsa/marvell.txt        |  17 +
 Documentation/networking/dsa/dsa.txt               |  48 +++
 arch/arm/boot/dts/Makefile                         |   4 +-
 arch/arm/boot/dts/vf610-zii-dev-rev-a.dts          | 409 +++++++++++++++++++
 arch/arm/boot/dts/vf610-zii-dev-rev-b.dts          | 307 +++++++++++++++
 arch/arm/boot/dts/vf610-zii-dev.dtsi               | 436 +++++++++++++++++++++
 drivers/base/component.c                           |  31 +-
 drivers/net/dsa/Kconfig                            |   2 +-
 drivers/net/dsa/Makefile                           |  19 +-
 drivers/net/dsa/bcm_sf2.c                          | 249 +++++++-----
 drivers/net/dsa/mv88e6060.c                        | 130 +++++-
 drivers/net/dsa/mv88e6060.h                        |  11 +
 drivers/net/dsa/mv88e6123.c                        | 187 +++++++++
 drivers/net/dsa/mv88e6123_61_65.c                  | 124 ------
 drivers/net/dsa/mv88e6131.c                        |  83 +++-
 drivers/net/dsa/mv88e6171.c                        |  83 +++-
 drivers/net/dsa/mv88e6352.c                        |  83 +++-
 drivers/net/dsa/mv88e6xxx.c                        | 159 +++++---
 drivers/net/dsa/mv88e6xxx.h                        |  20 +-
 drivers/of/of_mdio.c                               |  38 ++
 include/linux/component.h                          |   5 -
 include/linux/of_mdio.h                            |  10 +
 include/net/dsa.h                                  |  17 +-
 net/dsa/dsa.c                                      | 262 ++++++++-----
 net/dsa/slave.c                                    |  12 +-
 27 files changed, 2329 insertions(+), 470 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/net/dsa/broadcom.txt
 create mode 100644 Documentation/devicetree/bindings/net/dsa/marvell.txt
 create mode 100644 arch/arm/boot/dts/vf610-zii-dev-rev-a.dts
 create mode 100644 arch/arm/boot/dts/vf610-zii-dev-rev-b.dts
 create mode 100644 arch/arm/boot/dts/vf610-zii-dev.dtsi
 create mode 100644 drivers/net/dsa/mv88e6123.c
 delete mode 100644 drivers/net/dsa/mv88e6123_61_65.c

-- 
2.6.3

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

end of thread, other threads:[~2016-01-21 21:54 UTC | newest]

Thread overview: 60+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-23 12:56 [PATCH RFC 00/28] DSA: Restructure probing Andrew Lunn
2015-12-23 12:56 ` [PATCH RFC 01/28] component: remove old add_components method Andrew Lunn
2015-12-23 13:21   ` Russell King - ARM Linux
2015-12-23 15:57     ` Andrew Lunn
2015-12-23 12:56 ` [PATCH RFC 02/28] ARM: VF610: Add Zodiac Inflight Innovations development boards Andrew Lunn
2015-12-23 12:56 ` [PATCH RFC 03/28] net: dsa: Move platform data allocation for OF Andrew Lunn
2015-12-23 12:56 ` [PATCH RFC 04/28] dsa: Rename mv88e6123_61_65 to mv88e6123 to be consistent Andrew Lunn
2015-12-23 12:56 ` [PATCH RFC 05/28] net: dsa: Pass the dsa device to the switch drivers Andrew Lunn
2015-12-23 20:36   ` Florian Fainelli
2015-12-23 12:56 ` [PATCH RFC 06/28] net: dsa: Have the switch driver allocate there own private memory Andrew Lunn
2015-12-23 20:39   ` Florian Fainelli
2015-12-23 12:56 ` [PATCH RFC 07/28] net: dsa: Remove allocation of driver " Andrew Lunn
2015-12-23 20:39   ` Florian Fainelli
2015-12-23 12:56 ` [PATCH RFC 08/28] net: dsa: Keep the mii bus and address in the private structure Andrew Lunn
2015-12-23 20:40   ` Florian Fainelli
2016-01-21 20:41   ` Vivien Didelot
2016-01-21 20:50     ` Andrew Lunn
2015-12-23 12:56 ` [PATCH RFC 09/28] net: dsa: Add basic support for component master support Andrew Lunn
2015-12-23 12:56 ` [PATCH RFC 10/28] net: dsa: Keep a reference to the switch device for component matching Andrew Lunn
2015-12-23 12:56 ` [PATCH RFC 11/28] net: dsa: Add slave component matches based on a phandle to the slave Andrew Lunn
2015-12-23 12:56 ` [PATCH RFC 12/28] net: dsa: Make dsa,mii-bus optional Andrew Lunn
2015-12-23 20:42   ` Florian Fainelli
2015-12-23 12:56 ` [PATCH RFC 13/28] net: dsa: Add register/unregister functions for switch drivers Andrew Lunn
2015-12-23 12:56 ` [PATCH RFC 14/28] net: dsa: Rename DSA probe function Andrew Lunn
2015-12-23 12:56 ` [PATCH RFC 15/28] of_mdio: Add "mii-bus" and address property parser Andrew Lunn
2015-12-23 12:56 ` [PATCH RFC 16/28] dsa: mv88e6xxx: Use bus in mv88e6xxx_lookup_name() Andrew Lunn
2016-01-21 20:54   ` Vivien Didelot
2015-12-23 12:56 ` [PATCH RFC 17/28] dsa: mv88e6xxx: Add shared code for binding/unbinding a switch driver Andrew Lunn
2015-12-23 12:56 ` [PATCH RFC 18/28] dsa: Add platform device support to Marvell switches Andrew Lunn
2016-01-21 21:05   ` Vivien Didelot
2015-12-23 12:56 ` [PATCH RFC 19/28] net: dsa: bcm_sf2: make it a real platform driver Andrew Lunn
2015-12-23 20:32   ` Florian Fainelli
2015-12-23 12:56 ` [PATCH RFC 20/28] vf610: Zii: Convert rev b to switches as individual devices Andrew Lunn
2015-12-23 12:56 ` [PATCH RFC 21/28] net: dsa: Add some debug prints for error cases Andrew Lunn
2015-12-23 20:42   ` Florian Fainelli
2015-12-23 12:56 ` [PATCH RFC 22/28] net: dsa: Setup the switches after all have been probed Andrew Lunn
2015-12-23 12:56 ` [PATCH RFC 23/28] net: dsa: Only setup platform switches, not device switches Andrew Lunn
2015-12-23 12:56 ` [PATCH RFC 24/28] net: dsa: If a switch fails to probe, defer probing Andrew Lunn
2015-12-23 20:46   ` Florian Fainelli
2015-12-23 12:56 ` [PATCH RFC 25/28] Documentation: DSA: Describe how probe of DSA and switches work Andrew Lunn
2015-12-23 20:48   ` Florian Fainelli
2015-12-23 22:53     ` Andrew Lunn
2015-12-25  1:29       ` Florian Fainelli
2015-12-25 10:00         ` Andrew Lunn
2015-12-23 12:56 ` [PATCH RFC 26/28] dsa: Convert mv88e6xxx into a library allowing driver modules Andrew Lunn
2015-12-25 21:47   ` Florian Fainelli
2016-01-21 21:29     ` Vivien Didelot
2016-01-21 21:54       ` Andrew Lunn
2015-12-23 12:56 ` [PATCH RFC 27/28] dsa: slave: Don't reference NULL pointer during phy_disconnect Andrew Lunn
2015-12-23 20:45   ` Florian Fainelli
2015-12-23 12:56 ` [PATCH RFC 28/28] dsa: Destroy fixed link phys after the phy has been disconnected Andrew Lunn
2015-12-23 20:45   ` Florian Fainelli
2015-12-23 20:44 ` [PATCH RFC 00/28] DSA: Restructure probing Florian Fainelli
2015-12-23 22:33   ` Andrew Lunn
2015-12-23 23:13     ` Florian Fainelli
2015-12-24 12:58       ` Andrew Lunn
2015-12-25  1:47         ` Florian Fainelli
2015-12-25 11:31           ` Andrew Lunn
2015-12-25 22:00             ` Florian Fainelli
2015-12-25 23:41               ` Andrew Lunn

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).