Эх сурвалжийг харах

fw-api: CL 10262355 - update fw common interface files

Change-Id: I957534bc6bbd74b6103cf19f4a3af470c0c748cb
WMI: add def of spectral scan param event msg
CRs-Fixed: 2262693
spuligil 5 жил өмнө
parent
commit
36993e85cb

+ 9 - 0
fw/wmi_tlv_defs.h

@@ -1069,6 +1069,8 @@ typedef enum {
     WMITLV_TAG_STRUC_wmi_pdev_srg_partial_bssid_bitmap_cmd_fixed_param,
     WMITLV_TAG_STRUC_wmi_simulation_test_cmd_fixed_param,
     WMITLV_TAG_STRUC_wmi_audio_aggr_set_rtscts_config,
+    WMITLV_TAG_STRUC_wmi_pdev_sscan_fw_cmd_fixed_param,
+    WMITLV_TAG_STRUC_wmi_pdev_sscan_fft_bin_index,
 } WMITLV_TAG_ID;
 
 /*
@@ -1757,6 +1759,7 @@ typedef enum {
     OP(WMI_NAN_DMESG_EVENTID) \
     OP(WMI_VDEV_SEND_BIG_DATA_P2_EVENTID) \
     OP(WMI_AUDIO_AGGR_REPORT_STATISTICS_EVENTID) \
+    OP(WMI_PDEV_SSCAN_FW_PARAM_EVENTID) \
     /* add new EVT_LIST elements above this line */
 
 
@@ -5896,6 +5899,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NAN_DMESG_EVENTID);
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_audio_aggr_peer_stats, peer_stats, WMITLV_SIZE_VAR)
 WMITLV_CREATE_PARAM_STRUC(WMI_AUDIO_AGGR_REPORT_STATISTICS_EVENTID);
 
+/* Send sscan fw params to host */
+#define WMITLV_TABLE_WMI_PDEV_SSCAN_FW_PARAM_EVENTID(id,op,buf,len) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_sscan_fw_cmd_fixed_param, wmi_pdev_sscan_fw_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_sscan_fft_bin_index, fft_bin_index, WMITLV_SIZE_VAR)
+WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SSCAN_FW_PARAM_EVENTID);
+
 
 #ifdef __cplusplus
 }

+ 74 - 2
fw/wmi_unified.h

@@ -1334,6 +1334,9 @@ typedef enum {
     /** Scan specific events */
     WMI_SCAN_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_SCAN),
 
+    /** Spectral scan FW params to host */
+    WMI_PDEV_SSCAN_FW_PARAM_EVENTID,
+
     /* PDEV specific events */
     /** TPC config for the current operating channel */
     WMI_PDEV_TPC_CONFIG_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_PDEV),
