aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/357-0008-brcmfmac-move-scheduled-scan-activation-to-pno-sourc.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/kernel/mac80211/patches/357-0008-brcmfmac-move-scheduled-scan-activation-to-pno-sourc.patch')
-rw-r--r--package/kernel/mac80211/patches/357-0008-brcmfmac-move-scheduled-scan-activation-to-pno-sourc.patch292
1 files changed, 0 insertions, 292 deletions
diff --git a/package/kernel/mac80211/patches/357-0008-brcmfmac-move-scheduled-scan-activation-to-pno-sourc.patch b/package/kernel/mac80211/patches/357-0008-brcmfmac-move-scheduled-scan-activation-to-pno-sourc.patch
deleted file mode 100644
index 6dcea2832a..0000000000
--- a/package/kernel/mac80211/patches/357-0008-brcmfmac-move-scheduled-scan-activation-to-pno-sourc.patch
+++ /dev/null
@@ -1,292 +0,0 @@
-From 3e48611d31dd333be01576902f2dc11adefc9a06 Mon Sep 17 00:00:00 2001
-From: Arend Van Spriel <arend.vanspriel@broadcom.com>
-Date: Wed, 23 Nov 2016 10:25:27 +0000
-Subject: [PATCH] brcmfmac: move scheduled scan activation to pno source file
-
-Rework .sched_scan_start() callback moving actual configuration of
-the device in pno source file.
-
-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/cfg80211.c | 65 +-----------
- .../net/wireless/broadcom/brcm80211/brcmfmac/pno.c | 110 +++++++++++++++++----
- .../net/wireless/broadcom/brcm80211/brcmfmac/pno.h | 29 +-----
- 3 files changed, 94 insertions(+), 110 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
-@@ -42,7 +42,6 @@
- #include "common.h"
-
- #define BRCMF_SCAN_IE_LEN_MAX 2048
--#define BRCMF_SCHED_SCAN_PERIOD 30
-
- #define WPA_OUI "\x00\x50\xF2" /* WPA OUI */
- #define WPA_OUI_TYPE 1
-@@ -3342,24 +3341,6 @@ free_req:
- return err;
- }
-
--static bool brcmf_is_ssid_active(struct cfg80211_ssid *ssid,
-- struct cfg80211_sched_scan_request *req)
--{
-- int i;
--
-- if (!ssid || !req->ssids || !req->n_ssids)
-- return false;
--
-- for (i = 0; i < req->n_ssids; i++) {
-- if (ssid->ssid_len == req->ssids[i].ssid_len) {
-- if (!strncmp(ssid->ssid, req->ssids[i].ssid,
-- ssid->ssid_len))
-- return true;
-- }
-- }
-- return false;
--}
--
- static int
- brcmf_cfg80211_sched_scan_start(struct wiphy *wiphy,
- struct net_device *ndev,
-@@ -3367,9 +3348,6 @@ brcmf_cfg80211_sched_scan_start(struct w
- {
- struct brcmf_if *ifp = netdev_priv(ndev);
- struct brcmf_cfg80211_info *cfg = wiphy_priv(wiphy);
-- struct cfg80211_ssid *ssid;
-- int i;
-- int ret = 0;
-
- brcmf_dbg(SCAN, "Enter n_match_sets:%d n_ssids:%d\n",
- req->n_match_sets, req->n_ssids);
-@@ -3389,48 +3367,7 @@ brcmf_cfg80211_sched_scan_start(struct w
- return -EINVAL;
- }
-
-- /* clean up everything */
-- ret = brcmf_pno_clean(ifp);
-- if (ret < 0) {
-- brcmf_err("failed error=%d\n", ret);
-- return ret;
-- }
--
-- /* configure pno */
-- ret = brcmf_pno_config(ifp, BRCMF_SCHED_SCAN_PERIOD, 0, 0);
-- if (ret < 0)
-- return ret;
--
-- /* configure random mac */
-- if (req->flags & NL80211_SCAN_FLAG_RANDOM_ADDR) {
-- ret = brcmf_pno_set_random(ifp, req->mac_addr,
-- req->mac_addr_mask);
-- if (ret < 0)
-- return ret;
-- }
--
-- /* configure each match set */
-- for (i = 0; i < req->n_match_sets; i++) {
--
-- ssid = &req->match_sets[i].ssid;
--
-- if (!ssid->ssid_len) {
-- brcmf_err("skip broadcast ssid\n");
-- continue;
-- }
--
-- ret = brcmf_pno_add_ssid(ifp, ssid,
-- brcmf_is_ssid_active(ssid, req));
-- if (ret < 0)
-- brcmf_dbg(SCAN, ">>> PNO filter %s for ssid (%s)\n",
-- ret == 0 ? "set" : "failed", ssid->ssid);
-- }
-- /* Enable the PNO */
-- ret = brcmf_fil_iovar_int_set(ifp, "pfn", 1);
-- if (ret < 0)
-- brcmf_err("PNO enable failed!! ret=%d\n", ret);
--
-- return ret;
-+ return brcmf_pno_start_sched_scan(ifp, req);
- }
-
- static int brcmf_cfg80211_sched_scan_stop(struct wiphy *wiphy,
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c
-@@ -32,25 +32,10 @@
- #define BRCMF_PNO_SCAN_INCOMPLETE 0
- #define BRCMF_PNO_WPA_AUTH_ANY 0xFFFFFFFF
- #define BRCMF_PNO_HIDDEN_BIT 2
-+#define BRCMF_PNO_SCHED_SCAN_PERIOD 30
-
--int brcmf_pno_clean(struct brcmf_if *ifp)
--{
-- int ret;
--
-- /* Disable pfn */
-- ret = brcmf_fil_iovar_int_set(ifp, "pfn", 0);
-- if (ret == 0) {
-- /* clear pfn */
-- ret = brcmf_fil_iovar_data_set(ifp, "pfnclear", NULL, 0);
-- }
-- if (ret < 0)
-- brcmf_err("failed code %d\n", ret);
--
-- return ret;
--}
--
--int brcmf_pno_config(struct brcmf_if *ifp, u32 scan_freq,
-- u32 mscan, u32 bestn)
-+static int brcmf_pno_config(struct brcmf_if *ifp, u32 scan_freq,
-+ u32 mscan, u32 bestn)
- {
- struct brcmf_pno_param_le pfn_param;
- u16 flags;
-@@ -102,7 +87,8 @@ exit:
- return err;
- }
-
--int brcmf_pno_set_random(struct brcmf_if *ifp, u8 *mac_addr, u8 *mac_mask)
-+static int brcmf_pno_set_random(struct brcmf_if *ifp, u8 *mac_addr,
-+ u8 *mac_mask)
- {
- struct brcmf_pno_macaddr_le pfn_mac;
- int err, i;
-@@ -128,8 +114,8 @@ int brcmf_pno_set_random(struct brcmf_if
- return err;
- }
-
--int brcmf_pno_add_ssid(struct brcmf_if *ifp, struct cfg80211_ssid *ssid,
-- bool active)
-+static int brcmf_pno_add_ssid(struct brcmf_if *ifp, struct cfg80211_ssid *ssid,
-+ bool active)
- {
- struct brcmf_pno_net_param_le pfn;
-
-@@ -144,3 +130,85 @@ int brcmf_pno_add_ssid(struct brcmf_if *
- return brcmf_fil_iovar_data_set(ifp, "pfn_add", &pfn, sizeof(pfn));
- }
-
-+static bool brcmf_is_ssid_active(struct cfg80211_ssid *ssid,
-+ struct cfg80211_sched_scan_request *req)
-+{
-+ int i;
-+
-+ if (!ssid || !req->ssids || !req->n_ssids)
-+ return false;
-+
-+ for (i = 0; i < req->n_ssids; i++) {
-+ if (ssid->ssid_len == req->ssids[i].ssid_len) {
-+ if (!strncmp(ssid->ssid, req->ssids[i].ssid,
-+ ssid->ssid_len))
-+ return true;
-+ }
-+ }
-+ return false;
-+}
-+
-+int brcmf_pno_clean(struct brcmf_if *ifp)
-+{
-+ int ret;
-+
-+ /* Disable pfn */
-+ ret = brcmf_fil_iovar_int_set(ifp, "pfn", 0);
-+ if (ret == 0) {
-+ /* clear pfn */
-+ ret = brcmf_fil_iovar_data_set(ifp, "pfnclear", NULL, 0);
-+ }
-+ if (ret < 0)
-+ brcmf_err("failed code %d\n", ret);
-+
-+ return ret;
-+}
-+
-+int brcmf_pno_start_sched_scan(struct brcmf_if *ifp,
-+ struct cfg80211_sched_scan_request *req)
-+{
-+ struct cfg80211_ssid *ssid;
-+ int i, ret;
-+
-+ /* clean up everything */
-+ ret = brcmf_pno_clean(ifp);
-+ if (ret < 0) {
-+ brcmf_err("failed error=%d\n", ret);
-+ return ret;
-+ }
-+
-+ /* configure pno */
-+ ret = brcmf_pno_config(ifp, BRCMF_PNO_SCHED_SCAN_PERIOD, 0, 0);
-+ if (ret < 0)
-+ return ret;
-+
-+ /* configure random mac */
-+ if (req->flags & NL80211_SCAN_FLAG_RANDOM_ADDR) {
-+ ret = brcmf_pno_set_random(ifp, req->mac_addr,
-+ req->mac_addr_mask);
-+ if (ret < 0)
-+ return ret;
-+ }
-+
-+ /* configure each match set */
-+ for (i = 0; i < req->n_match_sets; i++) {
-+ ssid = &req->match_sets[i].ssid;
-+ if (!ssid->ssid_len) {
-+ brcmf_err("skip broadcast ssid\n");
-+ continue;
-+ }
-+
-+ ret = brcmf_pno_add_ssid(ifp, ssid,
-+ brcmf_is_ssid_active(ssid, req));
-+ if (ret < 0)
-+ brcmf_dbg(SCAN, ">>> PNO filter %s for ssid (%s)\n",
-+ ret == 0 ? "set" : "failed", ssid->ssid);
-+ }
-+ /* Enable the PNO */
-+ ret = brcmf_fil_iovar_int_set(ifp, "pfn", 1);
-+ if (ret < 0)
-+ brcmf_err("PNO enable failed!! ret=%d\n", ret);
-+
-+ return ret;
-+}
-+
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.h
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.h
-@@ -27,33 +27,12 @@
- int brcmf_pno_clean(struct brcmf_if *ifp);
-
- /**
-- * brcmf_pno_config - configure pno parameters.
-+ * brcmf_pno_start_sched_scan - initiate scheduled scan on device.
- *
- * @ifp: interface object used.
-- * @scan_freq: scan frequency period in seconds.
-- * @mscan: maximum number of scans stored in firmware.
-- * @bestn: maximum number of APs per scan stored in firmware.
-+ * @req: configuration parameters for scheduled scan.
- */
--int brcmf_pno_config(struct brcmf_if *ifp, u32 scan_freq,
-- u32 mscan, u32 bestn);
--
--/**
-- * brcmf_pno_set_random - setup randomisation mac address for pno.
-- *
-- * @ifp: interface object used.
-- * @mac_addr: MAC address used with randomisation.
-- * @mac_mask: MAC address mask used for randomisation.
-- */
--int brcmf_pno_set_random(struct brcmf_if *ifp, u8 *mac_addr, u8 *mac_mask);
--
--/**
-- * brcmf_pno_add_ssid - add ssid for pno in firmware.
-- *
-- * @ifp: interface object used.
-- * @ssid: ssid information.
-- * @active: indicate this ssid needs to be actively probed.
-- */
--int brcmf_pno_add_ssid(struct brcmf_if *ifp, struct cfg80211_ssid *ssid,
-- bool active);
-+int brcmf_pno_start_sched_scan(struct brcmf_if *ifp,
-+ struct cfg80211_sched_scan_request *req);
-
- #endif /* _BRCMF_PNO_H */