diff options
| author | Michael Wu <flamingice@sourmilk.net> | 2007-09-24 18:10:25 -0400 |
|---|---|---|
| committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-10 19:53:07 -0400 |
| commit | 2e08ac7e27c1e54ebf0f82abc03285663efe7d89 (patch) | |
| tree | 0a4bb4c8239faa7313560780edfa19bfc3d57586 /drivers | |
| parent | 3a1532f2f87175285b9459dcce58e467feec6b78 (diff) | |
[PATCH] adm8211: kill interrupt loop
Looping in the interrupt handler is unnecessary.
Signed-off-by: Michael Wu <flamingice@sourmilk.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/net/wireless/adm8211.c | 84 |
1 files changed, 39 insertions, 45 deletions
diff --git a/drivers/net/wireless/adm8211.c b/drivers/net/wireless/adm8211.c index 49a6b9eda4ea..0893d0d4a5eb 100644 --- a/drivers/net/wireless/adm8211.c +++ b/drivers/net/wireless/adm8211.c | |||
| @@ -458,51 +458,45 @@ do { \ | |||
| 458 | 458 | ||
| 459 | struct ieee80211_hw *dev = dev_id; | 459 | struct ieee80211_hw *dev = dev_id; |
| 460 | struct adm8211_priv *priv = dev->priv; | 460 | struct adm8211_priv *priv = dev->priv; |
| 461 | unsigned int count = 0; | 461 | u32 stsr = ADM8211_CSR_READ(STSR); |
| 462 | u32 stsr; | 462 | ADM8211_CSR_WRITE(STSR, stsr); |
| 463 | 463 | if (stsr == 0xffffffff) | |
| 464 | do { | 464 | return IRQ_HANDLED; |
| 465 | stsr = ADM8211_CSR_READ(STSR); | 465 | |
| 466 | ADM8211_CSR_WRITE(STSR, stsr); | 466 | if (!(stsr & (ADM8211_STSR_NISS | ADM8211_STSR_AISS))) |
| 467 | if (stsr == 0xffffffff) | 467 | return IRQ_HANDLED; |
| 468 | return IRQ_HANDLED; | 468 | |
| 469 | 469 | if (stsr & ADM8211_STSR_RCI) | |
| 470 | if (!(stsr & (ADM8211_STSR_NISS | ADM8211_STSR_AISS))) | 470 | adm8211_interrupt_rci(dev); |
| 471 | break; | 471 | if (stsr & ADM8211_STSR_TCI) |
| 472 | 472 | adm8211_interrupt_tci(dev); | |
| 473 | if (stsr & ADM8211_STSR_RCI) | 473 | |
| 474 | adm8211_interrupt_rci(dev); | 474 | /*ADM8211_INT(LinkOn);*/ |
| 475 | if (stsr & ADM8211_STSR_TCI) | 475 | /*ADM8211_INT(LinkOff);*/ |
| 476 | adm8211_interrupt_tci(dev); | 476 | |
| 477 | 477 | ADM8211_INT(PCF); | |
| 478 | /*ADM8211_INT(LinkOn);*/ | 478 | ADM8211_INT(BCNTC); |
| 479 | /*ADM8211_INT(LinkOff);*/ | 479 | ADM8211_INT(GPINT); |
| 480 | 480 | ADM8211_INT(ATIMTC); | |
| 481 | ADM8211_INT(PCF); | 481 | ADM8211_INT(TSFTF); |
| 482 | ADM8211_INT(BCNTC); | 482 | ADM8211_INT(TSCZ); |
| 483 | ADM8211_INT(GPINT); | 483 | ADM8211_INT(SQL); |
| 484 | ADM8211_INT(ATIMTC); | 484 | ADM8211_INT(WEPTD); |
| 485 | ADM8211_INT(TSFTF); | 485 | ADM8211_INT(ATIME); |
| 486 | ADM8211_INT(TSCZ); | 486 | /*ADM8211_INT(TBTT);*/ |
| 487 | ADM8211_INT(SQL); | 487 | ADM8211_INT(TEIS); |
| 488 | ADM8211_INT(WEPTD); | 488 | ADM8211_INT(FBE); |
| 489 | ADM8211_INT(ATIME); | 489 | ADM8211_INT(REIS); |
| 490 | /*ADM8211_INT(TBTT);*/ | 490 | ADM8211_INT(GPTT); |
| 491 | ADM8211_INT(TEIS); | 491 | ADM8211_INT(RPS); |
| 492 | ADM8211_INT(FBE); | 492 | ADM8211_INT(RDU); |
| 493 | ADM8211_INT(REIS); | 493 | ADM8211_INT(TUF); |
| 494 | ADM8211_INT(GPTT); | 494 | /*ADM8211_INT(TRT);*/ |
| 495 | ADM8211_INT(RPS); | 495 | /*ADM8211_INT(TLT);*/ |
| 496 | ADM8211_INT(RDU); | 496 | /*ADM8211_INT(TDU);*/ |
| 497 | ADM8211_INT(TUF); | 497 | ADM8211_INT(TPS); |
| 498 | /*ADM8211_INT(TRT);*/ | 498 | |
| 499 | /*ADM8211_INT(TLT);*/ | 499 | return IRQ_HANDLED; |
| 500 | /*ADM8211_INT(TDU);*/ | ||
| 501 | ADM8211_INT(TPS); | ||
| 502 | |||
| 503 | } while (count++ < 20); | ||
| 504 | |||
| 505 | return IRQ_RETVAL(count); | ||
| 506 | 500 | ||
| 507 | #undef ADM8211_INT | 501 | #undef ADM8211_INT |
| 508 | } | 502 | } |
