netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RFC net-next 0/7] net: sfp: add support for control of rate selection
@ 2023-05-10 11:22 Russell King (Oracle)
  2023-05-10 11:23 ` [PATCH RFC net-next 1/7] net: sfp: add helper to modify signal states Russell King (Oracle)
                   ` (6 more replies)
  0 siblings, 7 replies; 15+ messages in thread
From: Russell King (Oracle) @ 2023-05-10 11:22 UTC (permalink / raw)
  To: Andrew Lunn, Heiner Kallweit
  Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, netdev,
	Paolo Abeni, Daniel Golle

Hi,

This series introduces control of the rate selection SFP pins (or
their soft state in the I2C diagnostics EEPROM). Several SNIA documents
(referenced in the commits) describe the various different modes for
these, and we implement them all for maximum compatibility, but as
we know, SFP modules tend to do their own thing, so that may not be
sufficient.

In order to implement this, we need to change the locking arrangement
in the SFP layer - we need to make st_mutex (state mutex) able to be
taken from within the rtnl lock and sm_mutex (state machine mutex).
Essentially, st_mutex protects the hard (gpio) and soft state signals.

So, patches 2 through 5 rejig the locking so that st_mutex is only
ever taken when we want to fiddle with the signal state variables,
read or write the GPIOs, or read or write the soft state.

Patch 1 adds a helper that makes the locking rejig a little easier
as it combines the update of sfp->state with setting the updated
control state to the module.

Patch 6 adds code to phylink to give the signalling rate for various
PHY interface modes that are relevant to SFPs - this is the baud rate
of the encoded signal, not the data rate, which is what matters for
SFPs. This rate is passed through the SFP bus layer into the SFP
socket driver, which initially has a stub sfp_set_signal_rate().

Patch 7 adds the code to the SFP socket driver to parse the rate
selection data in the EEPROM, configure which RS signals need to be
driven, and the signalling rate threshold. We fill in 
fp_set_signal_rate() to set the rate select pins as appropriate.

It would be wise if those with SFP setups can test this with their
modules and report back any issues that this patch set causes. Due
to the nature of SFPs, the more testing this gets the better. If
you know of someone who I haven't Cc'd but who would be useful to
test this, please forward this patch set on. Thanks.

 drivers/net/phy/phylink.c |  24 ++++
 drivers/net/phy/sfp-bus.c |  20 +++
 drivers/net/phy/sfp.c     | 310 ++++++++++++++++++++++++++++++++++++++--------
 drivers/net/phy/sfp.h     |   1 +
 include/linux/sfp.h       |  14 +++
 5 files changed, 317 insertions(+), 52 deletions(-)

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!

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

end of thread, other threads:[~2023-05-11 10:15 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-10 11:22 [PATCH RFC net-next 0/7] net: sfp: add support for control of rate selection Russell King (Oracle)
2023-05-10 11:23 ` [PATCH RFC net-next 1/7] net: sfp: add helper to modify signal states Russell King (Oracle)
2023-05-11 10:12   ` Simon Horman
2023-05-10 11:23 ` [PATCH RFC net-next 2/7] net: sfp: move rtnl lock to cover reading state Russell King (Oracle)
2023-05-11 10:12   ` Simon Horman
2023-05-10 11:23 ` [PATCH RFC net-next 3/7] net: sfp: swap order of rtnl and st_mutex locks Russell King (Oracle)
2023-05-11 10:13   ` Simon Horman
2023-05-10 11:23 ` [PATCH RFC net-next 4/7] net: sfp: move sm_mutex into sfp_check_state() Russell King (Oracle)
2023-05-11 10:13   ` Simon Horman
2023-05-10 11:23 ` [PATCH RFC net-next 5/7] net: sfp: change st_mutex locking Russell King (Oracle)
2023-05-11 10:14   ` Simon Horman
2023-05-10 11:23 ` [PATCH RFC net-next 6/7] net: sfp: add support for setting signalling rate Russell King (Oracle)
2023-05-11 10:14   ` Simon Horman
2023-05-10 11:23 ` [PATCH RFC net-next 7/7] net: sfp: add support for rate selection Russell King (Oracle)
2023-05-11 10:15   ` Simon Horman

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