mbox

[v2,0/7] ixgbe SFP handling fixes

Message ID 20211206221922.644187-1-stephend@silicom-usa.com (mailing list archive)
Headers

Message

Stephen Douthit Dec. 6, 2021, 10:19 p.m. UTC
  v2:
General:
* Fix typos reported by checkpatch (my codespell list was old)

Patch 5:
* Refactor the delay code to use msec_delay(), fixes Windows builds.

I had opencoded some delay checks similar to the jiffies/time_after
scheme used frequently in the Linux kernel, but that failed to build on
Windows without nanosleep().

msec_delay() eventually calls rte_delay_us_sleep(), which doesn't busy
wait, which is want we want.  And there's a Window's backend for that
function, so now this builds with gcc/clang on Windows Server 2019, and
gcc on Windows 10 (didn't try clang there)

---

Hello all,

We have several platforms based on Intel's C3000 series of SoCs that
have integrated ixgbe devices (X550EM) operating in the "Native SFI"
mode (the 0x15c4 device ID).

The first five patches in the series all fix issues relating to the ID
and setup of SFPs.

Patch 6 allows slow to boot SFPs (like some XGS-PON modules) to work.

Patch 7 enables 1G Cu to run with a warning, similar to other
unofficially supported modules covered by the allow_unsupported_sfp
flag.  Currently we use this for g.Fast modules, but other modules that
enumerate as 1G Cu may also benefit.

Since all of my testing was done on a C3000 platform, and the ixgbe
driver now covers a large number of devices, any regression testing that
can be done on other ixgbe devices would be greatly appreciated.

Thanks,
Steve

Stephen Douthit (7):
  net/ixgbe: Fix ixgbe_is_sfp() to return valid result for X550EM_a devs
  net/ixgbe: Add ixgbe_check_sfp_cage() for testing state of PRSNT#
    signal
  net/ixgbe: Check that SFF-8472 soft rate select is supported before
    write
  net/ixgbe: Run 82599 link status workaround only on affected devices
  net/ixgbe: Fix SFP detection and linking on hotplug
  net/ixgbe: Retry SFP ID read field to handle misbehaving SFPs
  net/ixgbe: Treat 1G Cu SFPs as 1G SX on the X550 devices

 drivers/net/ixgbe/base/ixgbe_82599.c  |  41 +++
 drivers/net/ixgbe/base/ixgbe_common.c | 106 ++++++--
 drivers/net/ixgbe/base/ixgbe_common.h |   8 +
 drivers/net/ixgbe/base/ixgbe_phy.c    |  39 ++-
 drivers/net/ixgbe/base/ixgbe_phy.h    |   3 +
 drivers/net/ixgbe/base/ixgbe_type.h   |   2 +
 drivers/net/ixgbe/base/ixgbe_x550.c   |  14 +-
 drivers/net/ixgbe/ixgbe_ethdev.c      | 370 ++++++++++++++++----------
 drivers/net/ixgbe/ixgbe_ethdev.h      |  18 +-
 9 files changed, 426 insertions(+), 175 deletions(-)