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.