36 lines
1.3 KiB
Diff
36 lines
1.3 KiB
Diff
|
From 774408ea6a55b9d40b7bdc4ff4e33f1464c605c9 Mon Sep 17 00:00:00 2001
|
||
|
From: Alex Marginean <alexandru.marginean@nxp.com>
|
||
|
Date: Wed, 8 Jan 2020 13:15:07 +0200
|
||
|
Subject: [PATCH] drivers: net: dsa: felix: Handle PAUSE Rx regardless of AN
|
||
|
result
|
||
|
|
||
|
Flow control is used with 2500Base-X and AQR PHYs to do rate adapation
|
||
|
between line side 100/1000 links and MAC running at 2.5G. This is
|
||
|
independent of the flow control configuration settled on line side though
|
||
|
AN. In general allowing MAC to handle flow control even though AN did
|
||
|
not enable it explicitly should not be a problem, so the patch enables
|
||
|
it in all cases.
|
||
|
|
||
|
Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
|
||
|
---
|
||
|
drivers/net/dsa/ocelot/felix.c | 8 ++++++--
|
||
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
||
|
|
||
|
--- a/drivers/net/dsa/ocelot/felix.c
|
||
|
+++ b/drivers/net/dsa/ocelot/felix.c
|
||
|
@@ -267,8 +267,12 @@ static void felix_phylink_mac_config(str
|
||
|
* specification in incoming pause frames.
|
||
|
*/
|
||
|
mac_fc_cfg = SYS_MAC_FC_CFG_FC_LINK_SPEED(state->speed);
|
||
|
- if (state->pause & MLO_PAUSE_RX)
|
||
|
- mac_fc_cfg |= SYS_MAC_FC_CFG_RX_FC_ENA;
|
||
|
+
|
||
|
+ /* 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 (state->pause & MLO_PAUSE_TX)
|
||
|
mac_fc_cfg |= SYS_MAC_FC_CFG_TX_FC_ENA |
|
||
|
SYS_MAC_FC_CFG_PAUSE_VAL_CFG(0xffff) |
|