Browse Source

qcacmn: Add support for preferred streams in multivdev restart

Add support to send preferred_xt_streams and preferred_rx_streams
in multivdev restart.

CRs-Fixed: 2833470
Change-Id: I2c06a8bd9a64b15126e216eeb65699e104cbca64
Surya Prakash Raajen 4 years ago
parent
commit
21de33ef5d

+ 3 - 0
umac/cmn_services/obj_mgr/inc/wlan_objmgr_cmn.h

@@ -280,6 +280,7 @@ typedef void (*wlan_objmgr_peer_status_handler)(
  * @WLAN_OSIF_POWER_ID:         power operations in OS IF
  * @WLAN_OSIF_POWER_ID:         power operations in OS IF
  * @WLAN_OSIF_TDLS_ID:          TDLS operations in OS IF
  * @WLAN_OSIF_TDLS_ID:          TDLS operations in OS IF
  * @WLAN_OSIF_CM_ID:            Connection manager osif reference id
  * @WLAN_OSIF_CM_ID:            Connection manager osif reference id
+ * @WLAN_TXRX_STREAMS_ID:       Preferred TX & RX streams operations
  * @WLAN_REF_ID_MAX:            Max id used to generate ref count tracking array
  * @WLAN_REF_ID_MAX:            Max id used to generate ref count tracking array
  */
  */
  /* New value added to the enum must also be reflected in function
  /* New value added to the enum must also be reflected in function
@@ -376,6 +377,7 @@ typedef enum {
 	WLAN_OSIF_POWER_ID    = 86,
 	WLAN_OSIF_POWER_ID    = 86,
 	WLAN_OSIF_TDLS_ID     = 87,
 	WLAN_OSIF_TDLS_ID     = 87,
 	WLAN_OSIF_CM_ID       = 88,
 	WLAN_OSIF_CM_ID       = 88,
+	WLAN_TXRX_STREAMS_ID  = 89,
 	WLAN_REF_ID_MAX,
 	WLAN_REF_ID_MAX,
 } wlan_objmgr_ref_dbgid;
 } wlan_objmgr_ref_dbgid;
 
 
@@ -478,6 +480,7 @@ static inline const char *string_from_dbgid(wlan_objmgr_ref_dbgid id)
 					"WLAN_OSIF_POWER_ID",
 					"WLAN_OSIF_POWER_ID",
 					"WLAN_OSIF_TDLS_ID",
 					"WLAN_OSIF_TDLS_ID",
 					"WLAN_OSIF_CM_ID",
 					"WLAN_OSIF_CM_ID",
+					"WLAN_TXRX_STREAMS_ID",
 					};
 					};
 
 
 	if (id >= WLAN_REF_ID_MAX)
 	if (id >= WLAN_REF_ID_MAX)

+ 4 - 0
umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_tx_defs.h

@@ -299,9 +299,13 @@ struct mlme_channel_param {
 /**
 /**
  * struct vdev_mlme_mvr_param - Multiple vdev restart params
  * struct vdev_mlme_mvr_param - Multiple vdev restart params
  * @phymode: phymode information
  * @phymode: phymode information
+ * @preferred_tx_streams: preferred tx streams for VAP
+ * @preferred_rx_streams: preferred rx streams for VAP
  */
  */
 struct vdev_mlme_mvr_param {
 struct vdev_mlme_mvr_param {
 	uint32_t phymode;
 	uint32_t phymode;
+	uint32_t preferred_tx_streams;
+	uint32_t preferred_rx_streams;
 };
 };
 
 
 /**
 /**

+ 2 - 0
umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_ucfg_api.h

@@ -104,6 +104,8 @@ enum wlan_mlme_cfg_id {
 	WLAN_MLME_CFG_RATEMASK_CAPS,
 	WLAN_MLME_CFG_RATEMASK_CAPS,
 	WLAN_MLME_CFG_ENABLE_MULTI_GROUP_KEY,
 	WLAN_MLME_CFG_ENABLE_MULTI_GROUP_KEY,
 	WLAN_MLME_CFG_MAX_GROUP_KEYS,
 	WLAN_MLME_CFG_MAX_GROUP_KEYS,
+	WLAN_MLME_CFG_TX_STREAMS,
+	WLAN_MLME_CFG_RX_STREAMS,
 	WLAN_MLME_CFG_MAX
 	WLAN_MLME_CFG_MAX
 };
 };
 
 

+ 12 - 0
umac/mlme/vdev_mgr/dispatcher/src/wlan_vdev_mgr_utils_api.c

@@ -392,6 +392,12 @@ wlan_util_vdev_mlme_set_param(struct vdev_mlme_obj *vdev_mlme,
 	case WLAN_MLME_CFG_MAX_GROUP_KEYS:
 	case WLAN_MLME_CFG_MAX_GROUP_KEYS:
 		is_wmi_cmd = true;
 		is_wmi_cmd = true;
 		break;
 		break;
+	case WLAN_MLME_CFG_TX_STREAMS:
+		mlme_mgmt->chainmask_info.num_tx_chain = mlme_cfg.value;
+		break;
+	case WLAN_MLME_CFG_RX_STREAMS:
+		mlme_mgmt->chainmask_info.num_rx_chain = mlme_cfg.value;
+		break;
 	default:
 	default:
 		break;
 		break;
 	}
 	}
@@ -575,6 +581,12 @@ void wlan_util_vdev_mlme_get_param(struct vdev_mlme_obj *vdev_mlme,
 	case WLAN_MLME_CFG_BCN_TX_RATE:
 	case WLAN_MLME_CFG_BCN_TX_RATE:
 		*value = mlme_mgmt->rate_info.bcn_tx_rate;
 		*value = mlme_mgmt->rate_info.bcn_tx_rate;
 		break;
 		break;
+	case WLAN_MLME_CFG_TX_STREAMS:
+		*value = mlme_mgmt->chainmask_info.num_tx_chain;
+		break;
+	case WLAN_MLME_CFG_RX_STREAMS:
+		*value = mlme_mgmt->chainmask_info.num_rx_chain;
+		break;
 	default:
 	default:
 		break;
 		break;
 	}
 	}