summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDong Aisheng <b29396@freescale.com>2015-06-08 22:02:29 +0800
committerNitin Garg <nitin.garg@freescale.com>2015-09-17 09:23:38 -0500
commit20999ad59b5dacab558300ab6bb329b934410eed (patch)
tree8a951cc2771b3ae6ec6c4533d68fee0c387a7b50
parent75ba928616cdf5150158ce5a7bdc3c837548b772 (diff)
MLK-11080-2 bcmdhd: add WL_HOST_WAKEUP support
WL_HOST_WAKEUP can use outband GPIO interrupt instead of the standard SDIO interrupt which can improve the WiFi performance a lot. After enable WL_HOST_WAKE, the performance could increase about TX: 42% / RX: 26%. Original: Tx: 107 Mbits/sec Rx: 80.2 Mbits/sec Now: Tx: 152 Mbits/sec Rx: 101 Mbits/sec Signed-off-by: Dong Aisheng <b29396@freescale.com>
-rw-r--r--drivers/net/wireless/bcmdhd/Kconfig4
-rw-r--r--drivers/net/wireless/bcmdhd/Makefile7
-rw-r--r--drivers/net/wireless/bcmdhd/dhd_linux_platdev.c11
3 files changed, 14 insertions, 8 deletions
diff --git a/drivers/net/wireless/bcmdhd/Kconfig b/drivers/net/wireless/bcmdhd/Kconfig
index b05d5e5c6b79..c1f23d12c248 100644
--- a/drivers/net/wireless/bcmdhd/Kconfig
+++ b/drivers/net/wireless/bcmdhd/Kconfig
@@ -19,6 +19,10 @@ config BCM4354
tristate "BCM4354 support"
depends on BCMDHD
+config BCM4339
+ tristate "BCM4339 support"
+ depends on BCMDHD
+
config BCMDHD_FW_PATH
depends on BCMDHD
string "Firmware path"
diff --git a/drivers/net/wireless/bcmdhd/Makefile b/drivers/net/wireless/bcmdhd/Makefile
index 88ab641bd682..dd71f0019e8c 100644
--- a/drivers/net/wireless/bcmdhd/Makefile
+++ b/drivers/net/wireless/bcmdhd/Makefile
@@ -149,8 +149,8 @@ ifneq ($(CONFIG_BCM4339),)
endif
ifneq ($(CONFIG_BCMDHD_SDIO),)
- # DHDCFLAGS += -DBDC -DOOB_INTR_ONLY -DDHD_BCMEVENTS -DMMC_SDIO_ABORT
- DHDCFLAGS += -DBDC -DSDIO_ISR_THREAD -DDHD_BCMEVENTS -DMMC_SDIO_ABORT
+# DHDCFLAGS += -DBDC -DSDIO_ISR_THREAD -DDHD_BCMEVENTS -DMMC_SDIO_ABORT
+ DHDCFLAGS += -DBDC -DOOB_INTR_ONLY -DDHD_BCMEVENTS -DMMC_SDIO_ABORT
DHDCFLAGS += -DBCMSDIO -DBCMLXSDMMC -DUSE_SDIOFIFO_IOVAR
endif
@@ -158,7 +158,8 @@ ifneq ($(CONFIG_BCMDHD_PCIE),)
DHDCFLAGS += -DPCIE_FULL_DONGLE -DBCMPCIE -DCUSTOM_DPC_PRIO_SETTING=-1
endif
-#EXTRA_LDFLAGS += --strip-debug
+# comment out when running debug mode -- otherwise will slow down performance.
+EXTRA_LDFLAGS += --strip-debug
EXTRA_CFLAGS += $(DHDCFLAGS) -DDHD_DEBUG
EXTRA_CFLAGS += -DSRCBASE=\"$(src)\"
diff --git a/drivers/net/wireless/bcmdhd/dhd_linux_platdev.c b/drivers/net/wireless/bcmdhd/dhd_linux_platdev.c
index a4bbb83695aa..fb6eb1ac8a46 100644
--- a/drivers/net/wireless/bcmdhd/dhd_linux_platdev.c
+++ b/drivers/net/wireless/bcmdhd/dhd_linux_platdev.c
@@ -287,9 +287,10 @@ static int wifi_plat_dev_drv_probe(struct platform_device *pdev)
{
struct resource *resource;
wifi_adapter_info_t *adapter;
-#ifdef CONFIG_DTS
-// int irq, gpio;
-#endif /* CONFIG_DTS */
+
+#if defined(CONFIG_DTS) && defined(OOB_INTR_ONLY)
+ int irq, gpio;
+#endif
/* Android style wifi platform data device ("bcmdhd_wlan" or "bcm4329_wlan")
* is kept for backward compatibility and supports only 1 adapter
@@ -314,7 +315,7 @@ static int wifi_plat_dev_drv_probe(struct platform_device *pdev)
return -1;
}
-#if 0
+#ifdef OOB_INTR_ONLY
/* This is to get the irq for the OOB */
gpio = of_get_gpio(pdev->dev.of_node, 0);
@@ -332,7 +333,7 @@ static int wifi_plat_dev_drv_probe(struct platform_device *pdev)
/* need to change the flags according to our requirement */
adapter->intr_flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL |
IORESOURCE_IRQ_SHAREABLE;
-#endif
+#endif /* OOB_INTR_ONLY */
#endif /* CONFIG_DTS */
wifi_plat_dev_probe_ret = dhd_wifi_platform_load();