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

Choong Yong Liang
2024-02-15T03:14:40Z

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@rmk-PC.armlinux.org.uk/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.