diff options
Diffstat (limited to 'drivers/net/wireless/libertas')
-rw-r--r-- | drivers/net/wireless/libertas/if_cs.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c index 873ab10a0786..b5d0cd4c411a 100644 --- a/drivers/net/wireless/libertas/if_cs.c +++ b/drivers/net/wireless/libertas/if_cs.c | |||
@@ -379,6 +379,8 @@ static irqreturn_t if_cs_interrupt(int irq, void *data) | |||
379 | 379 | ||
380 | /* Ask card interrupt cause register if there is something for us */ | 380 | /* Ask card interrupt cause register if there is something for us */ |
381 | cause = if_cs_read16(card, IF_CS_CARD_INT_CAUSE); | 381 | cause = if_cs_read16(card, IF_CS_CARD_INT_CAUSE); |
382 | lbs_deb_cs("cause 0x%04x\n", cause); | ||
383 | |||
382 | if (cause == 0) { | 384 | if (cause == 0) { |
383 | /* Not for us */ | 385 | /* Not for us */ |
384 | return IRQ_NONE; | 386 | return IRQ_NONE; |
@@ -390,10 +392,6 @@ static irqreturn_t if_cs_interrupt(int irq, void *data) | |||
390 | return IRQ_HANDLED; | 392 | return IRQ_HANDLED; |
391 | } | 393 | } |
392 | 394 | ||
393 | /* Clear interrupt cause */ | ||
394 | if_cs_write16(card, IF_CS_CARD_INT_CAUSE, cause & IF_CS_BIT_MASK); | ||
395 | lbs_deb_cs("cause 0x%04x\n", cause); | ||
396 | |||
397 | if (cause & IF_CS_BIT_RX) { | 395 | if (cause & IF_CS_BIT_RX) { |
398 | struct sk_buff *skb; | 396 | struct sk_buff *skb; |
399 | lbs_deb_cs("rx packet\n"); | 397 | lbs_deb_cs("rx packet\n"); |
@@ -434,6 +432,9 @@ static irqreturn_t if_cs_interrupt(int irq, void *data) | |||
434 | lbs_queue_event(priv, event >> 8 & 0xff); | 432 | lbs_queue_event(priv, event >> 8 & 0xff); |
435 | } | 433 | } |
436 | 434 | ||
435 | /* Clear interrupt cause */ | ||
436 | if_cs_write16(card, IF_CS_CARD_INT_CAUSE, cause & IF_CS_BIT_MASK); | ||
437 | |||
437 | lbs_deb_leave(LBS_DEB_CS); | 438 | lbs_deb_leave(LBS_DEB_CS); |
438 | return IRQ_HANDLED; | 439 | return IRQ_HANDLED; |
439 | } | 440 | } |