diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c index a59edf7eacdc..601f93e482c6 100644 --- a/drivers/net/gianfar.c +++ b/drivers/net/gianfar.c @@ -1299,11 +1299,11 @@ static irqreturn_t gfar_transmit(int irq, void *dev_id) /* If we are coalescing the interrupts, reset the timer */ /* Otherwise, clear it */ - if (priv->txcoalescing) + if (likely(priv->txcoalescing)) { + gfar_write(&priv->regs->txic, 0); gfar_write(&priv->regs->txic, mk_ic_value(priv->txcount, priv->txtime)); - else - gfar_write(&priv->regs->txic, 0); + } spin_unlock(&priv->txlock); @@ -1417,11 +1417,11 @@ irqreturn_t gfar_receive(int irq, void *dev_id) /* If we are coalescing interrupts, update the timer */ /* Otherwise, clear it */ - if (priv->rxcoalescing) + if (likely(priv->rxcoalescing)) { + gfar_write(&priv->regs->rxic, 0); gfar_write(&priv->regs->rxic, mk_ic_value(priv->rxcount, priv->rxtime)); - else - gfar_write(&priv->regs->rxic, 0); + } spin_unlock_irqrestore(&priv->rxlock, flags); #endif @@ -1593,11 +1593,11 @@ static int gfar_poll(struct napi_struct *napi, int budget) /* If we are coalescing interrupts, update the timer */ /* Otherwise, clear it */ - if (priv->rxcoalescing) + if (likely(priv->rxcoalescing)) { + gfar_write(&priv->regs->rxic, 0); gfar_write(&priv->regs->rxic, mk_ic_value(priv->rxcount, priv->rxtime)); - else - gfar_write(&priv->regs->rxic, 0); + } } return howmany; diff --git a/drivers/net/gianfar.h b/drivers/net/gianfar.h index fcfa1bd57280..ea8671f87bce 100644 --- a/drivers/net/gianfar.h +++ b/drivers/net/gianfar.h @@ -124,11 +124,11 @@ extern const char gfar_driver_version[]; #define DEFAULT_TX_COALESCE 1 #define DEFAULT_TXCOUNT 16 -#define DEFAULT_TXTIME 4 +#define DEFAULT_TXTIME 21 #define DEFAULT_RX_COALESCE 1 #define DEFAULT_RXCOUNT 16 -#define DEFAULT_RXTIME 4 +#define DEFAULT_RXTIME 21 #define TBIPA_VALUE 0x1f #define MIIMCFG_INIT_VALUE 0x00000007