aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/366-brcmfmac-prohibit-ACPI-power-management-for-brcmfmac.patch
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2015-05-26 12:14:34 +0000
committerRafał Miłecki <zajec5@gmail.com>2015-05-26 12:14:34 +0000
commit2679f7071a5c3ddd97d927f7b38673cdc7885a97 (patch)
tree90bebd9bd31c0be18b3976a88d8601df2645e6f1 /package/kernel/mac80211/patches/366-brcmfmac-prohibit-ACPI-power-management-for-brcmfmac.patch
parent17c4ddb6b92ef06c1918abecd3de8355afb4ab2d (diff)
downloadupstream-2679f7071a5c3ddd97d927f7b38673cdc7885a97.tar.gz
upstream-2679f7071a5c3ddd97d927f7b38673cdc7885a97.tar.bz2
upstream-2679f7071a5c3ddd97d927f7b38673cdc7885a97.zip
mac80211: backport today's brcmfmac changes
It should improve msgbuf throughput (PCIe devices like BCM43602). Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@45767 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/kernel/mac80211/patches/366-brcmfmac-prohibit-ACPI-power-management-for-brcmfmac.patch')
-rw-r--r--package/kernel/mac80211/patches/366-brcmfmac-prohibit-ACPI-power-management-for-brcmfmac.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/366-brcmfmac-prohibit-ACPI-power-management-for-brcmfmac.patch b/package/kernel/mac80211/patches/366-brcmfmac-prohibit-ACPI-power-management-for-brcmfmac.patch
new file mode 100644
index 0000000000..d46b300daa
--- /dev/null
+++ b/package/kernel/mac80211/patches/366-brcmfmac-prohibit-ACPI-power-management-for-brcmfmac.patch
@@ -0,0 +1,47 @@
+From: "Fu, Zhonghui" <zhonghui.fu@linux.intel.com>
+Date: Mon, 11 May 2015 10:41:32 +0800
+Subject: [PATCH] brcmfmac: prohibit ACPI power management for brcmfmac driver
+
+ACPI will manage WiFi chip's power state during suspend/resume
+process on some tablet platforms(such as ASUS T100TA). This is
+not supported by brcmfmac driver now, and the context of WiFi
+chip will be damaged after resume. This patch informs ACPI not
+to manage WiFi chip's power state.
+
+Signed-off-by: Zhonghui Fu <zhonghui.fu@linux.intel.com>
+Acked-by: Arend van Spriel <arend@broadcom.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+
+--- a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c
++++ b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c
+@@ -33,6 +33,7 @@
+ #include <linux/suspend.h>
+ #include <linux/errno.h>
+ #include <linux/module.h>
++#include <linux/acpi.h>
+ #include <net/cfg80211.h>
+
+ #include <defs.h>
+@@ -1122,6 +1123,8 @@ static int brcmf_ops_sdio_probe(struct s
+ int err;
+ struct brcmf_sdio_dev *sdiodev;
+ struct brcmf_bus *bus_if;
++ struct device *dev;
++ struct acpi_device *adev;
+
+ brcmf_dbg(SDIO, "Enter\n");
+ brcmf_dbg(SDIO, "Class=%x\n", func->class);
+@@ -1129,6 +1132,12 @@ static int brcmf_ops_sdio_probe(struct s
+ brcmf_dbg(SDIO, "sdio device ID: 0x%04x\n", func->device);
+ brcmf_dbg(SDIO, "Function#: %d\n", func->num);
+
++ /* prohibit ACPI power management for this device */
++ dev = &func->dev;
++ adev = ACPI_COMPANION(dev);
++ if (adev)
++ adev->flags.power_manageable = 0;
++
+ /* Consume func num 1 but dont do anything with it. */
+ if (func->num == 1)
+ return 0;