diff options
Diffstat (limited to 'package/kernel/mac80211/patches/357-0009-brcmfmac-use-provided-channels-for-scheduled-scan.patch')
-rw-r--r-- | package/kernel/mac80211/patches/357-0009-brcmfmac-use-provided-channels-for-scheduled-scan.patch | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/package/kernel/mac80211/patches/357-0009-brcmfmac-use-provided-channels-for-scheduled-scan.patch b/package/kernel/mac80211/patches/357-0009-brcmfmac-use-provided-channels-for-scheduled-scan.patch deleted file mode 100644 index fae844c02a..0000000000 --- a/package/kernel/mac80211/patches/357-0009-brcmfmac-use-provided-channels-for-scheduled-scan.patch +++ /dev/null @@ -1,111 +0,0 @@ -From 331e789443618ca9cc3ed48ada4e670225cca036 Mon Sep 17 00:00:00 2001 -From: Arend Van Spriel <arend.vanspriel@broadcom.com> -Date: Wed, 23 Nov 2016 10:25:28 +0000 -Subject: [PATCH] brcmfmac: use provided channels for scheduled scan - -User-space can provide list of channels in the schedule scan request. -This was ignored so all channels supported and allowed by the device -were used. This patch configures the device to use the channels as -listed in the request. - -Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com> -Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com> -Reviewed-by: Franky Lin <franky.lin@broadcom.com> -Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com> -Signed-off-by: Kalle Valo <kvalo@codeaurora.org> ---- - .../broadcom/brcm80211/brcmfmac/fwil_types.h | 16 +++++++++++++ - .../net/wireless/broadcom/brcm80211/brcmfmac/pno.c | 26 +++++++++++++++++++++- - 2 files changed, 41 insertions(+), 1 deletion(-) - ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h -@@ -131,6 +131,7 @@ - #define BRCMF_TXBF_MU_BFR_CAP BIT(1) - - #define BRCMF_MAXPMKID 16 /* max # PMKID cache entries */ -+#define BRCMF_NUMCHANNELS 64 - - #define BRCMF_PFN_MACADDR_CFG_VER 1 - #define BRCMF_PFN_MAC_OUI_ONLY BIT(0) -@@ -719,6 +720,21 @@ struct brcmf_pno_param_le { - }; - - /** -+ * struct brcmf_pno_config_le - PNO channel configuration. -+ * -+ * @reporttype: determines what is reported. -+ * @channel_num: number of channels specified in @channel_list. -+ * @channel_list: channels to use in PNO scan. -+ * @flags: reserved. -+ */ -+struct brcmf_pno_config_le { -+ __le32 reporttype; -+ __le32 channel_num; -+ __le16 channel_list[BRCMF_NUMCHANNELS]; -+ __le32 flags; -+}; -+ -+/** - * struct brcmf_pno_net_param_le - scan parameters per preferred network. - * - * @ssid: ssid name and its length. ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c -@@ -18,9 +18,10 @@ - - #include "core.h" - #include "debug.h" --#include "pno.h" - #include "fwil.h" - #include "fwil_types.h" -+#include "cfg80211.h" -+#include "pno.h" - - #define BRCMF_PNO_VERSION 2 - #define BRCMF_PNO_REPEAT 4 -@@ -34,6 +35,15 @@ - #define BRCMF_PNO_HIDDEN_BIT 2 - #define BRCMF_PNO_SCHED_SCAN_PERIOD 30 - -+static int brcmf_pno_channel_config(struct brcmf_if *ifp, -+ struct brcmf_pno_config_le *cfg) -+{ -+ cfg->reporttype = 0; -+ cfg->flags = 0; -+ -+ return brcmf_fil_iovar_data_set(ifp, "pfn_cfg", cfg, sizeof(*cfg)); -+} -+ - static int brcmf_pno_config(struct brcmf_if *ifp, u32 scan_freq, - u32 mscan, u32 bestn) - { -@@ -167,7 +177,10 @@ int brcmf_pno_clean(struct brcmf_if *ifp - int brcmf_pno_start_sched_scan(struct brcmf_if *ifp, - struct cfg80211_sched_scan_request *req) - { -+ struct brcmu_d11inf *d11inf; -+ struct brcmf_pno_config_le pno_cfg; - struct cfg80211_ssid *ssid; -+ u16 chan; - int i, ret; - - /* clean up everything */ -@@ -190,6 +203,17 @@ int brcmf_pno_start_sched_scan(struct br - return ret; - } - -+ /* configure channels to use */ -+ d11inf = &ifp->drvr->config->d11inf; -+ for (i = 0; i < req->n_channels; i++) { -+ chan = req->channels[i]->hw_value; -+ pno_cfg.channel_list[i] = cpu_to_le16(chan); -+ } -+ if (req->n_channels) { -+ pno_cfg.channel_num = cpu_to_le32(req->n_channels); -+ brcmf_pno_channel_config(ifp, &pno_cfg); -+ } -+ - /* configure each match set */ - for (i = 0; i < req->n_match_sets; i++) { - ssid = &req->match_sets[i].ssid; |