Parcourir la source

qcacmn: Use arrays for param conversion from host to target type

Convert host param id to target param id using arrays
instead of switch case. This enables removal of CONFIG_MCL
compile time macro and use specific macro
ENABLE_HOST_TO_TARGET_CONVERSION for conversions

Change-Id: I223141d47e92521e6600fc0e160ab2deef43d7d2
CRs-Fixed: 2418030
Surya Prakash il y a 6 ans
Parent
commit
4e517d7795
5 fichiers modifiés avec 508 ajouts et 693 suppressions
  1. 8 10
      wmi/inc/wmi_unified_api.h
  2. 58 52
      wmi/inc/wmi_unified_param.h
  3. 0 2
      wmi/inc/wmi_unified_priv.h
  4. 0 33
      wmi/src/wmi_unified.c
  5. 442 596
      wmi/src/wmi_unified_tlv.c

+ 8 - 10
wmi/inc/wmi_unified_api.h

@@ -162,22 +162,20 @@ enum wmi_rx_exec_ctx {
 
 /**
  * struct wmi_unified_attach_params - wmi init parameters
- *  @param osdev            : NIC device
- *  @param target_type      : type of supported wmi command
- *  @param use_cookie       : flag to indicate cookie based allocation
- *  @param enable_vdev_pdev_param_conversion : To enable pdev vdev parametric
- *                                             id conversion from host type to
- *                                             target type
- *  @param ops              : handle to wmi ops
- *  @psoc                   : objmgr psoc
- *  @max_commands           : max commands
+ *  @osdev: NIC device
+ *  @target_type: type of supported wmi command
+ *  @use_cookie: flag to indicate cookie based allocation
+ *  @is_async_ep: queueing interrupt or non-interrupt endpoint
+ *  @rx_ops: handle to wmi ops
+ *  @psoc: objmgr psoc
+ *  @max_commands: max commands
+ *  @soc_id: SoC device instance id
  */
 struct wmi_unified_attach_params {
 	osdev_t osdev;
 	enum wmi_target_type target_type;
 	bool use_cookie;
 	bool is_async_ep;
-	bool enable_vdev_pdev_param_conversion;
 	struct wmi_rx_ops *rx_ops;
 	struct wlan_objmgr_psoc *psoc;
 	uint16_t max_commands;

+ 58 - 52
wmi/inc/wmi_unified_param.h

@@ -4995,7 +4995,6 @@ typedef enum {
 	wmi_pdev_param_equal_ru_allocation_enable,
 	wmi_pdev_param_per_peer_prd_cfr_enable,
 	wmi_pdev_param_nav_override_config,
-	wmi_pdev_param_max,
 } wmi_conv_pdev_params_id;
 
 
@@ -5124,8 +5123,6 @@ typedef enum {
 	wmi_vdev_param_ul_stbc,
 	wmi_vdev_param_ul_fixed_rate,
 	wmi_vdev_param_rawmode_open_war,
-
-	wmi_vdev_param_max,
 } wmi_conv_vdev_param_id;
 
 /**
@@ -6040,57 +6037,66 @@ typedef enum {
 
 /**
  * Peer param enum abstracted from target
+ * @WMI_HOST_PEER_MIMO_PS_STATE: mimo powersave state
+ * @WMI_HOST_PEER_AMPDU: enable/disable AMPDU . initial value (enabled)
+ * @WMI_HOST_PEER_AUTHORIZE: authorize/unauthorize peer.
+ *                           initial value is unauthorized (0)
+ * @WMI_HOST_PEER_CHWIDTH: Peer channel bandwidth
+ * @WMI_HOST_PEER_NSS: peer NSS
+ * @WMI_HOST_PEER_USE_4ADDR: USE 4 ADDR
+ * @WMI_HOST_PEER_EXT_STATS_ENABLE: Enable extended peer stats
+ * @WMI_HOST_PEER_USE_FIXED_PWR: Use FIXED Pwr,
+ * @WMI_HOST_PEER_PARAM_FIXED_RATE: Set peer fixed rate
+ * @WMI_HOST_PEER_SET_MU_WHITELIST: Whitelist peer TIDs
+ * @WMI_HOST_PEER_MEMBERSHIP: set group membership status
+ * @WMI_HOST_PEER_USERPOS: User POS
+ * @WMI_HOST_PEER_CRIT_PROTO_HINT_ENABLED: Critical Protocol Hint enabled
+ * @WMI_HOST_PEER_TX_FAIL_CNT_THR: Tx Fail count threshold
+ * @WMI_HOST_PEER_SET_HW_RETRY_CTS2S: Set hardware retry CTS to self
+ * @WMI_HOST_PEER_IBSS_ATIM_WINDOW_LENGTH: IBSS ATIM window length
+ * @WMI_HOST_PEER_PHYMODE: Peer Phymode
+ * @WMI_HOST_PEER_SET_MAC_TX_RATE: Set MAC Tx rate
+ * @WMI_HOST_PEER_SET_DEFAULT_ROUTING: Set default Rx routing
+ * @WMI_HOST_PEER_SET_MIN_TX_RATE: Set Minimum T rate
+ * @WMI_HOST_PEER_NSS_VHT160: peer NSS for 160Mhz
+ * @WMI_HOST_PEER_NSS_VHT80_80: peer NSS for 80+80MHz
+ * @WMI_HOST_PEER_PARAM_SU_TXBF_SOUNDING_INTERVAL: Set SU sounding interval
+ * @WMI_HOST_PEER_PARAM_MU_TXBF_SOUNDING_INTERVAL: Set MU sounding interval
+ * @WMI_HOST_PEER_PARAM_TXBF_SOUNDING_ENABLE: Enable sounding interval set
+ * @WMI_HOST_PEER_PARAM_MU_ENABLE: Enable MU support
+ * @WMI_HOST_PEER_PARAM_OFDMA_ENABLE: Enable OFDMA support
+ * @WMI_HOST_PEER_PARAM_ENABLE_FT: Notify FT roam
  */
-typedef enum {
-	/** mimo powersave state */
+enum {
 	WMI_HOST_PEER_MIMO_PS_STATE = 0x1,
-	/** enable/disable AMPDU . initial value (enabled) */
-	WMI_HOST_PEER_AMPDU = 0x2,
-	/** authorize/unauthorize peer. initial value is unauthorized (0)  */
-	WMI_HOST_PEER_AUTHORIZE = 0x3,
-	/** peer channel bandwidth */
-	WMI_HOST_PEER_CHWIDTH = 0x4,
-	/** peer NSS */
-	WMI_HOST_PEER_NSS = 0x5,
-	/** USE 4 ADDR */
-	WMI_HOST_PEER_USE_4ADDR = 0x6,
-	/** Enable extended peer stats */
-	WMI_HOST_PEER_EXT_STATS_ENABLE = 0x7,
-	/*Use FIXED Pwr */
-	WMI_HOST_PEER_USE_FIXED_PWR = 0x8,
-	/* Set peer fixed rate */
-	WMI_HOST_PEER_PARAM_FIXED_RATE = 0x9,
-	/* Whitelist peer TIDs */
-	WMI_HOST_PEER_SET_MU_WHITELIST = 0xa,
-	/* set group membership status */
-	WMI_HOST_PEER_MEMBERSHIP = 0xb,
-	WMI_HOST_PEER_USERPOS = 0xc,
-	WMI_HOST_PEER_CRIT_PROTO_HINT_ENABLED = 0xd,
-	WMI_HOST_PEER_TX_FAIL_CNT_THR = 0xe,
-	WMI_HOST_PEER_SET_HW_RETRY_CTS2S = 0xf,
-	WMI_HOST_PEER_IBSS_ATIM_WINDOW_LENGTH = 0x10,
-	WMI_HOST_PEER_PHYMODE = 0x11,
-	WMI_HOST_PEER_SET_MAC_TX_RATE = 0x12,
-	/* Set default Rx routing */
-	WMI_HOST_PEER_SET_DEFAULT_ROUTING = 0x13,
-	WMI_HOST_PEER_SET_MIN_TX_RATE = 0x14,
-	/* peer NSS for 160Mhx */
-	WMI_HOST_PEER_NSS_VHT160 = 0x15,
-	/* peer NSS for 160Mhx */
-	WMI_HOST_PEER_NSS_VHT80_80 = 0x16,
-	/* Set SU sounding interval */
-	WMI_HOST_PEER_PARAM_SU_TXBF_SOUNDING_INTERVAL = 0x17,
-	/* Set MU sounding interval */
-	WMI_HOST_PEER_PARAM_MU_TXBF_SOUNDING_INTERVAL = 0x18,
-	/* Enable sounding interval set */
-	WMI_HOST_PEER_PARAM_TXBF_SOUNDING_ENABLE = 0x19,
-	/* Enable MU support */
-	WMI_HOST_PEER_PARAM_MU_ENABLE = 0x1a,
-	/* Enable OFDMA support */
-	WMI_HOST_PEER_PARAM_OFDMA_ENABLE = 0x1b,
-	/* Notify FT roam */
-	WMI_HOST_PEER_PARAM_ENABLE_FT = 0x1c,
-} PEER_PARAM_ENUM;
+	WMI_HOST_PEER_AMPDU,
+	WMI_HOST_PEER_AUTHORIZE,
+	WMI_HOST_PEER_CHWIDTH,
+	WMI_HOST_PEER_NSS,
+	WMI_HOST_PEER_USE_4ADDR,
+	WMI_HOST_PEER_EXT_STATS_ENABLE,
+	WMI_HOST_PEER_USE_FIXED_PWR,
+	WMI_HOST_PEER_PARAM_FIXED_RATE,
+	WMI_HOST_PEER_SET_MU_WHITELIST,
+	WMI_HOST_PEER_MEMBERSHIP,
+	WMI_HOST_PEER_USERPOS,
+	WMI_HOST_PEER_CRIT_PROTO_HINT_ENABLED,
+	WMI_HOST_PEER_TX_FAIL_CNT_THR,
+	WMI_HOST_PEER_SET_HW_RETRY_CTS2S,
+	WMI_HOST_PEER_IBSS_ATIM_WINDOW_LENGTH,
+	WMI_HOST_PEER_PHYMODE,
+	WMI_HOST_PEER_SET_MAC_TX_RATE,
+	WMI_HOST_PEER_SET_DEFAULT_ROUTING,
+	WMI_HOST_PEER_SET_MIN_TX_RATE,
+	WMI_HOST_PEER_NSS_VHT160,
+	WMI_HOST_PEER_NSS_VHT80_80,
+	WMI_HOST_PEER_PARAM_SU_TXBF_SOUNDING_INTERVAL,
+	WMI_HOST_PEER_PARAM_MU_TXBF_SOUNDING_INTERVAL,
+	WMI_HOST_PEER_PARAM_TXBF_SOUNDING_ENABLE,
+	WMI_HOST_PEER_PARAM_MU_ENABLE,
+	WMI_HOST_PEER_PARAM_OFDMA_ENABLE,
+	WMI_HOST_PEER_PARAM_ENABLE_FT,
+};
 #define WMI_HOST_PEER_MIMO_PS_NONE	0x0
 #define WMI_HOST_PEER_MIMO_PS_STATIC	0x1
 #define WMI_HOST_PEER_MIMO_PS_DYNAMIC	0x2

+ 0 - 2
wmi/inc/wmi_unified_priv.h

@@ -2053,8 +2053,6 @@ struct wmi_soc {
 	/* WMI service bitmap received from target */
 	uint32_t *wmi_service_bitmap;
 	uint32_t *wmi_ext_service_bitmap;
-	uint32_t *pdev_param;
-	uint32_t *vdev_param;
 	uint32_t services[wmi_services_max];
 	uint16_t wmi_max_cmds;
 	uint32_t soc_idx;

+ 0 - 33
wmi/src/wmi_unified.c

@@ -2542,21 +2542,6 @@ void *wmi_unified_attach(void *scn_handle,
 	wmi_handle->wmi_events = soc->wmi_events;
 	wmi_handle->services = soc->services;
 	wmi_handle->scn_handle = scn_handle;
-	if (param->enable_vdev_pdev_param_conversion) {
-		if (wmi_pdev_param_max > SIZE_MAX / sizeof(uint32_t))
-			goto error;
-		soc->pdev_param = qdf_mem_malloc(
-				wmi_pdev_param_max * sizeof(uint32_t));
-		if (!soc->pdev_param)
-			goto error;
-
-		if (wmi_vdev_param_max > SIZE_MAX / sizeof(uint32_t))
-			goto error;
-		soc->vdev_param = qdf_mem_malloc(
-				wmi_vdev_param_max * sizeof(uint32_t));
-		if (!soc->vdev_param)
-			goto error;
-	}
 	soc->scn_handle = scn_handle;
 	qdf_atomic_init(&wmi_handle->pending_cmds);
 	qdf_atomic_init(&wmi_handle->is_target_suspended);
@@ -2607,14 +2592,6 @@ void *wmi_unified_attach(void *scn_handle,
 	return wmi_handle;
 
 error:
-	if (soc->pdev_param) {
-		qdf_mem_free(soc->pdev_param);
-		soc->pdev_param = NULL;
-	}
-	if (soc->vdev_param) {
-		qdf_mem_free(soc->vdev_param);
-		soc->vdev_param = NULL;
-	}
 	qdf_mem_free(soc);
 	qdf_mem_free(wmi_handle);
 
@@ -2667,16 +2644,6 @@ void wmi_unified_detach(struct wmi_unified *wmi_handle)
 	}
 	qdf_spinlock_destroy(&soc->ctx_lock);
 
-	if (soc->pdev_param) {
-		qdf_mem_free(soc->pdev_param);
-		soc->pdev_param = NULL;
-	}
-
-	if (soc->vdev_param) {
-		qdf_mem_free(soc->vdev_param);
-		soc->vdev_param = NULL;
-	}
-
 	if (soc->wmi_service_bitmap) {
 		qdf_mem_free(soc->wmi_service_bitmap);
 		soc->wmi_service_bitmap = NULL;

Fichier diff supprimé car celui-ci est trop grand
+ 442 - 596
wmi/src/wmi_unified_tlv.c


Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff