From 86bd88669704ca02fbdb34cdcb7366bfc12b39a9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Tue, 7 Feb 2017 14:45:19 +0100 Subject: [PATCH] brcmfmac: improve Raspberry Pi 3 stability MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit - Really disable power management (wrong config flags). - Disable internal roaming engine. Signed-off-by: Álvaro Fernández Rojas --- ...62-brcmfmac-Disable-power-management.patch | 4 ++-- ...e-internal-roaming-engine-by-default.patch | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 package/kernel/mac80211/patches/864-brcmfmac-do-not-use-internal-roaming-engine-by-default.patch 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 83bc7fe1fd5..5a93fb4667c 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 00000000000..5ae4c11228f --- /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"); + -- 2.30.2