Re: [PATCH net-next v4 06/11] net: stmmac: resetup XPCS according to the new interface mode

From: Choong Yong Liang
Date: Wed Feb 14 2024 - 22:14:52 EST




On 2/2/2024 4:50 pm, Russell King (Oracle) wrote:
Thank you for taking the time to review, got your concerns, and I'll address
the following concerns before submitting a new patch series:

1. Remove allow_switch_interface and have the PHY driver fill in
phydev->possible_interfaces.

Yes please.


Hi Russell,

I regret to inform you that I didn't implement everything exactly as proposed in the new patch series. My intention was to simplify the series, focusing solely on managing SGMII and 2500BASE-X interface mode switching. The recommendation to have the PHY driver fill in "phydev->possible_interfaces" will be addressed in a separate patch submission. I hope this is acceptable.

In the new patch series, I removed "allow_switch_interface" patches. The current solution continues to work with PHYs that are C45 and follow the legacy path, such as Marvell Alaska 88E2110. For the upcoming patch series, I will implement "phydev->possible_interfaces" for C22 and C45 PHYs.


2. Rework on the PCS to have similar implementation with the following patch
"net: macb: use .mac_select_pcs() interface"
(https://lore.kernel.org/netdev/E1n568J-002SZX-Gr@xxxxxxxxxxxxxxxxxxxxxx/T/).

mac_select_pcs() is about returning to phylink the PCS that the MAC
needs to use for the specified interface mode, or NULL if no PCS is
required, nothing more, nothing less.

Plase do not copy that mac_select_pcs() implementation - changing the
"ops" underneath phylink is no longer permitted.


Upon further examination, I discovered that no change is required for the "mac_select_pcs()" function; we can still use the same PCS. According to the XPCS datasheet, a soft reset is necessary to re-initiate Clause 37 auto-negotiation when switching to SGMII interface mode. This is the only setting required for properly configuring the SGMII interface mode, and nothing extra is needed for 2500BASE-X configuration.

In the new patch series, I removed "mac_select_pcs()" related patches and added a "xpcs_soft_reset()" patch for the XPCS.