From 5b1aa45f3baae706727c65b9d38df4127a6792b4 Mon Sep 17 00:00:00 2001 From: Daniel Hellstrom Date: Fri, 14 Jan 2011 03:02:42 +0000 Subject: [PATCH] --- yaml --- r: 231240 b: refs/heads/master c: 1ca23434dd0001bd2bfff31b8251436b34aa9066 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/greth.c | 9 +++++---- trunk/drivers/net/greth.h | 2 ++ 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index ced418ccaa3d..6ac43ac8012d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2436af8ca7a6c4679cf7da7e3867f1d5cd8528b7 +refs/heads/master: 1ca23434dd0001bd2bfff31b8251436b34aa9066 diff --git a/trunk/drivers/net/greth.c b/trunk/drivers/net/greth.c index e48d18216cbe..b888abe6cd21 100644 --- a/trunk/drivers/net/greth.c +++ b/trunk/drivers/net/greth.c @@ -586,12 +586,13 @@ static irqreturn_t greth_interrupt(int irq, void *dev_id) status = GRETH_REGLOAD(greth->regs->status); /* Handle rx and tx interrupts through poll */ - if (status & (GRETH_INT_RX | GRETH_INT_TX)) { + if (status & (GRETH_INT_RE | GRETH_INT_RX | + GRETH_INT_TE | GRETH_INT_TX)) { /* Clear interrupt status */ - GRETH_REGORIN(greth->regs->status, - status & (GRETH_INT_RX | GRETH_INT_TX)); - + GRETH_REGSAVE(greth->regs->status, + status & (GRETH_INT_RE | GRETH_INT_RX | + GRETH_INT_TE | GRETH_INT_TX)); retval = IRQ_HANDLED; /* Disable interrupts and schedule poll() */ diff --git a/trunk/drivers/net/greth.h b/trunk/drivers/net/greth.h index 03ad903cd676..be0f2062bd14 100644 --- a/trunk/drivers/net/greth.h +++ b/trunk/drivers/net/greth.h @@ -23,6 +23,7 @@ #define GRETH_BD_LEN 0x7FF #define GRETH_TXEN 0x1 +#define GRETH_INT_TE 0x2 #define GRETH_INT_TX 0x8 #define GRETH_TXI 0x4 #define GRETH_TXBD_STATUS 0x0001C000 @@ -35,6 +36,7 @@ #define GRETH_TXBD_ERR_UE 0x4000 #define GRETH_TXBD_ERR_AL 0x8000 +#define GRETH_INT_RE 0x1 #define GRETH_INT_RX 0x4 #define GRETH_RXEN 0x2 #define GRETH_RXI 0x8