netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v9 0/8] Support loopback mode speed selection
@ 2025-02-27 20:31 Gerhard Engleder
  2025-02-27 20:31 ` [PATCH net-next v9 1/8] net: phy: Allow loopback speed selection for PHY drivers Gerhard Engleder
                   ` (7 more replies)
  0 siblings, 8 replies; 19+ messages in thread
From: Gerhard Engleder @ 2025-02-27 20:31 UTC (permalink / raw)
  To: andrew, hkallweit1, linux, davem, edumazet, kuba, pabeni
  Cc: netdev, Gerhard Engleder

Previously to commit 6ff3cddc365b ("net: phylib: do not disable autoneg
for fixed speeds >= 1G") it was possible to select the speed of the
loopback mode by configuring a fixed speed before enabling the loopback
mode. Now autoneg is always enabled for >= 1G and a fixed speed of >= 1G
requires successful autoneg. Thus, the speed of the loopback mode depends
on the link partner for >= 1G. There is no technical reason to depend on
the link partner for loopback mode. With this behavior the loopback mode
is less useful for testing.

Allow PHYs to support optional speed selection for the loopback mode.
This support is implemented for the generic loopback support and for PHY
drivers, which obviously support speed selection for loopback mode.
Additionally, loopback support according to the data sheet is added to
the KSZ9031 PHY.

Extend phy_loopback() to signal link up and down if speed changes,
because a new link speed requires link up signalling.

Use this loopback speed selection in the tsnep driver to select the
loopback mode speed depending the previously active speed. User space
tests with 100 Mbps and 1 Gbps loopback are possible again.

v9:
- move struct net_test member loopback_speed to correct commit
- fix argument of net_selftest_set_get_count() dummy (kernel test robot)
- fix argument of net_selftest_set_get_strings() dummy (kernel test robot)

v8:
- align naming and kdoc of selftest set enum (Jakub Kicinski)
- add support for all link speeds (Jakub Kicinski)

v7:
- simplify ksz9031_set_loopback() (Andrew Lunn)
- try to restore link if loopback enable fails (Andrew Lunn)
- extend generic selftests to enable reuse (Andrew Lunn)

v6:
- add return value documentation to phy_loopback() (Jakub Kicinski)

v5:
- use phy_write() instead of phy_modify() (Russel King)
- add missing inline for export dummies (kernel test robot)

v4:
- resend without changed to RFC v3

RFC v3:
- align set_loopback() of Marvell to Micrel (Andrew Lunn)
- transmit packets in loopback selftests (Andrew Lunn)
- don't flush PHY statemachine in phy_loopback()
- remove setting of carrier on and link mode after phy_loopback() in tsnep

v2:
- signal link up to keep MAC and PHY in sync about speed (Andrew Lunn)

Gerhard Engleder (8):
  net: phy: Allow loopback speed selection for PHY drivers
  net: phy: Support speed selection for PHY loopback
  net: phy: micrel: Add loopback support
  net: phy: marvell: Align set_loopback() implementation
  tsnep: Select speed for loopback
  net: selftests: Support selftest sets
  net: selftests: Add selftests sets with fixed speed
  tsnep: Add loopback selftests

 drivers/net/ethernet/engleder/tsnep_main.c    |  21 +-
 .../net/ethernet/engleder/tsnep_selftests.c   |  30 ++-
 .../net/ethernet/hisilicon/hns/hns_ethtool.c  |   4 +-
 .../hisilicon/hns3/hns3pf/hclge_main.c        |   4 +-
 .../hisilicon/hns3/hns3pf/hclge_mdio.c        |   2 +-
 .../stmicro/stmmac/stmmac_selftests.c         |   8 +-
 drivers/net/phy/adin1100.c                    |   5 +-
 drivers/net/phy/dp83867.c                     |   5 +-
 drivers/net/phy/marvell.c                     |  68 +++---
 drivers/net/phy/micrel.c                      |  24 ++
 drivers/net/phy/mxl-gpy.c                     |  11 +-
 drivers/net/phy/phy-c45.c                     |   5 +-
 drivers/net/phy/phy.c                         |  87 +++++++
 drivers/net/phy/phy_device.c                  |  43 +---
 drivers/net/phy/xilinx_gmii2rgmii.c           |   7 +-
 include/linux/phy.h                           |  18 +-
 include/net/selftests.h                       |  29 +++
 net/core/selftests.c                          | 216 +++++++++++++-----
 18 files changed, 417 insertions(+), 170 deletions(-)

-- 
2.39.5


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

end of thread, other threads:[~2025-03-11  6:39 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-27 20:31 [PATCH net-next v9 0/8] Support loopback mode speed selection Gerhard Engleder
2025-02-27 20:31 ` [PATCH net-next v9 1/8] net: phy: Allow loopback speed selection for PHY drivers Gerhard Engleder
2025-02-27 20:31 ` [PATCH net-next v9 2/8] net: phy: Support speed selection for PHY loopback Gerhard Engleder
2025-03-04  1:35   ` Jakub Kicinski
2025-03-04 13:20     ` Andrew Lunn
2025-03-04 16:15       ` Jakub Kicinski
2025-03-04 20:00         ` Gerhard Engleder
2025-03-06  5:58           ` Gerhard Engleder
2025-03-07 16:27             ` Andrew Lunn
2025-03-07 19:15               ` Gerhard Engleder
2025-03-11  5:39                 ` Gerhard Engleder
2025-02-27 20:31 ` [PATCH net-next v9 3/8] net: phy: micrel: Add loopback support Gerhard Engleder
2025-02-27 20:31 ` [PATCH net-next v9 4/8] net: phy: marvell: Align set_loopback() implementation Gerhard Engleder
2025-02-27 20:31 ` [PATCH net-next v9 5/8] tsnep: Select speed for loopback Gerhard Engleder
2025-02-27 20:31 ` [PATCH net-next v9 6/8] net: selftests: Support selftest sets Gerhard Engleder
2025-03-04  1:41   ` Jakub Kicinski
2025-03-04  5:55     ` Gerhard Engleder
2025-02-27 20:31 ` [PATCH net-next v9 7/8] net: selftests: Add selftests sets with fixed speed Gerhard Engleder
2025-02-27 20:31 ` [PATCH net-next v9 8/8] tsnep: Add loopback selftests Gerhard Engleder

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