diff options
author | Dong Aisheng <b29396@freescale.com> | 2015-06-08 22:02:29 +0800 |
---|---|---|
committer | Dong Aisheng <b29396@freescale.com> | 2015-06-10 16:51:41 +0800 |
commit | 2ce8a1ad56f76a072656c0d244c3b1f72603fac0 (patch) | |
tree | faf03a267918f69b7d3df250e23e30525a74fa39 /drivers/net | |
parent | ce9e893341c6196a5c31b3265525218c537d3e3e (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>
(cherry picked from commit ecef28b0c1c081b4673a12ebb4e87bfc22baf58c)
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/bcmdhd/Kconfig | 4 | ||||
-rw-r--r-- | drivers/net/wireless/bcmdhd/Makefile | 7 | ||||
-rw-r--r-- | drivers/net/wireless/bcmdhd/dhd_linux_platdev.c | 11 |
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(); |