mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-27 09:12:39 +00:00
255268ce1a
xrx200 max MTU is reduced so that it works correctly when set to the max, and the max MTU of the switch is increased to match. In 5.10, the switch driver now enables non-standard MTUs on a per-port basis, with the overall frame size set based on the cpu port. When the MTU is not used, this should have no effect. The maximum packet size is limited as large packets cause the switch to lock up. 0702-net-lantiq-add-support-for-jumbo-frames.patch comes from net-next commit 998ac358019e491217e752bc6dcbb3afb2a6fa3e. In 5.4, all switch ports are configured to accept the max MTU, as 5.4 does not have port_max_mtu/port_change_mtu callbacks. Signed-off-by: Thomas Nixon <tom@tomn.co.uk>
74 lines
2.3 KiB
Diff
74 lines
2.3 KiB
Diff
From 7e553c44f09a8f536090904c6db5b8c9dbafa03b Mon Sep 17 00:00:00 2001
|
|
From: Aleksander Jan Bajkowski <olek2@wp.pl>
|
|
Date: Tue, 26 Oct 2021 22:59:01 +0200
|
|
Subject: [PATCH] net: lantiq_xrx200: Hardcode the burst length value
|
|
|
|
All SoCs with this IP core support 8 burst length. Hauke
|
|
suggested to hardcode this value and simplify the driver.
|
|
|
|
Link: https://lkml.org/lkml/2021/9/14/1533
|
|
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
---
|
|
drivers/net/ethernet/lantiq_xrx200.c | 21 ++++-----------------
|
|
1 file changed, 4 insertions(+), 17 deletions(-)
|
|
|
|
--- a/drivers/net/ethernet/lantiq_xrx200.c
|
|
+++ b/drivers/net/ethernet/lantiq_xrx200.c
|
|
@@ -25,6 +25,7 @@
|
|
#define XRX200_DMA_DATA_LEN (SZ_64K - 1)
|
|
#define XRX200_DMA_RX 0
|
|
#define XRX200_DMA_TX 1
|
|
+#define XRX200_DMA_BURST_LEN 8
|
|
|
|
#define XRX200_DMA_PACKET_COMPLETE 0
|
|
#define XRX200_DMA_PACKET_IN_PROGRESS 1
|
|
@@ -81,9 +82,6 @@ struct xrx200_priv {
|
|
struct net_device *net_dev;
|
|
struct device *dev;
|
|
|
|
- int tx_burst_len;
|
|
- int rx_burst_len;
|
|
-
|
|
__iomem void *pmac_reg;
|
|
};
|
|
|
|
@@ -367,7 +365,7 @@ static netdev_tx_t xrx200_start_xmit(str
|
|
goto err_drop;
|
|
|
|
/* dma needs to start on a burst length value aligned address */
|
|
- byte_offset = mapping % (priv->tx_burst_len * 4);
|
|
+ byte_offset = mapping % (XRX200_DMA_BURST_LEN * 4);
|
|
|
|
desc->addr = mapping - byte_offset;
|
|
/* Make sure the address is written before we give it to HW */
|
|
@@ -468,7 +466,8 @@ static int xrx200_dma_init(struct xrx200
|
|
int ret = 0;
|
|
int i;
|
|
|
|
- ltq_dma_init_port(DMA_PORT_ETOP, priv->tx_burst_len, rx_burst_len);
|
|
+ ltq_dma_init_port(DMA_PORT_ETOP, XRX200_DMA_BURST_LEN,
|
|
+ XRX200_DMA_BURST_LEN);
|
|
|
|
ch_rx->dma.nr = XRX200_DMA_RX;
|
|
ch_rx->dma.dev = priv->dev;
|
|
@@ -587,18 +586,6 @@ static int xrx200_probe(struct platform_
|
|
if (err)
|
|
eth_hw_addr_random(net_dev);
|
|
|
|
- err = device_property_read_u32(dev, "lantiq,tx-burst-length", &priv->tx_burst_len);
|
|
- if (err < 0) {
|
|
- dev_err(dev, "unable to read tx-burst-length property\n");
|
|
- return err;
|
|
- }
|
|
-
|
|
- err = device_property_read_u32(dev, "lantiq,rx-burst-length", &priv->rx_burst_len);
|
|
- if (err < 0) {
|
|
- dev_err(dev, "unable to read rx-burst-length property\n");
|
|
- return err;
|
|
- }
|
|
-
|
|
/* bring up the dma engine and IP core */
|
|
err = xrx200_dma_init(priv);
|
|
if (err)
|