projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
19e016d
)
net/macb: clear tx/rx completion flags in ISR
author
Steffen Trumtrar
<
[email protected]
>
Wed, 27 Mar 2013 23:07:05 +0000
(23:07 +0000)
committer
David S. Miller
<
[email protected]
>
Thu, 28 Mar 2013 18:41:18 +0000
(14:41 -0400)
At least in the cadence IP core on the Xilinx Zynq SoC the TCOMP/RCOMP flags
are not auto-cleaned. As these flags are evaluated, they need to be cleaned.
Signed-off-by: Steffen Trumtrar <
[email protected]
>
Cc: Nicolas Ferre <
[email protected]
>
Signed-off-by: David S. Miller <
[email protected]
>
drivers/net/ethernet/cadence/macb.c
patch
|
blob
|
history
diff --git
a/drivers/net/ethernet/cadence/macb.c
b/drivers/net/ethernet/cadence/macb.c
index 3a5d680ff8f90dc38f1bf7d4d86bef07057fc8e1..3593c2c594a6440bf31450d9aa4c8fa285056726 100644
(file)
--- a/
drivers/net/ethernet/cadence/macb.c
+++ b/
drivers/net/ethernet/cadence/macb.c
@@
-485,6
+485,8
@@
static void macb_tx_interrupt(struct macb *bp)
status = macb_readl(bp, TSR);
macb_writel(bp, TSR, status);
+ macb_writel(bp, ISR, MACB_BIT(TCOMP));
+
netdev_vdbg(bp->dev, "macb_tx_interrupt status = 0x%03lx\n",
(unsigned long)status);
@@
-736,6
+738,7
@@
static irqreturn_t macb_interrupt(int irq, void *dev_id)
* now.
*/
macb_writel(bp, IDR, MACB_RX_INT_FLAGS);
+ macb_writel(bp, ISR, MACB_BIT(RCOMP));
if (napi_schedule_prep(&bp->napi)) {
netdev_vdbg(bp->dev, "scheduling RX softirq\n");