Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
This commit is contained in:
@@ -2125,6 +2125,8 @@ static int bcmgenet_dma_teardown(struct bcmgenet_priv *priv)
|
||||
int ret = 0;
|
||||
int timeout = 0;
|
||||
u32 reg;
|
||||
u32 dma_ctrl;
|
||||
int i;
|
||||
|
||||
/* Disable TDMA to stop add more frames in TX DMA */
|
||||
reg = bcmgenet_tdma_readl(priv, DMA_CTRL);
|
||||
@@ -2168,6 +2170,20 @@ static int bcmgenet_dma_teardown(struct bcmgenet_priv *priv)
|
||||
ret = -ETIMEDOUT;
|
||||
}
|
||||
|
||||
dma_ctrl = 0;
|
||||
for (i = 0; i < priv->hw_params->rx_queues; i++)
|
||||
dma_ctrl |= (1 << (i + DMA_RING_BUF_EN_SHIFT));
|
||||
reg = bcmgenet_rdma_readl(priv, DMA_CTRL);
|
||||
reg &= ~dma_ctrl;
|
||||
bcmgenet_rdma_writel(priv, reg, DMA_CTRL);
|
||||
|
||||
dma_ctrl = 0;
|
||||
for (i = 0; i < priv->hw_params->tx_queues; i++)
|
||||
dma_ctrl |= (1 << (i + DMA_RING_BUF_EN_SHIFT));
|
||||
reg = bcmgenet_tdma_readl(priv, DMA_CTRL);
|
||||
reg &= ~dma_ctrl;
|
||||
bcmgenet_tdma_writel(priv, reg, DMA_CTRL);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -2835,8 +2851,6 @@ static void bcmgenet_timeout(struct net_device *dev)
|
||||
|
||||
netif_dbg(priv, tx_err, dev, "bcmgenet_timeout\n");
|
||||
|
||||
bcmgenet_disable_tx_napi(priv);
|
||||
|
||||
for (q = 0; q < priv->hw_params->tx_queues; q++)
|
||||
bcmgenet_dump_tx_queue(&priv->tx_rings[q]);
|
||||
bcmgenet_dump_tx_queue(&priv->tx_rings[DESC_INDEX]);
|
||||
@@ -2852,8 +2866,6 @@ static void bcmgenet_timeout(struct net_device *dev)
|
||||
bcmgenet_intrl2_0_writel(priv, int0_enable, INTRL2_CPU_MASK_CLEAR);
|
||||
bcmgenet_intrl2_1_writel(priv, int1_enable, INTRL2_CPU_MASK_CLEAR);
|
||||
|
||||
bcmgenet_enable_tx_napi(priv);
|
||||
|
||||
dev->trans_start = jiffies;
|
||||
|
||||
dev->stats.tx_errors++;
|
||||
|
Reference in New Issue
Block a user