]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: stmmac: Set FIFO sizes for ipq806x
authorJonathan McDowell <noodles@earth.li>
Sat, 13 Mar 2021 13:18:26 +0000 (13:18 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 22 May 2021 08:38:26 +0000 (10:38 +0200)
[ 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>
drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c

index ee5a7c05a0e6723c39fd97ec548313c3911b2823..f1eb9f99076a9048a9ee1ad3e16b3d2507183020 100644 (file)
@@ -361,6 +361,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;
 
        return stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
 }