[PATCH net v3] net: phylink: treat PSGMII as an inband capable interface

Sandeep Sondagar posted 1 patch 1 month, 2 weeks ago
drivers/net/phy/phylink.c | 3 +++
include/linux/phylink.h   | 1 +
2 files changed, 4 insertions(+)
Re: [PATCH net v3] net: phylink: treat PSGMII as an inband capable interface
Posted by Paolo Abeni 1 month, 2 weeks ago
On 8/9/26 6:01 PM, Sandeep Sondagar wrote:
> PSGMII (the Qualcomm 5-port SGMII) conveys the link negotiation result
> from the PHY back to the MAC through per-channel in-band SGMII words,
> exactly like SGMII and QSGMII.
> 
> However, PHY_INTERFACE_MODE_PSGMII is missing from
> phylink_get_inband_type(), so phylink reports INBAND_NONE for it and
> phylink_pcs_neg_mode() falls back to PHYLINK_PCS_NEG_NONE. The PCS is
> then programmed in force mode and its control-register speed bits (which
> default to 1000base) are used, so a slower copper link - e.g. 100base-T
> - is reported as 1Gbps and cannot pass traffic.
> 
> Classify PSGMII alongside SGMII and QSGMII as INBAND_CISCO_SGMII so the
> PCS negotiates in-band and the resolved link speed comes from the PHY
> in-band word.
> 
> Also add PSGMII to the generic clause 22 PCS helper functions which
> handle the SGMII in-band word. Without this, a PCS using these helpers
> would still fall through to the default handling and force the link
> state to false in phylink_mii_c22_pcs_decode_state(), fail to encode
> the SGMII advertisement, and get rejected by phylink_get_link_timer_ns().
> 
> Fixes: 83b5f0253b1e ("net: phy: Introduce PSGMII PHY interface mode")
> Signed-off-by: Sandeep Sondagar <sandeepsondagar@gmail.com>
Sashiko noted no in-tree driver is affected. At very least, this should
go via the net-next tree without any fixes tag, but I'm wondering if we
want it at all?

@Andrew: WDYT?

Thanks,

Paolo
Re: [PATCH net v3] net: phylink: treat PSGMII as an inband capable interface
Posted by Andrew Lunn 1 month, 2 weeks ago
> > Fixes: 83b5f0253b1e ("net: phy: Introduce PSGMII PHY interface mode")
> > Signed-off-by: Sandeep Sondagar <sandeepsondagar@gmail.com>
> Sashiko noted no in-tree driver is affected. At very least, this should
> go via the net-next tree without any fixes tag, but I'm wondering if we
> want it at all?

I thought there was a device which needs this. Sandeep? Is it in tree?

I would accept it, but the question is net-next or net.

  Andrew
Re: [PATCH net v3] net: phylink: treat PSGMII as an inband capable interface
Posted by Jakub Kicinski 1 month, 2 weeks ago
On Tue, 11 Aug 2026 16:00:41 +0200 Andrew Lunn wrote:
> > > Fixes: 83b5f0253b1e ("net: phy: Introduce PSGMII PHY interface mode")
> > > Signed-off-by: Sandeep Sondagar <sandeepsondagar@gmail.com>  
> > Sashiko noted no in-tree driver is affected. At very least, this should
> > go via the net-next tree without any fixes tag, but I'm wondering if we
> > want it at all?  
> 
> I thought there was a device which needs this. Sandeep? Is it in tree?

FWIW quick grep yesterday did show a hit for PSGMII in the Qualcomm
driver in tree. I guess the question is whether that's dead code
upstream or not... ?
Re: [PATCH net v3] net: phylink: treat PSGMII as an inband capable interface
Posted by Sandeep Sondagar 1 month, 2 weeks ago
Hi Nicolai,

Thanks for your email.

This was noticed while working on the OpenWrt support for the Jio
AirFiber router (JIDU6J11) based on the IPQ9554 SoC, which exposes
5x gigabit ports (1 WAN + 4 LAN) through a Qualcomm PSGMII interface.

While testing I found that the QSGMII mode works correctly, but the
PSGMII mode has both a hotplug issue and an incorrect link detection
issue: a 100Mbps copper link is reported as 1Gbps, so the link can't
pass traffic at the negotiated speed. While tracing it, I found
PHY_INTERFACE_MODE_PSGMII was missing from the phylink in-band
handling, so the PCS was being programmed in force mode with its
default 1000base control-register speed bits instead of using the
in-band SGMII word.

Best regards,
Sandeep
Re: [PATCH net v3] net: phylink: treat PSGMII as an inband capable interface
Posted by Nicolai Buchwitz 1 month, 2 weeks ago
Hi Sandeep,

On 9.8.2026 18:01, Sandeep Sondagar wrote:
> PSGMII (the Qualcomm 5-port SGMII) conveys the link negotiation result
> from the PHY back to the MAC through per-channel in-band SGMII words,
> exactly like SGMII and QSGMII.
> 
> However, PHY_INTERFACE_MODE_PSGMII is missing from
> phylink_get_inband_type(), so phylink reports INBAND_NONE for it and
> phylink_pcs_neg_mode() falls back to PHYLINK_PCS_NEG_NONE. The PCS is
> then programmed in force mode and its control-register speed bits 
> (which
> default to 1000base) are used, so a slower copper link - e.g. 100base-T
> - is reported as 1Gbps and cannot pass traffic.

Out of curiosity: How has this been noticed (eg. which board / 
platform)?

> [...]

Reviewed-by: Nicolai Buchwitz <nb@tipi-net.de>

Thanks,
Nicolai