Hello, this is v4 of series adding support for RollBall/Hilink SFP modules.
Checked with: checkpatch.pl --max-line-length=80 Changes from v3: - RollBall mdio-i2c driver now sets/restores SFP_PAGE for every MDIO access. I first wanted to achieve this operation (setting SFP_PAGE/doing MDIO/restoring SFP_PAGE) via one call do i2c_transfer, by constructing msgs array in such a way, but it turned out that this doesn't work on RollBall SFPs, because changed SFP_PAGE takes into account only after i2c_transfer ends. So instead I use i2c_lock_bus/serveral __i2c_transfers/i2c_unlock_bus. - I have removed the patch which changes MACTYPE in the marvell10g driver, since Russell has in his net-queue a better solution. I still think that my patch would have sufficed temporarily (and would not cause regressions), but nobody wanted to review it. If you think that I should sent this series again with that patch, please let me know. Changes from v2: - added comment into the patch adding support for RollBall I2C MDIO protocol, saying that we expect the SFP_PAGE not to be changed by the SFP code, as requested by Russell. If, in the future, SFP code starts modifying SFP_PAGE, we will have to handle it in mdio-i2c somehow - destruction of I2C MDIO bus in patch 3/5 now depends on whether the MDIO bus is not NULL, instead of whether PHY exists, as suggested by Russell - changed waiting time for RollBall module to initialize from 30 seconds to 25 seconds. Testing shows that it is never longer than 21-22 seconds, so waiting 25 seconds instead of 30 is IMO safe enough - added Russell's Reviewed-by tags where relevant Changes from v1: - wrapped to 80 columns as per Russell's request - initialization of RollBall MDIO I2C protocol moved from sfp.c to mdio-i2c.c as per Russell's request - second patch removes the 802.3z check also from phylink_sfp_config as suggested by Russell - creation/destruction of mdiobus for SFP now occurs before probing for PHY/after releasing PHY (as suggested by Russell) - the last patch became a little simpler after the above was done Cc: Andrew Lunn <and...@lunn.ch> Cc: Russell King <rmk+ker...@armlinux.org.uk> Marek Behún (4): net: phy: mdio-i2c: support I2C MDIO protocol for RollBall SFP modules net: phylink: allow attaching phy for SFP modules on 802.3z mode net: sfp: create/destroy I2C mdiobus before PHY probe/after PHY release net: sfp: add support for multigig RollBall transceivers drivers/net/mdio/mdio-i2c.c | 319 +++++++++++++++++++++++++++++++++- drivers/net/phy/phylink.c | 5 +- drivers/net/phy/sfp.c | 66 +++++-- include/linux/mdio/mdio-i2c.h | 8 +- 4 files changed, 378 insertions(+), 20 deletions(-) base-commit: 73b7a6047971aa6ce4a70fc4901964d14f077171 -- 2.26.2