From: Álvaro Fernández Rojas Date: Tue, 7 Feb 2017 13:45:19 +0000 (+0100) Subject: brcmfmac: improve Raspberry Pi 3 stability X-Git-Tag: v17.01.0~73 X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=commitdiff_plain;h=86bd88669704ca02fbdb34cdcb7366bfc12b39a9 brcmfmac: improve Raspberry Pi 3 stability - Really disable power management (wrong config flags). - Disable internal roaming engine. Signed-off-by: Álvaro Fernández Rojas --- diff --git a/package/kernel/mac80211/patches/862-brcmfmac-Disable-power-management.patch b/package/kernel/mac80211/patches/862-brcmfmac-Disable-power-management.patch index 83bc7fe1fd..5a93fb4667 100644 --- a/package/kernel/mac80211/patches/862-brcmfmac-Disable-power-management.patch +++ b/package/kernel/mac80211/patches/862-brcmfmac-Disable-power-management.patch @@ -18,8 +18,8 @@ Signed-off-by: Phil Elwell * preference in cfg struct to apply this to * FW later while initializing the dongle */ -+#if defined(CONFIG_BCM2708) || defined(CONFIG_BCM2709) -+ pr_info("power management disabled\n"); ++#if defined(CONFIG_ARCH_BCM2708) || defined(CONFIG_ARCH_BCM2709) ++ brcmf_dbg(INFO, "power management disabled\n"); + enabled = false; +#endif cfg->pwr_save = enabled; diff --git a/package/kernel/mac80211/patches/864-brcmfmac-do-not-use-internal-roaming-engine-by-default.patch b/package/kernel/mac80211/patches/864-brcmfmac-do-not-use-internal-roaming-engine-by-default.patch new file mode 100644 index 0000000000..5ae4c11228 --- /dev/null +++ b/package/kernel/mac80211/patches/864-brcmfmac-do-not-use-internal-roaming-engine-by-default.patch @@ -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 +--- + +--- 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"); +