Hi all, This patch series is the long promised API rework to allow registering DSA switch as PCI, platform, SPI, or PHY drivers, and this is pretty much the grand plan described here: http://permalink.gmane.org/gmane.linux.network/329848
Note that unless appropriate Device Tree or platform_data configuration is changed, this is not conflicting with the current approach of registering DSA switches using the special "dsa" platform device/driver. Rather this introduces a parallel API which allows drivers to be converted and tested one by one. This has been tested on the following two systems: - Linksys/Cisco EA4500 which has a MV88E6171 at MDIO address 16 - BCM7445 reference board with the on-chip Starfighter 2 switch (MMIO) Note that there are currenlty no incompatibles changes made to existing Device Tree sources, rather, depending on the bus we are probed for, e.g: MDIO the dsa,mii-bus and dsa,ethernet phandles and first cell of the "reg" property will become obsolete, everything else remains entirely compatible. This is all appearing in patches. Known issues: - the new API probably does not work with multiple switches in a tree since I don't have such a system, I would welcome testing on these particular setups and would help take care of the problems, this is currently the biggest limitation I see - there is a bit of duplication and special casing now, but that is mostly due to having to maintain two different ways of registering DSA drivers, this will eventually go away - on my EA4500, doing PHY-driver registration slows things down dramatically iperf switches from ~700Mbits/sec to ~200Mbits/sec, not sure what's wrong here, could be some sort of RGMII setting going wrong These changes can be pulled from my tree here: https://github.com/ffainelli/linux/tree/dsa-model-proposal Happy testing! Florian Fainelli (8): net: dsa: Move dsa_switch_tree final setup in separate function net: phy: Check fixup lists in get_phy_device() net: phy: Allow PHY devices to identify themselves as Ethernet switches net: mv643xx_eth: Handle Ethernet switches as PHY devices net: dsa: add new API to register switch devices net: dsa: bcm_sf2: make it a real platform driver net: dsa: mv88e6060: make it a proper PHY driver net: dsa: mv88e6xxx: Allow them to be proper PHY drivers drivers/net/dsa/bcm_sf2.c | 239 +++++++++++++++-------------- drivers/net/dsa/mv88e6060.c | 114 +++++++++++++- drivers/net/dsa/mv88e6123_61_65.c | 116 ++++++++++++++ drivers/net/dsa/mv88e6131.c | 107 +++++++++++++ drivers/net/dsa/mv88e6171.c | 95 ++++++++++++ drivers/net/dsa/mv88e6352.c | 102 ++++++++++++ drivers/net/dsa/mv88e6xxx.c | 40 ++++- drivers/net/dsa/mv88e6xxx.h | 12 ++ drivers/net/ethernet/marvell/mv643xx_eth.c | 4 +- drivers/net/phy/phy_device.c | 9 +- include/linux/phy.h | 12 ++ include/net/dsa.h | 15 ++ net/dsa/dsa.c | 219 ++++++++++++++++++++------ 13 files changed, 917 insertions(+), 167 deletions(-) -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html