From 188f00f5d50bb17bc3cc3c1cfb904311e86c28e7 Mon Sep 17 00:00:00 2001 From: Holger Schurig Date: Thu, 5 Jun 2008 13:06:15 +0200 Subject: [PATCH] --- yaml --- r: 102920 b: refs/heads/master c: 3073556171f1cf2044ff38c1fc3b9f6c805f0873 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/libertas/if_cs.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 60380c364136..b663fe94c479 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d2c3cc0070d32bf6cabe6b82942c3e80eae0bfc3 +refs/heads/master: 3073556171f1cf2044ff38c1fc3b9f6c805f0873 diff --git a/trunk/drivers/net/wireless/libertas/if_cs.c b/trunk/drivers/net/wireless/libertas/if_cs.c index 873ab10a0786..b5d0cd4c411a 100644 --- a/trunk/drivers/net/wireless/libertas/if_cs.c +++ b/trunk/drivers/net/wireless/libertas/if_cs.c @@ -379,6 +379,8 @@ static irqreturn_t if_cs_interrupt(int irq, void *data) /* Ask card interrupt cause register if there is something for us */ cause = if_cs_read16(card, IF_CS_CARD_INT_CAUSE); + lbs_deb_cs("cause 0x%04x\n", cause); + if (cause == 0) { /* Not for us */ return IRQ_NONE; @@ -390,10 +392,6 @@ static irqreturn_t if_cs_interrupt(int irq, void *data) return IRQ_HANDLED; } - /* Clear interrupt cause */ - if_cs_write16(card, IF_CS_CARD_INT_CAUSE, cause & IF_CS_BIT_MASK); - lbs_deb_cs("cause 0x%04x\n", cause); - if (cause & IF_CS_BIT_RX) { struct sk_buff *skb; lbs_deb_cs("rx packet\n"); @@ -434,6 +432,9 @@ static irqreturn_t if_cs_interrupt(int irq, void *data) lbs_queue_event(priv, event >> 8 & 0xff); } + /* Clear interrupt cause */ + if_cs_write16(card, IF_CS_CARD_INT_CAUSE, cause & IF_CS_BIT_MASK); + lbs_deb_leave(LBS_DEB_CS); return IRQ_HANDLED; }