OSDN Git Service

net: thunderx: use proper interface type for RGMII
authorTim Harvey <tharvey@gateworks.com>
Fri, 7 Feb 2020 20:40:26 +0000 (12:40 -0800)
committerDavid S. Miller <davem@davemloft.net>
Sat, 8 Feb 2020 14:28:09 +0000 (15:28 +0100)
The configuration of the OCTEONTX XCV_DLL_CTL register via
xcv_init_hw() is such that the RGMII RX delay is bypassed
leaving the RGMII TX delay enabled in the MAC:

/* Configure DLL - enable or bypass
 * TX no bypass, RX bypass
 */
cfg = readq_relaxed(xcv->reg_base + XCV_DLL_CTL);
cfg &= ~0xFF03;
cfg |= CLKRX_BYP;
writeq_relaxed(cfg, xcv->reg_base + XCV_DLL_CTL);

This would coorespond to a interface type of PHY_INTERFACE_MODE_RGMII_RXID
and not PHY_INTERFACE_MODE_RGMII.

Fixing this allows RGMII PHY drivers to do the right thing (enable
RX delay in the PHY) instead of erroneously enabling both delays in the
PHY.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cavium/thunder/thunder_bgx.c

index c4f6ec0..17a4110 100644 (file)
@@ -1039,7 +1039,7 @@ static int phy_interface_mode(u8 lmac_type)
        if (lmac_type == BGX_MODE_QSGMII)
                return PHY_INTERFACE_MODE_QSGMII;
        if (lmac_type == BGX_MODE_RGMII)
-               return PHY_INTERFACE_MODE_RGMII;
+               return PHY_INTERFACE_MODE_RGMII_RXID;
 
        return PHY_INTERFACE_MODE_SGMII;
 }