Search Linux Wireless

[PATCH 1/6] adm8211: kill interrupt loop

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Michael Wu <flamingice@xxxxxxxxxxxx>

Looping in the interrupt handler is unnecessary.

Signed-off-by: Michael Wu <flamingice@xxxxxxxxxxxx>
---

 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 49a6b9e..0893d0d 100644
--- a/drivers/net/wireless/adm8211.c
+++ b/drivers/net/wireless/adm8211.c
@@ -458,51 +458,45 @@ do {									   \
 
 	struct ieee80211_hw *dev = dev_id;
 	struct adm8211_priv *priv = dev->priv;
-	unsigned int count = 0;
-	u32 stsr;
-
-	do {
-		stsr = ADM8211_CSR_READ(STSR);
-		ADM8211_CSR_WRITE(STSR, stsr);
-		if (stsr == 0xffffffff)
-			return IRQ_HANDLED;
-
-		if (!(stsr & (ADM8211_STSR_NISS | ADM8211_STSR_AISS)))
-			break;
-
-		if (stsr & ADM8211_STSR_RCI)
-			adm8211_interrupt_rci(dev);
-		if (stsr & ADM8211_STSR_TCI)
-			adm8211_interrupt_tci(dev);
-
-		/*ADM8211_INT(LinkOn);*/
-		/*ADM8211_INT(LinkOff);*/
-
-		ADM8211_INT(PCF);
-		ADM8211_INT(BCNTC);
-		ADM8211_INT(GPINT);
-		ADM8211_INT(ATIMTC);
-		ADM8211_INT(TSFTF);
-		ADM8211_INT(TSCZ);
-		ADM8211_INT(SQL);
-		ADM8211_INT(WEPTD);
-		ADM8211_INT(ATIME);
-		/*ADM8211_INT(TBTT);*/
-		ADM8211_INT(TEIS);
-		ADM8211_INT(FBE);
-		ADM8211_INT(REIS);
-		ADM8211_INT(GPTT);
-		ADM8211_INT(RPS);
-		ADM8211_INT(RDU);
-		ADM8211_INT(TUF);
-		/*ADM8211_INT(TRT);*/
-		/*ADM8211_INT(TLT);*/
-		/*ADM8211_INT(TDU);*/
-		ADM8211_INT(TPS);
-
-	} while (count++ < 20);
-
-	return IRQ_RETVAL(count);
+	u32 stsr = ADM8211_CSR_READ(STSR);
+	ADM8211_CSR_WRITE(STSR, stsr);
+	if (stsr == 0xffffffff)
+		return IRQ_HANDLED;
+
+	if (!(stsr & (ADM8211_STSR_NISS | ADM8211_STSR_AISS)))
+		return IRQ_HANDLED;
+
+	if (stsr & ADM8211_STSR_RCI)
+		adm8211_interrupt_rci(dev);
+	if (stsr & ADM8211_STSR_TCI)
+		adm8211_interrupt_tci(dev);
+
+	/*ADM8211_INT(LinkOn);*/
+	/*ADM8211_INT(LinkOff);*/
+
+	ADM8211_INT(PCF);
+	ADM8211_INT(BCNTC);
+	ADM8211_INT(GPINT);
+	ADM8211_INT(ATIMTC);
+	ADM8211_INT(TSFTF);
+	ADM8211_INT(TSCZ);
+	ADM8211_INT(SQL);
+	ADM8211_INT(WEPTD);
+	ADM8211_INT(ATIME);
+	/*ADM8211_INT(TBTT);*/
+	ADM8211_INT(TEIS);
+	ADM8211_INT(FBE);
+	ADM8211_INT(REIS);
+	ADM8211_INT(GPTT);
+	ADM8211_INT(RPS);
+	ADM8211_INT(RDU);
+	ADM8211_INT(TUF);
+	/*ADM8211_INT(TRT);*/
+	/*ADM8211_INT(TLT);*/
+	/*ADM8211_INT(TDU);*/
+	ADM8211_INT(TPS);
+
+	return IRQ_HANDLED;
 
 #undef ADM8211_INT
 }

-
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux