diff options
-rw-r--r-- | drivers/net/ethernet/arc/emac_main.c | 10 |
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); |