diff --git a/fw/htt_ppdu_stats.h b/fw/htt_ppdu_stats.h index d4c832c34391..d2f2f49c99fd 100644 --- a/fw/htt_ppdu_stats.h +++ b/fw/htt_ppdu_stats.h @@ -508,11 +508,11 @@ typedef struct { #define HTT_PPDU_STATS_USER_COMMON_TLV_DELAYED_BA_M 0x00004000 #define HTT_PPDU_STATS_USER_COMMON_TLV_DELAYED_BA_S 14 - + #define HTT_PPDU_STATS_USER_COMMON_TLV_DELAYED_BA_GET(_var) \ (((_var) & HTT_PPDU_STATS_USER_COMMON_TLV_DELAYED_BA_M) >> \ HTT_PPDU_STATS_USER_COMMON_TLV_DELAYED_BA_S) - + #define HTT_PPDU_STATS_USER_COMMON_TLV_DELAYED_BA_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_PPDU_STATS_USER_COMMON_TLV_DELAYED_BA, _val); \ diff --git a/fw/wmi_services.h b/fw/wmi_services.h index e9bbeff19d90..3ec2d6334a74 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -255,6 +255,7 @@ typedef enum { WMI_SERVICE_DUAL_BEACON_ON_SINGLE_MAC_MCC_SUPPORT=159, /* Support dual beacon on different channel on single MAC */ WMI_SERVICE_MOTION_DET=160, /* support for motion detection config */ WMI_SERVICE_INFRA_MBSSID=161, /* support infra multi-BSSID feature */ + WMI_SERVICE_OBSS_SPATIAL_REUSE=162, /* support spatial reuse feature */ /******* ADD NEW SERVICES HERE *******/ diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index ad92b283122a..dfe45b4ef8b2 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -923,6 +923,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_motion_det_event, WMITLV_TAG_STRUC_wmi_motion_det_base_line_event, WMITLV_TAG_STRUC_wmi_ndp_transport_ip_param, + WMITLV_TAG_STRUC_wmi_obss_spatial_reuse_set_cmd_fixed_param, } WMITLV_TAG_ID; /* @@ -1300,6 +1301,7 @@ typedef enum { OP(WMI_MOTION_DET_BASE_LINE_CONFIG_PARAM_CMDID) \ OP(WMI_MOTION_DET_START_STOP_CMDID) \ OP(WMI_MOTION_DET_BASE_LINE_START_STOP_CMDID) \ + OP(WMI_PDEV_OBSS_PD_SPATIAL_REUSE_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -3746,6 +3748,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_TWT_RESUME_DIALOG_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_tid_configurations_cmd_fixed_param, wmi_peer_tid_configurations_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_TID_CONFIGURATIONS_CMDID); +/* OBSS_PD Spatial_Reuse cnmd */ +#define WMITLV_TABLE_WMI_PDEV_OBSS_PD_SPATIAL_REUSE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_obss_spatial_reuse_set_cmd_fixed_param, wmi_obss_spatial_reuse_set_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_OBSS_PD_SPATIAL_REUSE_CMDID); + /************************** TLV definitions of WMI events *******************************/ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 5aa835ca815e..a3c05371666d 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -244,6 +244,7 @@ typedef enum { WMI_GRP_11K_OFFLOAD, /* 0x3d */ WMI_GRP_TWT, /* 0x3e TWT (Target Wake Time) for STA and AP */ WMI_GRP_MOTION_DET, /* 0x3f */ + WMI_GRP_SPATIAL_REUSE, /* 0x40 */ } WMI_GRP_ID; #define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1) @@ -1139,6 +1140,9 @@ typedef enum { WMI_MOTION_DET_BASE_LINE_CONFIG_PARAM_CMDID, WMI_MOTION_DET_START_STOP_CMDID, WMI_MOTION_DET_BASE_LINE_START_STOP_CMDID, + + /** WMI commands related to OBSS PD Spatial Reuse **/ + WMI_PDEV_OBSS_PD_SPATIAL_REUSE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_SPATIAL_REUSE), } WMI_CMD_ID; typedef enum { @@ -8647,10 +8651,10 @@ typedef enum { /** Uplink OFDMA PPDU bandwidth (0: 20MHz, 1: 40MHz, 2: 80Mhz, 3: 160MHz)*/ WMI_VDEV_PARAM_UL_PPDU_BW, /* 0x8E */ - + /** Enable/Disable FW handling MU EDCA change from AP (1: En, 0:Dis) */ WMI_VDEV_PARAM_MU_EDCA_FW_UPDATE_EN, /* 0x8F */ - + /** Update dot11ObssNbruToleranceTime in fw. Param value: seconds */ WMI_VDEV_PARAM_UPDATE_OBSS_RU_TOLERANCE_TIME, /* 0x90 */ @@ -23162,6 +23166,27 @@ typedef struct { * phase (in %); reserved for future */ } wmi_motion_det_base_line_event; +/* Below structures are related to OBSS_PD_SPATIAL Reuse */ +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_obss_set_cmd_fixed_param */ + A_UINT32 tlv_header; + /** Enable/Disable Spatial Reuse */ + A_UINT32 enable; + /* + * In the below fields, "OBSS level" refers to the power of the + * signals received from "Other BSS". + * Spatial reuse will only be permitted if the Other BSS's signal power + * is witin the min to max range specified by the below fields. + */ + /** Minimum OBSS level to use */ + A_INT32 obss_min; /* RSSI in dBm */ + /** Maximum OBSS level to use */ + A_INT32 obss_max; /* RSSI in dBm */ + /** Vdev id*/ + A_UINT32 vdev_id; +} wmi_obss_spatial_reuse_set_cmd_fixed_param; + /* ADD NEW DEFS HERE */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 11812bef1889..1a6a8990b549 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_ 554 +#define __WMI_REVISION_ 555 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work