Browse Source

qcacmn: WMI support for EXT NSS Signaling

Add required WMI commands to communicate support of
EXT NSS Signaling between host and FW. Also, if
EXT NSS Signaling is supported the use new WMI to
communicate the required information between host and FW.

Change-Id: If3e1ef11a55f8fbdffddb3b10963878a6a2ca415
CRs-Fixed: 2089043
Soumya Bhat 7 years ago
parent
commit
3eec5f3273

+ 1 - 0
dp/inc/cdp_txrx_stats_struct.h

@@ -495,6 +495,7 @@ enum _ol_ath_param_t {
 	OL_ATH_PARAM_DUMP_OBJECTS = 351,
 	OL_ATH_PARAM_ACS_SRLOADVAR = 352,
 	OL_ATH_PARAM_MGMT_RSSI_THRESHOLD = 353,
+	OL_ATH_PARAM_EXT_NSS_CAPABLE = 354,
 };
 
 /* Enumeration of PDEV Configuration parameter */

+ 5 - 0
wmi/inc/wmi_unified_param.h

@@ -5462,6 +5462,7 @@ typedef enum {
 	wmi_service_pkt_routing,
 	wmi_service_offchan_tx_wmi,
 	wmi_service_chan_load_info,
+	wmi_service_extended_nss_support,
 
 	wmi_services_max,
 } wmi_conv_service_ids;
@@ -6156,6 +6157,10 @@ typedef enum {
 	/* 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,
 } PEER_PARAM_ENUM;
 #define WMI_HOST_PEER_MIMO_PS_NONE	0x0
 #define WMI_HOST_PEER_MIMO_PS_STATIC	0x1

+ 4 - 0
wmi/src/wmi_unified_non_tlv.c

@@ -512,6 +512,9 @@ static QDF_STATUS convert_host_peer_id_to_target_id_non_tlv(
 	case WMI_HOST_PEER_EXT_STATS_ENABLE:
 		*targ_paramid = WMI_PEER_EXT_STATS_ENABLE;
 		break;
+	/* Populate appropriate targetid once feature is supported in FW */
+	case WMI_HOST_PEER_NSS_VHT160:
+	case WMI_HOST_PEER_NSS_VHT80_80:
 	default:
 		return QDF_STATUS_E_NOSUPPORT;
 	}
@@ -8386,6 +8389,7 @@ static void populate_non_tlv_service(uint32_t *wmi_service)
 	wmi_service[wmi_service_pkt_routing] = WMI_SERVICE_UNAVAILABLE;
 	wmi_service[wmi_service_offchan_tx_wmi] = WMI_SERVICE_UNAVAILABLE;
 	wmi_service[wmi_service_chan_load_info] = WMI_SERVICE_UNAVAILABLE;
+	wmi_service[wmi_service_extended_nss_support] = WMI_SERVICE_UNAVAILABLE;
 }
 
 /**

+ 8 - 0
wmi/src/wmi_unified_tlv.c

@@ -634,6 +634,12 @@ static QDF_STATUS convert_host_peer_id_to_target_id_tlv(
 	case WMI_HOST_PEER_SET_DEFAULT_ROUTING:
 		*targ_paramid = WMI_PEER_SET_DEFAULT_ROUTING;
 		break;
+	case WMI_HOST_PEER_NSS_VHT160:
+		*targ_paramid = WMI_PEER_NSS_VHT160;
+		break;
+	case WMI_HOST_PEER_NSS_VHT80_80:
+		*targ_paramid = WMI_PEER_NSS_VHT80_80;
+		break;
 	default:
 		return QDF_STATUS_E_NOSUPPORT;
 	}
@@ -19470,6 +19476,8 @@ static void populate_tlv_service(uint32_t *wmi_service)
 	wmi_service[wmi_service_pkt_routing] = WMI_SERVICE_PKT_ROUTING;
 	wmi_service[wmi_service_offchan_tx_wmi] = WMI_SERVICE_OFFCHAN_TX_WMI;
 	wmi_service[wmi_service_chan_load_info] = WMI_SERVICE_CHAN_LOAD_INFO;
+	wmi_service[wmi_service_extended_nss_support] =
+				WMI_SERVICE_EXTENDED_NSS_SUPPORT;
 }
 
 /**