mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-27 06:34:11 +08:00
net: stmmac: ethtool: Let user configure TX coalesce without RIWT
When RX Watchdog is disabled its currently not possible to configure TX coalesce settings. Let user configure it anyway. Signed-off-by: Jose Abreu <joabreu@synopsys.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0b273ca41f
commit
8f9e5b5db4
@ -746,8 +746,15 @@ static int stmmac_set_coalesce(struct net_device *dev,
|
||||
(ec->tx_max_coalesced_frames_high) || (ec->rate_sample_interval))
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
if (ec->rx_coalesce_usecs == 0)
|
||||
return -EINVAL;
|
||||
if (priv->use_riwt && (ec->rx_coalesce_usecs > 0)) {
|
||||
rx_riwt = stmmac_usec2riwt(ec->rx_coalesce_usecs, priv);
|
||||
|
||||
if ((rx_riwt > MAX_DMA_RIWT) || (rx_riwt < MIN_DMA_RIWT))
|
||||
return -EINVAL;
|
||||
|
||||
priv->rx_riwt = rx_riwt;
|
||||
stmmac_rx_watchdog(priv, priv->ioaddr, priv->rx_riwt, rx_cnt);
|
||||
}
|
||||
|
||||
if ((ec->tx_coalesce_usecs == 0) &&
|
||||
(ec->tx_max_coalesced_frames == 0))
|
||||
@ -757,20 +764,10 @@ static int stmmac_set_coalesce(struct net_device *dev,
|
||||
(ec->tx_max_coalesced_frames > STMMAC_TX_MAX_FRAMES))
|
||||
return -EINVAL;
|
||||
|
||||
rx_riwt = stmmac_usec2riwt(ec->rx_coalesce_usecs, priv);
|
||||
|
||||
if ((rx_riwt > MAX_DMA_RIWT) || (rx_riwt < MIN_DMA_RIWT))
|
||||
return -EINVAL;
|
||||
else if (!priv->use_riwt)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
/* Only copy relevant parameters, ignore all others. */
|
||||
priv->tx_coal_frames = ec->tx_max_coalesced_frames;
|
||||
priv->tx_coal_timer = ec->tx_coalesce_usecs;
|
||||
priv->rx_coal_frames = ec->rx_max_coalesced_frames;
|
||||
priv->rx_riwt = rx_riwt;
|
||||
stmmac_rx_watchdog(priv, priv->ioaddr, priv->rx_riwt, rx_cnt);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user