Search Linux Wireless

Re: [PATCH v2 23/35] brcmfmac: cfg80211: Add support for scan params v2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 1/4/2022 8:26 AM, Hector Martin wrote:
This new API version is required for at least the BCM4387 firmware. Add
support for it, with a fallback to the v1 API.

Reviewed-by: Arend van Spriel <arend.vanspriel@xxxxxxxxxxxx>
Acked-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Hector Martin <marcan@xxxxxxxxx>
---
  .../broadcom/brcm80211/brcmfmac/cfg80211.c    | 113 ++++++++++++++----
  .../broadcom/brcm80211/brcmfmac/feature.c     |   1 +
  .../broadcom/brcm80211/brcmfmac/feature.h     |   4 +-
  .../broadcom/brcm80211/brcmfmac/fwil_types.h  |  49 +++++++-
  4 files changed, 145 insertions(+), 22 deletions(-)

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
index fb727778312c..71e932a8302c 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -769,12 +769,50 @@ void brcmf_set_mpc(struct brcmf_if *ifp, int mpc)
  	}
  }
+static void brcmf_escan_prep(struct brcmf_cfg80211_info *cfg,
+			     struct brcmf_scan_params_v2_le *params_le,
+			     struct cfg80211_scan_request *request);

I am not a fan of function prototypes so if it can be avoided by simply moving the function that would be preferred over this.

+static void brcmf_scan_params_v2_to_v1(struct brcmf_scan_params_v2_le *params_v2_le,
+				       struct brcmf_scan_params_le *params_le)
+{

[...]

+	if (!brcmf_feat_is_enabled(ifp, BRCMF_FEAT_SCAN_V2)) {

Okay. So it is not really a fallback. Phew!

+		struct brcmf_escan_params_le *params_v1;
+
+		params_size -= BRCMF_SCAN_PARAMS_V2_FIXED_SIZE;
+		params_size += BRCMF_SCAN_PARAMS_FIXED_SIZE;
+		params_v1 = kzalloc(params_size, GFP_KERNEL);
+		params_v1->version = cpu_to_le32(BRCMF_ESCAN_REQ_VERSION);
+		brcmf_scan_params_v2_to_v1(&params->params_v2_le, &params_v1->params_le);
+		kfree(params);
+		params = params_v1;
+	}
+
  	params->action = cpu_to_le16(WL_ESCAN_ACTION_START);
  	params->sync_id = cpu_to_le16(0x1234);

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux