Merge commit 'c9915f7de90ebcab40f2d9592b63024d01eb4ea6'

* commit 'c9915f7de90ebcab40f2d9592b63024d01eb4ea6':
  ASoC: rockchip: Remove duplicated CONFIG_SND_SOC_ROCKCHIP_I2S_TDM_MULTI_LANES
  ethernet: stmmac: Fix the tx timeout issue for kernel-6.1 merged

Change-Id: I498d70bd52fe73728d97c60bfec7d8e9b36b3cf9
This commit is contained in:
Tao Huang
2023-07-20 20:23:03 +08:00
2 changed files with 16 additions and 19 deletions

View File

@@ -5053,7 +5053,7 @@ static int stmmac_rx_zc(struct stmmac_priv *priv, int limit, u32 queue)
len = 0;
}
if (count >= limit)
if ((count >= limit - 1) && limit > 1)
break;
read_again:
@@ -5488,7 +5488,6 @@ static int stmmac_napi_poll_tx(struct napi_struct *napi, int budget)
int work_done;
priv->xstats.napi_poll++;
budget = min(priv->plat->dma_tx_size, budget);
work_done = stmmac_tx_clean(priv, budget, chan);
work_done = min(work_done, budget);
@@ -5510,17 +5509,14 @@ static int stmmac_napi_poll_rxtx(struct napi_struct *napi, int budget)
container_of(napi, struct stmmac_channel, rxtx_napi);
struct stmmac_priv *priv = ch->priv_data;
int rx_done, tx_done, rxtx_done;
int rx_budget, tx_budget;
u32 chan = ch->index;
priv->xstats.napi_poll++;
rx_budget = min(priv->plat->dma_rx_size, budget);
tx_budget = min(priv->plat->dma_tx_size, budget);
tx_done = stmmac_tx_clean(priv, tx_budget, chan);
tx_done = stmmac_tx_clean(priv, budget, chan);
tx_done = min(tx_done, budget);
rx_done = stmmac_rx_zc(priv, rx_budget, chan);
rx_done = stmmac_rx_zc(priv, budget, chan);
rxtx_done = max(tx_done, rx_done);
@@ -6929,22 +6925,30 @@ static void stmmac_napi_add(struct net_device *dev)
for (queue = 0; queue < maxq; queue++) {
struct stmmac_channel *ch = &priv->channel[queue];
int rx_budget = ((priv->plat->dma_rx_size < NAPI_POLL_WEIGHT) &&
(priv->plat->dma_rx_size > 0)) ?
priv->plat->dma_rx_size : NAPI_POLL_WEIGHT;
int tx_budget = ((priv->plat->dma_tx_size < NAPI_POLL_WEIGHT) &&
(priv->plat->dma_tx_size > 0)) ?
priv->plat->dma_tx_size : NAPI_POLL_WEIGHT;
int budget = min(rx_budget, tx_budget);
ch->priv_data = priv;
ch->index = queue;
spin_lock_init(&ch->lock);
if (queue < priv->plat->rx_queues_to_use) {
netif_napi_add(dev, &ch->rx_napi, stmmac_napi_poll_rx);
netif_napi_add_weight(dev, &ch->rx_napi,
stmmac_napi_poll_rx, rx_budget);
}
if (queue < priv->plat->tx_queues_to_use) {
netif_napi_add_tx(dev, &ch->tx_napi,
stmmac_napi_poll_tx);
netif_napi_add_tx_weight(dev, &ch->tx_napi,
stmmac_napi_poll_tx, tx_budget);
}
if (queue < priv->plat->rx_queues_to_use &&
queue < priv->plat->tx_queues_to_use) {
netif_napi_add(dev, &ch->rxtx_napi,
stmmac_napi_poll_rxtx);
netif_napi_add_weight(dev, &ch->rxtx_napi,
stmmac_napi_poll_rxtx, budget);
}
}
}

View File

@@ -40,13 +40,6 @@ config SND_SOC_ROCKCHIP_I2S_TDM_MULTI_LANES
Say Y or M if you want to add support for TDM Multi Lanes
based on I2S_TDM controller.
config SND_SOC_ROCKCHIP_I2S_TDM_MULTI_LANES
bool "Rockchip TDM Multi Lanes"
depends on SND_SOC_ROCKCHIP_I2S_TDM
help
Say Y or M if you want to add support for TDM Multi Lanes
based on I2S_TDM controller.
config SND_SOC_ROCKCHIP_MULTI_DAIS
tristate "Rockchip Multi-DAIS Device Driver"
depends on HAVE_CLK && SND_SOC_ROCKCHIP