From 3eec5f32732ed097e4c61d57371459c43c53ead2 Mon Sep 17 00:00:00 2001 From: Soumya Bhat Date: Tue, 29 Aug 2017 18:49:13 +0530 Subject: [PATCH] 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 --- dp/inc/cdp_txrx_stats_struct.h | 1 + wmi/inc/wmi_unified_param.h | 5 +++++ wmi/src/wmi_unified_non_tlv.c | 4 ++++ wmi/src/wmi_unified_tlv.c | 8 ++++++++ 4 files changed, 18 insertions(+) diff --git a/dp/inc/cdp_txrx_stats_struct.h b/dp/inc/cdp_txrx_stats_struct.h index 017a53813a75..53f058c25552 100644 --- a/dp/inc/cdp_txrx_stats_struct.h +++ b/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 */ diff --git a/wmi/inc/wmi_unified_param.h b/wmi/inc/wmi_unified_param.h index f99c9338564a..3e5d23a3d2ea 100644 --- a/wmi/inc/wmi_unified_param.h +++ b/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 diff --git a/wmi/src/wmi_unified_non_tlv.c b/wmi/src/wmi_unified_non_tlv.c index 24f3dd5faf5f..040f949eef2f 100644 --- a/wmi/src/wmi_unified_non_tlv.c +++ b/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; } /** diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 69e80745d810..4a48ddfbb6c4 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/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; } /**