er->rx_mini_max_pending = 0;
er->rx_jumbo_max_pending = 0;
- er->tx_pending = ag->tx_ring.size;
- er->rx_pending = ag->rx_ring.size;
+ er->tx_pending = BIT(ag->tx_ring.order);
+ er->rx_pending = BIT(ag->rx_ring.order);
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,
return err;
}
- ag->tx_ring.size = tx_size;
- ag->rx_ring.size = rx_size;
+ if (ag->tx_ring.desc_split)
+ tx_size *= AG71XX_TX_RING_DS_PER_PKT;
+
+ ag->tx_ring.order = ag71xx_ring_size_order(tx_size);
+ ag->rx_ring.order = ag71xx_ring_size_order(rx_size);
if (netif_running(dev))
err = dev->netdev_ops->ndo_open(dev);