Hello, this is the fifth version of changes for the Topaz/Peridot family of switches. The patches apply on net-next. Changes since v4: - added Reviewed-by and Tested-by tags on first 2 patches, the others are changed are affected by changes in patch 3/6, so I did not add the tags, except for 5/6, which is just macro renaming - patch 3 was changed: the serdes_get_lane returns 0 on success (lane was discovered), -ENODEV if not lane is present on the port, and other error if other error occured. Lane is put into a pointer of type u8 - patches 4 and 6 were affected by this (error detecting from serdes_get_lane) - Andrew's complaint about the two additional parameters (allow_over_2500 and make_cmode_writable) was addressed, by Vivien's advice: I put a new method into chip operations structure, named port_set_cmode_writable. This is called from mv88e6xxx_port_setup_mac just before port_set_cmode. The method is implemented for Topaz. The check if cmodes over 2500 should be allowed on given port is now done in the specific port_set_cmode() that requires it, thus the allow_over_2500 argument is not needed
Again, tested on Turris Mox with Peridot, Topaz, and Peridot + Topaz. Marek Marek Behún (6): net: dsa: mv88e6xxx: support 2500base-x in SGMII IRQ handler net: dsa: mv88e6xxx: update code operating on hidden registers net: dsa: mv88e6xxx: create serdes_get_lane chip operation net: dsa: mv88e6xxx: simplify SERDES code for Topaz and Peridot net: dsa: mv88e6xxx: rename port cmode macro net: dsa: mv88e6xxx: fully support SERDES on Topaz family drivers/net/dsa/mv88e6xxx/Makefile | 1 + drivers/net/dsa/mv88e6xxx/chip.c | 96 +++---- drivers/net/dsa/mv88e6xxx/chip.h | 4 + drivers/net/dsa/mv88e6xxx/port.c | 89 +++++-- drivers/net/dsa/mv88e6xxx/port.h | 31 ++- drivers/net/dsa/mv88e6xxx/port_hidden.c | 70 +++++ drivers/net/dsa/mv88e6xxx/serdes.c | 325 ++++++++++++------------ drivers/net/dsa/mv88e6xxx/serdes.h | 27 +- 8 files changed, 379 insertions(+), 264 deletions(-) create mode 100644 drivers/net/dsa/mv88e6xxx/port_hidden.c -- 2.21.0