aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/arc/emac_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/arc/emac_main.c')
-rw-r--r--drivers/net/ethernet/arc/emac_main.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/net/ethernet/arc/emac_main.c b/drivers/net/ethernet/arc/emac_main.c
index fe5cfeace6e3..f7ab90d9cd7e 100644
--- a/drivers/net/ethernet/arc/emac_main.c
+++ b/drivers/net/ethernet/arc/emac_main.c
@@ -298,7 +298,7 @@ static int arc_emac_poll(struct napi_struct *napi, int budget)
298 work_done = arc_emac_rx(ndev, budget); 298 work_done = arc_emac_rx(ndev, budget);
299 if (work_done < budget) { 299 if (work_done < budget) {
300 napi_complete(napi); 300 napi_complete(napi);
301 arc_reg_or(priv, R_ENABLE, RXINT_MASK); 301 arc_reg_or(priv, R_ENABLE, RXINT_MASK | TXINT_MASK);
302 } 302 }
303 303
304 return work_done; 304 return work_done;
@@ -327,9 +327,9 @@ static irqreturn_t arc_emac_intr(int irq, void *dev_instance)
327 /* Reset all flags except "MDIO complete" */ 327 /* Reset all flags except "MDIO complete" */
328 arc_reg_set(priv, R_STATUS, status); 328 arc_reg_set(priv, R_STATUS, status);
329 329
330 if (status & RXINT_MASK) { 330 if (status & (RXINT_MASK | TXINT_MASK)) {
331 if (likely(napi_schedule_prep(&priv->napi))) { 331 if (likely(napi_schedule_prep(&priv->napi))) {
332 arc_reg_clr(priv, R_ENABLE, RXINT_MASK); 332 arc_reg_clr(priv, R_ENABLE, RXINT_MASK | TXINT_MASK);
333 __napi_schedule(&priv->napi); 333 __napi_schedule(&priv->napi);
334 } 334 }
335 } 335 }
@@ -440,7 +440,7 @@ static int arc_emac_open(struct net_device *ndev)
440 arc_reg_set(priv, R_TX_RING, (unsigned int)priv->txbd_dma); 440 arc_reg_set(priv, R_TX_RING, (unsigned int)priv->txbd_dma);
441 441
442 /* Enable interrupts */ 442 /* Enable interrupts */
443 arc_reg_set(priv, R_ENABLE, RXINT_MASK | ERR_MASK); 443 arc_reg_set(priv, R_ENABLE, RXINT_MASK | TXINT_MASK | ERR_MASK);
444 444
445 /* Set CONTROL */ 445 /* Set CONTROL */
446 arc_reg_set(priv, R_CTRL, 446 arc_reg_set(priv, R_CTRL,
@@ -511,7 +511,7 @@ static int arc_emac_stop(struct net_device *ndev)
511 netif_stop_queue(ndev); 511 netif_stop_queue(ndev);
512 512
513 /* Disable interrupts */ 513 /* Disable interrupts */
514 arc_reg_clr(priv, R_ENABLE, RXINT_MASK | ERR_MASK); 514 arc_reg_clr(priv, R_ENABLE, RXINT_MASK | TXINT_MASK | ERR_MASK);
515 515
516 /* Disable EMAC */ 516 /* Disable EMAC */
517 arc_reg_clr(priv, R_CTRL, EN_MASK); 517 arc_reg_clr(priv, R_CTRL, EN_MASK);