OSDN Git Service

net: mscc: ocelot: drop workaround for forcing RX flow control
authorVladimir Oltean <vladimir.oltean@nxp.com>
Mon, 14 Nov 2022 17:07:29 +0000 (19:07 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 16 Nov 2022 04:34:27 +0000 (20:34 -0800)
As phylink gained generic support for PHYs with rate matching via PAUSE
frames, the phylink_mac_link_up() method will be called with the maximum
speed and with rx_pause=true if rate matching is in use. This means that
setups with 2500base-x as the SERDES protocol between the MAC/PCS and
the PHY now work with no need for the driver to do anything special.

Tested with fsl-ls1028a-qds-7777.dts.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mscc/ocelot.c

index 13b1411..da56f9b 100644 (file)
@@ -872,10 +872,8 @@ void ocelot_phylink_mac_link_up(struct ocelot *ocelot, int port,
                return;
        }
 
-       /* Handle RX pause in all cases, with 2500base-X this is used for rate
-        * adaptation.
-        */
-       mac_fc_cfg |= SYS_MAC_FC_CFG_RX_FC_ENA;
+       if (rx_pause)
+               mac_fc_cfg |= SYS_MAC_FC_CFG_RX_FC_ENA;
 
        if (tx_pause)
                mac_fc_cfg |= SYS_MAC_FC_CFG_TX_FC_ENA |