Просмотр исходного кода

qcacmn: Waikiki CFR changes

Add CFR support inclusing 240MHz & 320MHz for
Waikiki Chip.

CRs-Fixed: 3057992
Change-Id: I87499369a076ca561fea066ebbfc2ebeab854868
Shwetha G K 3 лет назад
Родитель
Сommit
9c320060ac

+ 9 - 4
umac/cfr/dispatcher/inc/wlan_cfr_public_structs.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2020-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
@@ -27,6 +27,7 @@
 /**
  * cfr_cwm_width : Capture bandwidth
  * 0 : 20MHz, 1 : 40MHz, 2 : 80MHz, 3 : 160MHz, 4 : 80+80MHz
+ * 5 : 320MHz
  */
 enum cfr_cwm_width {
 	CFR_CWM_WIDTH20,
@@ -34,6 +35,7 @@ enum cfr_cwm_width {
 	CFR_CWM_WIDTH80,
 	CFR_CWM_WIDTH160,
 	CFR_CWM_WIDTH80_80,
+	CFR_CWM_WIDTH320,
 
 	CFR_CWM_WIDTH_MAX,
 	CFR_CWM_WIDTHINVALID = 0xff
@@ -90,7 +92,7 @@ enum cfr_capture_method {
  * to capture by programming the user provided values.
  * These values(cap_dur, cap_intvl) range from 1 us to roughly 16.8 in 1 us
  * units. Max value is 0xFFFFFF, i.e., 16.777215 s
- * @bw: Bandwidth: 20, 40, 80, 160, 320MHz
+ * @bw: Bandwidth: 20, 40, 80, 160, 240, 320MHz
  * @nss: 8 bits are allotted for NSS mask. Specifies which numbers of
  * spatial streams (MIMO factor) are permitted
  * @grp_id:  Group id could of any value between 0 and 15
@@ -150,10 +152,10 @@ struct cfr_wlanconfig_param {
 		 rsvd1                       :8;
 	uint32_t cap_intvl                   :24,
 		 rsvd2                       :8;
-	uint32_t bw                          :5,
+	uint32_t bw                          :6,
 		 nss                         :8,
 		 grp_id                      :4,
-		 rsvd3                       :15;
+		 rsvd3                       :14;
 
 	uint32_t expected_mgmt_subtype       :16,
 		 expected_ctrl_subtype       :16;
@@ -175,6 +177,9 @@ struct cfr_wlanconfig_param {
 		 cap_intval_mode_sel         :1,
 		 rsvd7                       :15;
 #endif
+#ifdef WLAN_FEATURE_11BE
+	uint32_t puncture_bitmap;
+#endif
 };
 
 #endif /* _WLAN_CFR_PUBLIC_STRUCTS_H_ */

+ 9 - 2
umac/cfr/dispatcher/inc/wlan_cfr_utils_api.h

@@ -116,6 +116,7 @@ enum cfrradiotype {
 	CFR_CAPTURE_RADIO_MOSELLE,
 	CFR_CAPTURE_RADIO_SPRUCE,
 	CFR_CAPTURE_RADIO_ALDER,
+	CFR_CAPTURE_RADIO_WAIKIKI,
 	CFR_CAPTURE_RADIO_MAX = 0xFF,
 };
 
@@ -268,6 +269,9 @@ struct cfr_capture_params {
 	u_int8_t   bandwidth;
 	u_int32_t  period;
 	u_int8_t   method;
+#ifdef WLAN_FEATURE_11BE
+	uint32_t   puncture_bitmap;
+#endif
 };
 
 /**
@@ -415,9 +419,9 @@ struct unassoc_pool_entry {
  */
 struct ta_ra_cfr_cfg {
 	uint8_t filter_group_id;
-	uint16_t bw                          :5,
+	uint16_t bw                          :6,
 		 nss                         :8,
-		 rsvd0                       :3;
+		 rsvd0                       :2;
 	uint16_t valid_ta                    :1,
 		 valid_ta_mask               :1,
 		 valid_ra                    :1,
@@ -661,6 +665,9 @@ struct peer_cfr {
 	u_int8_t   bandwidth;
 	u_int32_t  period;
 	u_int8_t   capture_method;
+#ifdef WLAN_FEATURE_11BE
+	uint32_t   puncture_bitmap;
+#endif
 };
 
 /**

+ 3 - 0
umac/cfr/dispatcher/src/wlan_cfr_ucfg_api.c

@@ -122,6 +122,9 @@ int ucfg_cfr_start_capture(struct wlan_objmgr_pdev *pdev,
 		pe->period = params->period;
 		pe->capture_method = params->method;
 		pe->request = PEER_CFR_CAPTURE_ENABLE;
+#ifdef WLAN_FEATURE_11BE
+		pe->puncture_bitmap = params->puncture_bitmap;
+#endif
 	} else
 		pa->cfr_current_sta_count--;