summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/fman/fman_dtsec.c
diff options
context:
space:
mode:
authorSean Anderson <sean.anderson@seco.com>2022-09-03 00:57:36 +0300
committerDavid S. Miller <davem@davemloft.net>2022-09-05 16:27:39 +0300
commitef2a8d5478b9ad653c318bdbb4f6e7f46c90f90b (patch)
tree0abc4ec937d7edd853a2ed03a32d71a5baf42cb5 /drivers/net/ethernet/freescale/fman/fman_dtsec.c
parent914f8b228ede709274b8c80514b352248ec9da00 (diff)
downloadlinux-ef2a8d5478b9ad653c318bdbb4f6e7f46c90f90b.tar.xz
net: dpaa: Adjust queue depth on rate change
Instead of setting the queue depth once during probe, adjust it on the fly whenever we configure the link. This is a bit unusal, since usually the DPAA driver calls into the FMAN driver, but here we do the opposite. We need to add a netdev to struct mac_device for this, but it will soon live in the phylink config. I haven't tested this extensively, but it doesn't seem to break anything. We could possibly optimize this a bit by keeping track of the last rate, but for now we just update every time. 10GEC probably doesn't need to call into this at all, but I've added it for consistency. Signed-off-by: Sean Anderson <sean.anderson@seco.com> Acked-by: Camelia Groza <camelia.groza@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/freescale/fman/fman_dtsec.c')
-rw-r--r--drivers/net/ethernet/freescale/fman/fman_dtsec.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/ethernet/freescale/fman/fman_dtsec.c b/drivers/net/ethernet/freescale/fman/fman_dtsec.c
index f2dd07b714ea..6617932fd3fd 100644
--- a/drivers/net/ethernet/freescale/fman/fman_dtsec.c
+++ b/drivers/net/ethernet/freescale/fman/fman_dtsec.c
@@ -1244,6 +1244,7 @@ static void adjust_link_dtsec(struct mac_device *mac_dev)
}
dtsec_adjust_link(fman_mac, phy_dev->speed);
+ mac_dev->update_speed(mac_dev, phy_dev->speed);
fman_get_pause_cfg(mac_dev, &rx_pause, &tx_pause);
err = fman_set_mac_active_pause(mac_dev, rx_pause, tx_pause);
if (err < 0)