summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRebecca Schultz Zavin <rebecca@android.com>2010-08-27 18:40:49 -0700
committerColin Cross <ccross@android.com>2010-09-29 17:49:46 -0700
commitb4a89b9b9ad67234f7764cb53a6922da38775e08 (patch)
tree965956658444a3836532c240901e44872439a477
parentb8fc65dc90828c99472ba20e4cf4c217fe2ed20a (diff)
Revert "net: wireless: bcm4329: Fix HW_OOB interrupt processing"
This reverts commit 8bd035daa820dc5612ae311262c71dc133871046.
-rw-r--r--drivers/net/wireless/bcm4329/Makefile2
-rw-r--r--drivers/net/wireless/bcm4329/bcmsdh_linux.c24
-rw-r--r--drivers/net/wireless/bcm4329/bcmsdh_sdmmc.c2
-rw-r--r--drivers/net/wireless/bcm4329/dhd_sdio.c4
4 files changed, 10 insertions, 22 deletions
diff --git a/drivers/net/wireless/bcm4329/Makefile b/drivers/net/wireless/bcm4329/Makefile
index 594fa304754c..af6ca5c27c0d 100644
--- a/drivers/net/wireless/bcm4329/Makefile
+++ b/drivers/net/wireless/bcm4329/Makefile
@@ -6,7 +6,7 @@ DHDCFLAGS = -DLINUX -DBCMDRIVER -DBCMDONGLEHOST -DDHDTHREAD -DBCMWPA2 \
-Wall -Wstrict-prototypes -Werror -DOOB_INTR_ONLY -DCUSTOMER_HW2 \
-DDHD_USE_STATIC_BUF -DMMC_SDIO_ABORT -DDHD_DEBUG_TRAP -DSOFTAP \
-DEMBEDDED_PLATFORM -DARP_OFFLOAD_SUPPORT \
- -DGET_CUSTOM_MAC_ENABLE -DSET_RANDOM_MAC_SOFTAP -DCSCAN -DHW_OOB \
+ -DGET_CUSTOM_MAC_ENABLE -DSET_RANDOM_MAC_SOFTAP -DCSCAN \
-Idrivers/net/wireless/bcm4329 -Idrivers/net/wireless/bcm4329/include
DHDOFILES = dhd_linux.o linux_osl.o bcmutils.o dhd_common.o dhd_custom_gpio.o \
diff --git a/drivers/net/wireless/bcm4329/bcmsdh_linux.c b/drivers/net/wireless/bcm4329/bcmsdh_linux.c
index e58a62014f5a..910b6d0afdcf 100644
--- a/drivers/net/wireless/bcm4329/bcmsdh_linux.c
+++ b/drivers/net/wireless/bcm4329/bcmsdh_linux.c
@@ -570,28 +570,14 @@ bcmsdh_unregister(void)
}
#if defined(OOB_INTR_ONLY)
-void bcmsdh_oob_intr_set(bool enable)
-{
- static bool curstate = 1;
-
- if (curstate != enable) {
- if (enable)
- enable_irq(sdhcinfo->oob_irq);
- else
- disable_irq_nosync(sdhcinfo->oob_irq);
- curstate = enable;
- }
-}
-
static irqreturn_t wlan_oob_irq(int irq, void *dev_id)
{
dhd_pub_t *dhdp;
dhdp = (dhd_pub_t *)dev_get_drvdata(sdhcinfo->dev);
- bcmsdh_oob_intr_set(0);
-
if (dhdp == NULL) {
+ disable_irq(sdhcinfo->oob_irq);
SDLX_MSG(("Out of band GPIO interrupt fired way too early\n"));
return IRQ_HANDLED;
}
@@ -632,6 +618,14 @@ void bcmsdh_unregister_oob_intr(void)
free_irq(sdhcinfo->oob_irq, NULL);
sdhcinfo->oob_irq_registered = FALSE;
}
+
+void bcmsdh_oob_intr_set(bool enable)
+{
+ if (enable)
+ enable_irq(sdhcinfo->oob_irq);
+ else
+ disable_irq(sdhcinfo->oob_irq);
+}
#endif /* defined(OOB_INTR_ONLY) */
/* Module parameters specific to each host-controller driver */
diff --git a/drivers/net/wireless/bcm4329/bcmsdh_sdmmc.c b/drivers/net/wireless/bcm4329/bcmsdh_sdmmc.c
index 5a3ca3d11893..48d3f3775f0e 100644
--- a/drivers/net/wireless/bcm4329/bcmsdh_sdmmc.c
+++ b/drivers/net/wireless/bcm4329/bcmsdh_sdmmc.c
@@ -676,8 +676,6 @@ sdioh_enable_hw_oob_intr(sdioh_info_t *sd, bool enable)
else
data = 4; /* disable hw oob interrupt */
- data |= 4; /* Active HIGH */
-
status = sdioh_request_byte(sd, SDIOH_WRITE, 0, 0xf2, &data);
return status;
}
diff --git a/drivers/net/wireless/bcm4329/dhd_sdio.c b/drivers/net/wireless/bcm4329/dhd_sdio.c
index 8bdadb3fc1db..94a17d713f79 100644
--- a/drivers/net/wireless/bcm4329/dhd_sdio.c
+++ b/drivers/net/wireless/bcm4329/dhd_sdio.c
@@ -4154,9 +4154,6 @@ dhdsdio_dpc(dhd_bus_t *bus)
if (newstatus) {
W_SDREG(newstatus, &regs->intstatus, retries);
bus->f1regdata++;
-#if defined(OOB_INTR_ONLY)
- bcmsdh_oob_intr_set(1);
-#endif
}
}
@@ -4221,7 +4218,6 @@ dhdsdio_dpc(dhd_bus_t *bus)
bus->intstatus = intstatus;
clkwait:
-
/* Re-enable interrupts to detect new device events (mailbox, rx frame)
* or clock availability. (Allows tx loop to check ipend if desired.)
* (Unless register access seems hosed, as we may not be able to ACK...)