@@ -5682,12 +5685,26 @@ typedef struct {
     A_UINT32 spectral_scan_chn_mask;
     /* See enum wmi_spectral_scan_mode */
     A_UINT32 spectral_scan_mode;
-    /* agile span center frequency (MHz), 0 for normal scan*/
-    A_UINT32 spectral_scan_center_freq;
+    union {
+        /**
+         * Two center frequencies are required for agile channel switch
+         * supporting True 160 and Restricted 160 ((80+80) or 165) MHz.
+         * This parameter specifies the center frequency for cases with a
+         * contiguous channel, and the center frequency of the primary
+         * portion of a non-contiguous (80+80 or 165 MHz) channel.
+         */
+        A_UINT32 spectral_scan_center_freq;
+        A_UINT32 spectral_scan_center_freq1;
+    };
     /* agile span primary channel frequency (MHz), 0 for normal scan*/
     A_UINT32 spectral_scan_chan_freq;
     /* agile scan bandwidth (20, 40, 80, 80+80, 160), enum wmi_channel_width */
     A_UINT32 spectral_scan_chan_width;
+    /**
+     * Adding freq2 to support True 160 and restricted 160 ((80+80) or 165) MHz.
+     * agile span center frequency2 (MHz), 0 for normal scan.
+     */
+    A_UINT32 spectral_scan_center_freq2;
 } wmi_vdev_spectral_configure_cmd_fixed_param;
 
 /*
@@ -5712,6 +5729,61 @@ typedef struct {
     A_UINT32 vdev_id;
 } wmi_vdev_get_tx_power_cmd_fixed_param;
 
+/* Primary 80 bin values */
+#define WMI_SSCAN_PRI80_START_BIN_GET(pri80_bins)        WMI_GET_BITS(pri80_bins, 0, 16)
+#define WMI_SSCAN_PRI80_START_BIN_SET(pri80_bins, value) WMI_SET_BITS(pri80_bins, 0, 16, value)
+#define WMI_SSCAN_PRI80_END_BIN_GET(pri80_bins)          WMI_GET_BITS(pri80_bins, 16, 16)
+#define WMI_SSCAN_PRI80_END_BIN_SET(pri80_bins, value)   WMI_SET_BITS(pri80_bins, 16, 16, value)
+
+/* Secondary 80 bin values */
+#define WMI_SSCAN_SEC80_START_BIN_GET(sec80_bins)        WMI_GET_BITS(sec80_bins, 0, 16)
+#define WMI_SSCAN_SEC80_START_BIN_SET(sec80_bins, value) WMI_SET_BITS(sec80_bins, 0, 16, value)
+#define WMI_SSCAN_SEC80_END_BIN_GET(sec80_bins)          WMI_GET_BITS(sec80_bins, 16, 16)
+#define WMI_SSCAN_SEC80_END_BIN_SET(sec80_bins, value)   WMI_SET_BITS(sec80_bins, 16, 16, value)
+
+typedef struct {
+    A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_sscan_fw_cmd_fixed_param */
+    A_UINT32 pdev_id;
+
+    /* See enum wmi_spectral_scan_mode */
+    A_UINT32 spectral_scan_mode;
+
+    /**
+      * This fixed_param TLV is followed by the below TLVs:
+      *
+      * wmi_pdev_sscan_fft_bin_index fft_bin_index[]; // array len = 0 or 1
+      *     If present (array length is 1) this TLV specifies the primary
+      *     and secondary channels FFT bin indices for True 160 and
+      *     Restricted 160 (80+80 or 165) MHz BW cases.
+      */
+} wmi_pdev_sscan_fw_cmd_fixed_param;
+
+/**
+ * The below structure is used only to send the FFT bin numbers for
+ * True 160 and Restricted 160(80+80 or 165) MHz from FW to HOST
+ */
+typedef struct {
+    A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_sscan_fft_bin_index */
+
+    /**
+      * Bit 15 -  0 : primary 80 start bin number
+      * Bit 31 - 16 : primary 80 end bin number
+      * Refer to WMI_SSCAN_PRI80_[START,END]_BIN_[GET,SET] macros.
+      * Only for True 160 and Restricted 160(80+80 or 165) MHz this
+      * will be filled.
+      */
+    A_UINT32 pri80_bins;
+
+    /**
+      * Bit 15 -  0 : secondary 80 start bin number
+      * Bit 31 - 16 : secondary 80 end bin number
+      * Refer to WMI_SSCAN_SEC80_[START,END]_BIN_[GET,SET] macros.
+      * Only for True 160 and Restricted 160(80+80 or 165) MHz this
+      * will be filled.
+      */
+    A_UINT32 sec80_bins;
+} wmi_pdev_sscan_fft_bin_index;
+
 #define WMI_BEACON_CTRL_TX_DISABLE  0
 #define WMI_BEACON_CTRL_TX_ENABLE   1
 #define WMI_BEACON_CTRL_SWBA_EVENT_DISABLE  2

+ 1 - 1
fw/wmi_version.h

@@ -36,7 +36,7 @@
 #define __WMI_VER_MINOR_    0
 /** WMI revision number has to be incremented when there is a
  *  change that may or may not break compatibility. */
-#define __WMI_REVISION_ 822
+#define __WMI_REVISION_ 823
 
 /** The Version Namespace should not be normally changed. Only
  *  host and firmware of the same WMI namespace will work