From 96475a042ec3af58ba77cadf2a283e005038d27c Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sun, 7 Sep 2014 09:46:39 +0000 Subject: ar71xx: merge ethernet tx descriptor splitting from trunk (as of r42429) to fix ar716x performance issues Signed-off-by: Felix Fietkau git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@42433 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ethtool.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ethtool.c') diff --git a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ethtool.c b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ethtool.c index 498fbed1ff..cad9f2ff06 100644 --- a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ethtool.c +++ b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ethtool.c @@ -75,6 +75,9 @@ static void ag71xx_ethtool_get_ringparam(struct net_device *dev, er->rx_pending = ag->rx_ring.size; er->rx_mini_pending = 0; er->rx_jumbo_pending = 0; + + if (ag->tx_ring.desc_split) + er->tx_pending /= AG71XX_TX_RING_DS_PER_PKT; } static int ag71xx_ethtool_set_ringparam(struct net_device *dev, @@ -103,6 +106,9 @@ static int ag71xx_ethtool_set_ringparam(struct net_device *dev, return err; } + if (ag->tx_ring.desc_split) + tx_size *= AG71XX_TX_RING_DS_PER_PKT; + ag->tx_ring.size = tx_size; ag->rx_ring.size = rx_size; -- cgit v1.2.3