Loading drivers/net/wireless/ath/ath10k/core.c +1 −13 Original line number Diff line number Diff line Loading @@ -1302,7 +1302,7 @@ static int ath10k_core_fetch_firmware_files(struct ath10k *ar) if (!ar->is_bmi && QCA_REV_WCN3990(ar)) { fw_file = &ar->normal_mode_fw.fw_file; fw_file->wmi_op_version = ATH10K_FW_WMI_OP_VERSION_HL_1_0; fw_file->wmi_op_version = ATH10K_FW_WMI_OP_VERSION_TLV; fw_file->htt_op_version = ATH10K_FW_HTT_OP_VERSION_TLV; return 0; } Loading Loading @@ -1588,16 +1588,6 @@ static void ath10k_core_restart(struct work_struct *work) mutex_unlock(&ar->conf_mutex); } /* WAR: WCN3990 fw loading is done by PIL, assign WMI/HTT version */ static inline void init_fw_param(struct ath10k *ar, struct ath10k_fw_file *fw_file) { if (QCA_REV_WCN3990(ar)) { fw_file->wmi_op_version = ATH10K_FW_WMI_OP_VERSION_HL_1_0; fw_file->htt_op_version = ATH10K_FW_HTT_OP_VERSION_TLV; } } static int ath10k_core_init_firmware_features(struct ath10k *ar) { struct ath10k_fw_file *fw_file = &ar->normal_mode_fw.fw_file; Loading Loading @@ -1704,7 +1694,6 @@ static int ath10k_core_init_firmware_features(struct ath10k *ar) ar->max_spatial_stream = WMI_MAX_SPATIAL_STREAM; break; case ATH10K_FW_WMI_OP_VERSION_TLV: case ATH10K_FW_WMI_OP_VERSION_HL_1_0: ar->max_num_peers = TARGET_TLV_NUM_PEERS; ar->max_num_stations = TARGET_TLV_NUM_STATIONS; ar->max_num_vdevs = TARGET_TLV_NUM_VDEVS; Loading Loading @@ -1751,7 +1740,6 @@ static int ath10k_core_init_firmware_features(struct ath10k *ar) fw_file->htt_op_version = ATH10K_FW_HTT_OP_VERSION_10_1; break; case ATH10K_FW_WMI_OP_VERSION_TLV: case ATH10K_FW_WMI_OP_VERSION_HL_1_0: fw_file->htt_op_version = ATH10K_FW_HTT_OP_VERSION_TLV; break; case ATH10K_FW_WMI_OP_VERSION_10_4: Loading drivers/net/wireless/ath/ath10k/hw.h +0 −1 Original line number Diff line number Diff line Loading @@ -188,7 +188,6 @@ enum ath10k_fw_wmi_op_version { ATH10K_FW_WMI_OP_VERSION_TLV = 4, ATH10K_FW_WMI_OP_VERSION_10_2_4 = 5, ATH10K_FW_WMI_OP_VERSION_10_4 = 6, ATH10K_FW_WMI_OP_VERSION_HL_1_0 = 7, /* keep last */ ATH10K_FW_WMI_OP_VERSION_MAX, Loading drivers/net/wireless/ath/ath10k/mac.c +0 −1 Original line number Diff line number Diff line Loading @@ -7959,7 +7959,6 @@ int ath10k_mac_register(struct ath10k *ar) ar->hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_ADHOC); break; case ATH10K_FW_WMI_OP_VERSION_TLV: case ATH10K_FW_WMI_OP_VERSION_HL_1_0: if (test_bit(WMI_SERVICE_ADAPTIVE_OCS, ar->wmi.svc_map)) { ar->hw->wiphy->iface_combinations = ath10k_tlv_qcs_if_comb; Loading drivers/net/wireless/ath/ath10k/wmi-tlv.c +2 −76 Original line number Diff line number Diff line Loading @@ -3637,7 +3637,7 @@ static const struct wmi_ops wmi_tlv_ops = { .gen_pdev_set_wmm = ath10k_wmi_tlv_op_gen_pdev_set_wmm, .gen_request_stats = ath10k_wmi_tlv_op_gen_request_stats, .gen_force_fw_hang = ath10k_wmi_tlv_op_gen_force_fw_hang, /* .gen_mgmt_tx = not implemented; HTT is used */ .gen_mgmt_tx = ath10k_wmi_tlv_op_gen_mgmt_tx, .gen_dbglog_cfg = ath10k_wmi_tlv_op_gen_dbglog_cfg, .gen_pktlog_enable = ath10k_wmi_tlv_op_gen_pktlog_enable, .gen_pktlog_disable = ath10k_wmi_tlv_op_gen_pktlog_disable, Loading @@ -3663,6 +3663,7 @@ static const struct wmi_ops wmi_tlv_ops = { .fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill, .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, .gen_echo = ath10k_wmi_tlv_op_gen_echo, .gen_set_pdev_mac_addr = ath10k_wmi_tlv_op_gen_set_base_mac_addr, }; static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = { Loading @@ -3683,81 +3684,6 @@ static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = { .pmf = WMI_TLV_PEER_PMF, }; static const struct wmi_ops wmi_hl_1_0_ops = { .rx = ath10k_wmi_tlv_op_rx, .map_svc = wmi_hl_1_0_svc_map, .pull_scan = ath10k_wmi_tlv_op_pull_scan_ev, .pull_mgmt_rx = ath10k_wmi_tlv_op_pull_mgmt_rx_ev, .pull_ch_info = ath10k_wmi_tlv_op_pull_ch_info_ev, .pull_vdev_start = ath10k_wmi_tlv_op_pull_vdev_start_ev, .pull_peer_kick = ath10k_wmi_tlv_op_pull_peer_kick_ev, .pull_swba = ath10k_wmi_tlv_op_pull_swba_ev, .pull_phyerr_hdr = ath10k_wmi_tlv_op_pull_phyerr_ev_hdr, .pull_phyerr = ath10k_wmi_op_pull_phyerr_ev, .pull_svc_rdy = ath10k_wmi_tlv_op_pull_svc_rdy_ev, .pull_rdy = ath10k_wmi_tlv_op_pull_rdy_ev, .pull_fw_stats = ath10k_wmi_tlv_op_pull_fw_stats, .pull_roam_ev = ath10k_wmi_tlv_op_pull_roam_ev, .pull_wow_event = ath10k_wmi_tlv_op_pull_wow_ev, .get_txbf_conf_scheme = ath10k_wmi_tlv_txbf_conf_scheme, .gen_pdev_suspend = ath10k_wmi_tlv_op_gen_pdev_suspend, .gen_pdev_resume = ath10k_wmi_tlv_op_gen_pdev_resume, .gen_pdev_set_rd = ath10k_wmi_tlv_op_gen_pdev_set_rd, .gen_pdev_set_param = ath10k_wmi_tlv_op_gen_pdev_set_param, .gen_init = ath10k_wmi_tlv_op_gen_init, .gen_start_scan = ath10k_wmi_tlv_op_gen_start_scan, .gen_stop_scan = ath10k_wmi_tlv_op_gen_stop_scan, .gen_vdev_create = ath10k_wmi_tlv_op_gen_vdev_create, .gen_vdev_delete = ath10k_wmi_tlv_op_gen_vdev_delete, .gen_vdev_start = ath10k_wmi_tlv_op_gen_vdev_start, .gen_vdev_stop = ath10k_wmi_tlv_op_gen_vdev_stop, .gen_vdev_up = ath10k_wmi_tlv_op_gen_vdev_up, .gen_vdev_down = ath10k_wmi_tlv_op_gen_vdev_down, .gen_vdev_set_param = ath10k_wmi_tlv_op_gen_vdev_set_param, .gen_vdev_install_key = ath10k_wmi_tlv_op_gen_vdev_install_key, .gen_vdev_wmm_conf = ath10k_wmi_tlv_op_gen_vdev_wmm_conf, .gen_peer_create = ath10k_wmi_tlv_op_gen_peer_create, .gen_peer_delete = ath10k_wmi_tlv_op_gen_peer_delete, .gen_peer_flush = ath10k_wmi_tlv_op_gen_peer_flush, .gen_peer_set_param = ath10k_wmi_tlv_op_gen_peer_set_param, .gen_peer_assoc = ath10k_wmi_tlv_op_gen_peer_assoc, .gen_set_psmode = ath10k_wmi_tlv_op_gen_set_psmode, .gen_set_sta_ps = ath10k_wmi_tlv_op_gen_set_sta_ps, .gen_set_ap_ps = ath10k_wmi_tlv_op_gen_set_ap_ps, .gen_scan_chan_list = ath10k_wmi_tlv_op_gen_scan_chan_list, .gen_beacon_dma = ath10k_wmi_tlv_op_gen_beacon_dma, .gen_pdev_set_wmm = ath10k_wmi_tlv_op_gen_pdev_set_wmm, .gen_request_stats = ath10k_wmi_tlv_op_gen_request_stats, .gen_force_fw_hang = ath10k_wmi_tlv_op_gen_force_fw_hang, .gen_mgmt_tx = ath10k_wmi_tlv_op_gen_mgmt_tx, .gen_dbglog_cfg = ath10k_wmi_tlv_op_gen_dbglog_cfg, .gen_pktlog_enable = ath10k_wmi_tlv_op_gen_pktlog_enable, .gen_bcn_tmpl = ath10k_wmi_tlv_op_gen_bcn_tmpl, .gen_prb_tmpl = ath10k_wmi_tlv_op_gen_prb_tmpl, .gen_p2p_go_bcn_ie = ath10k_wmi_tlv_op_gen_p2p_go_bcn_ie, .gen_vdev_sta_uapsd = ath10k_wmi_tlv_op_gen_vdev_sta_uapsd, .gen_sta_keepalive = ath10k_wmi_tlv_op_gen_sta_keepalive, .gen_wow_enable = ath10k_wmi_tlv_op_gen_wow_enable, .gen_wow_add_wakeup_event = ath10k_wmi_tlv_op_gen_wow_add_wakeup_event, .gen_wow_host_wakeup_ind = ath10k_wmi_tlv_gen_wow_host_wakeup_ind, .gen_wow_add_pattern = ath10k_wmi_tlv_op_gen_wow_add_pattern, .gen_wow_del_pattern = ath10k_wmi_tlv_op_gen_wow_del_pattern, .gen_update_fw_tdls_state = ath10k_wmi_tlv_op_gen_update_fw_tdls_state, .gen_tdls_peer_update = ath10k_wmi_tlv_op_gen_tdls_peer_update, .gen_adaptive_qcs = ath10k_wmi_tlv_op_gen_adaptive_qcs, .fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill, .gen_set_pdev_mac_addr = ath10k_wmi_tlv_op_gen_set_base_mac_addr, }; void ath10k_wmi_hl_1_0_attach(struct ath10k *ar) { ar->wmi.cmd = &wmi_tlv_cmd_map; ar->wmi.vdev_param = &wmi_tlv_vdev_param_map; ar->wmi.pdev_param = &wmi_tlv_pdev_param_map; ar->wmi.ops = &wmi_hl_1_0_ops; ar->wmi.peer_flags = &wmi_tlv_peer_flags_map; } /* TLV init */ /************/ Loading drivers/net/wireless/ath/ath10k/wmi-tlv.h +47 −179 Original line number Diff line number Diff line Loading @@ -969,125 +969,50 @@ enum wmi_tlv_service { WMI_TLV_SERVICE_STA_RX_IPA_OFFLOAD_SUPPORT, WMI_TLV_SERVICE_MDNS_OFFLOAD, WMI_TLV_SERVICE_SAP_AUTH_OFFLOAD, }; enum wmi_hl_10_service { WMI_HL_10_SERVICE_BEACON_OFFLOAD = 0, WMI_HL_10_SERVICE_SCAN_OFFLOAD, WMI_HL_10_SERVICE_ROAM_SCAN_OFFLOAD, WMI_HL_10_SERVICE_BCN_MISS_OFFLOAD, WMI_HL_10_SERVICE_STA_PWRSAVE, WMI_HL_10_SERVICE_STA_ADVANCED_PWRSAVE, WMI_HL_10_SERVICE_AP_UAPSD, WMI_HL_10_SERVICE_AP_DFS, WMI_HL_10_SERVICE_11AC, WMI_HL_10_SERVICE_BLOCKACK, WMI_HL_10_SERVICE_PHYERR, WMI_HL_10_SERVICE_BCN_FILTER, WMI_HL_10_SERVICE_RTT, WMI_HL_10_SERVICE_WOW, WMI_HL_10_SERVICE_RATECTRL_CACHE, WMI_HL_10_SERVICE_IRAM_TIDS, WMI_HL_10_SERVICE_ARPNS_OFFLOAD, WMI_HL_10_SERVICE_NLO, WMI_HL_10_SERVICE_GTK_OFFLOAD, WMI_HL_10_SERVICE_SCAN_SCH, WMI_HL_10_SERVICE_CSA_OFFLOAD, WMI_HL_10_SERVICE_CHATTER, WMI_HL_10_SERVICE_COEX_FREQAVOID, WMI_HL_10_SERVICE_PACKET_POWER_SAVE, WMI_HL_10_SERVICE_FORCE_FW_HANG, WMI_HL_10_SERVICE_GPIO, WMI_HL_10_SERVICE_STA_DTIM_PS_MODULATED_DTIM, WMI_HL_10_SERVICE_STA_UAPSD_BASIC_AUTO_TRIG, WMI_HL_10_SERVICE_STA_UAPSD_VAR_AUTO_TRIG, WMI_HL_10_SERVICE_STA_KEEP_ALIVE, WMI_HL_10_SERVICE_TX_ENCAP, WMI_HL_10_SERVICE_AP_PS_DETECT_OUT_OF_SYNC, WMI_HL_10_SERVICE_EARLY_RX, WMI_HL_10_SERVICE_STA_SMPS, WMI_HL_10_SERVICE_FWTEST, WMI_HL_10_SERVICE_STA_WMMAC, WMI_HL_10_SERVICE_TDLS, WMI_HL_10_SERVICE_BURST, WMI_HL_10_SERVICE_MCC_BCN_INTERVAL_CHANGE, WMI_HL_10_SERVICE_ADAPTIVE_OCS, WMI_HL_10_SERVICE_BA_SSN_SUPPORT, WMI_HL_10_SERVICE_FILTER_IPSEC_NATKEEPALIVE, WMI_HL_10_SERVICE_WLAN_HB, WMI_HL_10_SERVICE_LTE_ANT_SHARE_SUPPORT, WMI_HL_10_SERVICE_BATCH_SCAN, WMI_HL_10_SERVICE_QPOWER, WMI_HL_10_SERVICE_PLMREQ, WMI_HL_10_SERVICE_THERMAL_MGMT, WMI_HL_10_SERVICE_RMC, WMI_HL_10_SERVICE_MHF_OFFLOAD, WMI_HL_10_SERVICE_COEX_SAR, WMI_HL_10_SERVICE_BCN_TXRATE_OVERRIDE, WMI_HL_10_SERVICE_NAN, WMI_HL_10_SERVICE_L1SS_STAT, WMI_HL_10_SERVICE_ESTIMATE_LINKSPEED, WMI_HL_10_SERVICE_OBSS_SCAN, WMI_HL_10_SERVICE_TDLS_OFFCHAN, WMI_HL_10_SERVICE_TDLS_UAPSD_BUFFER_STA, WMI_HL_10_SERVICE_TDLS_UAPSD_SLEEP_STA, WMI_HL_10_SERVICE_IBSS_PWRSAVE, WMI_HL_10_SERVICE_LPASS, WMI_HL_10_SERVICE_EXTSCAN, WMI_HL_10_SERVICE_D0WOW, WMI_HL_10_SERVICE_HSOFFLOAD, WMI_HL_10_SERVICE_ROAM_HO_OFFLOAD, WMI_HL_10_SERVICE_RX_FULL_REORDER, WMI_HL_10_SERVICE_DHCP_OFFLOAD, WMI_HL_10_SERVICE_STA_RX_IPA_OFFLOAD_SUPPORT, WMI_HL_10_SERVICE_MDNS_OFFLOAD, WMI_HL_10_SERVICE_SAP_AUTH_OFFLOAD, WMI_HL_10_SERVICE_DUAL_BAND_SIMULTANEOUS_SUPPORT, WMI_HL_10_SERVICE_OCB, WMI_HL_10_SERVICE_AP_ARPNS_OFFLOAD, WMI_HL_10_SERVICE_PER_BAND_CHAINMASK_SUPPORT, WMI_HL_10_SERVICE_PACKET_FILTER_OFFLOAD, WMI_HL_10_SERVICE_MGMT_TX_HTT, WMI_HL_10_SERVICE_MGMT_TX_WMI, WMI_HL_10_SERVICE_EXT_MSG, WMI_HL_10_SERVICE_MAWC, WMI_HL_10_SERVICE_PEER_ASSOC_CONF, WMI_HL_10_SERVICE_EGAP, WMI_HL_10_SERVICE_STA_PMF_OFFLOAD, WMI_HL_10_SERVICE_UNIFIED_WOW_CAPABILITY, WMI_HL_10_SERVICE_ENHANCED_PROXY_STA, WMI_HL_10_SERVICE_ATF, WMI_HL_10_SERVICE_COEX_GPIO, WMI_HL_10_SERVICE_AUX_SPECTRAL_INTF, WMI_HL_10_SERVICE_AUX_CHAN_LOAD_INTF, WMI_HL_10_SERVICE_BSS_CHANNEL_INFO_64, WMI_HL_10_SERVICE_ENTERPRISE_MESH, WMI_HL_10_SERVICE_RESTRT_CHNL_SUPPORT, WMI_HL_10_SERVICE_BPF_OFFLOAD, WMI_HL_10_SERVICE_SYNC_DELETE_CMDS, WMI_HL_10_SERVICE_SMART_ANTENNA_SW_SUPPORT, WMI_HL_10_SERVICE_SMART_ANTENNA_HW_SUPPORT, WMI_HL_10_SERVICE_RATECTRL_LIMIT_MAX_MIN_RATES, WMI_HL_10_SERVICE_NAN_DATA, WMI_HL_10_SERVICE_NAN_RTT, WMI_HL_10_SERVICE_11AX, WMI_HL_10_SERVICE_DEPRECATED_REPLACE, WMI_HL_10_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE, WMI_HL_10_SERVICE_ENHANCED_MCAST_FILTER, WMI_HL_10_SERVICE_PERIODIC_CHAN_STAT_SUPPORT, WMI_HL_10_SERVICE_MESH_11S, WMI_HL_10_SERVICE_HALF_RATE_QUARTER_RATE_SUPPORT, WMI_HL_10_SERVICE_VDEV_RX_FILTER, WMI_HL_10_SERVICE_P2P_LISTEN_OFFLOAD_SUPPORT, WMI_HL_10_SERVICE_MARK_FIRST_WAKEUP_PACKET, WMI_HL_10_SERVICE_MULTIPLE_MCAST_FILTER_SET, WMI_HL_10_SERVICE_HOST_MANAGED_RX_REORDER, WMI_HL_10_SERVICE_FLASH_RDWR_SUPPORT, WMI_HL_10_SERVICE_WLAN_STATS_REPORT, WMI_HL_10_SERVICE_TX_MSDU_ID_NEW_PARTITION_SUPPORT, WMI_HL_10_SERVICE_DFS_PHYERR_OFFLOAD, WMI_HL_10_MAX_SERVICE = 128, WMI_HL_10_MAX_EXT_SERVICE WMI_TLV_SERVICE_DUAL_BAND_SIMULTANEOUS_SUPPORT, WMI_TLV_SERVICE_OCB, WMI_TLV_SERVICE_AP_ARPNS_OFFLOAD, WMI_TLV_SERVICE_PER_BAND_CHAINMASK_SUPPORT, WMI_TLV_SERVICE_PACKET_FILTER_OFFLOAD, WMI_TLV_SERVICE_MGMT_TX_HTT, WMI_TLV_SERVICE_MGMT_TX_WMI, WMI_TLV_SERVICE_EXT_MSG, WMI_TLV_SERVICE_MAWC, WMI_TLV_SERVICE_PEER_ASSOC_CONF, WMI_TLV_SERVICE_EGAP, WMI_TLV_SERVICE_STA_PMF_OFFLOAD, WMI_TLV_SERVICE_UNIFIED_WOW_CAPABILITY, WMI_TLV_SERVICE_ENHANCED_PROXY_STA, WMI_TLV_SERVICE_ATF, WMI_TLV_SERVICE_COEX_GPIO, WMI_TLV_SERVICE_AUX_SPECTRAL_INTF, WMI_TLV_SERVICE_AUX_CHAN_LOAD_INTF, WMI_TLV_SERVICE_BSS_CHANNEL_INFO_64, WMI_TLV_SERVICE_ENTERPRISE_MESH, WMI_TLV_SERVICE_RESTRT_CHNL_SUPPORT, WMI_TLV_SERVICE_BPF_OFFLOAD, WMI_TLV_SERVICE_SYNC_DELETE_CMDS, WMI_TLV_SERVICE_SMART_ANTENNA_SW_SUPPORT, WMI_TLV_SERVICE_SMART_ANTENNA_HW_SUPPORT, WMI_TLV_SERVICE_RATECTRL_LIMIT_MAX_MIN_RATES, WMI_TLV_SERVICE_NAN_DATA, WMI_TLV_SERVICE_NAN_RTT, WMI_TLV_SERVICE_11AX, WMI_TLV_SERVICE_DEPRECATED_REPLACE, WMI_TLV_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE, WMI_TLV_SERVICE_ENHANCED_MCAST_FILTER, WMI_TLV_SERVICE_PERIODIC_CHAN_STAT_SUPPORT, WMI_TLV_SERVICE_MESH_11S, WMI_TLV_SERVICE_HALF_RATE_QUARTER_RATE_SUPPORT, WMI_TLV_SERVICE_VDEV_RX_FILTER, WMI_TLV_SERVICE_P2P_LISTEN_OFFLOAD_SUPPORT, WMI_TLV_SERVICE_MARK_FIRST_WAKEUP_PACKET, WMI_TLV_SERVICE_MULTIPLE_MCAST_FILTER_SET, WMI_TLV_SERVICE_HOST_MANAGED_RX_REORDER, WMI_TLV_SERVICE_FLASH_RDWR_SUPPORT, WMI_TLV_SERVICE_WLAN_STATS_REPORT, WMI_TLV_SERVICE_TX_MSDU_ID_NEW_PARTITION_SUPPORT, WMI_TLV_SERVICE_DFS_PHYERR_OFFLOAD, }; #define WMI_SERVICE_IS_ENABLED(wmi_svc_bmap, svc_id, len) \ Loading @@ -1101,65 +1026,6 @@ enum wmi_hl_10_service { __set_bit(y, out); \ } while (0) static inline void wmi_hl_1_0_svc_map(const __le32 *in, unsigned long *out, size_t len) { SVCMAP(WMI_HL_10_SERVICE_BEACON_OFFLOAD, WMI_SERVICE_BEACON_OFFLOAD, len); SVCMAP(WMI_HL_10_SERVICE_SCAN_OFFLOAD, WMI_SERVICE_SCAN_OFFLOAD, len); SVCMAP(WMI_HL_10_SERVICE_ROAM_SCAN_OFFLOAD, WMI_SERVICE_ROAM_SCAN_OFFLOAD, len); SVCMAP(WMI_HL_10_SERVICE_BCN_MISS_OFFLOAD, WMI_SERVICE_BCN_MISS_OFFLOAD, len); SVCMAP(WMI_HL_10_SERVICE_STA_PWRSAVE, WMI_SERVICE_STA_PWRSAVE, len); SVCMAP(WMI_HL_10_SERVICE_STA_ADVANCED_PWRSAVE, WMI_SERVICE_STA_ADVANCED_PWRSAVE, len); SVCMAP(WMI_HL_10_SERVICE_AP_UAPSD, WMI_SERVICE_AP_UAPSD, len); SVCMAP(WMI_HL_10_SERVICE_AP_DFS, WMI_SERVICE_AP_DFS, len); SVCMAP(WMI_HL_10_SERVICE_11AC, WMI_SERVICE_11AC, len); SVCMAP(WMI_HL_10_SERVICE_BLOCKACK, WMI_SERVICE_BLOCKACK, len); SVCMAP(WMI_HL_10_SERVICE_PHYERR, WMI_SERVICE_PHYERR, len); SVCMAP(WMI_HL_10_SERVICE_BCN_FILTER, WMI_SERVICE_BCN_FILTER, len); SVCMAP(WMI_HL_10_SERVICE_RTT, WMI_SERVICE_RTT, len); SVCMAP(WMI_HL_10_SERVICE_WOW, WMI_SERVICE_WOW, len); SVCMAP(WMI_HL_10_SERVICE_RATECTRL_CACHE, WMI_SERVICE_RATECTRL_CACHE, len); SVCMAP(WMI_HL_10_SERVICE_IRAM_TIDS, WMI_SERVICE_IRAM_TIDS, len); SVCMAP(WMI_HL_10_SERVICE_ARPNS_OFFLOAD, WMI_SERVICE_ARPNS_OFFLOAD, len); SVCMAP(WMI_HL_10_SERVICE_NLO, WMI_SERVICE_NLO, len); SVCMAP(WMI_HL_10_SERVICE_GTK_OFFLOAD, WMI_SERVICE_GTK_OFFLOAD, len); SVCMAP(WMI_HL_10_SERVICE_SCAN_SCH, WMI_SERVICE_SCAN_SCH, len); SVCMAP(WMI_HL_10_SERVICE_CSA_OFFLOAD, WMI_SERVICE_CSA_OFFLOAD, len); SVCMAP(WMI_HL_10_SERVICE_CHATTER, WMI_SERVICE_CHATTER, len); SVCMAP(WMI_HL_10_SERVICE_COEX_FREQAVOID, WMI_SERVICE_COEX_FREQAVOID, len); SVCMAP(WMI_HL_10_SERVICE_PACKET_POWER_SAVE, WMI_SERVICE_PACKET_POWER_SAVE, len); SVCMAP(WMI_HL_10_SERVICE_FORCE_FW_HANG, WMI_SERVICE_FORCE_FW_HANG, len); SVCMAP(WMI_HL_10_SERVICE_RX_FULL_REORDER, WMI_SERVICE_RX_FULL_REORDER, len); SVCMAP(WMI_HL_10_SERVICE_MGMT_TX_WMI, WMI_SERVICE_MGMT_TX_WMI, len); } static inline void wmi_tlv_svc_map(const __le32 *in, unsigned long *out, size_t len) { Loading Loading @@ -1303,6 +1169,8 @@ wmi_tlv_svc_map(const __le32 *in, unsigned long *out, size_t len) WMI_SERVICE_MDNS_OFFLOAD, len); SVCMAP(WMI_TLV_SERVICE_SAP_AUTH_OFFLOAD, WMI_SERVICE_SAP_AUTH_OFFLOAD, len); SVCMAP(WMI_TLV_SERVICE_MGMT_TX_WMI, WMI_SERVICE_MGMT_TX_WMI, len); } #undef SVCMAP Loading Loading @@ -1832,7 +1700,7 @@ struct wmi_tlv_tx_pause_ev { } __packed; void ath10k_wmi_tlv_attach(struct ath10k *ar); void ath10k_wmi_hl_1_0_attach(struct ath10k *ar); struct wmi_tlv_mgmt_tx_hdr { __le32 vdev_id; __le32 desc_id; Loading Loading
drivers/net/wireless/ath/ath10k/core.c +1 −13 Original line number Diff line number Diff line Loading @@ -1302,7 +1302,7 @@ static int ath10k_core_fetch_firmware_files(struct ath10k *ar) if (!ar->is_bmi && QCA_REV_WCN3990(ar)) { fw_file = &ar->normal_mode_fw.fw_file; fw_file->wmi_op_version = ATH10K_FW_WMI_OP_VERSION_HL_1_0; fw_file->wmi_op_version = ATH10K_FW_WMI_OP_VERSION_TLV; fw_file->htt_op_version = ATH10K_FW_HTT_OP_VERSION_TLV; return 0; } Loading Loading @@ -1588,16 +1588,6 @@ static void ath10k_core_restart(struct work_struct *work) mutex_unlock(&ar->conf_mutex); } /* WAR: WCN3990 fw loading is done by PIL, assign WMI/HTT version */ static inline void init_fw_param(struct ath10k *ar, struct ath10k_fw_file *fw_file) { if (QCA_REV_WCN3990(ar)) { fw_file->wmi_op_version = ATH10K_FW_WMI_OP_VERSION_HL_1_0; fw_file->htt_op_version = ATH10K_FW_HTT_OP_VERSION_TLV; } } static int ath10k_core_init_firmware_features(struct ath10k *ar) { struct ath10k_fw_file *fw_file = &ar->normal_mode_fw.fw_file; Loading Loading @@ -1704,7 +1694,6 @@ static int ath10k_core_init_firmware_features(struct ath10k *ar) ar->max_spatial_stream = WMI_MAX_SPATIAL_STREAM; break; case ATH10K_FW_WMI_OP_VERSION_TLV: case ATH10K_FW_WMI_OP_VERSION_HL_1_0: ar->max_num_peers = TARGET_TLV_NUM_PEERS; ar->max_num_stations = TARGET_TLV_NUM_STATIONS; ar->max_num_vdevs = TARGET_TLV_NUM_VDEVS; Loading Loading @@ -1751,7 +1740,6 @@ static int ath10k_core_init_firmware_features(struct ath10k *ar) fw_file->htt_op_version = ATH10K_FW_HTT_OP_VERSION_10_1; break; case ATH10K_FW_WMI_OP_VERSION_TLV: case ATH10K_FW_WMI_OP_VERSION_HL_1_0: fw_file->htt_op_version = ATH10K_FW_HTT_OP_VERSION_TLV; break; case ATH10K_FW_WMI_OP_VERSION_10_4: Loading
drivers/net/wireless/ath/ath10k/hw.h +0 −1 Original line number Diff line number Diff line Loading @@ -188,7 +188,6 @@ enum ath10k_fw_wmi_op_version { ATH10K_FW_WMI_OP_VERSION_TLV = 4, ATH10K_FW_WMI_OP_VERSION_10_2_4 = 5, ATH10K_FW_WMI_OP_VERSION_10_4 = 6, ATH10K_FW_WMI_OP_VERSION_HL_1_0 = 7, /* keep last */ ATH10K_FW_WMI_OP_VERSION_MAX, Loading
drivers/net/wireless/ath/ath10k/mac.c +0 −1 Original line number Diff line number Diff line Loading @@ -7959,7 +7959,6 @@ int ath10k_mac_register(struct ath10k *ar) ar->hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_ADHOC); break; case ATH10K_FW_WMI_OP_VERSION_TLV: case ATH10K_FW_WMI_OP_VERSION_HL_1_0: if (test_bit(WMI_SERVICE_ADAPTIVE_OCS, ar->wmi.svc_map)) { ar->hw->wiphy->iface_combinations = ath10k_tlv_qcs_if_comb; Loading
drivers/net/wireless/ath/ath10k/wmi-tlv.c +2 −76 Original line number Diff line number Diff line Loading @@ -3637,7 +3637,7 @@ static const struct wmi_ops wmi_tlv_ops = { .gen_pdev_set_wmm = ath10k_wmi_tlv_op_gen_pdev_set_wmm, .gen_request_stats = ath10k_wmi_tlv_op_gen_request_stats, .gen_force_fw_hang = ath10k_wmi_tlv_op_gen_force_fw_hang, /* .gen_mgmt_tx = not implemented; HTT is used */ .gen_mgmt_tx = ath10k_wmi_tlv_op_gen_mgmt_tx, .gen_dbglog_cfg = ath10k_wmi_tlv_op_gen_dbglog_cfg, .gen_pktlog_enable = ath10k_wmi_tlv_op_gen_pktlog_enable, .gen_pktlog_disable = ath10k_wmi_tlv_op_gen_pktlog_disable, Loading @@ -3663,6 +3663,7 @@ static const struct wmi_ops wmi_tlv_ops = { .fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill, .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, .gen_echo = ath10k_wmi_tlv_op_gen_echo, .gen_set_pdev_mac_addr = ath10k_wmi_tlv_op_gen_set_base_mac_addr, }; static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = { Loading @@ -3683,81 +3684,6 @@ static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = { .pmf = WMI_TLV_PEER_PMF, }; static const struct wmi_ops wmi_hl_1_0_ops = { .rx = ath10k_wmi_tlv_op_rx, .map_svc = wmi_hl_1_0_svc_map, .pull_scan = ath10k_wmi_tlv_op_pull_scan_ev, .pull_mgmt_rx = ath10k_wmi_tlv_op_pull_mgmt_rx_ev, .pull_ch_info = ath10k_wmi_tlv_op_pull_ch_info_ev, .pull_vdev_start = ath10k_wmi_tlv_op_pull_vdev_start_ev, .pull_peer_kick = ath10k_wmi_tlv_op_pull_peer_kick_ev, .pull_swba = ath10k_wmi_tlv_op_pull_swba_ev, .pull_phyerr_hdr = ath10k_wmi_tlv_op_pull_phyerr_ev_hdr, .pull_phyerr = ath10k_wmi_op_pull_phyerr_ev, .pull_svc_rdy = ath10k_wmi_tlv_op_pull_svc_rdy_ev, .pull_rdy = ath10k_wmi_tlv_op_pull_rdy_ev, .pull_fw_stats = ath10k_wmi_tlv_op_pull_fw_stats, .pull_roam_ev = ath10k_wmi_tlv_op_pull_roam_ev, .pull_wow_event = ath10k_wmi_tlv_op_pull_wow_ev, .get_txbf_conf_scheme = ath10k_wmi_tlv_txbf_conf_scheme, .gen_pdev_suspend = ath10k_wmi_tlv_op_gen_pdev_suspend, .gen_pdev_resume = ath10k_wmi_tlv_op_gen_pdev_resume, .gen_pdev_set_rd = ath10k_wmi_tlv_op_gen_pdev_set_rd, .gen_pdev_set_param = ath10k_wmi_tlv_op_gen_pdev_set_param, .gen_init = ath10k_wmi_tlv_op_gen_init, .gen_start_scan = ath10k_wmi_tlv_op_gen_start_scan, .gen_stop_scan = ath10k_wmi_tlv_op_gen_stop_scan, .gen_vdev_create = ath10k_wmi_tlv_op_gen_vdev_create, .gen_vdev_delete = ath10k_wmi_tlv_op_gen_vdev_delete, .gen_vdev_start = ath10k_wmi_tlv_op_gen_vdev_start, .gen_vdev_stop = ath10k_wmi_tlv_op_gen_vdev_stop, .gen_vdev_up = ath10k_wmi_tlv_op_gen_vdev_up, .gen_vdev_down = ath10k_wmi_tlv_op_gen_vdev_down, .gen_vdev_set_param = ath10k_wmi_tlv_op_gen_vdev_set_param, .gen_vdev_install_key = ath10k_wmi_tlv_op_gen_vdev_install_key, .gen_vdev_wmm_conf = ath10k_wmi_tlv_op_gen_vdev_wmm_conf, .gen_peer_create = ath10k_wmi_tlv_op_gen_peer_create, .gen_peer_delete = ath10k_wmi_tlv_op_gen_peer_delete, .gen_peer_flush = ath10k_wmi_tlv_op_gen_peer_flush, .gen_peer_set_param = ath10k_wmi_tlv_op_gen_peer_set_param, .gen_peer_assoc = ath10k_wmi_tlv_op_gen_peer_assoc, .gen_set_psmode = ath10k_wmi_tlv_op_gen_set_psmode, .gen_set_sta_ps = ath10k_wmi_tlv_op_gen_set_sta_ps, .gen_set_ap_ps = ath10k_wmi_tlv_op_gen_set_ap_ps, .gen_scan_chan_list = ath10k_wmi_tlv_op_gen_scan_chan_list, .gen_beacon_dma = ath10k_wmi_tlv_op_gen_beacon_dma, .gen_pdev_set_wmm = ath10k_wmi_tlv_op_gen_pdev_set_wmm, .gen_request_stats = ath10k_wmi_tlv_op_gen_request_stats, .gen_force_fw_hang = ath10k_wmi_tlv_op_gen_force_fw_hang, .gen_mgmt_tx = ath10k_wmi_tlv_op_gen_mgmt_tx, .gen_dbglog_cfg = ath10k_wmi_tlv_op_gen_dbglog_cfg, .gen_pktlog_enable = ath10k_wmi_tlv_op_gen_pktlog_enable, .gen_bcn_tmpl = ath10k_wmi_tlv_op_gen_bcn_tmpl, .gen_prb_tmpl = ath10k_wmi_tlv_op_gen_prb_tmpl, .gen_p2p_go_bcn_ie = ath10k_wmi_tlv_op_gen_p2p_go_bcn_ie, .gen_vdev_sta_uapsd = ath10k_wmi_tlv_op_gen_vdev_sta_uapsd, .gen_sta_keepalive = ath10k_wmi_tlv_op_gen_sta_keepalive, .gen_wow_enable = ath10k_wmi_tlv_op_gen_wow_enable, .gen_wow_add_wakeup_event = ath10k_wmi_tlv_op_gen_wow_add_wakeup_event, .gen_wow_host_wakeup_ind = ath10k_wmi_tlv_gen_wow_host_wakeup_ind, .gen_wow_add_pattern = ath10k_wmi_tlv_op_gen_wow_add_pattern, .gen_wow_del_pattern = ath10k_wmi_tlv_op_gen_wow_del_pattern, .gen_update_fw_tdls_state = ath10k_wmi_tlv_op_gen_update_fw_tdls_state, .gen_tdls_peer_update = ath10k_wmi_tlv_op_gen_tdls_peer_update, .gen_adaptive_qcs = ath10k_wmi_tlv_op_gen_adaptive_qcs, .fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill, .gen_set_pdev_mac_addr = ath10k_wmi_tlv_op_gen_set_base_mac_addr, }; void ath10k_wmi_hl_1_0_attach(struct ath10k *ar) { ar->wmi.cmd = &wmi_tlv_cmd_map; ar->wmi.vdev_param = &wmi_tlv_vdev_param_map; ar->wmi.pdev_param = &wmi_tlv_pdev_param_map; ar->wmi.ops = &wmi_hl_1_0_ops; ar->wmi.peer_flags = &wmi_tlv_peer_flags_map; } /* TLV init */ /************/ Loading
drivers/net/wireless/ath/ath10k/wmi-tlv.h +47 −179 Original line number Diff line number Diff line Loading @@ -969,125 +969,50 @@ enum wmi_tlv_service { WMI_TLV_SERVICE_STA_RX_IPA_OFFLOAD_SUPPORT, WMI_TLV_SERVICE_MDNS_OFFLOAD, WMI_TLV_SERVICE_SAP_AUTH_OFFLOAD, }; enum wmi_hl_10_service { WMI_HL_10_SERVICE_BEACON_OFFLOAD = 0, WMI_HL_10_SERVICE_SCAN_OFFLOAD, WMI_HL_10_SERVICE_ROAM_SCAN_OFFLOAD, WMI_HL_10_SERVICE_BCN_MISS_OFFLOAD, WMI_HL_10_SERVICE_STA_PWRSAVE, WMI_HL_10_SERVICE_STA_ADVANCED_PWRSAVE, WMI_HL_10_SERVICE_AP_UAPSD, WMI_HL_10_SERVICE_AP_DFS, WMI_HL_10_SERVICE_11AC, WMI_HL_10_SERVICE_BLOCKACK, WMI_HL_10_SERVICE_PHYERR, WMI_HL_10_SERVICE_BCN_FILTER, WMI_HL_10_SERVICE_RTT, WMI_HL_10_SERVICE_WOW, WMI_HL_10_SERVICE_RATECTRL_CACHE, WMI_HL_10_SERVICE_IRAM_TIDS, WMI_HL_10_SERVICE_ARPNS_OFFLOAD, WMI_HL_10_SERVICE_NLO, WMI_HL_10_SERVICE_GTK_OFFLOAD, WMI_HL_10_SERVICE_SCAN_SCH, WMI_HL_10_SERVICE_CSA_OFFLOAD, WMI_HL_10_SERVICE_CHATTER, WMI_HL_10_SERVICE_COEX_FREQAVOID, WMI_HL_10_SERVICE_PACKET_POWER_SAVE, WMI_HL_10_SERVICE_FORCE_FW_HANG, WMI_HL_10_SERVICE_GPIO, WMI_HL_10_SERVICE_STA_DTIM_PS_MODULATED_DTIM, WMI_HL_10_SERVICE_STA_UAPSD_BASIC_AUTO_TRIG, WMI_HL_10_SERVICE_STA_UAPSD_VAR_AUTO_TRIG, WMI_HL_10_SERVICE_STA_KEEP_ALIVE, WMI_HL_10_SERVICE_TX_ENCAP, WMI_HL_10_SERVICE_AP_PS_DETECT_OUT_OF_SYNC, WMI_HL_10_SERVICE_EARLY_RX, WMI_HL_10_SERVICE_STA_SMPS, WMI_HL_10_SERVICE_FWTEST, WMI_HL_10_SERVICE_STA_WMMAC, WMI_HL_10_SERVICE_TDLS, WMI_HL_10_SERVICE_BURST, WMI_HL_10_SERVICE_MCC_BCN_INTERVAL_CHANGE, WMI_HL_10_SERVICE_ADAPTIVE_OCS, WMI_HL_10_SERVICE_BA_SSN_SUPPORT, WMI_HL_10_SERVICE_FILTER_IPSEC_NATKEEPALIVE, WMI_HL_10_SERVICE_WLAN_HB, WMI_HL_10_SERVICE_LTE_ANT_SHARE_SUPPORT, WMI_HL_10_SERVICE_BATCH_SCAN, WMI_HL_10_SERVICE_QPOWER, WMI_HL_10_SERVICE_PLMREQ, WMI_HL_10_SERVICE_THERMAL_MGMT, WMI_HL_10_SERVICE_RMC, WMI_HL_10_SERVICE_MHF_OFFLOAD, WMI_HL_10_SERVICE_COEX_SAR, WMI_HL_10_SERVICE_BCN_TXRATE_OVERRIDE, WMI_HL_10_SERVICE_NAN, WMI_HL_10_SERVICE_L1SS_STAT, WMI_HL_10_SERVICE_ESTIMATE_LINKSPEED, WMI_HL_10_SERVICE_OBSS_SCAN, WMI_HL_10_SERVICE_TDLS_OFFCHAN, WMI_HL_10_SERVICE_TDLS_UAPSD_BUFFER_STA, WMI_HL_10_SERVICE_TDLS_UAPSD_SLEEP_STA, WMI_HL_10_SERVICE_IBSS_PWRSAVE, WMI_HL_10_SERVICE_LPASS, WMI_HL_10_SERVICE_EXTSCAN, WMI_HL_10_SERVICE_D0WOW, WMI_HL_10_SERVICE_HSOFFLOAD, WMI_HL_10_SERVICE_ROAM_HO_OFFLOAD, WMI_HL_10_SERVICE_RX_FULL_REORDER, WMI_HL_10_SERVICE_DHCP_OFFLOAD, WMI_HL_10_SERVICE_STA_RX_IPA_OFFLOAD_SUPPORT, WMI_HL_10_SERVICE_MDNS_OFFLOAD, WMI_HL_10_SERVICE_SAP_AUTH_OFFLOAD, WMI_HL_10_SERVICE_DUAL_BAND_SIMULTANEOUS_SUPPORT, WMI_HL_10_SERVICE_OCB, WMI_HL_10_SERVICE_AP_ARPNS_OFFLOAD, WMI_HL_10_SERVICE_PER_BAND_CHAINMASK_SUPPORT, WMI_HL_10_SERVICE_PACKET_FILTER_OFFLOAD, WMI_HL_10_SERVICE_MGMT_TX_HTT, WMI_HL_10_SERVICE_MGMT_TX_WMI, WMI_HL_10_SERVICE_EXT_MSG, WMI_HL_10_SERVICE_MAWC, WMI_HL_10_SERVICE_PEER_ASSOC_CONF, WMI_HL_10_SERVICE_EGAP, WMI_HL_10_SERVICE_STA_PMF_OFFLOAD, WMI_HL_10_SERVICE_UNIFIED_WOW_CAPABILITY, WMI_HL_10_SERVICE_ENHANCED_PROXY_STA, WMI_HL_10_SERVICE_ATF, WMI_HL_10_SERVICE_COEX_GPIO, WMI_HL_10_SERVICE_AUX_SPECTRAL_INTF, WMI_HL_10_SERVICE_AUX_CHAN_LOAD_INTF, WMI_HL_10_SERVICE_BSS_CHANNEL_INFO_64, WMI_HL_10_SERVICE_ENTERPRISE_MESH, WMI_HL_10_SERVICE_RESTRT_CHNL_SUPPORT, WMI_HL_10_SERVICE_BPF_OFFLOAD, WMI_HL_10_SERVICE_SYNC_DELETE_CMDS, WMI_HL_10_SERVICE_SMART_ANTENNA_SW_SUPPORT, WMI_HL_10_SERVICE_SMART_ANTENNA_HW_SUPPORT, WMI_HL_10_SERVICE_RATECTRL_LIMIT_MAX_MIN_RATES, WMI_HL_10_SERVICE_NAN_DATA, WMI_HL_10_SERVICE_NAN_RTT, WMI_HL_10_SERVICE_11AX, WMI_HL_10_SERVICE_DEPRECATED_REPLACE, WMI_HL_10_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE, WMI_HL_10_SERVICE_ENHANCED_MCAST_FILTER, WMI_HL_10_SERVICE_PERIODIC_CHAN_STAT_SUPPORT, WMI_HL_10_SERVICE_MESH_11S, WMI_HL_10_SERVICE_HALF_RATE_QUARTER_RATE_SUPPORT, WMI_HL_10_SERVICE_VDEV_RX_FILTER, WMI_HL_10_SERVICE_P2P_LISTEN_OFFLOAD_SUPPORT, WMI_HL_10_SERVICE_MARK_FIRST_WAKEUP_PACKET, WMI_HL_10_SERVICE_MULTIPLE_MCAST_FILTER_SET, WMI_HL_10_SERVICE_HOST_MANAGED_RX_REORDER, WMI_HL_10_SERVICE_FLASH_RDWR_SUPPORT, WMI_HL_10_SERVICE_WLAN_STATS_REPORT, WMI_HL_10_SERVICE_TX_MSDU_ID_NEW_PARTITION_SUPPORT, WMI_HL_10_SERVICE_DFS_PHYERR_OFFLOAD, WMI_HL_10_MAX_SERVICE = 128, WMI_HL_10_MAX_EXT_SERVICE WMI_TLV_SERVICE_DUAL_BAND_SIMULTANEOUS_SUPPORT, WMI_TLV_SERVICE_OCB, WMI_TLV_SERVICE_AP_ARPNS_OFFLOAD, WMI_TLV_SERVICE_PER_BAND_CHAINMASK_SUPPORT, WMI_TLV_SERVICE_PACKET_FILTER_OFFLOAD, WMI_TLV_SERVICE_MGMT_TX_HTT, WMI_TLV_SERVICE_MGMT_TX_WMI, WMI_TLV_SERVICE_EXT_MSG, WMI_TLV_SERVICE_MAWC, WMI_TLV_SERVICE_PEER_ASSOC_CONF, WMI_TLV_SERVICE_EGAP, WMI_TLV_SERVICE_STA_PMF_OFFLOAD, WMI_TLV_SERVICE_UNIFIED_WOW_CAPABILITY, WMI_TLV_SERVICE_ENHANCED_PROXY_STA, WMI_TLV_SERVICE_ATF, WMI_TLV_SERVICE_COEX_GPIO, WMI_TLV_SERVICE_AUX_SPECTRAL_INTF, WMI_TLV_SERVICE_AUX_CHAN_LOAD_INTF, WMI_TLV_SERVICE_BSS_CHANNEL_INFO_64, WMI_TLV_SERVICE_ENTERPRISE_MESH, WMI_TLV_SERVICE_RESTRT_CHNL_SUPPORT, WMI_TLV_SERVICE_BPF_OFFLOAD, WMI_TLV_SERVICE_SYNC_DELETE_CMDS, WMI_TLV_SERVICE_SMART_ANTENNA_SW_SUPPORT, WMI_TLV_SERVICE_SMART_ANTENNA_HW_SUPPORT, WMI_TLV_SERVICE_RATECTRL_LIMIT_MAX_MIN_RATES, WMI_TLV_SERVICE_NAN_DATA, WMI_TLV_SERVICE_NAN_RTT, WMI_TLV_SERVICE_11AX, WMI_TLV_SERVICE_DEPRECATED_REPLACE, WMI_TLV_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE, WMI_TLV_SERVICE_ENHANCED_MCAST_FILTER, WMI_TLV_SERVICE_PERIODIC_CHAN_STAT_SUPPORT, WMI_TLV_SERVICE_MESH_11S, WMI_TLV_SERVICE_HALF_RATE_QUARTER_RATE_SUPPORT, WMI_TLV_SERVICE_VDEV_RX_FILTER, WMI_TLV_SERVICE_P2P_LISTEN_OFFLOAD_SUPPORT, WMI_TLV_SERVICE_MARK_FIRST_WAKEUP_PACKET, WMI_TLV_SERVICE_MULTIPLE_MCAST_FILTER_SET, WMI_TLV_SERVICE_HOST_MANAGED_RX_REORDER, WMI_TLV_SERVICE_FLASH_RDWR_SUPPORT, WMI_TLV_SERVICE_WLAN_STATS_REPORT, WMI_TLV_SERVICE_TX_MSDU_ID_NEW_PARTITION_SUPPORT, WMI_TLV_SERVICE_DFS_PHYERR_OFFLOAD, }; #define WMI_SERVICE_IS_ENABLED(wmi_svc_bmap, svc_id, len) \ Loading @@ -1101,65 +1026,6 @@ enum wmi_hl_10_service { __set_bit(y, out); \ } while (0) static inline void wmi_hl_1_0_svc_map(const __le32 *in, unsigned long *out, size_t len) { SVCMAP(WMI_HL_10_SERVICE_BEACON_OFFLOAD, WMI_SERVICE_BEACON_OFFLOAD, len); SVCMAP(WMI_HL_10_SERVICE_SCAN_OFFLOAD, WMI_SERVICE_SCAN_OFFLOAD, len); SVCMAP(WMI_HL_10_SERVICE_ROAM_SCAN_OFFLOAD, WMI_SERVICE_ROAM_SCAN_OFFLOAD, len); SVCMAP(WMI_HL_10_SERVICE_BCN_MISS_OFFLOAD, WMI_SERVICE_BCN_MISS_OFFLOAD, len); SVCMAP(WMI_HL_10_SERVICE_STA_PWRSAVE, WMI_SERVICE_STA_PWRSAVE, len); SVCMAP(WMI_HL_10_SERVICE_STA_ADVANCED_PWRSAVE, WMI_SERVICE_STA_ADVANCED_PWRSAVE, len); SVCMAP(WMI_HL_10_SERVICE_AP_UAPSD, WMI_SERVICE_AP_UAPSD, len); SVCMAP(WMI_HL_10_SERVICE_AP_DFS, WMI_SERVICE_AP_DFS, len); SVCMAP(WMI_HL_10_SERVICE_11AC, WMI_SERVICE_11AC, len); SVCMAP(WMI_HL_10_SERVICE_BLOCKACK, WMI_SERVICE_BLOCKACK, len); SVCMAP(WMI_HL_10_SERVICE_PHYERR, WMI_SERVICE_PHYERR, len); SVCMAP(WMI_HL_10_SERVICE_BCN_FILTER, WMI_SERVICE_BCN_FILTER, len); SVCMAP(WMI_HL_10_SERVICE_RTT, WMI_SERVICE_RTT, len); SVCMAP(WMI_HL_10_SERVICE_WOW, WMI_SERVICE_WOW, len); SVCMAP(WMI_HL_10_SERVICE_RATECTRL_CACHE, WMI_SERVICE_RATECTRL_CACHE, len); SVCMAP(WMI_HL_10_SERVICE_IRAM_TIDS, WMI_SERVICE_IRAM_TIDS, len); SVCMAP(WMI_HL_10_SERVICE_ARPNS_OFFLOAD, WMI_SERVICE_ARPNS_OFFLOAD, len); SVCMAP(WMI_HL_10_SERVICE_NLO, WMI_SERVICE_NLO, len); SVCMAP(WMI_HL_10_SERVICE_GTK_OFFLOAD, WMI_SERVICE_GTK_OFFLOAD, len); SVCMAP(WMI_HL_10_SERVICE_SCAN_SCH, WMI_SERVICE_SCAN_SCH, len); SVCMAP(WMI_HL_10_SERVICE_CSA_OFFLOAD, WMI_SERVICE_CSA_OFFLOAD, len); SVCMAP(WMI_HL_10_SERVICE_CHATTER, WMI_SERVICE_CHATTER, len); SVCMAP(WMI_HL_10_SERVICE_COEX_FREQAVOID, WMI_SERVICE_COEX_FREQAVOID, len); SVCMAP(WMI_HL_10_SERVICE_PACKET_POWER_SAVE, WMI_SERVICE_PACKET_POWER_SAVE, len); SVCMAP(WMI_HL_10_SERVICE_FORCE_FW_HANG, WMI_SERVICE_FORCE_FW_HANG, len); SVCMAP(WMI_HL_10_SERVICE_RX_FULL_REORDER, WMI_SERVICE_RX_FULL_REORDER, len); SVCMAP(WMI_HL_10_SERVICE_MGMT_TX_WMI, WMI_SERVICE_MGMT_TX_WMI, len); } static inline void wmi_tlv_svc_map(const __le32 *in, unsigned long *out, size_t len) { Loading Loading @@ -1303,6 +1169,8 @@ wmi_tlv_svc_map(const __le32 *in, unsigned long *out, size_t len) WMI_SERVICE_MDNS_OFFLOAD, len); SVCMAP(WMI_TLV_SERVICE_SAP_AUTH_OFFLOAD, WMI_SERVICE_SAP_AUTH_OFFLOAD, len); SVCMAP(WMI_TLV_SERVICE_MGMT_TX_WMI, WMI_SERVICE_MGMT_TX_WMI, len); } #undef SVCMAP Loading Loading @@ -1832,7 +1700,7 @@ struct wmi_tlv_tx_pause_ev { } __packed; void ath10k_wmi_tlv_attach(struct ath10k *ar); void ath10k_wmi_hl_1_0_attach(struct ath10k *ar); struct wmi_tlv_mgmt_tx_hdr { __le32 vdev_id; __le32 desc_id; Loading