net: ethernet: ti: am65-cpsw: rx_pause/tx_pause controls wrong direction
authorRonald Wahl <ronald.wahl@raritan.com>
Tue, 31 Oct 2023 12:20:05 +0000 (13:20 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 3 Nov 2023 11:33:18 +0000 (11:33 +0000)
The rx_pause flag says that whether we support receiving Pause frames.
When a Pause frame is received TX is delayed for some time. This is TX
flow control. In the same manner tx_pause is actually RX flow control.

Signed-off-by: Ronald Wahl <ronald.wahl@raritan.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/am65-cpsw-nuss.c

index 24120605502f9e8b7d3161d066902e2b8edc8a3f..ece9f8df98ae7d6618ee5fc29847938f276a2fd9 100644 (file)
@@ -1588,10 +1588,10 @@ static void am65_cpsw_nuss_mac_link_up(struct phylink_config *config, struct phy
 
        /* rx_pause/tx_pause */
        if (rx_pause)
-               mac_control |= CPSW_SL_CTL_RX_FLOW_EN;
+               mac_control |= CPSW_SL_CTL_TX_FLOW_EN;
 
        if (tx_pause)
-               mac_control |= CPSW_SL_CTL_TX_FLOW_EN;
+               mac_control |= CPSW_SL_CTL_RX_FLOW_EN;
 
        cpsw_sl_ctl_set(port->slave.mac_sl, mac_control);