소스 검색

qcacld-3.0: Fill default CFR NSS/BW values during start capture

Currently if the userspace doesn't send the NSS/BW values, then
the filter_set_valid_mask flag is not set in the
WMI_CFR_CAPTURE_FILTER_CMDID command. So the target doesn't
configure the BW and NSS filter in HW leading to frames getting
filtered out.

Fill default CFR capture NSS and BW values during start
capture.

Change-Id: I46004aa38c09dec8995fff84a3e699581675221b
CRs-Fixed: 2932529
Pragaspathi Thilagaraj 4 년 전
부모
커밋
77ee19f896
1개의 변경된 파일7개의 추가작업 그리고 1개의 파일을 삭제
  1. 7 1
      core/hdd/src/wlan_hdd_cfr.c

+ 7 - 1
core/hdd/src/wlan_hdd_cfr.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021, The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -73,6 +73,9 @@ const struct nla_policy cfr_config_policy[
 };
 
 #ifdef WLAN_ENH_CFR_ENABLE
+
+#define DEFAULT_CFR_NSS 0xff
+#define DEFAULT_CFR_BW  0xf
 static QDF_STATUS
 wlan_cfg80211_cfr_set_group_config(struct wlan_objmgr_vdev *vdev,
 				   struct nlattr *tb[])
@@ -130,12 +133,14 @@ wlan_cfg80211_cfr_set_group_config(struct wlan_objmgr_vdev *vdev,
 		ucfg_cfr_set_tara_config(vdev, &params);
 	}
 
+	params.nss = DEFAULT_CFR_NSS;
 	if (tb[QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_NSS]) {
 		params.nss = nla_get_u32(tb[
 			QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_NSS]);
 		hdd_debug("nss %d", params.nss);
 	}
 
+	params.bw = DEFAULT_CFR_BW;
 	if (tb[QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_BW]) {
 		params.bw = nla_get_u32(tb[
 			QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_BW]);
@@ -146,6 +151,7 @@ wlan_cfg80211_cfr_set_group_config(struct wlan_objmgr_vdev *vdev,
 		hdd_debug("set bw nss");
 		ucfg_cfr_set_bw_nss(vdev, &params);
 	}
+
 	if (tb[QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_MGMT_FILTER]) {
 		params.expected_mgmt_subtype = nla_get_u32(tb[
 			QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_MGMT_FILTER]);