diff --git a/target/inc/wmi_tlv_defs.h b/target/inc/wmi_tlv_defs.h index bf35bacd3c..1ba64b490c 100644 --- a/target/inc/wmi_tlv_defs.h +++ b/target/inc/wmi_tlv_defs.h @@ -722,6 +722,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_read_data_from_flash_event_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_set_reorder_timeout_val_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_peer_set_rx_blocksize_cmd_fixed_param, + WMITLV_TAG_STRUC_WMI_PDEV_SET_WAKEUP_CONFIG_CMDID_fixed_param, } WMITLV_TAG_ID; /* @@ -1017,6 +1018,7 @@ typedef enum { OP(WMI_READ_DATA_FROM_FLASH_CMDID) \ OP(WMI_PDEV_SET_REORDER_TIMEOUT_VAL_CMDID) \ OP(WMI_PEER_SET_RX_BLOCKSIZE_CMDID) \ + OP(WMI_PDEV_SET_WAKEUP_CONFIG_CMDID) \ /* add new CMD_LIST elements above this line */ /* @@ -1779,9 +1781,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_UTF_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_QVIT_CMDID); +#define WMITLV_TABLE_WMI_PDEV_SET_WAKEUP_CONFIG_CMDID(id, op, buf, len) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_WMI_PDEV_SET_WAKEUP_CONFIG_CMDID_fixed_param, WMI_PDEV_SET_WAKEUP_CONFIG_CMDID_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_WAKEUP_CONFIG_CMDID); + /* Vdev Set keep alive Cmd */ -#define WMITLV_TABLE_WMI_VDEV_SET_KEEPALIVE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_set_keepalive_cmd_fixed_param, wmi_vdev_set_keepalive_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_SET_KEEPALIVE_CMDID(id, op, buf, len) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_set_keepalive_cmd_fixed_param, wmi_vdev_set_keepalive_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_KEEPALIVE_CMDID); /* Vdev Get keep alive Cmd */ diff --git a/target/inc/wmi_unified.h b/target/inc/wmi_unified.h index 85537be7ad..4237f64097 100644 --- a/target/inc/wmi_unified.h +++ b/target/inc/wmi_unified.h @@ -347,6 +347,8 @@ typedef enum { WMI_PDEV_WAL_POWER_DEBUG_CMDID, /** set per-AC rx reorder timeouts */ WMI_PDEV_SET_REORDER_TIMEOUT_VAL_CMDID, + /** WMI command for WOW gpio and type */ + WMI_PDEV_SET_WAKEUP_CONFIG_CMDID, /* VDEV (virtual device) specific commands */ /** vdev create */ @@ -4195,6 +4197,32 @@ typedef struct { A_UINT32 enable_override; } wmi_vdev_set_dscp_tid_map_cmd_fixed_param; +enum WMI_WAKE_GPIO_TYPE { + WMI_WAKE_GPIO_LOW = 1, + WMI_WAKE_GPIO_HIGH = 2, + WMI_WAKE_GPIO_RISING_EDGE = 3, + WMI_WAKE_GPIO_FALLING_EDGE = 4, +}; + +/** + * Set GPIO numbers used to wakeup host and wakeup target. + */ +typedef struct { + /** + * TLV tag and len; tag equals + * WMITLV_TAG_STRUC_WMI_PDEV_SET_WAKEUP_CONFIG_CMDID_fixed_param + */ + A_UINT32 tlv_header; + /* gpio num used to wakeup host, 0xff disable wakeup gpio */ + A_UINT32 host_wakeup_gpio; + /* refer to WMI_WAKE_GPIO_TYPE */ + A_UINT32 host_wakeup_type; + /* gpio num used to wakeup target, 0xff disable wakeup gpio */ + A_UINT32 target_wakeup_gpio; + /* refer to WMI_WAKE_GPIO_TYPE */ + A_UINT32 target_wakeup_type; +} WMI_PDEV_SET_WAKEUP_CONFIG_CMDID_fixed_param; + /** Fixed rate (rate-code) for broadcast/ multicast data frames */ /* @brief bcast_mcast_data_rate - set the rates for the bcast/ mcast frames * @details @@ -5635,6 +5663,9 @@ typedef enum { */ WMI_VDEV_PARAM_AGG_SW_RETRY_TH, + /** disable dynamic bw RTS **/ + WMI_VDEV_PARAM_DISABLE_DYN_BW_RTS, + /* * === ADD NEW VDEV PARAM TYPES ABOVE THIS LINE === * The below vdev param types are used for prototyping, and are @@ -6906,27 +6937,43 @@ typedef union { /* * CCK max/min tx Rate description - * tx_rate = 0: 1Mbps, - * tx_rate = 1: 2Mbps - * tx_rate = 2: 5.5Mbps - * tx_rate = 3: 11Mbps - * tx_rate = else : invalid. + * tx_rate = 0: 1 Mbps + * tx_rate = 1: 2 Mbps + * tx_rate = 2: 5.5 Mbps + * tx_rate = 3: 11 Mbps + * tx_rate = else: invalid */ -#define WMI_MAX_CCK_TX_RATE 0x03 +enum { + WMI_MAX_CCK_TX_RATE_1M, /* up to 1M CCK Rate avaliable */ + WMI_MAX_CCK_TX_RATE_2M, /* up to 2M CCK Rate avaliable */ + WMI_MAX_CCK_TX_RATE_5_5M, /* up to 5.5M CCK Rate avaliable */ + WMI_MAX_CCK_TX_RATE_11M, /* up to 11M CCK Rate avaliable */ + WMI_MAX_CCK_TX_RATE = WMI_MAX_CCK_TX_RATE_11M, +}; /* * OFDM max/min tx Rate description - * tx_rate = 0: 6Mbps, - * tx_rate = 1: 9Mbps - * tx_rate = 2: 12Mbps - * tx_rate = 3: 18Mbps - * tx_rate = 4: 24Mbps - * tx_rate = 5: 32Mbps - * tx_rate = 6: 48Mbps - * tx_rate = 7: 54Mbps - * tx_rate = else : invalid. + * tx_rate = 0: 6 Mbps + * tx_rate = 1: 9 Mbps + * tx_rate = 2: 12 Mbps + * tx_rate = 3: 18 Mbps + * tx_rate = 4: 24 Mbps + * tx_rate = 5: 32 Mbps + * tx_rate = 6: 48 Mbps + * tx_rate = 7: 54 Mbps + * tx_rate = else: invalid */ -#define WMI_MAX_OFDM_TX_RATE 0x07 +enum { + WMI_MAX_OFDM_TX_RATE_6M, /* up to 6M OFDM Rate avaliable */ + WMI_MAX_OFDM_TX_RATE_9M, /* up to 9M OFDM Rate avaliable */ + WMI_MAX_OFDM_TX_RATE_12M, /* up to 12M OFDM Rate avaliable */ + WMI_MAX_OFDM_TX_RATE_18M, /* up to 18M OFDM Rate avaliable */ + WMI_MAX_OFDM_TX_RATE_24M, /* up to 24M OFDM Rate avaliable */ + WMI_MAX_OFDM_TX_RATE_36M, /* up to 36M OFDM Rate avaliable */ + WMI_MAX_OFDM_TX_RATE_48M, /* up to 48M OFDM Rate avaliable */ + WMI_MAX_OFDM_TX_RATE_54M, /* up to 54M OFDM Rate avaliable */ + WMI_MAX_OFDM_TX_RATE = WMI_MAX_OFDM_TX_RATE_54M, +}; /* * HT max/min tx rate description @@ -8878,6 +8925,7 @@ typedef struct { A_UINT32 swol_indoor_pattern; /* wakeup pattern */ A_UINT32 swol_indoor_exception; /* wakeup when exception happens */ A_UINT32 swol_indoor_exception_app; + A_UINT32 swol_assist_enable; /* whether to enable IoT mode */ } wmi_extwow_set_app_type1_params_cmd_fixed_param; typedef struct { diff --git a/target/inc/wmi_version.h b/target/inc/wmi_version.h index 9bda8c0274..1686b6f5dc 100644 --- a/target/inc/wmi_version.h +++ b/target/inc/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_ 271 +#define __WMI_REVISION_ 274 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work