summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan McDowell <noodles@earth.li>2021-03-13 13:18:26 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-05-22 10:40:29 +0200
commitd25b0289897dd123a20378711042d834bc6c28ea (patch)
tree127f804f23675f33d23d6585d5c823006c4bdabb
parent315938b0afe8002fd3cb49297fafb74fc51280bb (diff)
downloadlinux-stable-d25b0289897dd123a20378711042d834bc6c28ea.tar.gz
linux-stable-d25b0289897dd123a20378711042d834bc6c28ea.tar.bz2
linux-stable-d25b0289897dd123a20378711042d834bc6c28ea.zip
net: stmmac: Set FIFO sizes for ipq806x
[ Upstream commit e127906b68b49ddb3ecba39ffa36a329c48197d3 ] Commit eaf4fac47807 ("net: stmmac: Do not accept invalid MTU values") started using the TX FIFO size to verify what counts as a valid MTU request for the stmmac driver. This is unset for the ipq806x variant. Looking at older patches for this it seems the RX + TXs buffers can be up to 8k, so set appropriately. (I sent this as an RFC patch in June last year, but received no replies. I've been running with this on my hardware (a MikroTik RB3011) since then with larger MTUs to support both the internal qca8k switch and VLANs with no problems. Without the patch it's impossible to set the larger MTU required to support this.) Signed-off-by: Jonathan McDowell <noodles@earth.li> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c
index 1924788d28da..f4ff43a1b5ba 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c
@@ -363,6 +363,8 @@ static int ipq806x_gmac_probe(struct platform_device *pdev)
plat_dat->bsp_priv = gmac;
plat_dat->fix_mac_speed = ipq806x_gmac_fix_mac_speed;
plat_dat->multicast_filter_bins = 0;
+ plat_dat->tx_fifo_size = 8192;
+ plat_dat->rx_fifo_size = 8192;
err = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
if (err)