Revert "ramips: ethernet: fix to interrupt handling"

This reverts commit 7ac454014a.

The change reportedly causes regressions in ethernet performance.

Fixes: FS#3332
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
openwrt-19.07
Jo-Philipp Wich 2020-09-18 08:53:31 +02:00
parent 29b4104d69
commit 34a9652904
1 changed files with 6 additions and 5 deletions

View File

@ -876,8 +876,6 @@ static int fe_poll_rx(struct napi_struct *napi, int budget,
struct fe_rx_dma *rxd, trxd; struct fe_rx_dma *rxd, trxd;
int done = 0, pad; int done = 0, pad;
fe_reg_w32(rx_intr, FE_REG_FE_INT_STATUS);
if (netdev->features & NETIF_F_RXCSUM) if (netdev->features & NETIF_F_RXCSUM)
checksum_bit = soc->checksum_bit; checksum_bit = soc->checksum_bit;
else else
@ -970,6 +968,9 @@ release_desc:
done++; done++;
} }
if (done < budget)
fe_reg_w32(rx_intr, FE_REG_FE_INT_STATUS);
return done; return done;
} }
@ -985,8 +986,6 @@ static int fe_poll_tx(struct fe_priv *priv, int budget, u32 tx_intr,
u32 idx, hwidx; u32 idx, hwidx;
struct fe_tx_ring *ring = &priv->tx_ring; struct fe_tx_ring *ring = &priv->tx_ring;
fe_reg_w32(tx_intr, FE_REG_FE_INT_STATUS);
idx = ring->tx_free_idx; idx = ring->tx_free_idx;
hwidx = fe_reg_r32(FE_REG_TX_DTX_IDX0); hwidx = fe_reg_r32(FE_REG_TX_DTX_IDX0);
@ -1010,7 +1009,9 @@ static int fe_poll_tx(struct fe_priv *priv, int budget, u32 tx_intr,
if (idx == hwidx) { if (idx == hwidx) {
/* read hw index again make sure no new tx packet */ /* read hw index again make sure no new tx packet */
hwidx = fe_reg_r32(FE_REG_TX_DTX_IDX0); hwidx = fe_reg_r32(FE_REG_TX_DTX_IDX0);
if (idx != hwidx) if (idx == hwidx)
fe_reg_w32(tx_intr, FE_REG_FE_INT_STATUS);
else
*tx_again = 1; *tx_again = 1;
} else { } else {
*tx_again = 1; *tx_again = 1;