brcmfmac: improve Raspberry Pi 3 stability

- Really disable power management (wrong config flags).
- Disable internal roaming engine.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
This commit is contained in:
Álvaro Fernández Rojas 2017-02-07 14:45:19 +01:00
parent ec10bb18f5
commit deb15cb23c
2 changed files with 25 additions and 2 deletions

View file

@ -18,8 +18,8 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
* preference in cfg struct to apply this to * preference in cfg struct to apply this to
* FW later while initializing the dongle * FW later while initializing the dongle
*/ */
+#if defined(CONFIG_BCM2708) || defined(CONFIG_BCM2709) +#if defined(CONFIG_ARCH_BCM2708) || defined(CONFIG_ARCH_BCM2709)
+ pr_info("power management disabled\n"); + brcmf_dbg(INFO, "power management disabled\n");
+ enabled = false; + enabled = false;
+#endif +#endif
cfg->pwr_save = enabled; cfg->pwr_save = enabled;

View file

@ -0,0 +1,23 @@
brcmfmac: do not use internal roaming engine by default
Some evidence of curing disconnects with this disabled, so make it a default.
Can be overridden with module parameter roamoff=0
See: http://projectable.me/optimize-my-pi-wi-fi/
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
---
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
@@ -69,7 +69,11 @@ static int brcmf_fcmode;
module_param_named(fcmode, brcmf_fcmode, int, 0);
MODULE_PARM_DESC(fcmode, "Mode of firmware signalled flow control");
+#if defined(CONFIG_ARCH_BCM2708) || defined(CONFIG_ARCH_BCM2709)
+static int brcmf_roamoff = 1;
+#else
static int brcmf_roamoff;
+#endif
module_param_named(roamoff, brcmf_roamoff, int, S_IRUSR);
MODULE_PARM_DESC(roamoff, "Do not use internal roaming engine");