From 7e1cb4966536f2c22cea04acc7cc766fcd22daa4 Mon Sep 17 00:00:00 2001 From: spuligil Date: Tue, 14 Apr 2020 12:01:21 -0700 Subject: [PATCH] fw-api: CL 10190734 - update fw common interface files Change-Id: If48301f58218bed54eb9ad6184a48c2d834ccfcc WMI: add PDEV_SET_SRG_[BSS_COLOR,PARTIAL_BSSID]_BITMAP_CMD msg defs CRs-Fixed: 2262693 --- fw/wmi_tlv_defs.h | 14 +++++ fw/wmi_unified.h | 143 ++++++++++++++++++++++++++++++++++++++++------ fw/wmi_version.h | 2 +- 3 files changed, 142 insertions(+), 17 deletions(-) diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index a616df99d1a8..50eb141315fd 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1065,6 +1065,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_audio_aggr_group_stats, WMITLV_TAG_STRUC_wmi_audio_aggr_peer_stats, WMITLV_TAG_STRUC_wmi_ant_controller_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_srg_bss_color_bitmap_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_srg_partial_bssid_bitmap_cmd_fixed_param, } WMITLV_TAG_ID; /* @@ -1501,6 +1503,8 @@ typedef enum { OP(WMI_AUDIO_AGGR_GET_STATISTICS_CMDID) \ OP(WMI_AUDIO_AGGR_RESET_STATISTICS_CMDID) \ OP(WMI_ANT_CONTROLLER_CMDID) \ + OP(WMI_PDEV_SET_SRG_BSS_COLOR_BITMAP_CMDID) \ + OP(WMI_PDEV_SET_SRG_PARTIAL_BSSID_BITMAP_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -4352,6 +4356,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_FRAME_INJECT_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_rnr_bss_tbtt_info, rnr_tbtt_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_TBTT_OFFSET_SYNC_CMDID); +/* SRG BSS color Bitmap */ +#define WMITLV_TABLE_WMI_PDEV_SET_SRG_BSS_COLOR_BITMAP_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_srg_bss_color_bitmap_cmd_fixed_param, wmi_pdev_srg_bss_color_bitmap_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_SRG_BSS_COLOR_BITMAP_CMDID); + +/* SRG Partial BSSid Bitmap */ +#define WMITLV_TABLE_WMI_PDEV_SET_SRG_PARTIAL_BSSID_BITMAP_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_srg_partial_bssid_bitmap_cmd_fixed_param, wmi_pdev_srg_partial_bssid_bitmap_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_SRG_PARTIAL_BSSID_BITMAP_CMDID); + /************************** TLV definitions of WMI events *******************************/ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 1f8501c52242..8134723ec670 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -422,6 +422,10 @@ typedef enum { * RNR TBTT offset calculation. */ WMI_PDEV_TBTT_OFFSET_SYNC_CMDID, + /** Bss color bitmap for SRG based spatial reuse feature */ + WMI_PDEV_SET_SRG_BSS_COLOR_BITMAP_CMDID, + /** Partial BSSID bitmap for SRG based spatial reuse feature */ + WMI_PDEV_SET_SRG_PARTIAL_BSSID_BITMAP_CMDID, /* VDEV (virtual device) specific commands */ /** vdev create */ @@ -6522,11 +6526,12 @@ typedef enum { WMI_PDEV_PARAM_SET_TEST_CMD_TWT_SCHED_CONFIG, /* Parameter used to configure OBSS Packet Detect threshold - * for Spatial Reuse feature. + * for Non-SRG / SRG based Spatial Reuse feature. + * (SRG = Spatial Reuse Group) * The accepted values are in between 0x00 and 0xFF, inclusive. - * The parameter value is programmed into the spatial reuse register, - * to specify how low the background signal strength from neighboring - * BSS cells must be, for this AP to employ spatial reuse. + * The parameter value is programmed into the appropriate spatial reuse + * regsiter, to specify how low the background signal strength from + * neighboring BSS cells must be, for this AP to employ spatial reuse. * * The value of the parameter is compared against the OBSS RSSI in dB. * It is a 8-bit value whose @@ -6539,10 +6544,14 @@ typedef enum { * BSS cells is no more than 10 dB. * * bit | purpose - * ------------- - * 0 - 7 | Param Value - * 8 - 30 | reserved - * 31 | Enable/Disable. If set to 0, ignore bits 0-7. + * ----------------- + * 0 - 7 | Param Value for non-SRG based Spatial Reuse + * 8 - 15| Param value for SRG based Spatial Reuse + * 16 - 29| Reserved + * 30 | Enable/Disable SRG based spatial reuse. + * | If set to 0, ignore bits 8-15. + * 31 | Enable/Disable Non-SRG based spatial reuse. + * | If set to 0, ignore bits 0-7. */ WMI_PDEV_PARAM_SET_CMD_OBSS_PD_THRESHOLD, @@ -6550,16 +6559,22 @@ typedef enum { WMI_PDEV_PARAM_ENABLE_NON_WLAN_COEX_FROM_BOOT, /* Parameter used to configure OBSS Packet Detection per Access Category - * for Spatial Reuse feature. + * for SRP based and OBSS_PD based spatial reuse feature. + * (SRP = Spatial Reuse Parameter) * Based on the bits set, the corresponding Access Category Queues will have * spatial reuse enabled / disabled. - * bit | AC - * ----------- - * 0 | BK - * 1 | BE - * 2 | VI - * 3 | VO - * 4 - 31 | Reserved + * bit | AC + * ------------ + * 0 | BK for SRG/Non-SRG + * 1 | BE for SRG/Non-SRG + * 2 | VI for SRG/Non-SRG + * 3 | VO for SRG/Non-SRG + * 4 - 15 | Reserved + * 16 | BK for SRP + * 17 | BE for SRP + * 18 | VI for SRP + * 19 | VO for SRP + * 20 - 31 | Reserved */ WMI_PDEV_PARAM_SET_CMD_OBSS_PD_PER_AC, @@ -6608,6 +6623,12 @@ typedef enum { /* Parameter used for enabling/disabling xlna bypass for SAP mode*/ WMI_PDEV_PARAM_SET_SAP_XLNA_BYPASS, + /* Parameter used to enable/disable SRP feature */ + WMI_PDEV_PARAM_ENABLE_SRP, + + /* Parameter used to enable/disable SR prohibit feature */ + WMI_PDEV_PARAM_ENABLE_SR_PROHIBIT, + } WMI_PDEV_PARAM; #define WMI_PDEV_ONLY_BSR_TRIG_IS_ENABLED(trig_type) WMI_GET_BITS(trig_type, 0, 1) @@ -10688,6 +10709,64 @@ typedef enum { */ WMI_VDEV_PARAM_ENABLE_DISABLE_ROAM_REASON_VSIE, /* 0x9D */ + /* Parameter used to configure OBSS Packet Detect threshold + * for Non-SRG / SRG based Spatial Reuse feature. + * (SRG = Spatial Reuse Group) + * The accepted values are in between 0x00 and 0xFF, inclusive. + * The parameter value is programmed into the appropriate spatial reuse + * regsiter, to specify how low the background signal strength from + * neighboring BSS cells must be, for this AP to employ spatial reuse. + * + * The value of the parameter is compared against the OBSS RSSI in dB. + * It is a 8-bit value whose + * range is -128 to 127 (after two's complement operation). + * For example, if the parameter value is 0xF5, the target will + * allow spatial reuse if the RSSI detected from other BSS + * is below -10 dB. + * Similarly, if the parameter value is 0x0A, the target will + * allow spatial reuse only if the RSSI detected from neighboring + * BSS cells is no more than 10 dB. + * + * bit | purpose + * ----------------- + * 0 - 7 | Param Value for non-SRG based Spatial Reuse + * 8 - 15| Param value for SRG based Spatial Reuse + * 16 - 29| Reserved + * 30 | Enable/Disable SRG based spatial reuse. + * | If set to 0, ignore bits 8-15. + * 31 | Enable/Disable Non-SRG based spatial reuse. + * | If set to 0, ignore bits 0-7. + * + * The WMI_VDEV_PARAM_SET_CMD_OBSS_PD_THRESHOLD setting will only + * take effect if the WMI_PDEV_PARAM_SET_CMD_OBSS_PD_THRESHOLD + * setting is also set for the pdev that the vdev belongs to. + */ + WMI_VDEV_PARAM_SET_CMD_OBSS_PD_THRESHOLD, + + /* Parameter used to configure OBSS Packet Detection per Access Category + * for SRP based and OBSS_PD based spatial reuse feature. + * (SRP = Spatial Reuse Parameter) + * Based on the bits set, the corresponding Access Category Queues will have + * spatial reuse enabled / disabled. + * bit | AC + * ------------ + * 0 | BK for SRG/Non-SRG + * 1 | BE for SRG/Non-SRG + * 2 | VI for SRG/Non-SRG + * 3 | VO for SRG/Non-SRG + * 4 - 15 | Reserved + * 16 | BK for SRP + * 17 | BE for SRP + * 18 | VI for SRP + * 19 | VO for SRP + * 20 - 31 | Reserved + * + * The WMI_VDEV_PARAM_SET_CMD_OBSS_PD_PER_AC setting will only take effect + * if the WMI_PDEV_PARAM_SET_CMD_OBSS_PD_PER_AC setting is also set for + * the pdev that the vdev belongs to. + */ + WMI_VDEV_PARAM_SET_CMD_OBSS_PD_PER_AC, + /*=== ADD NEW VDEV PARAM TYPES ABOVE THIS LINE === * The below vdev param types are used for prototyping, and are @@ -30079,6 +30158,38 @@ typedef struct { A_UINT32 null_frame_tx_lost; } wmi_audio_aggr_peer_stats; +typedef struct { + /** TLV tag and len; tag equals + *WMITLV_TAG_STRUC_wmi_pdev_srg_bss_color_bitmap_cmd_fixed_param */ + A_UINT32 tlv_header; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + * In non-DBDC case host should set it to 0 + */ + A_UINT32 pdev_id; + /* 64 bit bss color bitmap used by SRG based spatial reuse feature + * bitmap[0] contains lower 32 bits and bitmap[1] contains + * upper 32 bits. + */ + A_UINT32 srg_bss_color_bitmap[2]; +} wmi_pdev_srg_bss_color_bitmap_cmd_fixed_param; + +typedef struct { + /** TLV tag and len; tag equals + *WMITLV_TAG_STRUC_wmi_pdev_srg_partial_bssid_bitmap_cmd_fixed_param */ + A_UINT32 tlv_header; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + * In non-DBDC case host should set it to 0 + */ + A_UINT32 pdev_id; + /* 64 bit partial bssid bitmap used by SRG based spatial reuse feature + * bitmap[0] contains lower 32 bits and bitmap[1] contains + * upper 32 bits. + */ + A_UINT32 srg_partial_bssid_bitmap[2]; +} wmi_pdev_srg_partial_bssid_bitmap_cmd_fixed_param; + /* ADD NEW DEFS HERE */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index dadb6c5600b3..7c20e0c411d0 100644 --- a/fw/wmi_version.h +++ b/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_ 818 +#define __WMI_REVISION_ 819 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work