aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Wu <flamingice@sourmilk.net>2007-09-24 18:10:25 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:53:07 -0400
commit2e08ac7e27c1e54ebf0f82abc03285663efe7d89 (patch)
tree0a4bb4c8239faa7313560780edfa19bfc3d57586
parent3a1532f2f87175285b9459dcce58e467feec6b78 (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>
-rw-r--r--drivers/net/wireless/adm8211.c84
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}