Loading drivers/net/wireless/ath/wil6210/wmi.h +561 −79 Original line number Original line Diff line number Diff line Loading @@ -120,6 +120,8 @@ enum wmi_command_id { WMI_BF_SM_MGMT_CMDID = 0x838, WMI_BF_SM_MGMT_CMDID = 0x838, WMI_BF_RXSS_MGMT_CMDID = 0x839, WMI_BF_RXSS_MGMT_CMDID = 0x839, WMI_BF_TRIG_CMDID = 0x83A, WMI_BF_TRIG_CMDID = 0x83A, WMI_LINK_MAINTAIN_CFG_WRITE_CMDID = 0x842, WMI_LINK_MAINTAIN_CFG_READ_CMDID = 0x843, WMI_SET_SECTORS_CMDID = 0x849, WMI_SET_SECTORS_CMDID = 0x849, WMI_MAINTAIN_PAUSE_CMDID = 0x850, WMI_MAINTAIN_PAUSE_CMDID = 0x850, WMI_MAINTAIN_RESUME_CMDID = 0x851, WMI_MAINTAIN_RESUME_CMDID = 0x851, Loading @@ -134,10 +136,15 @@ enum wmi_command_id { WMI_BF_CTRL_CMDID = 0x862, WMI_BF_CTRL_CMDID = 0x862, WMI_NOTIFY_REQ_CMDID = 0x863, WMI_NOTIFY_REQ_CMDID = 0x863, WMI_GET_STATUS_CMDID = 0x864, WMI_GET_STATUS_CMDID = 0x864, WMI_GET_RF_STATUS_CMDID = 0x866, WMI_GET_BASEBAND_TYPE_CMDID = 0x867, WMI_UNIT_TEST_CMDID = 0x900, WMI_UNIT_TEST_CMDID = 0x900, WMI_HICCUP_CMDID = 0x901, WMI_HICCUP_CMDID = 0x901, WMI_FLASH_READ_CMDID = 0x902, WMI_FLASH_READ_CMDID = 0x902, WMI_FLASH_WRITE_CMDID = 0x903, WMI_FLASH_WRITE_CMDID = 0x903, /* Power management */ WMI_TRAFFIC_DEFERRAL_CMDID = 0x904, WMI_TRAFFIC_RESUME_CMDID = 0x905, /* P2P */ /* P2P */ WMI_P2P_CFG_CMDID = 0x910, WMI_P2P_CFG_CMDID = 0x910, WMI_PORT_ALLOCATE_CMDID = 0x911, WMI_PORT_ALLOCATE_CMDID = 0x911, Loading @@ -150,6 +157,19 @@ enum wmi_command_id { WMI_PCP_START_CMDID = 0x918, WMI_PCP_START_CMDID = 0x918, WMI_PCP_STOP_CMDID = 0x919, WMI_PCP_STOP_CMDID = 0x919, WMI_GET_PCP_FACTOR_CMDID = 0x91B, WMI_GET_PCP_FACTOR_CMDID = 0x91B, /* Power Save Configuration Commands */ WMI_PS_DEV_PROFILE_CFG_CMDID = 0x91C, /* Not supported yet */ WMI_PS_DEV_CFG_CMDID = 0x91D, /* Not supported yet */ WMI_PS_DEV_CFG_READ_CMDID = 0x91E, /* Per MAC Power Save Configuration commands * Not supported yet */ WMI_PS_MID_CFG_CMDID = 0x91F, /* Not supported yet */ WMI_PS_MID_CFG_READ_CMDID = 0x920, WMI_RS_CFG_CMDID = 0x921, WMI_SET_MAC_ADDRESS_CMDID = 0xF003, WMI_SET_MAC_ADDRESS_CMDID = 0xF003, WMI_ABORT_SCAN_CMDID = 0xF007, WMI_ABORT_SCAN_CMDID = 0xF007, WMI_SET_PROMISCUOUS_MODE_CMDID = 0xF041, WMI_SET_PROMISCUOUS_MODE_CMDID = 0xF041, Loading Loading @@ -291,9 +311,8 @@ enum wmi_scan_type { /* WMI_START_SCAN_CMDID */ /* WMI_START_SCAN_CMDID */ struct wmi_start_scan_cmd { struct wmi_start_scan_cmd { u8 direct_scan_mac_addr[WMI_MAC_LEN]; u8 direct_scan_mac_addr[WMI_MAC_LEN]; /* DMG Beacon frame is transmitted during active scanning */ /* run scan with discovery beacon. Relevant for ACTIVE scan only. */ u8 discovery_mode; u8 discovery_mode; /* reserved */ u8 reserved; u8 reserved; /* Max duration in the home channel(ms) */ /* Max duration in the home channel(ms) */ __le32 dwell_time; __le32 dwell_time; Loading Loading @@ -453,6 +472,12 @@ struct wmi_port_delete_cmd { u8 reserved[3]; u8 reserved[3]; } __packed; } __packed; /* WMI_TRAFFIC_DEFERRAL_CMDID */ struct wmi_traffic_deferral_cmd { /* Bit vector: bit[0] - wake on Unicast, bit[1] - wake on Broadcast */ u8 wakeup_trigger; } __packed; /* WMI_P2P_CFG_CMDID */ /* WMI_P2P_CFG_CMDID */ enum wmi_discovery_mode { enum wmi_discovery_mode { WMI_DISCOVERY_MODE_NON_OFFLOAD = 0x00, WMI_DISCOVERY_MODE_NON_OFFLOAD = 0x00, Loading Loading @@ -868,6 +893,8 @@ enum wmi_event_id { WMI_BF_SM_MGMT_DONE_EVENTID = 0x1838, WMI_BF_SM_MGMT_DONE_EVENTID = 0x1838, WMI_RX_MGMT_PACKET_EVENTID = 0x1840, WMI_RX_MGMT_PACKET_EVENTID = 0x1840, WMI_TX_MGMT_PACKET_EVENTID = 0x1841, WMI_TX_MGMT_PACKET_EVENTID = 0x1841, WMI_LINK_MAINTAIN_CFG_WRITE_DONE_EVENTID = 0x1842, WMI_LINK_MAINTAIN_CFG_READ_DONE_EVENTID = 0x1843, WMI_OTP_READ_RESULT_EVENTID = 0x1856, WMI_OTP_READ_RESULT_EVENTID = 0x1856, WMI_LED_CFG_DONE_EVENTID = 0x1858, WMI_LED_CFG_DONE_EVENTID = 0x1858, /* Performance monitoring events */ /* Performance monitoring events */ Loading @@ -877,9 +904,14 @@ enum wmi_event_id { WMI_NOTIFY_REQ_DONE_EVENTID = 0x1863, WMI_NOTIFY_REQ_DONE_EVENTID = 0x1863, WMI_GET_STATUS_DONE_EVENTID = 0x1864, WMI_GET_STATUS_DONE_EVENTID = 0x1864, WMI_VRING_EN_EVENTID = 0x1865, WMI_VRING_EN_EVENTID = 0x1865, WMI_GET_RF_STATUS_EVENTID = 0x1866, WMI_GET_BASEBAND_TYPE_EVENTID = 0x1867, WMI_UNIT_TEST_EVENTID = 0x1900, WMI_UNIT_TEST_EVENTID = 0x1900, WMI_FLASH_READ_DONE_EVENTID = 0x1902, WMI_FLASH_READ_DONE_EVENTID = 0x1902, WMI_FLASH_WRITE_DONE_EVENTID = 0x1903, WMI_FLASH_WRITE_DONE_EVENTID = 0x1903, /* Power management */ WMI_TRAFFIC_DEFERRAL_EVENTID = 0x1904, WMI_TRAFFIC_RESUME_EVENTID = 0x1905, /* P2P */ /* P2P */ WMI_P2P_CFG_DONE_EVENTID = 0x1910, WMI_P2P_CFG_DONE_EVENTID = 0x1910, WMI_PORT_ALLOCATED_EVENTID = 0x1911, WMI_PORT_ALLOCATED_EVENTID = 0x1911, Loading @@ -891,6 +923,17 @@ enum wmi_event_id { WMI_PCP_STARTED_EVENTID = 0x1918, WMI_PCP_STARTED_EVENTID = 0x1918, WMI_PCP_STOPPED_EVENTID = 0x1919, WMI_PCP_STOPPED_EVENTID = 0x1919, WMI_PCP_FACTOR_EVENTID = 0x191A, WMI_PCP_FACTOR_EVENTID = 0x191A, /* Power Save Configuration Events */ WMI_PS_DEV_PROFILE_CFG_EVENTID = 0x191C, /* Not supported yet */ WMI_PS_DEV_CFG_EVENTID = 0x191D, /* Not supported yet */ WMI_PS_DEV_CFG_READ_EVENTID = 0x191E, /* Not supported yet */ WMI_PS_MID_CFG_EVENTID = 0x191F, /* Not supported yet */ WMI_PS_MID_CFG_READ_EVENTID = 0x1920, WMI_RS_CFG_DONE_EVENTID = 0x1921, WMI_SET_CHANNEL_EVENTID = 0x9000, WMI_SET_CHANNEL_EVENTID = 0x9000, WMI_ASSOC_REQ_EVENTID = 0x9001, WMI_ASSOC_REQ_EVENTID = 0x9001, WMI_EAPOL_RX_EVENTID = 0x9002, WMI_EAPOL_RX_EVENTID = 0x9002, Loading Loading @@ -943,10 +986,78 @@ struct wmi_get_status_done_event { /* WMI_FW_VER_EVENTID */ /* WMI_FW_VER_EVENTID */ struct wmi_fw_ver_event { struct wmi_fw_ver_event { u8 major; /* FW image version */ u8 minor; __le32 fw_major; __le16 subminor; __le32 fw_minor; __le16 build; __le32 fw_subminor; __le32 fw_build; /* FW image build time stamp */ __le32 hour; __le32 minute; __le32 second; __le32 day; __le32 month; __le32 year; /* Boot Loader image version */ __le32 bl_major; __le32 bl_minor; __le32 bl_subminor; __le32 bl_build; } __packed; /* WMI_GET_RF_STATUS_EVENTID */ enum rf_type { RF_UNKNOWN = 0x00, RF_MARLON = 0x01, RF_SPARROW = 0x02, }; /* WMI_GET_RF_STATUS_EVENTID */ enum board_file_rf_type { BF_RF_MARLON = 0x00, BF_RF_SPARROW = 0x01, }; /* WMI_GET_RF_STATUS_EVENTID */ enum rf_status { RF_OK = 0x00, RF_NO_COMM = 0x01, RF_WRONG_BOARD_FILE = 0x02, }; /* WMI_GET_RF_STATUS_EVENTID */ struct wmi_get_rf_status_event { /* enum rf_type */ __le32 rf_type; /* attached RFs bit vector */ __le32 attached_rf_vector; /* enabled RFs bit vector */ __le32 enabled_rf_vector; /* enum rf_status, refers to enabled RFs */ u8 rf_status[32]; /* enum board file RF type */ __le32 board_file_rf_type; /* board file platform type */ __le32 board_file_platform_type; /* board file version */ __le32 board_file_version; __le32 reserved[2]; } __packed; /* WMI_GET_BASEBAND_TYPE_EVENTID */ enum baseband_type { BASEBAND_UNKNOWN = 0x00, BASEBAND_SPARROW_M_A0 = 0x03, BASEBAND_SPARROW_M_A1 = 0x04, BASEBAND_SPARROW_M_B0 = 0x05, BASEBAND_SPARROW_M_C0 = 0x06, BASEBAND_SPARROW_M_D0 = 0x07, }; /* WMI_GET_BASEBAND_TYPE_EVENTID */ struct wmi_get_baseband_type_event { /* enum baseband_type */ __le32 baseband_type; } __packed; } __packed; /* WMI_MAC_ADDR_RESP_EVENTID */ /* WMI_MAC_ADDR_RESP_EVENTID */ Loading Loading @@ -1410,4 +1521,375 @@ struct wmi_led_cfg_done_event { __le32 status; __le32 status; } __packed; } __packed; #define WMI_NUM_MCS (13) /* Rate search parameters configuration per connection */ struct wmi_rs_cfg { /* The maximal allowed PER for each MCS * MCS will be considered as failed if PER during RS is higher */ u8 per_threshold[WMI_NUM_MCS]; /* Number of MPDUs for each MCS * this is the minimal statistic required to make an educated * decision */ u8 min_frame_cnt[WMI_NUM_MCS]; /* stop threshold [0-100] */ u8 stop_th; /* MCS1 stop threshold [0-100] */ u8 mcs1_fail_th; u8 max_back_failure_th; /* Debug feature for disabling internal RS trigger (which is * currently triggered by BF Done) */ u8 dbg_disable_internal_trigger; __le32 back_failure_mask; __le32 mcs_en_vec; } __packed; /* WMI_RS_CFG_CMDID */ struct wmi_rs_cfg_cmd { /* connection id */ u8 cid; /* enable or disable rate search */ u8 rs_enable; /* rate search configuration */ struct wmi_rs_cfg rs_cfg; } __packed; /* WMI_RS_CFG_DONE_EVENTID */ struct wmi_rs_cfg_done_event { u8 cid; /* enum wmi_fw_status */ u8 status; u8 reserved[2]; } __packed; /* broadcast connection ID */ #define WMI_LINK_MAINTAIN_CFG_CID_BROADCAST (0xFFFFFFFF) /* Types wmi_link_maintain_cfg presets for WMI_LINK_MAINTAIN_CFG_WRITE_CMD */ enum wmi_link_maintain_cfg_type { /* AP/PCP default normal (non-FST) configuration settings */ WMI_LINK_MAINTAIN_CFG_TYPE_DEFAULT_NORMAL_AP = 0x00, /* AP/PCP default FST configuration settings */ WMI_LINK_MAINTAIN_CFG_TYPE_DEFAULT_FST_AP = 0x01, /* STA default normal (non-FST) configuration settings */ WMI_LINK_MAINTAIN_CFG_TYPE_DEFAULT_NORMAL_STA = 0x02, /* STA default FST configuration settings */ WMI_LINK_MAINTAIN_CFG_TYPE_DEFAULT_FST_STA = 0x03, /* custom configuration settings */ WMI_LINK_MAINTAIN_CFG_TYPE_CUSTOM = 0x04, /* number of defined configuration types */ WMI_LINK_MAINTAIN_CFG_TYPES_NUM = 0x05, }; /* Response status codes for WMI_LINK_MAINTAIN_CFG_WRITE/READ commands */ enum wmi_link_maintain_cfg_response_status { /* WMI_LINK_MAINTAIN_CFG_WRITE/READ command successfully accomplished */ WMI_LINK_MAINTAIN_CFG_RESPONSE_STATUS_OK = 0x00, /* ERROR due to bad argument in WMI_LINK_MAINTAIN_CFG_WRITE/READ * command request */ WMI_LINK_MAINTAIN_CFG_RESPONSE_STATUS_BAD_ARGUMENT = 0x01, }; /* Link Loss and Keep Alive configuration */ struct wmi_link_maintain_cfg { /* link_loss_enable_detectors_vec */ __le32 link_loss_enable_detectors_vec; /* detectors check period usec */ __le32 check_link_loss_period_usec; /* max allowed tx ageing */ __le32 tx_ageing_threshold_usec; /* keep alive period for high SNR */ __le32 keep_alive_period_usec_high_snr; /* keep alive period for low SNR */ __le32 keep_alive_period_usec_low_snr; /* lower snr limit for keep alive period update */ __le32 keep_alive_snr_threshold_low_db; /* upper snr limit for keep alive period update */ __le32 keep_alive_snr_threshold_high_db; /* num of successive bad bcons causing link-loss */ __le32 bad_beacons_num_threshold; /* SNR limit for bad_beacons_detector */ __le32 bad_beacons_snr_threshold_db; } __packed; /* WMI_LINK_MAINTAIN_CFG_WRITE_CMDID */ struct wmi_link_maintain_cfg_write_cmd { /* enum wmi_link_maintain_cfg_type_e - type of requested default * configuration to be applied */ __le32 cfg_type; /* requested connection ID or WMI_LINK_MAINTAIN_CFG_CID_BROADCAST */ __le32 cid; /* custom configuration settings to be applied (relevant only if * cfg_type==WMI_LINK_MAINTAIN_CFG_TYPE_CUSTOM) */ struct wmi_link_maintain_cfg lm_cfg; } __packed; /* WMI_LINK_MAINTAIN_CFG_READ_CMDID */ struct wmi_link_maintain_cfg_read_cmd { /* connection ID which configuration settings are requested */ __le32 cid; } __packed; /* WMI_LINK_MAINTAIN_CFG_WRITE_DONE_EVENTID */ struct wmi_link_maintain_cfg_write_done_event { /* requested connection ID */ __le32 cid; /* wmi_link_maintain_cfg_response_status_e - write status */ __le32 status; } __packed; /* \WMI_LINK_MAINTAIN_CFG_READ_DONE_EVENT */ struct wmi_link_maintain_cfg_read_done_event { /* requested connection ID */ __le32 cid; /* wmi_link_maintain_cfg_response_status_e - read status */ __le32 status; /* Retrieved configuration settings */ struct wmi_link_maintain_cfg lm_cfg; } __packed; enum wmi_traffic_deferral_status { WMI_TRAFFIC_DEFERRAL_APPROVED = 0x0, WMI_TRAFFIC_DEFERRAL_REJECTED = 0x1, }; /* WMI_TRAFFIC_DEFERRAL_EVENTID */ struct wmi_traffic_deferral_event { /* enum wmi_traffic_deferral_status_e */ u8 status; } __packed; enum wmi_traffic_resume_status { WMI_TRAFFIC_RESUME_SUCCESS = 0x0, WMI_TRAFFIC_RESUME_FAILED = 0x1, }; /* WMI_TRAFFIC_RESUME_EVENTID */ struct wmi_traffic_resume_event { /* enum wmi_traffic_resume_status_e */ u8 status; } __packed; /* Power Save command completion status codes */ enum wmi_ps_cfg_cmd_status { WMI_PS_CFG_CMD_STATUS_SUCCESS = 0x00, WMI_PS_CFG_CMD_STATUS_BAD_PARAM = 0x01, /* other error */ WMI_PS_CFG_CMD_STATUS_ERROR = 0x02, }; /* Device Power Save Profiles */ enum wmi_ps_profile_type { WMI_PS_PROFILE_TYPE_DEFAULT = 0x00, WMI_PS_PROFILE_TYPE_PS_DISABLED = 0x01, WMI_PS_PROFILE_TYPE_MAX_PS = 0x02, WMI_PS_PROFILE_TYPE_LOW_LATENCY_PS = 0x03, }; /* WMI_PS_DEV_PROFILE_CFG_CMDID * * Power save profile to be used by the device * * Returned event: * - WMI_PS_DEV_PROFILE_CFG_EVENTID */ struct wmi_ps_dev_profile_cfg_cmd { /* wmi_ps_profile_type_e */ u8 ps_profile; u8 reserved[3]; } __packed; /* WMI_PS_DEV_PROFILE_CFG_EVENTID */ struct wmi_ps_dev_profile_cfg_event { /* wmi_ps_cfg_cmd_status_e */ __le32 status; } __packed; enum wmi_ps_level { WMI_PS_LEVEL_DEEP_SLEEP = 0x00, WMI_PS_LEVEL_SHALLOW_SLEEP = 0x01, /* awake = all PS mechanisms are disabled */ WMI_PS_LEVEL_AWAKE = 0x02, }; enum wmi_ps_deep_sleep_clk_level { /* 33k */ WMI_PS_DEEP_SLEEP_CLK_LEVEL_RTC = 0x00, /* 10k */ WMI_PS_DEEP_SLEEP_CLK_LEVEL_OSC = 0x01, /* @RTC Low latency */ WMI_PS_DEEP_SLEEP_CLK_LEVEL_RTC_LT = 0x02, WMI_PS_DEEP_SLEEP_CLK_LEVEL_XTAL = 0x03, WMI_PS_DEEP_SLEEP_CLK_LEVEL_SYSCLK = 0x04, /* Not Applicable */ WMI_PS_DEEP_SLEEP_CLK_LEVEL_N_A = 0xFF, }; /* Response by the FW to a D3 entry request */ enum wmi_ps_d3_resp_policy { WMI_PS_D3_RESP_POLICY_DEFAULT = 0x00, /* debug -D3 req is always denied */ WMI_PS_D3_RESP_POLICY_DENIED = 0x01, /* debug -D3 req is always approved */ WMI_PS_D3_RESP_POLICY_APPROVED = 0x02, }; /* Device common power save configurations */ struct wmi_ps_dev_cfg { /* lowest level of PS allowed while unassociated, enum wmi_ps_level_e */ u8 ps_unassoc_min_level; /* lowest deep sleep clock level while nonassoc, enum * wmi_ps_deep_sleep_clk_level_e */ u8 ps_unassoc_deep_sleep_min_level; /* lowest level of PS allowed while associated, enum wmi_ps_level_e */ u8 ps_assoc_min_level; /* lowest deep sleep clock level while assoc, enum * wmi_ps_deep_sleep_clk_level_e */ u8 ps_assoc_deep_sleep_min_level; /* enum wmi_ps_deep_sleep_clk_level_e */ u8 ps_assoc_low_latency_ds_min_level; /* enum wmi_ps_d3_resp_policy_e */ u8 ps_D3_response_policy; /* BOOL */ u8 ps_D3_pm_pme_enabled; /* BOOL */ u8 ps_halp_enable; u8 ps_deep_sleep_enter_thresh_msec; /* BOOL */ u8 ps_voltage_scaling_en; } __packed; /* WMI_PS_DEV_CFG_CMDID * * Configure common Power Save parameters of the device and all MIDs. * * Returned event: * - WMI_PS_DEV_CFG_EVENTID */ struct wmi_ps_dev_cfg_cmd { /* Device Power Save configuration to be applied */ struct wmi_ps_dev_cfg ps_dev_cfg; /* alignment to 32b */ u8 reserved[2]; } __packed; /* WMI_PS_DEV_CFG_EVENTID */ struct wmi_ps_dev_cfg_event { /* wmi_ps_cfg_cmd_status_e */ __le32 status; } __packed; /* WMI_PS_DEV_CFG_READ_CMDID * * request to retrieve device Power Save configuration * (WMI_PS_DEV_CFG_CMD params) * * Returned event: * - WMI_PS_DEV_CFG_READ_EVENTID */ struct wmi_ps_dev_cfg_read_cmd { __le32 reserved; } __packed; /* WMI_PS_DEV_CFG_READ_EVENTID */ struct wmi_ps_dev_cfg_read_event { /* wmi_ps_cfg_cmd_status_e */ __le32 status; /* Retrieved device Power Save configuration (WMI_PS_DEV_CFG_CMD * params) */ struct wmi_ps_dev_cfg dev_ps_cfg; /* alignment to 32b */ u8 reserved[2]; } __packed; /* Per Mac Power Save configurations */ struct wmi_ps_mid_cfg { /* Low power RX in BTI is enabled, BOOL */ u8 beacon_lprx_enable; /* Sync to sector ID enabled, BOOL */ u8 beacon_sync_to_sectorId_enable; /* Low power RX in DTI is enabled, BOOL */ u8 frame_exchange_lprx_enable; /* Sleep Cycle while in scheduled PS, 1-31 */ u8 scheduled_sleep_cycle_pow2; /* Stay Awake for k BIs every (sleep_cycle - k) BIs, 1-31 */ u8 scheduled_num_of_awake_bis; u8 am_to_traffic_load_thresh_mbp; u8 traffic_to_am_load_thresh_mbps; u8 traffic_to_am_num_of_no_traffic_bis; /* BOOL */ u8 continuous_traffic_psm; __le16 no_traffic_to_min_usec; __le16 no_traffic_to_max_usec; __le16 snoozing_sleep_interval_milisec; u8 max_no_data_awake_events; /* Trigger WEB after k failed beacons */ u8 num_of_failed_beacons_rx_to_trigger_web; /* Trigger BF after k failed beacons */ u8 num_of_failed_beacons_rx_to_trigger_bf; /* Trigger SOB after k successful beacons */ u8 num_of_successful_beacons_rx_to_trigger_sob; } __packed; /* WMI_PS_MID_CFG_CMDID * * Configure Power Save parameters of a specific MID. * These parameters are relevant for the specific BSS this MID belongs to. * * Returned event: * - WMI_PS_MID_CFG_EVENTID */ struct wmi_ps_mid_cfg_cmd { /* MAC ID */ u8 mid; /* mid PS configuration to be applied */ struct wmi_ps_mid_cfg ps_mid_cfg; } __packed; /* WMI_PS_MID_CFG_EVENTID */ struct wmi_ps_mid_cfg_event { /* MAC ID */ u8 mid; /* alignment to 32b */ u8 reserved[3]; /* wmi_ps_cfg_cmd_status_e */ __le32 status; } __packed; /* WMI_PS_MID_CFG_READ_CMDID * * request to retrieve Power Save configuration of mid * (WMI_PS_MID_CFG_CMD params) * * Returned event: * - WMI_PS_MID_CFG_READ_EVENTID */ struct wmi_ps_mid_cfg_read_cmd { /* MAC ID */ u8 mid; /* alignment to 32b */ u8 reserved[3]; } __packed; /* WMI_PS_MID_CFG_READ_EVENTID */ struct wmi_ps_mid_cfg_read_event { /* MAC ID */ u8 mid; /* Retrieved MID Power Save configuration(WMI_PS_MID_CFG_CMD params) */ struct wmi_ps_mid_cfg mid_ps_cfg; /* wmi_ps_cfg_cmd_status_e */ __le32 status; } __packed; #endif /* __WILOCITY_WMI_H__ */ #endif /* __WILOCITY_WMI_H__ */ Loading
drivers/net/wireless/ath/wil6210/wmi.h +561 −79 Original line number Original line Diff line number Diff line Loading @@ -120,6 +120,8 @@ enum wmi_command_id { WMI_BF_SM_MGMT_CMDID = 0x838, WMI_BF_SM_MGMT_CMDID = 0x838, WMI_BF_RXSS_MGMT_CMDID = 0x839, WMI_BF_RXSS_MGMT_CMDID = 0x839, WMI_BF_TRIG_CMDID = 0x83A, WMI_BF_TRIG_CMDID = 0x83A, WMI_LINK_MAINTAIN_CFG_WRITE_CMDID = 0x842, WMI_LINK_MAINTAIN_CFG_READ_CMDID = 0x843, WMI_SET_SECTORS_CMDID = 0x849, WMI_SET_SECTORS_CMDID = 0x849, WMI_MAINTAIN_PAUSE_CMDID = 0x850, WMI_MAINTAIN_PAUSE_CMDID = 0x850, WMI_MAINTAIN_RESUME_CMDID = 0x851, WMI_MAINTAIN_RESUME_CMDID = 0x851, Loading @@ -134,10 +136,15 @@ enum wmi_command_id { WMI_BF_CTRL_CMDID = 0x862, WMI_BF_CTRL_CMDID = 0x862, WMI_NOTIFY_REQ_CMDID = 0x863, WMI_NOTIFY_REQ_CMDID = 0x863, WMI_GET_STATUS_CMDID = 0x864, WMI_GET_STATUS_CMDID = 0x864, WMI_GET_RF_STATUS_CMDID = 0x866, WMI_GET_BASEBAND_TYPE_CMDID = 0x867, WMI_UNIT_TEST_CMDID = 0x900, WMI_UNIT_TEST_CMDID = 0x900, WMI_HICCUP_CMDID = 0x901, WMI_HICCUP_CMDID = 0x901, WMI_FLASH_READ_CMDID = 0x902, WMI_FLASH_READ_CMDID = 0x902, WMI_FLASH_WRITE_CMDID = 0x903, WMI_FLASH_WRITE_CMDID = 0x903, /* Power management */ WMI_TRAFFIC_DEFERRAL_CMDID = 0x904, WMI_TRAFFIC_RESUME_CMDID = 0x905, /* P2P */ /* P2P */ WMI_P2P_CFG_CMDID = 0x910, WMI_P2P_CFG_CMDID = 0x910, WMI_PORT_ALLOCATE_CMDID = 0x911, WMI_PORT_ALLOCATE_CMDID = 0x911, Loading @@ -150,6 +157,19 @@ enum wmi_command_id { WMI_PCP_START_CMDID = 0x918, WMI_PCP_START_CMDID = 0x918, WMI_PCP_STOP_CMDID = 0x919, WMI_PCP_STOP_CMDID = 0x919, WMI_GET_PCP_FACTOR_CMDID = 0x91B, WMI_GET_PCP_FACTOR_CMDID = 0x91B, /* Power Save Configuration Commands */ WMI_PS_DEV_PROFILE_CFG_CMDID = 0x91C, /* Not supported yet */ WMI_PS_DEV_CFG_CMDID = 0x91D, /* Not supported yet */ WMI_PS_DEV_CFG_READ_CMDID = 0x91E, /* Per MAC Power Save Configuration commands * Not supported yet */ WMI_PS_MID_CFG_CMDID = 0x91F, /* Not supported yet */ WMI_PS_MID_CFG_READ_CMDID = 0x920, WMI_RS_CFG_CMDID = 0x921, WMI_SET_MAC_ADDRESS_CMDID = 0xF003, WMI_SET_MAC_ADDRESS_CMDID = 0xF003, WMI_ABORT_SCAN_CMDID = 0xF007, WMI_ABORT_SCAN_CMDID = 0xF007, WMI_SET_PROMISCUOUS_MODE_CMDID = 0xF041, WMI_SET_PROMISCUOUS_MODE_CMDID = 0xF041, Loading Loading @@ -291,9 +311,8 @@ enum wmi_scan_type { /* WMI_START_SCAN_CMDID */ /* WMI_START_SCAN_CMDID */ struct wmi_start_scan_cmd { struct wmi_start_scan_cmd { u8 direct_scan_mac_addr[WMI_MAC_LEN]; u8 direct_scan_mac_addr[WMI_MAC_LEN]; /* DMG Beacon frame is transmitted during active scanning */ /* run scan with discovery beacon. Relevant for ACTIVE scan only. */ u8 discovery_mode; u8 discovery_mode; /* reserved */ u8 reserved; u8 reserved; /* Max duration in the home channel(ms) */ /* Max duration in the home channel(ms) */ __le32 dwell_time; __le32 dwell_time; Loading Loading @@ -453,6 +472,12 @@ struct wmi_port_delete_cmd { u8 reserved[3]; u8 reserved[3]; } __packed; } __packed; /* WMI_TRAFFIC_DEFERRAL_CMDID */ struct wmi_traffic_deferral_cmd { /* Bit vector: bit[0] - wake on Unicast, bit[1] - wake on Broadcast */ u8 wakeup_trigger; } __packed; /* WMI_P2P_CFG_CMDID */ /* WMI_P2P_CFG_CMDID */ enum wmi_discovery_mode { enum wmi_discovery_mode { WMI_DISCOVERY_MODE_NON_OFFLOAD = 0x00, WMI_DISCOVERY_MODE_NON_OFFLOAD = 0x00, Loading Loading @@ -868,6 +893,8 @@ enum wmi_event_id { WMI_BF_SM_MGMT_DONE_EVENTID = 0x1838, WMI_BF_SM_MGMT_DONE_EVENTID = 0x1838, WMI_RX_MGMT_PACKET_EVENTID = 0x1840, WMI_RX_MGMT_PACKET_EVENTID = 0x1840, WMI_TX_MGMT_PACKET_EVENTID = 0x1841, WMI_TX_MGMT_PACKET_EVENTID = 0x1841, WMI_LINK_MAINTAIN_CFG_WRITE_DONE_EVENTID = 0x1842, WMI_LINK_MAINTAIN_CFG_READ_DONE_EVENTID = 0x1843, WMI_OTP_READ_RESULT_EVENTID = 0x1856, WMI_OTP_READ_RESULT_EVENTID = 0x1856, WMI_LED_CFG_DONE_EVENTID = 0x1858, WMI_LED_CFG_DONE_EVENTID = 0x1858, /* Performance monitoring events */ /* Performance monitoring events */ Loading @@ -877,9 +904,14 @@ enum wmi_event_id { WMI_NOTIFY_REQ_DONE_EVENTID = 0x1863, WMI_NOTIFY_REQ_DONE_EVENTID = 0x1863, WMI_GET_STATUS_DONE_EVENTID = 0x1864, WMI_GET_STATUS_DONE_EVENTID = 0x1864, WMI_VRING_EN_EVENTID = 0x1865, WMI_VRING_EN_EVENTID = 0x1865, WMI_GET_RF_STATUS_EVENTID = 0x1866, WMI_GET_BASEBAND_TYPE_EVENTID = 0x1867, WMI_UNIT_TEST_EVENTID = 0x1900, WMI_UNIT_TEST_EVENTID = 0x1900, WMI_FLASH_READ_DONE_EVENTID = 0x1902, WMI_FLASH_READ_DONE_EVENTID = 0x1902, WMI_FLASH_WRITE_DONE_EVENTID = 0x1903, WMI_FLASH_WRITE_DONE_EVENTID = 0x1903, /* Power management */ WMI_TRAFFIC_DEFERRAL_EVENTID = 0x1904, WMI_TRAFFIC_RESUME_EVENTID = 0x1905, /* P2P */ /* P2P */ WMI_P2P_CFG_DONE_EVENTID = 0x1910, WMI_P2P_CFG_DONE_EVENTID = 0x1910, WMI_PORT_ALLOCATED_EVENTID = 0x1911, WMI_PORT_ALLOCATED_EVENTID = 0x1911, Loading @@ -891,6 +923,17 @@ enum wmi_event_id { WMI_PCP_STARTED_EVENTID = 0x1918, WMI_PCP_STARTED_EVENTID = 0x1918, WMI_PCP_STOPPED_EVENTID = 0x1919, WMI_PCP_STOPPED_EVENTID = 0x1919, WMI_PCP_FACTOR_EVENTID = 0x191A, WMI_PCP_FACTOR_EVENTID = 0x191A, /* Power Save Configuration Events */ WMI_PS_DEV_PROFILE_CFG_EVENTID = 0x191C, /* Not supported yet */ WMI_PS_DEV_CFG_EVENTID = 0x191D, /* Not supported yet */ WMI_PS_DEV_CFG_READ_EVENTID = 0x191E, /* Not supported yet */ WMI_PS_MID_CFG_EVENTID = 0x191F, /* Not supported yet */ WMI_PS_MID_CFG_READ_EVENTID = 0x1920, WMI_RS_CFG_DONE_EVENTID = 0x1921, WMI_SET_CHANNEL_EVENTID = 0x9000, WMI_SET_CHANNEL_EVENTID = 0x9000, WMI_ASSOC_REQ_EVENTID = 0x9001, WMI_ASSOC_REQ_EVENTID = 0x9001, WMI_EAPOL_RX_EVENTID = 0x9002, WMI_EAPOL_RX_EVENTID = 0x9002, Loading Loading @@ -943,10 +986,78 @@ struct wmi_get_status_done_event { /* WMI_FW_VER_EVENTID */ /* WMI_FW_VER_EVENTID */ struct wmi_fw_ver_event { struct wmi_fw_ver_event { u8 major; /* FW image version */ u8 minor; __le32 fw_major; __le16 subminor; __le32 fw_minor; __le16 build; __le32 fw_subminor; __le32 fw_build; /* FW image build time stamp */ __le32 hour; __le32 minute; __le32 second; __le32 day; __le32 month; __le32 year; /* Boot Loader image version */ __le32 bl_major; __le32 bl_minor; __le32 bl_subminor; __le32 bl_build; } __packed; /* WMI_GET_RF_STATUS_EVENTID */ enum rf_type { RF_UNKNOWN = 0x00, RF_MARLON = 0x01, RF_SPARROW = 0x02, }; /* WMI_GET_RF_STATUS_EVENTID */ enum board_file_rf_type { BF_RF_MARLON = 0x00, BF_RF_SPARROW = 0x01, }; /* WMI_GET_RF_STATUS_EVENTID */ enum rf_status { RF_OK = 0x00, RF_NO_COMM = 0x01, RF_WRONG_BOARD_FILE = 0x02, }; /* WMI_GET_RF_STATUS_EVENTID */ struct wmi_get_rf_status_event { /* enum rf_type */ __le32 rf_type; /* attached RFs bit vector */ __le32 attached_rf_vector; /* enabled RFs bit vector */ __le32 enabled_rf_vector; /* enum rf_status, refers to enabled RFs */ u8 rf_status[32]; /* enum board file RF type */ __le32 board_file_rf_type; /* board file platform type */ __le32 board_file_platform_type; /* board file version */ __le32 board_file_version; __le32 reserved[2]; } __packed; /* WMI_GET_BASEBAND_TYPE_EVENTID */ enum baseband_type { BASEBAND_UNKNOWN = 0x00, BASEBAND_SPARROW_M_A0 = 0x03, BASEBAND_SPARROW_M_A1 = 0x04, BASEBAND_SPARROW_M_B0 = 0x05, BASEBAND_SPARROW_M_C0 = 0x06, BASEBAND_SPARROW_M_D0 = 0x07, }; /* WMI_GET_BASEBAND_TYPE_EVENTID */ struct wmi_get_baseband_type_event { /* enum baseband_type */ __le32 baseband_type; } __packed; } __packed; /* WMI_MAC_ADDR_RESP_EVENTID */ /* WMI_MAC_ADDR_RESP_EVENTID */ Loading Loading @@ -1410,4 +1521,375 @@ struct wmi_led_cfg_done_event { __le32 status; __le32 status; } __packed; } __packed; #define WMI_NUM_MCS (13) /* Rate search parameters configuration per connection */ struct wmi_rs_cfg { /* The maximal allowed PER for each MCS * MCS will be considered as failed if PER during RS is higher */ u8 per_threshold[WMI_NUM_MCS]; /* Number of MPDUs for each MCS * this is the minimal statistic required to make an educated * decision */ u8 min_frame_cnt[WMI_NUM_MCS]; /* stop threshold [0-100] */ u8 stop_th; /* MCS1 stop threshold [0-100] */ u8 mcs1_fail_th; u8 max_back_failure_th; /* Debug feature for disabling internal RS trigger (which is * currently triggered by BF Done) */ u8 dbg_disable_internal_trigger; __le32 back_failure_mask; __le32 mcs_en_vec; } __packed; /* WMI_RS_CFG_CMDID */ struct wmi_rs_cfg_cmd { /* connection id */ u8 cid; /* enable or disable rate search */ u8 rs_enable; /* rate search configuration */ struct wmi_rs_cfg rs_cfg; } __packed; /* WMI_RS_CFG_DONE_EVENTID */ struct wmi_rs_cfg_done_event { u8 cid; /* enum wmi_fw_status */ u8 status; u8 reserved[2]; } __packed; /* broadcast connection ID */ #define WMI_LINK_MAINTAIN_CFG_CID_BROADCAST (0xFFFFFFFF) /* Types wmi_link_maintain_cfg presets for WMI_LINK_MAINTAIN_CFG_WRITE_CMD */ enum wmi_link_maintain_cfg_type { /* AP/PCP default normal (non-FST) configuration settings */ WMI_LINK_MAINTAIN_CFG_TYPE_DEFAULT_NORMAL_AP = 0x00, /* AP/PCP default FST configuration settings */ WMI_LINK_MAINTAIN_CFG_TYPE_DEFAULT_FST_AP = 0x01, /* STA default normal (non-FST) configuration settings */ WMI_LINK_MAINTAIN_CFG_TYPE_DEFAULT_NORMAL_STA = 0x02, /* STA default FST configuration settings */ WMI_LINK_MAINTAIN_CFG_TYPE_DEFAULT_FST_STA = 0x03, /* custom configuration settings */ WMI_LINK_MAINTAIN_CFG_TYPE_CUSTOM = 0x04, /* number of defined configuration types */ WMI_LINK_MAINTAIN_CFG_TYPES_NUM = 0x05, }; /* Response status codes for WMI_LINK_MAINTAIN_CFG_WRITE/READ commands */ enum wmi_link_maintain_cfg_response_status { /* WMI_LINK_MAINTAIN_CFG_WRITE/READ command successfully accomplished */ WMI_LINK_MAINTAIN_CFG_RESPONSE_STATUS_OK = 0x00, /* ERROR due to bad argument in WMI_LINK_MAINTAIN_CFG_WRITE/READ * command request */ WMI_LINK_MAINTAIN_CFG_RESPONSE_STATUS_BAD_ARGUMENT = 0x01, }; /* Link Loss and Keep Alive configuration */ struct wmi_link_maintain_cfg { /* link_loss_enable_detectors_vec */ __le32 link_loss_enable_detectors_vec; /* detectors check period usec */ __le32 check_link_loss_period_usec; /* max allowed tx ageing */ __le32 tx_ageing_threshold_usec; /* keep alive period for high SNR */ __le32 keep_alive_period_usec_high_snr; /* keep alive period for low SNR */ __le32 keep_alive_period_usec_low_snr; /* lower snr limit for keep alive period update */ __le32 keep_alive_snr_threshold_low_db; /* upper snr limit for keep alive period update */ __le32 keep_alive_snr_threshold_high_db; /* num of successive bad bcons causing link-loss */ __le32 bad_beacons_num_threshold; /* SNR limit for bad_beacons_detector */ __le32 bad_beacons_snr_threshold_db; } __packed; /* WMI_LINK_MAINTAIN_CFG_WRITE_CMDID */ struct wmi_link_maintain_cfg_write_cmd { /* enum wmi_link_maintain_cfg_type_e - type of requested default * configuration to be applied */ __le32 cfg_type; /* requested connection ID or WMI_LINK_MAINTAIN_CFG_CID_BROADCAST */ __le32 cid; /* custom configuration settings to be applied (relevant only if * cfg_type==WMI_LINK_MAINTAIN_CFG_TYPE_CUSTOM) */ struct wmi_link_maintain_cfg lm_cfg; } __packed; /* WMI_LINK_MAINTAIN_CFG_READ_CMDID */ struct wmi_link_maintain_cfg_read_cmd { /* connection ID which configuration settings are requested */ __le32 cid; } __packed; /* WMI_LINK_MAINTAIN_CFG_WRITE_DONE_EVENTID */ struct wmi_link_maintain_cfg_write_done_event { /* requested connection ID */ __le32 cid; /* wmi_link_maintain_cfg_response_status_e - write status */ __le32 status; } __packed; /* \WMI_LINK_MAINTAIN_CFG_READ_DONE_EVENT */ struct wmi_link_maintain_cfg_read_done_event { /* requested connection ID */ __le32 cid; /* wmi_link_maintain_cfg_response_status_e - read status */ __le32 status; /* Retrieved configuration settings */ struct wmi_link_maintain_cfg lm_cfg; } __packed; enum wmi_traffic_deferral_status { WMI_TRAFFIC_DEFERRAL_APPROVED = 0x0, WMI_TRAFFIC_DEFERRAL_REJECTED = 0x1, }; /* WMI_TRAFFIC_DEFERRAL_EVENTID */ struct wmi_traffic_deferral_event { /* enum wmi_traffic_deferral_status_e */ u8 status; } __packed; enum wmi_traffic_resume_status { WMI_TRAFFIC_RESUME_SUCCESS = 0x0, WMI_TRAFFIC_RESUME_FAILED = 0x1, }; /* WMI_TRAFFIC_RESUME_EVENTID */ struct wmi_traffic_resume_event { /* enum wmi_traffic_resume_status_e */ u8 status; } __packed; /* Power Save command completion status codes */ enum wmi_ps_cfg_cmd_status { WMI_PS_CFG_CMD_STATUS_SUCCESS = 0x00, WMI_PS_CFG_CMD_STATUS_BAD_PARAM = 0x01, /* other error */ WMI_PS_CFG_CMD_STATUS_ERROR = 0x02, }; /* Device Power Save Profiles */ enum wmi_ps_profile_type { WMI_PS_PROFILE_TYPE_DEFAULT = 0x00, WMI_PS_PROFILE_TYPE_PS_DISABLED = 0x01, WMI_PS_PROFILE_TYPE_MAX_PS = 0x02, WMI_PS_PROFILE_TYPE_LOW_LATENCY_PS = 0x03, }; /* WMI_PS_DEV_PROFILE_CFG_CMDID * * Power save profile to be used by the device * * Returned event: * - WMI_PS_DEV_PROFILE_CFG_EVENTID */ struct wmi_ps_dev_profile_cfg_cmd { /* wmi_ps_profile_type_e */ u8 ps_profile; u8 reserved[3]; } __packed; /* WMI_PS_DEV_PROFILE_CFG_EVENTID */ struct wmi_ps_dev_profile_cfg_event { /* wmi_ps_cfg_cmd_status_e */ __le32 status; } __packed; enum wmi_ps_level { WMI_PS_LEVEL_DEEP_SLEEP = 0x00, WMI_PS_LEVEL_SHALLOW_SLEEP = 0x01, /* awake = all PS mechanisms are disabled */ WMI_PS_LEVEL_AWAKE = 0x02, }; enum wmi_ps_deep_sleep_clk_level { /* 33k */ WMI_PS_DEEP_SLEEP_CLK_LEVEL_RTC = 0x00, /* 10k */ WMI_PS_DEEP_SLEEP_CLK_LEVEL_OSC = 0x01, /* @RTC Low latency */ WMI_PS_DEEP_SLEEP_CLK_LEVEL_RTC_LT = 0x02, WMI_PS_DEEP_SLEEP_CLK_LEVEL_XTAL = 0x03, WMI_PS_DEEP_SLEEP_CLK_LEVEL_SYSCLK = 0x04, /* Not Applicable */ WMI_PS_DEEP_SLEEP_CLK_LEVEL_N_A = 0xFF, }; /* Response by the FW to a D3 entry request */ enum wmi_ps_d3_resp_policy { WMI_PS_D3_RESP_POLICY_DEFAULT = 0x00, /* debug -D3 req is always denied */ WMI_PS_D3_RESP_POLICY_DENIED = 0x01, /* debug -D3 req is always approved */ WMI_PS_D3_RESP_POLICY_APPROVED = 0x02, }; /* Device common power save configurations */ struct wmi_ps_dev_cfg { /* lowest level of PS allowed while unassociated, enum wmi_ps_level_e */ u8 ps_unassoc_min_level; /* lowest deep sleep clock level while nonassoc, enum * wmi_ps_deep_sleep_clk_level_e */ u8 ps_unassoc_deep_sleep_min_level; /* lowest level of PS allowed while associated, enum wmi_ps_level_e */ u8 ps_assoc_min_level; /* lowest deep sleep clock level while assoc, enum * wmi_ps_deep_sleep_clk_level_e */ u8 ps_assoc_deep_sleep_min_level; /* enum wmi_ps_deep_sleep_clk_level_e */ u8 ps_assoc_low_latency_ds_min_level; /* enum wmi_ps_d3_resp_policy_e */ u8 ps_D3_response_policy; /* BOOL */ u8 ps_D3_pm_pme_enabled; /* BOOL */ u8 ps_halp_enable; u8 ps_deep_sleep_enter_thresh_msec; /* BOOL */ u8 ps_voltage_scaling_en; } __packed; /* WMI_PS_DEV_CFG_CMDID * * Configure common Power Save parameters of the device and all MIDs. * * Returned event: * - WMI_PS_DEV_CFG_EVENTID */ struct wmi_ps_dev_cfg_cmd { /* Device Power Save configuration to be applied */ struct wmi_ps_dev_cfg ps_dev_cfg; /* alignment to 32b */ u8 reserved[2]; } __packed; /* WMI_PS_DEV_CFG_EVENTID */ struct wmi_ps_dev_cfg_event { /* wmi_ps_cfg_cmd_status_e */ __le32 status; } __packed; /* WMI_PS_DEV_CFG_READ_CMDID * * request to retrieve device Power Save configuration * (WMI_PS_DEV_CFG_CMD params) * * Returned event: * - WMI_PS_DEV_CFG_READ_EVENTID */ struct wmi_ps_dev_cfg_read_cmd { __le32 reserved; } __packed; /* WMI_PS_DEV_CFG_READ_EVENTID */ struct wmi_ps_dev_cfg_read_event { /* wmi_ps_cfg_cmd_status_e */ __le32 status; /* Retrieved device Power Save configuration (WMI_PS_DEV_CFG_CMD * params) */ struct wmi_ps_dev_cfg dev_ps_cfg; /* alignment to 32b */ u8 reserved[2]; } __packed; /* Per Mac Power Save configurations */ struct wmi_ps_mid_cfg { /* Low power RX in BTI is enabled, BOOL */ u8 beacon_lprx_enable; /* Sync to sector ID enabled, BOOL */ u8 beacon_sync_to_sectorId_enable; /* Low power RX in DTI is enabled, BOOL */ u8 frame_exchange_lprx_enable; /* Sleep Cycle while in scheduled PS, 1-31 */ u8 scheduled_sleep_cycle_pow2; /* Stay Awake for k BIs every (sleep_cycle - k) BIs, 1-31 */ u8 scheduled_num_of_awake_bis; u8 am_to_traffic_load_thresh_mbp; u8 traffic_to_am_load_thresh_mbps; u8 traffic_to_am_num_of_no_traffic_bis; /* BOOL */ u8 continuous_traffic_psm; __le16 no_traffic_to_min_usec; __le16 no_traffic_to_max_usec; __le16 snoozing_sleep_interval_milisec; u8 max_no_data_awake_events; /* Trigger WEB after k failed beacons */ u8 num_of_failed_beacons_rx_to_trigger_web; /* Trigger BF after k failed beacons */ u8 num_of_failed_beacons_rx_to_trigger_bf; /* Trigger SOB after k successful beacons */ u8 num_of_successful_beacons_rx_to_trigger_sob; } __packed; /* WMI_PS_MID_CFG_CMDID * * Configure Power Save parameters of a specific MID. * These parameters are relevant for the specific BSS this MID belongs to. * * Returned event: * - WMI_PS_MID_CFG_EVENTID */ struct wmi_ps_mid_cfg_cmd { /* MAC ID */ u8 mid; /* mid PS configuration to be applied */ struct wmi_ps_mid_cfg ps_mid_cfg; } __packed; /* WMI_PS_MID_CFG_EVENTID */ struct wmi_ps_mid_cfg_event { /* MAC ID */ u8 mid; /* alignment to 32b */ u8 reserved[3]; /* wmi_ps_cfg_cmd_status_e */ __le32 status; } __packed; /* WMI_PS_MID_CFG_READ_CMDID * * request to retrieve Power Save configuration of mid * (WMI_PS_MID_CFG_CMD params) * * Returned event: * - WMI_PS_MID_CFG_READ_EVENTID */ struct wmi_ps_mid_cfg_read_cmd { /* MAC ID */ u8 mid; /* alignment to 32b */ u8 reserved[3]; } __packed; /* WMI_PS_MID_CFG_READ_EVENTID */ struct wmi_ps_mid_cfg_read_event { /* MAC ID */ u8 mid; /* Retrieved MID Power Save configuration(WMI_PS_MID_CFG_CMD params) */ struct wmi_ps_mid_cfg mid_ps_cfg; /* wmi_ps_cfg_cmd_status_e */ __le32 status; } __packed; #endif /* __WILOCITY_WMI_H__ */ #endif /* __WILOCITY_WMI_H__ */