Commit ce42870e authored by Bartosz Markowski's avatar Bartosz Markowski Committed by Kalle Valo

ath10k: introduce dynamic WMI structures

This is the initial framework to implement dynamic
WMI API in order to support new firmware (from so
called 10.X branch)

The realization is to have a static WMI cmd map for
each of the firmwares, registered upom wmi init.

This patch creates such map for MAIN FW, updates
wmi_cmd_send() calls to take as a parameter
the map value instead of direct WMI enum.

As soon as complete 10.X API will be on place,
we will introduce the FW IE mechanics to dynamicaly
identify which FW is being used and based on that
we will use correct map, API, structures, etc.
Signed-off-by: default avatarBartosz Markowski <bartosz.markowski@tieto.com>
Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
parent 52fa0191
......@@ -107,6 +107,7 @@ struct ath10k_wmi {
struct completion service_ready;
struct completion unified_ready;
wait_queue_head_t tx_credits_wq;
struct wmi_cmd_map *cmd;
};
struct ath10k_peer_stat {
......@@ -268,6 +269,9 @@ enum ath10k_fw_features {
/* wmi_mgmt_rx_hdr contains extra RSSI information */
ATH10K_FW_FEATURE_EXT_WMI_MGMT_RX = 0,
/* firmware from 10X branch */
ATH10K_FW_FEATURE_WMI_10X = 1,
/* keep last */
ATH10K_FW_FEATURE_COUNT,
};
......
This diff is collapsed.
......@@ -208,6 +208,118 @@ struct wmi_mac_addr {
(c_macaddr)[5] = (((pwmi_mac_addr)->word1) >> 8) & 0xff; \
} while (0)
struct wmi_cmd_map {
u32 init_cmdid;
u32 start_scan_cmdid;
u32 stop_scan_cmdid;
u32 scan_chan_list_cmdid;
u32 scan_sch_prio_tbl_cmdid;
u32 pdev_set_regdomain_cmdid;
u32 pdev_set_channel_cmdid;
u32 pdev_set_param_cmdid;
u32 pdev_pktlog_enable_cmdid;
u32 pdev_pktlog_disable_cmdid;
u32 pdev_set_wmm_params_cmdid;
u32 pdev_set_ht_cap_ie_cmdid;
u32 pdev_set_vht_cap_ie_cmdid;
u32 pdev_set_dscp_tid_map_cmdid;
u32 pdev_set_quiet_mode_cmdid;
u32 pdev_green_ap_ps_enable_cmdid;
u32 pdev_get_tpc_config_cmdid;
u32 pdev_set_base_macaddr_cmdid;
u32 vdev_create_cmdid;
u32 vdev_delete_cmdid;
u32 vdev_start_request_cmdid;
u32 vdev_restart_request_cmdid;
u32 vdev_up_cmdid;
u32 vdev_stop_cmdid;
u32 vdev_down_cmdid;
u32 vdev_set_param_cmdid;
u32 vdev_install_key_cmdid;
u32 peer_create_cmdid;
u32 peer_delete_cmdid;
u32 peer_flush_tids_cmdid;
u32 peer_set_param_cmdid;
u32 peer_assoc_cmdid;
u32 peer_add_wds_entry_cmdid;
u32 peer_remove_wds_entry_cmdid;
u32 peer_mcast_group_cmdid;
u32 bcn_tx_cmdid;
u32 pdev_send_bcn_cmdid;
u32 bcn_tmpl_cmdid;
u32 bcn_filter_rx_cmdid;
u32 prb_req_filter_rx_cmdid;
u32 mgmt_tx_cmdid;
u32 prb_tmpl_cmdid;
u32 addba_clear_resp_cmdid;
u32 addba_send_cmdid;
u32 addba_status_cmdid;
u32 delba_send_cmdid;
u32 addba_set_resp_cmdid;
u32 send_singleamsdu_cmdid;
u32 sta_powersave_mode_cmdid;
u32 sta_powersave_param_cmdid;
u32 sta_mimo_ps_mode_cmdid;
u32 pdev_dfs_enable_cmdid;
u32 pdev_dfs_disable_cmdid;
u32 roam_scan_mode;
u32 roam_scan_rssi_threshold;
u32 roam_scan_period;
u32 roam_scan_rssi_change_threshold;
u32 roam_ap_profile;
u32 ofl_scan_add_ap_profile;
u32 ofl_scan_remove_ap_profile;
u32 ofl_scan_period;
u32 p2p_dev_set_device_info;
u32 p2p_dev_set_discoverability;
u32 p2p_go_set_beacon_ie;
u32 p2p_go_set_probe_resp_ie;
u32 p2p_set_vendor_ie_data_cmdid;
u32 ap_ps_peer_param_cmdid;
u32 ap_ps_peer_uapsd_coex_cmdid;
u32 peer_rate_retry_sched_cmdid;
u32 wlan_profile_trigger_cmdid;
u32 wlan_profile_set_hist_intvl_cmdid;
u32 wlan_profile_get_profile_data_cmdid;
u32 wlan_profile_enable_profile_id_cmdid;
u32 wlan_profile_list_profile_id_cmdid;
u32 pdev_suspend_cmdid;
u32 pdev_resume_cmdid;
u32 add_bcn_filter_cmdid;
u32 rmv_bcn_filter_cmdid;
u32 wow_add_wake_pattern_cmdid;
u32 wow_del_wake_pattern_cmdid;
u32 wow_enable_disable_wake_event_cmdid;
u32 wow_enable_cmdid;
u32 wow_hostwakeup_from_sleep_cmdid;
u32 rtt_measreq_cmdid;
u32 rtt_tsf_cmdid;
u32 vdev_spectral_scan_configure_cmdid;
u32 vdev_spectral_scan_enable_cmdid;
u32 request_stats_cmdid;
u32 set_arp_ns_offload_cmdid;
u32 network_list_offload_config_cmdid;
u32 gtk_offload_cmdid;
u32 csa_offload_enable_cmdid;
u32 csa_offload_chanswitch_cmdid;
u32 chatter_set_mode_cmdid;
u32 peer_tid_addba_cmdid;
u32 peer_tid_delba_cmdid;
u32 sta_dtim_ps_method_cmdid;
u32 sta_uapsd_auto_trig_cmdid;
u32 sta_keepalive_cmd;
u32 echo_cmdid;
u32 pdev_utf_cmdid;
u32 dbglog_cfg_cmdid;
u32 pdev_qvit_cmdid;
u32 pdev_ftm_intg_cmdid;
u32 vdev_set_keepalive_cmdid;
u32 vdev_get_keepalive_cmdid;
u32 force_fw_hang_cmdid;
u32 gpio_config_cmdid;
u32 gpio_output_cmdid;
};
/*
* wmi command groups.
*/
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment