Lines Matching full:ab
179 ath11k_wmi_tlv_iter(struct ath11k_base *ab, const void *ptr, size_t len, in ath11k_wmi_tlv_iter() argument
180 int (*iter)(struct ath11k_base *ab, u16 tag, u16 len, in ath11k_wmi_tlv_iter() argument
191 ath11k_err(ab, "wmi tlv parse failure at byte %zd (%zu bytes left, %zu expected)\n", in ath11k_wmi_tlv_iter()
203 ath11k_err(ab, "wmi tlv parse failure of tag %u at byte %zd (%zu bytes left, %u expected)\n", in ath11k_wmi_tlv_iter()
211 …ath11k_err(ab, "wmi tlv parse failure of tag %u at byte %zd (%u bytes is less than min length %zu)… in ath11k_wmi_tlv_iter()
217 ret = iter(ab, tlv_tag, tlv_len, ptr, data); in ath11k_wmi_tlv_iter()
228 static int ath11k_wmi_tlv_iter_parse(struct ath11k_base *ab, u16 tag, u16 len, in ath11k_wmi_tlv_iter_parse() argument
246 const void **ath11k_wmi_tlv_parse_alloc(struct ath11k_base *ab, in ath11k_wmi_tlv_parse_alloc() argument
256 ret = ath11k_wmi_tlv_parse(ab, tb, skb->data, skb->len); in ath11k_wmi_tlv_parse_alloc()
269 struct ath11k_base *ab = wmi->wmi_ab->ab; in ath11k_wmi_cmd_send_nowait() local
282 trace_ath11k_wmi_cmd(ab, cmd_id, skb->data, skb->len); in ath11k_wmi_cmd_send_nowait()
285 ret = ath11k_htc_send(&ab->htc, wmi->eid, skb); in ath11k_wmi_cmd_send_nowait()
302 struct ath11k_base *ab = wmi_ab->ab; in ath11k_wmi_cmd_send() local
306 if (ab->hw_params.credit_flow) { in ath11k_wmi_cmd_send()
311 &wmi_ab->ab->dev_flags)) in ath11k_wmi_cmd_send()
321 &wmi_ab->ab->dev_flags)) in ath11k_wmi_cmd_send()
329 ath11k_warn(wmi_ab->ab, "wmi command %d timeout\n", cmd_id); in ath11k_wmi_cmd_send()
332 ath11k_warn(wmi_ab->ab, "ce desc not available for wmi command %d\n", in ath11k_wmi_cmd_send()
368 struct ath11k_base *ab = wmi_handle->wmi_ab->ab; in ath11k_pull_mac_phy_cap_svc_ready_ext() local
400 ab->target_pdev_ids[ab->target_pdev_count].supported_bands = in ath11k_pull_mac_phy_cap_svc_ready_ext()
402 ab->target_pdev_ids[ab->target_pdev_count].pdev_id = mac_phy_caps->pdev_id; in ath11k_pull_mac_phy_cap_svc_ready_ext()
403 ab->target_pdev_count++; in ath11k_pull_mac_phy_cap_svc_ready_ext()
517 static int ath11k_pull_service_ready_tlv(struct ath11k_base *ab, in ath11k_pull_service_ready_tlv() argument
524 ath11k_err(ab, "%s: failed by NULL param\n", in ath11k_pull_service_ready_tlv()
567 static int ath11k_wmi_tlv_svc_rdy_parse(struct ath11k_base *ab, u16 tag, u16 len, in ath11k_wmi_tlv_svc_rdy_parse() argument
571 struct ath11k_pdev_wmi *wmi_handle = &ab->wmi_ab.wmi[0]; in ath11k_wmi_tlv_svc_rdy_parse()
576 if (ath11k_pull_service_ready_tlv(ab, ptr, &ab->target_caps)) in ath11k_wmi_tlv_svc_rdy_parse()
584 ath11k_warn(ab, "invalid len %d for the tag 0x%x\n", in ath11k_wmi_tlv_svc_rdy_parse()
601 static int ath11k_service_ready_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_service_ready_event() argument
606 ret = ath11k_wmi_tlv_iter(ab, skb->data, skb->len, in ath11k_service_ready_event()
610 ath11k_warn(ab, "failed to parse tlv %d\n", ret); in ath11k_service_ready_event()
614 ath11k_dbg(ab, ATH11K_DBG_WMI, "event service ready"); in ath11k_service_ready_event()
622 struct ath11k_base *ab = wmi_ab->ab; in ath11k_wmi_alloc_skb() local
625 skb = ath11k_htc_alloc_skb(ab, WMI_SKB_HEADROOM + round_len); in ath11k_wmi_alloc_skb()
631 ath11k_warn(ab, "unaligned WMI skb data\n"); in ath11k_wmi_alloc_skb()
642 struct ath11k_base *ab = ar->ab; in ath11k_wmi_mgmt_get_freq() local
645 if (ab->hw_params.support_off_channel_tx && in ath11k_wmi_mgmt_get_freq()
695 ath11k_warn(ar->ab, in ath11k_wmi_mgmt_send()
700 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd mgmt tx send"); in ath11k_wmi_mgmt_send()
772 ath11k_warn(ar->ab, in ath11k_wmi_vdev_create()
777 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_vdev_create()
803 ath11k_warn(ar->ab, "failed to submit WMI_VDEV_DELETE_CMDID\n"); in ath11k_wmi_vdev_delete()
807 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd vdev delete id %d\n", vdev_id); in ath11k_wmi_vdev_delete()
831 ath11k_warn(ar->ab, "failed to submit WMI_VDEV_STOP cmd\n"); in ath11k_wmi_vdev_stop()
835 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd vdev stop id 0x%x\n", vdev_id); in ath11k_wmi_vdev_stop()
859 ath11k_warn(ar->ab, "failed to submit WMI_VDEV_DOWN cmd\n"); in ath11k_wmi_vdev_down()
863 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd vdev down id 0x%x\n", vdev_id); in ath11k_wmi_vdev_down()
971 if (test_bit(ATH11K_FLAG_HW_CRYPTO_DISABLED, &ar->ab->dev_flags)) in ath11k_wmi_vdev_start()
1001 ath11k_warn(ar->ab, "failed to submit vdev_%s cmd\n", in ath11k_wmi_vdev_start()
1006 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd vdev %s id 0x%x freq 0x%x mode 0x%x\n", in ath11k_wmi_vdev_start()
1056 ath11k_warn(ar->ab, "failed to submit WMI_VDEV_UP cmd\n"); in ath11k_wmi_vdev_up()
1060 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_vdev_up()
1089 ath11k_warn(ar->ab, "failed to submit WMI_PEER_CREATE cmd\n"); in ath11k_wmi_send_peer_create_cmd()
1093 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_peer_create_cmd()
1121 ath11k_warn(ar->ab, "failed to send WMI_PEER_DELETE cmd\n"); in ath11k_wmi_send_peer_delete_cmd()
1125 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_peer_delete_cmd()
1159 ath11k_warn(ar->ab, in ath11k_wmi_send_pdev_set_regdomain()
1164 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_pdev_set_regdomain()
1194 ath11k_warn(ar->ab, "failed to send WMI_PEER_SET_PARAM cmd\n"); in ath11k_wmi_set_peer_param()
1198 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_set_peer_param()
1228 ath11k_warn(ar->ab, in ath11k_wmi_send_peer_flush_tids_cmd()
1233 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_peer_flush_tids_cmd()
1271 ath11k_warn(ar->ab, in ath11k_wmi_peer_rx_reorder_queue_setup()
1276 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_peer_rx_reorder_queue_setup()
1308 ath11k_warn(ar->ab, in ath11k_wmi_rx_reord_queue_remove()
1313 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_rx_reord_queue_remove()
1341 ath11k_warn(ar->ab, "failed to send WMI_PDEV_SET_PARAM cmd\n"); in ath11k_wmi_pdev_set_param()
1345 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_pdev_set_param()
1372 ath11k_warn(ar->ab, "failed to send WMI_PDEV_SET_PARAM cmd\n"); in ath11k_wmi_pdev_set_ps_mode()
1376 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_pdev_set_ps_mode()
1405 ath11k_warn(ar->ab, "failed to send WMI_PDEV_SUSPEND cmd\n"); in ath11k_wmi_pdev_suspend()
1409 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_pdev_suspend()
1434 ath11k_warn(ar->ab, "failed to send WMI_PDEV_RESUME cmd\n"); in ath11k_wmi_pdev_resume()
1438 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_pdev_resume()
1471 ath11k_warn(ar->ab, in ath11k_wmi_pdev_bss_chan_info_request()
1476 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_pdev_bss_chan_info_request()
1505 ath11k_warn(ar->ab, in ath11k_wmi_send_set_ap_ps_param_cmd()
1510 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_set_ap_ps_param_cmd()
1540 ath11k_warn(ar->ab, "failed to send WMI_STA_POWERSAVE_PARAM_CMDID"); in ath11k_wmi_set_sta_ps_param()
1544 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_set_sta_ps_param()
1574 ath11k_warn(ar->ab, "Failed to send WMI_FORCE_FW_HANG_CMDID"); in ath11k_wmi_force_fw_hang_cmd()
1578 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd force fw hang"); in ath11k_wmi_force_fw_hang_cmd()
1605 ath11k_warn(ar->ab, in ath11k_wmi_vdev_set_param_cmd()
1610 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_vdev_set_param_cmd()
1639 ath11k_warn(ar->ab, "failed to send WMI_REQUEST_STATS cmd\n"); in ath11k_wmi_send_stats_request_cmd()
1643 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_stats_request_cmd()
1668 ath11k_warn(ar->ab, "failed to send WMI_PDEV_GET_TEMPERATURE cmd\n"); in ath11k_wmi_send_pdev_temperature_cmd()
1672 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_pdev_temperature_cmd()
1700 ath11k_warn(ar->ab, in ath11k_wmi_send_bcn_offload_control_cmd()
1705 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_bcn_offload_control_cmd()
1744 ath11k_warn(ar->ab, "failed to send WMI_P2P_GO_SET_BEACON_IE\n"); in ath11k_wmi_p2p_go_bcn_ie()
1767 ath11k_warn(ar->ab, "failed to find arvif with vdev id %d\n", vdev_id); in ath11k_wmi_bcn_tmpl()
1813 ath11k_warn(ar->ab, "failed to send WMI_BCN_TMPL_CMDID\n"); in ath11k_wmi_bcn_tmpl()
1817 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd bcn tmpl"); in ath11k_wmi_bcn_tmpl()
1862 ath11k_warn(ar->ab, in ath11k_wmi_vdev_install_key()
1867 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_vdev_install_key()
2001 &ar->ab->dev_flags)); in ath11k_wmi_send_peer_assoc_cmd()
2098 ath11k_warn(ar->ab, in ath11k_wmi_send_peer_assoc_cmd()
2103 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_peer_assoc_cmd()
2148 ar->ab->wmi_ab.svc_map)) in ath11k_wmi_start_scan_init()
2417 ath11k_warn(ar->ab, "failed to send WMI_START_SCAN_CMDID\n"); in ath11k_wmi_send_scan_start_cmd()
2421 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd start scan"); in ath11k_wmi_send_scan_start_cmd()
2455 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_vdev_set_tpc_power()
2476 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "tpc chan freq %d TX power %d\n", in ath11k_wmi_send_vdev_set_tpc_power()
2482 ath11k_warn(ar->ab, "failed to send WMI_VDEV_SET_TPC_POWER_CMDID\n"); in ath11k_wmi_send_vdev_set_tpc_power()
2522 ath11k_warn(ar->ab, "invalid scan cancel param %d", in ath11k_wmi_send_scan_stop_cmd()
2531 ath11k_warn(ar->ab, "failed to send WMI_STOP_SCAN_CMDID\n"); in ath11k_wmi_send_scan_stop_cmd()
2535 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd stop scan"); in ath11k_wmi_send_scan_stop_cmd()
2580 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_scan_chan_list_cmd()
2639 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_scan_chan_list_cmd()
2650 ath11k_warn(ar->ab, "failed to send WMI_SCAN_CHAN_LIST cmd\n"); in ath11k_wmi_send_scan_chan_list_cmd()
2655 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd scan chan list channels %d", in ath11k_wmi_send_scan_chan_list_cmd()
2717 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_wmm_update_cmd_tlv()
2726 ath11k_warn(ar->ab, in ath11k_wmi_send_wmm_update_cmd_tlv()
2731 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd vdev set wmm params"); in ath11k_wmi_send_wmm_update_cmd_tlv()
2759 ath11k_warn(ar->ab, in ath11k_wmi_send_dfs_phyerr_offload_enable_cmd()
2764 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_dfs_phyerr_offload_enable_cmd()
2794 ath11k_warn(ar->ab, in ath11k_wmi_delba_send()
2799 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_delba_send()
2830 ath11k_warn(ar->ab, in ath11k_wmi_addba_set_resp()
2835 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_addba_set_resp()
2865 ath11k_warn(ar->ab, in ath11k_wmi_addba_send()
2870 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_addba_send()
2898 ath11k_warn(ar->ab, in ath11k_wmi_addba_clear_resp()
2903 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_addba_clear_resp()
2951 ath11k_warn(ar->ab, "failed to send WMI_PDEV_PKTLOG_ENABLE_CMDID\n"); in ath11k_wmi_pdev_peer_pktlog_filter()
2955 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd pdev pktlog filter"); in ath11k_wmi_pdev_peer_pktlog_filter()
2996 ath11k_warn(ar->ab, "unknown cc params flags: 0x%x", in ath11k_wmi_send_init_country_cmd()
3005 ath11k_warn(ar->ab, in ath11k_wmi_send_init_country_cmd()
3011 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd set init country"); in ath11k_wmi_send_init_country_cmd()
3042 ath11k_warn(ar->ab, in ath11k_wmi_send_set_current_country_cmd()
3047 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_set_current_country_cmd()
3108 ath11k_warn(ar->ab, "failed to send THERM_THROT_SET_CONF cmd\n"); in ath11k_wmi_send_thermal_mitigation_param_cmd()
3112 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_thermal_mitigation_param_cmd()
3143 ath11k_warn(ar->ab, in ath11k_wmi_send_11d_scan_start_cmd()
3148 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_11d_scan_start_cmd()
3177 ath11k_warn(ar->ab, in ath11k_wmi_send_11d_scan_stop_cmd()
3182 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_11d_scan_stop_cmd()
3212 ath11k_warn(ar->ab, "failed to send WMI_PDEV_PKTLOG_ENABLE_CMDID\n"); in ath11k_wmi_pdev_pktlog_enable()
3216 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd pdev pktlog enable"); in ath11k_wmi_pdev_pktlog_enable()
3242 ath11k_warn(ar->ab, "failed to send WMI_PDEV_PKTLOG_ENABLE_CMDID\n"); in ath11k_wmi_pdev_pktlog_disable()
3246 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd pdev pktlog disable"); in ath11k_wmi_pdev_pktlog_disable()
3281 struct ath11k_base *ab = wmi->wmi_ab->ab; in ath11k_wmi_send_twt_enable_cmd() local
3315 ath11k_warn(ab, "Failed to send WMI_TWT_ENABLE_CMDID"); in ath11k_wmi_send_twt_enable_cmd()
3322 ath11k_dbg(ab, ATH11K_DBG_WMI, "cmd twt enable"); in ath11k_wmi_send_twt_enable_cmd()
3331 struct ath11k_base *ab = wmi->wmi_ab->ab; in ath11k_wmi_send_twt_disable_cmd() local
3349 ath11k_warn(ab, "Failed to send WMI_TWT_DISABLE_CMDID"); in ath11k_wmi_send_twt_disable_cmd()
3354 ath11k_dbg(ab, ATH11K_DBG_WMI, "cmd twt disable"); in ath11k_wmi_send_twt_disable_cmd()
3365 struct ath11k_base *ab = wmi->wmi_ab->ab; in ath11k_wmi_send_twt_add_dialog_cmd() local
3399 ath11k_warn(ab, in ath11k_wmi_send_twt_add_dialog_cmd()
3406 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_twt_add_dialog_cmd()
3419 struct ath11k_base *ab = wmi->wmi_ab->ab; in ath11k_wmi_send_twt_del_dialog_cmd() local
3440 ath11k_warn(ab, in ath11k_wmi_send_twt_del_dialog_cmd()
3447 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_twt_del_dialog_cmd()
3458 struct ath11k_base *ab = wmi->wmi_ab->ab; in ath11k_wmi_send_twt_pause_dialog_cmd() local
3480 ath11k_warn(ab, in ath11k_wmi_send_twt_pause_dialog_cmd()
3487 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_twt_pause_dialog_cmd()
3498 struct ath11k_base *ab = wmi->wmi_ab->ab; in ath11k_wmi_send_twt_resume_dialog_cmd() local
3522 ath11k_warn(ab, in ath11k_wmi_send_twt_resume_dialog_cmd()
3529 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_twt_resume_dialog_cmd()
3542 struct ath11k_base *ab = wmi->wmi_ab->ab; in ath11k_wmi_send_obss_spr_cmd() local
3565 ath11k_warn(ab, in ath11k_wmi_send_obss_spr_cmd()
3571 ath11k_dbg(ab, ATH11K_DBG_WMI, "cmd pdev obss pd spatial reuse"); in ath11k_wmi_send_obss_spr_cmd()
3580 struct ath11k_base *ab = wmi->wmi_ab->ab; in ath11k_wmi_pdev_set_srg_bss_color_bitmap() local
3601 ath11k_warn(ab, in ath11k_wmi_pdev_set_srg_bss_color_bitmap()
3607 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_pdev_set_srg_bss_color_bitmap()
3618 struct ath11k_base *ab = wmi->wmi_ab->ab; in ath11k_wmi_pdev_set_srg_patial_bssid_bitmap() local
3640 ath11k_warn(ab, in ath11k_wmi_pdev_set_srg_patial_bssid_bitmap()
3646 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_pdev_set_srg_patial_bssid_bitmap()
3657 struct ath11k_base *ab = wmi->wmi_ab->ab; in ath11k_wmi_pdev_srg_obss_color_enable_bitmap() local
3679 ath11k_warn(ab, in ath11k_wmi_pdev_srg_obss_color_enable_bitmap()
3685 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_pdev_srg_obss_color_enable_bitmap()
3696 struct ath11k_base *ab = wmi->wmi_ab->ab; in ath11k_wmi_pdev_srg_obss_bssid_enable_bitmap() local
3718 ath11k_warn(ab, in ath11k_wmi_pdev_srg_obss_bssid_enable_bitmap()
3724 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_pdev_srg_obss_bssid_enable_bitmap()
3735 struct ath11k_base *ab = wmi->wmi_ab->ab; in ath11k_wmi_pdev_non_srg_obss_color_enable_bitmap() local
3757 ath11k_warn(ab, in ath11k_wmi_pdev_non_srg_obss_color_enable_bitmap()
3763 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_pdev_non_srg_obss_color_enable_bitmap()
3774 struct ath11k_base *ab = wmi->wmi_ab->ab; in ath11k_wmi_pdev_non_srg_obss_bssid_enable_bitmap() local
3796 ath11k_warn(ab, in ath11k_wmi_pdev_non_srg_obss_bssid_enable_bitmap()
3802 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_pdev_non_srg_obss_bssid_enable_bitmap()
3815 struct ath11k_base *ab = wmi->wmi_ab->ab; in ath11k_wmi_send_obss_color_collision_cfg_cmd() local
3842 ath11k_warn(ab, "Failed to send WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID"); in ath11k_wmi_send_obss_color_collision_cfg_cmd()
3847 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_obss_color_collision_cfg_cmd()
3859 struct ath11k_base *ab = wmi->wmi_ab->ab; in ath11k_wmi_send_bss_color_change_enable_cmd() local
3879 ath11k_warn(ab, "Failed to send WMI_BSS_COLOR_CHANGE_ENABLE_CMDID"); in ath11k_wmi_send_bss_color_change_enable_cmd()
3884 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_bss_color_change_enable_cmd()
3904 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_fils_discovery_tmpl()
3926 ath11k_warn(ar->ab, in ath11k_wmi_fils_discovery_tmpl()
3933 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd fils discovery tmpl"); in ath11k_wmi_fils_discovery_tmpl()
3949 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_probe_resp_tmpl()
3983 ath11k_warn(ar->ab, in ath11k_wmi_probe_resp_tmpl()
3990 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd "); in ath11k_wmi_probe_resp_tmpl()
4002 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_fils_discovery()
4022 ath11k_warn(ar->ab, in ath11k_wmi_fils_discovery()
4029 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd enable fils"); in ath11k_wmi_fils_discovery()
4035 ath11k_wmi_obss_color_collision_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_wmi_obss_color_collision_event() argument
4042 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_wmi_obss_color_collision_event()
4045 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_wmi_obss_color_collision_event()
4049 ath11k_dbg(ab, ATH11K_DBG_WMI, "event obss color collision"); in ath11k_wmi_obss_color_collision_event()
4055 ath11k_warn(ab, "failed to fetch obss color collision ev"); in ath11k_wmi_obss_color_collision_event()
4059 arvif = ath11k_mac_get_arvif_by_vdev_id(ab, ev->vdev_id); in ath11k_wmi_obss_color_collision_event()
4061 ath11k_warn(ab, "failed to find arvif with vedv id %d in obss_color_collision_event\n", in ath11k_wmi_obss_color_collision_event()
4070 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_wmi_obss_color_collision_event()
4079 ath11k_warn(ab, "received unknown obss color collision detection event\n"); in ath11k_wmi_obss_color_collision_event()
4193 struct ath11k_base *ab = wmi->wmi_ab->ab; in ath11k_init_cmd_send() local
4244 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_init_cmd_send()
4297 ath11k_warn(ab, "failed to send WMI_INIT_CMDID\n"); in ath11k_init_cmd_send()
4302 ath11k_dbg(ab, ATH11K_DBG_WMI, "cmd wmi init"); in ath11k_init_cmd_send()
4329 ath11k_warn(ar->ab, in ath11k_wmi_pdev_lro_cfg()
4334 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_pdev_lro_cfg()
4342 int ath11k_wmi_wait_for_service_ready(struct ath11k_base *ab) in ath11k_wmi_wait_for_service_ready() argument
4346 time_left = wait_for_completion_timeout(&ab->wmi_ab.service_ready, in ath11k_wmi_wait_for_service_ready()
4354 int ath11k_wmi_wait_for_unified_ready(struct ath11k_base *ab) in ath11k_wmi_wait_for_unified_ready() argument
4358 time_left = wait_for_completion_timeout(&ab->wmi_ab.unified_ready, in ath11k_wmi_wait_for_unified_ready()
4366 int ath11k_wmi_set_hw_mode(struct ath11k_base *ab, in ath11k_wmi_set_hw_mode() argument
4371 struct ath11k_wmi_base *wmi_ab = &ab->wmi_ab; in ath11k_wmi_set_hw_mode()
4391 ath11k_warn(ab, "failed to send WMI_PDEV_SET_HW_MODE_CMDID\n"); in ath11k_wmi_set_hw_mode()
4396 ath11k_dbg(ab, ATH11K_DBG_WMI, "cmd pdev set hw mode %d", cmd->hw_mode_index); in ath11k_wmi_set_hw_mode()
4401 int ath11k_wmi_cmd_init(struct ath11k_base *ab) in ath11k_wmi_cmd_init() argument
4403 struct ath11k_wmi_base *wmi_ab = &ab->wmi_ab; in ath11k_wmi_cmd_init()
4410 ab->hw_params.hw_ops->wmi_init_config(ab, &config); in ath11k_wmi_cmd_init()
4413 ab->wmi_ab.svc_map)) in ath11k_wmi_cmd_init()
4423 if (ab->hw_params.single_pdev_only) in ath11k_wmi_cmd_init()
4426 init_param.num_band_to_mac = ab->num_radios; in ath11k_wmi_cmd_init()
4427 ath11k_fill_band_to_mac_param(ab, init_param.band_to_mac); in ath11k_wmi_cmd_init()
4453 ath11k_warn(ar->ab, in ath11k_wmi_vdev_spectral_conf()
4458 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_vdev_spectral_conf()
4491 ath11k_warn(ar->ab, in ath11k_wmi_vdev_spectral_enable()
4496 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_vdev_spectral_enable()
4537 ath11k_warn(ar->ab, in ath11k_wmi_pdev_dma_ring_cfg()
4542 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_pdev_dma_ring_cfg()
4584 static int ath11k_wmi_tlv_dma_buf_parse(struct ath11k_base *ab, in ath11k_wmi_tlv_dma_buf_parse() argument
4602 ret = ath11k_wmi_tlv_iter(ab, ptr, len, in ath11k_wmi_tlv_dma_buf_parse()
4606 ath11k_warn(ab, "failed to parse dma buf entry tlv %d\n", in ath11k_wmi_tlv_dma_buf_parse()
4616 ret = ath11k_wmi_tlv_iter(ab, ptr, len, in ath11k_wmi_tlv_dma_buf_parse()
4620 ath11k_warn(ab, "failed to parse dma buf meta tlv %d\n", in ath11k_wmi_tlv_dma_buf_parse()
4634 static void ath11k_wmi_pdev_dma_ring_buf_release_event(struct ath11k_base *ab, in ath11k_wmi_pdev_dma_ring_buf_release_event() argument
4641 ret = ath11k_wmi_tlv_iter(ab, skb->data, skb->len, in ath11k_wmi_pdev_dma_ring_buf_release_event()
4645 ath11k_warn(ab, "failed to parse dma buf release tlv %d\n", ret); in ath11k_wmi_pdev_dma_ring_buf_release_event()
4649 ath11k_dbg(ab, ATH11K_DBG_WMI, "event pdev dma ring buf release"); in ath11k_wmi_pdev_dma_ring_buf_release_event()
4657 ret = ath11k_dbring_buffer_release_event(ab, ¶m); in ath11k_wmi_pdev_dma_ring_buf_release_event()
4659 ath11k_warn(ab, "failed to handle dma buf release event %d\n", ret); in ath11k_wmi_pdev_dma_ring_buf_release_event()
4885 static int ath11k_wmi_alloc_dbring_caps(struct ath11k_base *ab, in ath11k_wmi_alloc_dbring_caps() argument
4896 ab->db_caps = ptr; in ath11k_wmi_alloc_dbring_caps()
4897 ab->num_db_cap = num_cap; in ath11k_wmi_alloc_dbring_caps()
4902 static void ath11k_wmi_free_dbring_caps(struct ath11k_base *ab) in ath11k_wmi_free_dbring_caps() argument
4904 kfree(ab->db_caps); in ath11k_wmi_free_dbring_caps()
4905 ab->db_caps = NULL; in ath11k_wmi_free_dbring_caps()
4906 ab->num_db_cap = 0; in ath11k_wmi_free_dbring_caps()
4909 static int ath11k_wmi_tlv_dma_ring_caps(struct ath11k_base *ab, in ath11k_wmi_tlv_dma_ring_caps() argument
4920 ret = ath11k_wmi_tlv_iter(ab, ptr, len, in ath11k_wmi_tlv_dma_ring_caps()
4924 ath11k_warn(ab, "failed to parse dma ring caps tlv %d\n", ret); in ath11k_wmi_tlv_dma_ring_caps()
4931 if (ab->num_db_cap) { in ath11k_wmi_tlv_dma_ring_caps()
4932 ath11k_warn(ab, "Already processed, so ignoring dma ring caps\n"); in ath11k_wmi_tlv_dma_ring_caps()
4936 ret = ath11k_wmi_alloc_dbring_caps(ab, dma_caps_parse->n_dma_ring_caps); in ath11k_wmi_tlv_dma_ring_caps()
4940 dir_buff_caps = ab->db_caps; in ath11k_wmi_tlv_dma_ring_caps()
4943 ath11k_warn(ab, "Invalid module id %d\n", dma_caps[i].module_id); in ath11k_wmi_tlv_dma_ring_caps()
4958 ath11k_wmi_free_dbring_caps(ab); in ath11k_wmi_tlv_dma_ring_caps()
4962 static int ath11k_wmi_tlv_svc_rdy_ext_parse(struct ath11k_base *ab, in ath11k_wmi_tlv_svc_rdy_ext_parse() argument
4966 struct ath11k_pdev_wmi *wmi_handle = &ab->wmi_ab.wmi[0]; in ath11k_wmi_tlv_svc_rdy_ext_parse()
4975 ath11k_warn(ab, "unable to extract ext params\n"); in ath11k_wmi_tlv_svc_rdy_ext_parse()
4986 ret = ath11k_wmi_tlv_ext_soc_hal_reg_caps_parse(ab, len, ptr, in ath11k_wmi_tlv_svc_rdy_ext_parse()
4994 ret = ath11k_wmi_tlv_hw_mode_caps(ab, len, ptr, in ath11k_wmi_tlv_svc_rdy_ext_parse()
5002 ret = ath11k_wmi_tlv_iter(ab, ptr, len, in ath11k_wmi_tlv_svc_rdy_ext_parse()
5006 ath11k_warn(ab, "failed to parse tlv %d\n", ret); in ath11k_wmi_tlv_svc_rdy_ext_parse()
5012 ret = ath11k_wmi_tlv_ext_hal_reg_caps(ab, len, ptr, in ath11k_wmi_tlv_svc_rdy_ext_parse()
5025 ret = ath11k_wmi_tlv_dma_ring_caps(ab, len, ptr, in ath11k_wmi_tlv_svc_rdy_ext_parse()
5040 static int ath11k_service_ready_ext_event(struct ath11k_base *ab, in ath11k_service_ready_ext_event() argument
5046 ret = ath11k_wmi_tlv_iter(ab, skb->data, skb->len, in ath11k_service_ready_ext_event()
5050 ath11k_warn(ab, "failed to parse tlv %d\n", ret); in ath11k_service_ready_ext_event()
5054 ath11k_dbg(ab, ATH11K_DBG_WMI, "event service ready ext"); in ath11k_service_ready_ext_event()
5056 if (!test_bit(WMI_TLV_SERVICE_EXT2_MSG, ab->wmi_ab.svc_map)) in ath11k_service_ready_ext_event()
5057 complete(&ab->wmi_ab.service_ready); in ath11k_service_ready_ext_event()
5063 ath11k_wmi_free_dbring_caps(ab); in ath11k_service_ready_ext_event()
5067 static int ath11k_wmi_tlv_svc_rdy_ext2_parse(struct ath11k_base *ab, in ath11k_wmi_tlv_svc_rdy_ext2_parse() argument
5077 ret = ath11k_wmi_tlv_dma_ring_caps(ab, len, ptr, in ath11k_wmi_tlv_svc_rdy_ext2_parse()
5092 static int ath11k_service_ready_ext2_event(struct ath11k_base *ab, in ath11k_service_ready_ext2_event() argument
5098 ret = ath11k_wmi_tlv_iter(ab, skb->data, skb->len, in ath11k_service_ready_ext2_event()
5102 ath11k_warn(ab, "failed to parse ext2 event tlv %d\n", ret); in ath11k_service_ready_ext2_event()
5106 ath11k_dbg(ab, ATH11K_DBG_WMI, "event service ready ext2"); in ath11k_service_ready_ext2_event()
5108 complete(&ab->wmi_ab.service_ready); in ath11k_service_ready_ext2_event()
5113 ath11k_wmi_free_dbring_caps(ab); in ath11k_service_ready_ext2_event()
5117 static int ath11k_pull_vdev_start_resp_tlv(struct ath11k_base *ab, struct sk_buff *skb, in ath11k_pull_vdev_start_resp_tlv() argument
5124 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_pull_vdev_start_resp_tlv()
5127 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_pull_vdev_start_resp_tlv()
5133 ath11k_warn(ab, "failed to fetch vdev start resp ev"); in ath11k_pull_vdev_start_resp_tlv()
5155 static void ath11k_print_reg_rule(struct ath11k_base *ab, const char *band, in ath11k_print_reg_rule() argument
5162 ath11k_dbg(ab, ATH11K_DBG_WMI, "number of reg rules in %s band: %d\n", in ath11k_print_reg_rule()
5166 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_print_reg_rule()
5212 static int ath11k_pull_reg_chan_list_update_ev(struct ath11k_base *ab, in ath11k_pull_reg_chan_list_update_ev() argument
5222 ath11k_dbg(ab, ATH11K_DBG_WMI, "processing regulatory channel list\n"); in ath11k_pull_reg_chan_list_update_ev()
5224 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_pull_reg_chan_list_update_ev()
5227 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_pull_reg_chan_list_update_ev()
5233 ath11k_warn(ab, "failed to fetch reg chan list update ev\n"); in ath11k_pull_reg_chan_list_update_ev()
5242 ath11k_warn(ab, "No regulatory rules available in the event info\n"); in ath11k_pull_reg_chan_list_update_ev()
5256 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_pull_reg_chan_list_update_ev()
5273 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_pull_reg_chan_list_update_ev()
5279 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_pull_reg_chan_list_update_ev()
5294 ath11k_warn(ab, "Unable to Allocate memory for 2 GHz rules\n"); in ath11k_pull_reg_chan_list_update_ev()
5298 ath11k_print_reg_rule(ab, "2 GHz", in ath11k_pull_reg_chan_list_update_ev()
5310 ath11k_warn(ab, "Unable to Allocate memory for 5 GHz rules\n"); in ath11k_pull_reg_chan_list_update_ev()
5314 ath11k_print_reg_rule(ab, "5 GHz", in ath11k_pull_reg_chan_list_update_ev()
5319 ath11k_dbg(ab, ATH11K_DBG_WMI, "processed regulatory channel list\n"); in ath11k_pull_reg_chan_list_update_ev()
5385 static int ath11k_pull_reg_chan_list_ext_update_ev(struct ath11k_base *ab, in ath11k_pull_reg_chan_list_ext_update_ev() argument
5398 ath11k_dbg(ab, ATH11K_DBG_WMI, "processing regulatory ext channel list\n"); in ath11k_pull_reg_chan_list_ext_update_ev()
5400 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_pull_reg_chan_list_ext_update_ev()
5403 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_pull_reg_chan_list_ext_update_ev()
5409 ath11k_warn(ab, "failed to fetch reg chan list ext update ev\n"); in ath11k_pull_reg_chan_list_ext_update_ev()
5440 …ath11k_warn(ab, "Num reg rules for 2.4 GHz/5 GHz exceeds max limit (num_2ghz_reg_rules: %d num_5gh… in ath11k_pull_reg_chan_list_ext_update_ev()
5450 …ath11k_warn(ab, "Num 6 GHz reg rules for AP mode(%d) exceeds max limit (num_6ghz_reg_rules_ap: %d,… in ath11k_pull_reg_chan_list_ext_update_ev()
5477 ath11k_warn(ab, in ath11k_pull_reg_chan_list_ext_update_ev()
5486 ath11k_warn(ab, "No reg rules available\n"); in ath11k_pull_reg_chan_list_ext_update_ev()
5500 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_pull_reg_chan_list_ext_update_ev()
5527 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_pull_reg_chan_list_ext_update_ev()
5550 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_pull_reg_chan_list_ext_update_ev()
5561 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_pull_reg_chan_list_ext_update_ev()
5568 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_pull_reg_chan_list_ext_update_ev()
5572 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_pull_reg_chan_list_ext_update_ev()
5579 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_pull_reg_chan_list_ext_update_ev()
5586 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_pull_reg_chan_list_ext_update_ev()
5602 ath11k_warn(ab, "Unable to Allocate memory for 2 GHz rules\n"); in ath11k_pull_reg_chan_list_ext_update_ev()
5606 ath11k_print_reg_rule(ab, "2 GHz", in ath11k_pull_reg_chan_list_ext_update_ev()
5625 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_pull_reg_chan_list_ext_update_ev()
5641 ath11k_warn(ab, "Unable to Allocate memory for 5 GHz rules\n"); in ath11k_pull_reg_chan_list_ext_update_ev()
5645 ath11k_print_reg_rule(ab, "5 GHz", in ath11k_pull_reg_chan_list_ext_update_ev()
5664 ath11k_warn(ab, "Unable to Allocate memory for 6 GHz AP rules\n"); in ath11k_pull_reg_chan_list_ext_update_ev()
5668 ath11k_print_reg_rule(ab, ath11k_6ghz_ap_type_to_str(i), in ath11k_pull_reg_chan_list_ext_update_ev()
5676 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_pull_reg_chan_list_ext_update_ev()
5686 ath11k_warn(ab, "Unable to Allocate memory for 6 GHz client rules\n"); in ath11k_pull_reg_chan_list_ext_update_ev()
5690 ath11k_print_reg_rule(ab, in ath11k_pull_reg_chan_list_ext_update_ev()
5710 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_pull_reg_chan_list_ext_update_ev()
5727 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_pull_reg_chan_list_ext_update_ev()
5738 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_pull_reg_chan_list_ext_update_ev()
5743 ath11k_dbg(ab, ATH11K_DBG_WMI, "processed regulatory ext channel list\n"); in ath11k_pull_reg_chan_list_ext_update_ev()
5749 static int ath11k_pull_peer_del_resp_ev(struct ath11k_base *ab, struct sk_buff *skb, in ath11k_pull_peer_del_resp_ev() argument
5756 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_pull_peer_del_resp_ev()
5759 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_pull_peer_del_resp_ev()
5765 ath11k_warn(ab, "failed to fetch peer delete resp ev"); in ath11k_pull_peer_del_resp_ev()
5780 static int ath11k_pull_vdev_del_resp_ev(struct ath11k_base *ab, in ath11k_pull_vdev_del_resp_ev() argument
5788 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_pull_vdev_del_resp_ev()
5791 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_pull_vdev_del_resp_ev()
5797 ath11k_warn(ab, "failed to fetch vdev delete resp ev"); in ath11k_pull_vdev_del_resp_ev()
5808 static int ath11k_pull_bcn_tx_status_ev(struct ath11k_base *ab, in ath11k_pull_bcn_tx_status_ev() argument
5816 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_pull_bcn_tx_status_ev()
5819 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_pull_bcn_tx_status_ev()
5825 ath11k_warn(ab, "failed to fetch bcn tx status ev"); in ath11k_pull_bcn_tx_status_ev()
5837 static int ath11k_pull_vdev_stopped_param_tlv(struct ath11k_base *ab, struct sk_buff *skb, in ath11k_pull_vdev_stopped_param_tlv() argument
5844 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_pull_vdev_stopped_param_tlv()
5847 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_pull_vdev_stopped_param_tlv()
5853 ath11k_warn(ab, "failed to fetch vdev stop ev"); in ath11k_pull_vdev_stopped_param_tlv()
5864 static int ath11k_wmi_tlv_mgmt_rx_parse(struct ath11k_base *ab, in ath11k_wmi_tlv_mgmt_rx_parse() argument
5884 static int ath11k_pull_mgmt_rx_params_tlv(struct ath11k_base *ab, in ath11k_pull_mgmt_rx_params_tlv() argument
5893 ret = ath11k_wmi_tlv_iter(ab, skb->data, skb->len, in ath11k_pull_mgmt_rx_params_tlv()
5897 ath11k_warn(ab, "failed to parse mgmt rx tlv %d\n", in ath11k_pull_mgmt_rx_params_tlv()
5906 ath11k_warn(ab, "failed to fetch mgmt rx hdr"); in ath11k_pull_mgmt_rx_params_tlv()
5924 ath11k_warn(ab, "invalid length in mgmt rx hdr ev"); in ath11k_pull_mgmt_rx_params_tlv()
5951 ath11k_warn(ar->ab, "received mgmt tx compl for invalid msdu_id: %d\n", in wmi_process_mgmt_tx_comp()
5961 dma_unmap_single(ar->ab->dev, skb_cb->paddr, msdu->len, DMA_TO_DEVICE); in wmi_process_mgmt_tx_comp()
5968 ar->ab->wmi_ab.svc_map)) in wmi_process_mgmt_tx_comp()
5980 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in wmi_process_mgmt_tx_comp()
5990 static int ath11k_pull_mgmt_tx_compl_param_tlv(struct ath11k_base *ab, in ath11k_pull_mgmt_tx_compl_param_tlv() argument
5998 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_pull_mgmt_tx_compl_param_tlv()
6001 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_pull_mgmt_tx_compl_param_tlv()
6007 ath11k_warn(ab, "failed to fetch mgmt tx compl ev"); in ath11k_pull_mgmt_tx_compl_param_tlv()
6029 ath11k_warn(ar->ab, "received scan started event in an invalid scan state: %s (%d)\n", in ath11k_wmi_event_scan_started()
6050 ath11k_warn(ar->ab, "received scan start failed event in an invalid scan state: %s (%d)\n", in ath11k_wmi_event_scan_start_failed()
6076 ath11k_warn(ar->ab, "received scan completed event in an invalid scan state: %s (%d)\n", in ath11k_wmi_event_scan_completed()
6094 ath11k_warn(ar->ab, "received scan bss chan event in an invalid scan state: %s (%d)\n", in ath11k_wmi_event_scan_bss_chan()
6112 ath11k_warn(ar->ab, "received scan foreign chan event in an invalid scan state: %s (%d)\n", in ath11k_wmi_event_scan_foreign_chan()
6167 static int ath11k_pull_scan_ev(struct ath11k_base *ab, struct sk_buff *skb, in ath11k_pull_scan_ev() argument
6174 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_pull_scan_ev()
6177 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_pull_scan_ev()
6183 ath11k_warn(ab, "failed to fetch scan ev"); in ath11k_pull_scan_ev()
6200 static int ath11k_pull_peer_sta_kickout_ev(struct ath11k_base *ab, struct sk_buff *skb, in ath11k_pull_peer_sta_kickout_ev() argument
6207 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_pull_peer_sta_kickout_ev()
6210 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_pull_peer_sta_kickout_ev()
6216 ath11k_warn(ab, "failed to fetch peer sta kickout ev"); in ath11k_pull_peer_sta_kickout_ev()
6227 static int ath11k_pull_roam_ev(struct ath11k_base *ab, struct sk_buff *skb, in ath11k_pull_roam_ev() argument
6234 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_pull_roam_ev()
6237 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_pull_roam_ev()
6243 ath11k_warn(ab, "failed to fetch roam ev"); in ath11k_pull_roam_ev()
6275 static int ath11k_pull_chan_info_ev(struct ath11k_base *ab, struct sk_buff *skb, in ath11k_pull_chan_info_ev() argument
6282 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_pull_chan_info_ev()
6285 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_pull_chan_info_ev()
6291 ath11k_warn(ab, "failed to fetch chan info ev"); in ath11k_pull_chan_info_ev()
6314 ath11k_pull_pdev_bss_chan_info_ev(struct ath11k_base *ab, struct sk_buff *skb, in ath11k_pull_pdev_bss_chan_info_ev() argument
6321 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_pull_pdev_bss_chan_info_ev()
6324 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_pull_pdev_bss_chan_info_ev()
6330 ath11k_warn(ab, "failed to fetch pdev bss chan info ev"); in ath11k_pull_pdev_bss_chan_info_ev()
6354 ath11k_pull_vdev_install_key_compl_ev(struct ath11k_base *ab, struct sk_buff *skb, in ath11k_pull_vdev_install_key_compl_ev() argument
6361 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_pull_vdev_install_key_compl_ev()
6364 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_pull_vdev_install_key_compl_ev()
6370 ath11k_warn(ab, "failed to fetch vdev install key compl ev"); in ath11k_pull_vdev_install_key_compl_ev()
6385 static int ath11k_pull_peer_assoc_conf_ev(struct ath11k_base *ab, struct sk_buff *skb, in ath11k_pull_peer_assoc_conf_ev() argument
6392 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_pull_peer_assoc_conf_ev()
6395 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_pull_peer_assoc_conf_ev()
6401 ath11k_warn(ab, "failed to fetch peer assoc conf ev"); in ath11k_pull_peer_assoc_conf_ev()
6527 static int ath11k_wmi_tlv_rssi_chain_parse(struct ath11k_base *ab, in ath11k_wmi_tlv_rssi_chain_parse() argument
6546 ar = ath11k_mac_get_ar_by_pdev_id(ab, ev->pdev_id); in ath11k_wmi_tlv_rssi_chain_parse()
6549 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_wmi_tlv_rssi_chain_parse()
6555 ath11k_warn(ab, "not found vif for vdev id %d\n", in ath11k_wmi_tlv_rssi_chain_parse()
6561 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_wmi_tlv_rssi_chain_parse()
6569 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_wmi_tlv_rssi_chain_parse()
6582 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_wmi_tlv_rssi_chain_parse()
6595 static int ath11k_wmi_tlv_fw_stats_data_parse(struct ath11k_base *ab, in ath11k_wmi_tlv_fw_stats_data_parse() argument
6610 ath11k_warn(ab, "failed to fetch update stats ev"); in ath11k_wmi_tlv_fw_stats_data_parse()
6618 ar = ath11k_mac_get_ar_by_pdev_id(ab, ev->pdev_id); in ath11k_wmi_tlv_fw_stats_data_parse()
6665 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_wmi_tlv_fw_stats_data_parse()
6669 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_wmi_tlv_fw_stats_data_parse()
6714 static int ath11k_wmi_tlv_fw_stats_parse(struct ath11k_base *ab, in ath11k_wmi_tlv_fw_stats_parse() argument
6727 ret = ath11k_wmi_tlv_fw_stats_data_parse(ab, parse, ptr, len); in ath11k_wmi_tlv_fw_stats_parse()
6735 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_wmi_tlv_fw_stats_parse()
6742 ret = ath11k_wmi_tlv_iter(ab, ptr, len, in ath11k_wmi_tlv_fw_stats_parse()
6746 ath11k_warn(ab, "failed to parse rssi chain %d\n", in ath11k_wmi_tlv_fw_stats_parse()
6759 int ath11k_wmi_pull_fw_stats(struct ath11k_base *ab, struct sk_buff *skb, in ath11k_wmi_pull_fw_stats() argument
6767 return ath11k_wmi_tlv_iter(ab, skb->data, skb->len, in ath11k_wmi_pull_fw_stats()
7022 ath11k_warn(ar->ab, "invalid vdev id %d in bcn stats", in ath11k_wmi_fw_bcn_stats_fill()
7061 ath11k_warn(ar->ab, "failed to get pdev stats\n"); in ath11k_wmi_fw_stats_fill()
7103 static void ath11k_wmi_op_ep_tx_credits(struct ath11k_base *ab) in ath11k_wmi_op_ep_tx_credits() argument
7106 wake_up(&ab->wmi_ab.tx_credits_wq); in ath11k_wmi_op_ep_tx_credits()
7109 static int ath11k_reg_11d_new_cc_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_reg_11d_new_cc_event() argument
7117 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_reg_11d_new_cc_event()
7120 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_reg_11d_new_cc_event()
7127 ath11k_warn(ab, "failed to fetch 11d new cc ev"); in ath11k_reg_11d_new_cc_event()
7131 spin_lock_bh(&ab->base_lock); in ath11k_reg_11d_new_cc_event()
7132 memcpy(&ab->new_alpha2, &ev->new_alpha2, 2); in ath11k_reg_11d_new_cc_event()
7133 spin_unlock_bh(&ab->base_lock); in ath11k_reg_11d_new_cc_event()
7135 ath11k_dbg(ab, ATH11K_DBG_WMI, "event 11d new cc %c%c\n", in ath11k_reg_11d_new_cc_event()
7136 ab->new_alpha2[0], in ath11k_reg_11d_new_cc_event()
7137 ab->new_alpha2[1]); in ath11k_reg_11d_new_cc_event()
7141 for (i = 0; i < ab->num_radios; i++) { in ath11k_reg_11d_new_cc_event()
7142 pdev = &ab->pdevs[i]; in ath11k_reg_11d_new_cc_event()
7148 queue_work(ab->workqueue, &ab->update_11d_work); in ath11k_reg_11d_new_cc_event()
7153 static void ath11k_wmi_htc_tx_complete(struct ath11k_base *ab, in ath11k_wmi_htc_tx_complete() argument
7167 wmi_ep_count = ab->htc.wmi_ep_count; in ath11k_wmi_htc_tx_complete()
7168 if (wmi_ep_count > ab->hw_params.max_radios) in ath11k_wmi_htc_tx_complete()
7171 for (i = 0; i < ab->htc.wmi_ep_count; i++) { in ath11k_wmi_htc_tx_complete()
7172 if (ab->wmi_ab.wmi[i].eid == eid) { in ath11k_wmi_htc_tx_complete()
7173 wmi = &ab->wmi_ab.wmi[i]; in ath11k_wmi_htc_tx_complete()
7182 static int ath11k_reg_chan_list_event(struct ath11k_base *ab, struct sk_buff *skb, in ath11k_reg_chan_list_event() argument
7193 ret = ath11k_pull_reg_chan_list_update_ev(ab, skb, reg_info); in ath11k_reg_chan_list_event()
7195 ret = ath11k_pull_reg_chan_list_ext_update_ev(ab, skb, reg_info); in ath11k_reg_chan_list_event()
7198 ath11k_warn(ab, "failed to extract regulatory info\n"); in ath11k_reg_chan_list_event()
7202 ret = ath11k_reg_handle_chan_list(ab, reg_info, IEEE80211_REG_UNSET_AP); in ath11k_reg_chan_list_event()
7204 ath11k_warn(ab, "failed to process regulatory info %d\n", ret); in ath11k_reg_chan_list_event()
7217 static int ath11k_wmi_tlv_rdy_parse(struct ath11k_base *ab, u16 tag, u16 len, in ath11k_wmi_tlv_rdy_parse() argument
7235 ether_addr_copy(ab->mac_addr, in ath11k_wmi_tlv_rdy_parse()
7237 ab->pktlog_defs_checksum = fixed_param.pktlog_defs_checksum; in ath11k_wmi_tlv_rdy_parse()
7243 if (!(ab->num_radios > 1 && num_mac_addr >= ab->num_radios)) in ath11k_wmi_tlv_rdy_parse()
7246 for (i = 0; i < ab->num_radios; i++) { in ath11k_wmi_tlv_rdy_parse()
7247 pdev = &ab->pdevs[i]; in ath11k_wmi_tlv_rdy_parse()
7250 ab->pdevs_macaddr_valid = true; in ath11k_wmi_tlv_rdy_parse()
7259 static int ath11k_ready_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_ready_event() argument
7264 ret = ath11k_wmi_tlv_iter(ab, skb->data, skb->len, in ath11k_ready_event()
7267 ath11k_warn(ab, "failed to parse tlv %d\n", ret); in ath11k_ready_event()
7271 ath11k_dbg(ab, ATH11K_DBG_WMI, "event ready"); in ath11k_ready_event()
7273 complete(&ab->wmi_ab.unified_ready); in ath11k_ready_event()
7277 static void ath11k_peer_delete_resp_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_peer_delete_resp_event() argument
7282 if (ath11k_pull_peer_del_resp_ev(ab, skb, &peer_del_resp) != 0) { in ath11k_peer_delete_resp_event()
7283 ath11k_warn(ab, "failed to extract peer delete resp"); in ath11k_peer_delete_resp_event()
7287 ath11k_dbg(ab, ATH11K_DBG_WMI, "event peer delete resp"); in ath11k_peer_delete_resp_event()
7290 ar = ath11k_mac_get_ar_by_vdev_id(ab, peer_del_resp.vdev_id); in ath11k_peer_delete_resp_event()
7292 ath11k_warn(ab, "invalid vdev id in peer delete resp ev %d", in ath11k_peer_delete_resp_event()
7300 ath11k_dbg(ab, ATH11K_DBG_WMI, "peer delete resp for vdev id %d addr %pM\n", in ath11k_peer_delete_resp_event()
7304 static void ath11k_vdev_delete_resp_event(struct ath11k_base *ab, in ath11k_vdev_delete_resp_event() argument
7310 if (ath11k_pull_vdev_del_resp_ev(ab, skb, &vdev_id) != 0) { in ath11k_vdev_delete_resp_event()
7311 ath11k_warn(ab, "failed to extract vdev delete resp"); in ath11k_vdev_delete_resp_event()
7316 ar = ath11k_mac_get_ar_by_vdev_id(ab, vdev_id); in ath11k_vdev_delete_resp_event()
7318 ath11k_warn(ab, "invalid vdev id in vdev delete resp ev %d", in ath11k_vdev_delete_resp_event()
7328 ath11k_dbg(ab, ATH11K_DBG_WMI, "event vdev delete resp for vdev id %d\n", in ath11k_vdev_delete_resp_event()
7348 static void ath11k_vdev_start_resp_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_vdev_start_resp_event() argument
7354 if (ath11k_pull_vdev_start_resp_tlv(ab, skb, &vdev_start_resp) != 0) { in ath11k_vdev_start_resp_event()
7355 ath11k_warn(ab, "failed to extract vdev start resp"); in ath11k_vdev_start_resp_event()
7359 ath11k_dbg(ab, ATH11K_DBG_WMI, "event start resp event"); in ath11k_vdev_start_resp_event()
7362 ar = ath11k_mac_get_ar_by_vdev_id(ab, vdev_start_resp.vdev_id); in ath11k_vdev_start_resp_event()
7364 ath11k_warn(ab, "invalid vdev id in vdev start resp ev %d", in ath11k_vdev_start_resp_event()
7375 ath11k_warn(ab, "vdev start resp error status %d (%s)\n", in ath11k_vdev_start_resp_event()
7384 ath11k_dbg(ab, ATH11K_DBG_WMI, "vdev start resp for vdev id %d", in ath11k_vdev_start_resp_event()
7388 static void ath11k_bcn_tx_status_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_bcn_tx_status_event() argument
7393 if (ath11k_pull_bcn_tx_status_ev(ab, skb, &vdev_id, &tx_status) != 0) { in ath11k_bcn_tx_status_event()
7394 ath11k_warn(ab, "failed to extract bcn tx status"); in ath11k_bcn_tx_status_event()
7398 ath11k_dbg(ab, ATH11K_DBG_WMI, "event offload bcn tx status"); in ath11k_bcn_tx_status_event()
7401 arvif = ath11k_mac_get_arvif_by_vdev_id(ab, vdev_id); in ath11k_bcn_tx_status_event()
7403 ath11k_warn(ab, "invalid vdev id %d in bcn_tx_status", in ath11k_bcn_tx_status_event()
7409 queue_work(ab->workqueue, &arvif->bcn_tx_work); in ath11k_bcn_tx_status_event()
7414 static void ath11k_wmi_event_peer_sta_ps_state_chg(struct ath11k_base *ab, in ath11k_wmi_event_peer_sta_ps_state_chg() argument
7426 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_wmi_event_peer_sta_ps_state_chg()
7429 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_wmi_event_peer_sta_ps_state_chg()
7435 ath11k_warn(ab, "failed to fetch sta ps change ev"); in ath11k_wmi_event_peer_sta_ps_state_chg()
7440 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_wmi_event_peer_sta_ps_state_chg()
7448 spin_lock_bh(&ab->base_lock); in ath11k_wmi_event_peer_sta_ps_state_chg()
7450 peer = ath11k_peer_find_by_addr(ab, ev->peer_macaddr.addr); in ath11k_wmi_event_peer_sta_ps_state_chg()
7453 spin_unlock_bh(&ab->base_lock); in ath11k_wmi_event_peer_sta_ps_state_chg()
7454 ath11k_warn(ab, "peer not found %pM\n", ev->peer_macaddr.addr); in ath11k_wmi_event_peer_sta_ps_state_chg()
7458 ar = ath11k_mac_get_ar_by_vdev_id(ab, peer->vdev_id); in ath11k_wmi_event_peer_sta_ps_state_chg()
7461 spin_unlock_bh(&ab->base_lock); in ath11k_wmi_event_peer_sta_ps_state_chg()
7462 ath11k_warn(ab, "invalid vdev id in peer sta ps state change ev %d", in ath11k_wmi_event_peer_sta_ps_state_chg()
7470 spin_unlock_bh(&ab->base_lock); in ath11k_wmi_event_peer_sta_ps_state_chg()
7473 ath11k_warn(ab, "failed to find station entry %pM\n", in ath11k_wmi_event_peer_sta_ps_state_chg()
7487 ar->ab->wmi_ab.svc_map)) { in ath11k_wmi_event_peer_sta_ps_state_chg()
7515 static void ath11k_vdev_stopped_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_vdev_stopped_event() argument
7520 if (ath11k_pull_vdev_stopped_param_tlv(ab, skb, &vdev_id) != 0) { in ath11k_vdev_stopped_event()
7521 ath11k_warn(ab, "failed to extract vdev stopped event"); in ath11k_vdev_stopped_event()
7525 ath11k_dbg(ab, ATH11K_DBG_WMI, "event vdev stopped"); in ath11k_vdev_stopped_event()
7528 ar = ath11k_mac_get_ar_by_vdev_id(ab, vdev_id); in ath11k_vdev_stopped_event()
7530 ath11k_warn(ab, "invalid vdev id in vdev stopped ev %d", in ath11k_vdev_stopped_event()
7540 ath11k_dbg(ab, ATH11K_DBG_WMI, "vdev stopped for vdev id %d", vdev_id); in ath11k_vdev_stopped_event()
7543 static void ath11k_mgmt_rx_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_mgmt_rx_event() argument
7552 if (ath11k_pull_mgmt_rx_params_tlv(ab, skb, &rx_ev) != 0) { in ath11k_mgmt_rx_event()
7553 ath11k_warn(ab, "failed to extract mgmt rx event"); in ath11k_mgmt_rx_event()
7560 ath11k_dbg(ab, ATH11K_DBG_MGMT, "event mgmt rx status %08x\n", in ath11k_mgmt_rx_event()
7564 ar = ath11k_mac_get_ar_by_pdev_id(ab, rx_ev.pdev_id); in ath11k_mgmt_rx_event()
7567 ath11k_warn(ab, "invalid pdev_id %d in mgmt_rx_event\n", in ath11k_mgmt_rx_event()
7602 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_mgmt_rx_event()
7642 ath11k_dbg(ab, ATH11K_DBG_MGMT, in ath11k_mgmt_rx_event()
7647 ath11k_dbg(ab, ATH11K_DBG_MGMT, in ath11k_mgmt_rx_event()
7658 static void ath11k_mgmt_tx_compl_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_mgmt_tx_compl_event() argument
7663 if (ath11k_pull_mgmt_tx_compl_param_tlv(ab, skb, &tx_compl_param) != 0) { in ath11k_mgmt_tx_compl_event()
7664 ath11k_warn(ab, "failed to extract mgmt tx compl event"); in ath11k_mgmt_tx_compl_event()
7669 ar = ath11k_mac_get_ar_by_pdev_id(ab, tx_compl_param.pdev_id); in ath11k_mgmt_tx_compl_event()
7671 ath11k_warn(ab, "invalid pdev id %d in mgmt_tx_compl_event\n", in ath11k_mgmt_tx_compl_event()
7678 ath11k_dbg(ab, ATH11K_DBG_MGMT, in ath11k_mgmt_tx_compl_event()
7687 static struct ath11k *ath11k_get_ar_on_scan_state(struct ath11k_base *ab, in ath11k_get_ar_on_scan_state() argument
7695 for (i = 0; i < ab->num_radios; i++) { in ath11k_get_ar_on_scan_state()
7696 pdev = rcu_dereference(ab->pdevs_active[i]); in ath11k_get_ar_on_scan_state()
7712 static void ath11k_scan_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_scan_event() argument
7717 if (ath11k_pull_scan_ev(ab, skb, &scan_ev) != 0) { in ath11k_scan_event()
7718 ath11k_warn(ab, "failed to extract scan event"); in ath11k_scan_event()
7732 ar = ath11k_get_ar_on_scan_state(ab, scan_ev.vdev_id, in ath11k_scan_event()
7735 ar = ath11k_get_ar_on_scan_state(ab, scan_ev.vdev_id, in ath11k_scan_event()
7738 ar = ath11k_mac_get_ar_by_vdev_id(ab, scan_ev.vdev_id); in ath11k_scan_event()
7742 ath11k_warn(ab, "Received scan event for unknown vdev"); in ath11k_scan_event()
7749 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_scan_event()
7770 ath11k_warn(ab, "received scan start failure event\n"); in ath11k_scan_event()
7788 static void ath11k_peer_sta_kickout_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_peer_sta_kickout_event() argument
7796 if (ath11k_pull_peer_sta_kickout_ev(ab, skb, &arg) != 0) { in ath11k_peer_sta_kickout_event()
7797 ath11k_warn(ab, "failed to extract peer sta kickout event"); in ath11k_peer_sta_kickout_event()
7803 spin_lock_bh(&ab->base_lock); in ath11k_peer_sta_kickout_event()
7805 peer = ath11k_peer_find_by_addr(ab, arg.mac_addr); in ath11k_peer_sta_kickout_event()
7808 ath11k_warn(ab, "peer not found %pM\n", in ath11k_peer_sta_kickout_event()
7810 spin_unlock_bh(&ab->base_lock); in ath11k_peer_sta_kickout_event()
7816 spin_unlock_bh(&ab->base_lock); in ath11k_peer_sta_kickout_event()
7818 ar = ath11k_mac_get_ar_by_vdev_id(ab, vdev_id); in ath11k_peer_sta_kickout_event()
7820 ath11k_warn(ab, "invalid vdev id in peer sta kickout ev %d", in ath11k_peer_sta_kickout_event()
7828 ath11k_warn(ab, "Spurious quick kickout for STA %pM\n", in ath11k_peer_sta_kickout_event()
7833 ath11k_dbg(ab, ATH11K_DBG_WMI, "event peer sta kickout %pM", in ath11k_peer_sta_kickout_event()
7842 static void ath11k_roam_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_roam_event() argument
7847 if (ath11k_pull_roam_ev(ab, skb, &roam_ev) != 0) { in ath11k_roam_event()
7848 ath11k_warn(ab, "failed to extract roam event"); in ath11k_roam_event()
7852 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_roam_event()
7857 ar = ath11k_mac_get_ar_by_vdev_id(ab, roam_ev.vdev_id); in ath11k_roam_event()
7859 ath11k_warn(ab, "invalid vdev id in roam ev %d", in ath11k_roam_event()
7866 ath11k_warn(ab, "ignoring unknown roam event reason %d on vdev %i\n", in ath11k_roam_event()
7877 ath11k_warn(ab, "ignoring not implemented roam event reason %d on vdev %i\n", in ath11k_roam_event()
7885 static void ath11k_chan_info_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_chan_info_event() argument
7892 u32 cc_freq_hz = ab->cc_freq_hz; in ath11k_chan_info_event()
7894 if (ath11k_pull_chan_info_ev(ab, skb, &ch_info_ev) != 0) { in ath11k_chan_info_event()
7895 ath11k_warn(ab, "failed to extract chan info event"); in ath11k_chan_info_event()
7899 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_chan_info_event()
7907 ath11k_dbg(ab, ATH11K_DBG_WMI, "chan info report completed\n"); in ath11k_chan_info_event()
7912 ar = ath11k_mac_get_ar_by_vdev_id(ab, ch_info_ev.vdev_id); in ath11k_chan_info_event()
7914 ath11k_warn(ab, "invalid vdev id in chan info ev %d", in ath11k_chan_info_event()
7924 ath11k_warn(ab, "received chan info event without a scan request, ignoring\n"); in ath11k_chan_info_event()
7933 ath11k_warn(ab, "chan info: invalid frequency %d (idx %d out of bounds)\n", in ath11k_chan_info_event()
7959 ath11k_pdev_bss_chan_info_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_pdev_bss_chan_info_event() argument
7964 u32 cc_freq_hz = ab->cc_freq_hz; in ath11k_pdev_bss_chan_info_event()
7968 if (ath11k_pull_pdev_bss_chan_info_ev(ab, skb, &bss_ch_info_ev) != 0) { in ath11k_pdev_bss_chan_info_event()
7969 ath11k_warn(ab, "failed to extract pdev bss chan info event"); in ath11k_pdev_bss_chan_info_event()
7988 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_pdev_bss_chan_info_event()
7995 ar = ath11k_mac_get_ar_by_pdev_id(ab, bss_ch_info_ev.pdev_id); in ath11k_pdev_bss_chan_info_event()
7998 ath11k_warn(ab, "invalid pdev id %d in bss_chan_info event\n", in ath11k_pdev_bss_chan_info_event()
8007 ath11k_warn(ab, "bss chan info: invalid frequency %d (idx %d out of bounds)\n", in ath11k_pdev_bss_chan_info_event()
8031 static void ath11k_vdev_install_key_compl_event(struct ath11k_base *ab, in ath11k_vdev_install_key_compl_event() argument
8037 if (ath11k_pull_vdev_install_key_compl_ev(ab, skb, &install_key_compl) != 0) { in ath11k_vdev_install_key_compl_event()
8038 ath11k_warn(ab, "failed to extract install key compl event"); in ath11k_vdev_install_key_compl_event()
8042 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_vdev_install_key_compl_event()
8048 ar = ath11k_mac_get_ar_by_vdev_id(ab, install_key_compl.vdev_id); in ath11k_vdev_install_key_compl_event()
8050 ath11k_warn(ab, "invalid vdev id in install key compl ev %d", in ath11k_vdev_install_key_compl_event()
8059 ath11k_warn(ab, "install key failed for %pM status %d\n", in ath11k_vdev_install_key_compl_event()
8068 static int ath11k_wmi_tlv_services_parser(struct ath11k_base *ab, in ath11k_wmi_tlv_services_parser() argument
8085 set_bit(j, ab->wmi_ab.svc_map); in ath11k_wmi_tlv_services_parser()
8089 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_wmi_tlv_services_parser()
8104 set_bit(j, ab->wmi_ab.svc_map); in ath11k_wmi_tlv_services_parser()
8108 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_wmi_tlv_services_parser()
8117 static void ath11k_service_available_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_service_available_event() argument
8121 ret = ath11k_wmi_tlv_iter(ab, skb->data, skb->len, in ath11k_service_available_event()
8125 ath11k_warn(ab, "failed to parse services available tlv %d\n", ret); in ath11k_service_available_event()
8127 ath11k_dbg(ab, ATH11K_DBG_WMI, "event service available"); in ath11k_service_available_event()
8130 static void ath11k_peer_assoc_conf_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_peer_assoc_conf_event() argument
8135 if (ath11k_pull_peer_assoc_conf_ev(ab, skb, &peer_assoc_conf) != 0) { in ath11k_peer_assoc_conf_event()
8136 ath11k_warn(ab, "failed to extract peer assoc conf event"); in ath11k_peer_assoc_conf_event()
8140 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_peer_assoc_conf_event()
8145 ar = ath11k_mac_get_ar_by_vdev_id(ab, peer_assoc_conf.vdev_id); in ath11k_peer_assoc_conf_event()
8148 ath11k_warn(ab, "invalid vdev id in peer assoc conf ev %d", in ath11k_peer_assoc_conf_event()
8158 static void ath11k_update_stats_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_update_stats_event() argument
8173 ret = ath11k_wmi_pull_fw_stats(ab, skb, &stats); in ath11k_update_stats_event()
8175 ath11k_warn(ab, "failed to pull fw stats: %d\n", ret); in ath11k_update_stats_event()
8179 ath11k_dbg(ab, ATH11K_DBG_WMI, "event update stats"); in ath11k_update_stats_event()
8182 ar = ath11k_mac_get_ar_by_pdev_id(ab, stats.pdev_id); in ath11k_update_stats_event()
8185 ath11k_warn(ab, "failed to get ar for pdev_id %d: %d\n", in ath11k_update_stats_event()
8209 ath11k_warn(ab, "empty vdev stats"); in ath11k_update_stats_event()
8215 for (i = 0; i < ab->num_radios; i++) { in ath11k_update_stats_event()
8216 pdev = rcu_dereference(ab->pdevs_active[i]); in ath11k_update_stats_event()
8256 static void ath11k_pdev_ctl_failsafe_check_event(struct ath11k_base *ab, in ath11k_pdev_ctl_failsafe_check_event() argument
8263 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_pdev_ctl_failsafe_check_event()
8266 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_pdev_ctl_failsafe_check_event()
8272 ath11k_warn(ab, "failed to fetch pdev ctl failsafe check ev"); in ath11k_pdev_ctl_failsafe_check_event()
8277 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_pdev_ctl_failsafe_check_event()
8285 ath11k_warn(ab, "pdev ctl failsafe failure status %d", in ath11k_pdev_ctl_failsafe_check_event()
8292 ath11k_wmi_process_csa_switch_count_event(struct ath11k_base *ab, in ath11k_wmi_process_csa_switch_count_event() argument
8305 arvif = ath11k_mac_get_arvif_by_vdev_id(ab, vdev_ids[i]); in ath11k_wmi_process_csa_switch_count_event()
8308 ath11k_warn(ab, "Recvd csa status for unknown vdev %d", in ath11k_wmi_process_csa_switch_count_event()
8320 ath11k_wmi_pdev_csa_switch_count_status_event(struct ath11k_base *ab, in ath11k_wmi_pdev_csa_switch_count_status_event() argument
8328 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_wmi_pdev_csa_switch_count_status_event()
8331 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_wmi_pdev_csa_switch_count_status_event()
8339 ath11k_warn(ab, "failed to fetch pdev csa switch count ev"); in ath11k_wmi_pdev_csa_switch_count_status_event()
8344 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_wmi_pdev_csa_switch_count_status_event()
8349 ath11k_wmi_process_csa_switch_count_event(ab, ev, vdev_ids); in ath11k_wmi_pdev_csa_switch_count_status_event()
8355 ath11k_wmi_pdev_dfs_radar_detected_event(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_wmi_pdev_dfs_radar_detected_event() argument
8362 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_wmi_pdev_dfs_radar_detected_event()
8365 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_wmi_pdev_dfs_radar_detected_event()
8372 ath11k_warn(ab, "failed to fetch pdev dfs radar detected ev"); in ath11k_wmi_pdev_dfs_radar_detected_event()
8377 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_wmi_pdev_dfs_radar_detected_event()
8385 ar = ath11k_mac_get_ar_by_pdev_id(ab, ev->pdev_id); in ath11k_wmi_pdev_dfs_radar_detected_event()
8388 ath11k_warn(ab, "radar detected in invalid pdev %d\n", in ath11k_wmi_pdev_dfs_radar_detected_event()
8393 ath11k_dbg(ar->ab, ATH11K_DBG_REG, "DFS Radar Detected in pdev %d\n", in ath11k_wmi_pdev_dfs_radar_detected_event()
8397 ath11k_info(ab, "DFS Radar detected, but ignored as requested\n"); in ath11k_wmi_pdev_dfs_radar_detected_event()
8408 ath11k_wmi_pdev_temperature_event(struct ath11k_base *ab, in ath11k_wmi_pdev_temperature_event() argument
8416 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_wmi_pdev_temperature_event()
8419 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_wmi_pdev_temperature_event()
8425 ath11k_warn(ab, "failed to fetch pdev temp ev"); in ath11k_wmi_pdev_temperature_event()
8430 ath11k_dbg(ab, ATH11K_DBG_WMI, "event pdev temperature ev temp %d pdev_id %d\n", in ath11k_wmi_pdev_temperature_event()
8435 ar = ath11k_mac_get_ar_by_pdev_id(ab, ev->pdev_id); in ath11k_wmi_pdev_temperature_event()
8437 ath11k_warn(ab, "invalid pdev id in pdev temperature ev %d", ev->pdev_id); in ath11k_wmi_pdev_temperature_event()
8449 static void ath11k_fils_discovery_event(struct ath11k_base *ab, in ath11k_fils_discovery_event() argument
8456 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_fils_discovery_event()
8459 ath11k_warn(ab, in ath11k_fils_discovery_event()
8465 ath11k_dbg(ab, ATH11K_DBG_WMI, "event fils discovery"); in ath11k_fils_discovery_event()
8469 ath11k_warn(ab, "failed to fetch FILS discovery event\n"); in ath11k_fils_discovery_event()
8474 ath11k_warn(ab, in ath11k_fils_discovery_event()
8481 static void ath11k_probe_resp_tx_status_event(struct ath11k_base *ab, in ath11k_probe_resp_tx_status_event() argument
8488 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_probe_resp_tx_status_event()
8491 ath11k_warn(ab, in ath11k_probe_resp_tx_status_event()
8497 ath11k_dbg(ab, ATH11K_DBG_WMI, "event probe resp tx status"); in ath11k_probe_resp_tx_status_event()
8501 ath11k_warn(ab, in ath11k_probe_resp_tx_status_event()
8508 ath11k_warn(ab, in ath11k_probe_resp_tx_status_event()
8515 static int ath11k_wmi_tlv_wow_wakeup_host_parse(struct ath11k_base *ab, in ath11k_wmi_tlv_wow_wakeup_host_parse() argument
8526 ath11k_dbg(ab, ATH11K_DBG_WMI, "wow wakeup host reason %d %s\n", in ath11k_wmi_tlv_wow_wakeup_host_parse()
8536 ath11k_dbg(ab, ATH11K_DBG_WMI, "wow data_len = %d\n", in ath11k_wmi_tlv_wow_wakeup_host_parse()
8538 ath11k_dbg_dump(ab, ATH11K_DBG_WMI, in ath11k_wmi_tlv_wow_wakeup_host_parse()
8552 static void ath11k_wmi_event_wow_wakeup_host(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_wmi_event_wow_wakeup_host() argument
8557 ret = ath11k_wmi_tlv_iter(ab, skb->data, skb->len, in ath11k_wmi_event_wow_wakeup_host()
8561 ath11k_warn(ab, "failed to parse wmi wow tlv: %d\n", ret); in ath11k_wmi_event_wow_wakeup_host()
8565 ath11k_dbg(ab, ATH11K_DBG_WMI, "event wow wakeup host"); in ath11k_wmi_event_wow_wakeup_host()
8567 complete(&ab->wow.wakeup_completed); in ath11k_wmi_event_wow_wakeup_host()
8571 ath11k_wmi_diag_event(struct ath11k_base *ab, in ath11k_wmi_diag_event() argument
8574 ath11k_dbg(ab, ATH11K_DBG_WMI, "event diag"); in ath11k_wmi_diag_event()
8576 trace_ath11k_wmi_diag(ab, skb->data, skb->len); in ath11k_wmi_diag_event()
8607 static void ath11k_wmi_twt_add_dialog_event(struct ath11k_base *ab, in ath11k_wmi_twt_add_dialog_event() argument
8614 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_wmi_twt_add_dialog_event()
8617 ath11k_warn(ab, in ath11k_wmi_twt_add_dialog_event()
8623 ath11k_dbg(ab, ATH11K_DBG_WMI, "event twt add dialog"); in ath11k_wmi_twt_add_dialog_event()
8627 ath11k_warn(ab, "failed to fetch twt add dialog wmi event\n"); in ath11k_wmi_twt_add_dialog_event()
8632 ath11k_warn(ab, in ath11k_wmi_twt_add_dialog_event()
8641 static void ath11k_wmi_gtk_offload_status_event(struct ath11k_base *ab, in ath11k_wmi_gtk_offload_status_event() argument
8651 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_wmi_gtk_offload_status_event()
8654 ath11k_warn(ab, "failed to parse tlv: %d\n", ret); in ath11k_wmi_gtk_offload_status_event()
8660 ath11k_warn(ab, "failed to fetch gtk offload status ev"); in ath11k_wmi_gtk_offload_status_event()
8667 arvif = ath11k_mac_get_arvif_by_vdev_id(ab, ev->vdev_id); in ath11k_wmi_gtk_offload_status_event()
8669 ath11k_warn(ab, "failed to get arvif for vdev_id:%d\n", in ath11k_wmi_gtk_offload_status_event()
8674 ath11k_dbg(ab, ATH11K_DBG_WMI, "event gtk offload refresh_cnt %d\n", in ath11k_wmi_gtk_offload_status_event()
8676 ath11k_dbg_dump(ab, ATH11K_DBG_WMI, "replay_cnt", in ath11k_wmi_gtk_offload_status_event()
8694 static void ath11k_wmi_p2p_noa_event(struct ath11k_base *ab, in ath11k_wmi_p2p_noa_event() argument
8704 tb = ath11k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC); in ath11k_wmi_p2p_noa_event()
8706 ath11k_warn(ab, "failed to parse tlv: %ld\n", PTR_ERR(tb)); in ath11k_wmi_p2p_noa_event()
8721 ath11k_warn(ab, "invalid descriptor num %d in P2P NoA event\n", in ath11k_wmi_p2p_noa_event()
8726 ath11k_dbg(ab, ATH11K_DBG_WMI, in ath11k_wmi_p2p_noa_event()
8731 ar = ath11k_mac_get_ar_by_vdev_id(ab, vdev_id); in ath11k_wmi_p2p_noa_event()
8733 ath11k_warn(ab, "invalid vdev id %d in P2P NoA event\n", in ath11k_wmi_p2p_noa_event()
8746 static void ath11k_wmi_tlv_op_rx(struct ath11k_base *ab, struct sk_buff *skb) in ath11k_wmi_tlv_op_rx() argument
8754 trace_ath11k_wmi_event(ab, id, skb->data, skb->len); in ath11k_wmi_tlv_op_rx()
8762 ath11k_service_ready_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8765 ath11k_service_ready_ext_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8768 ath11k_service_ready_ext2_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8771 ath11k_reg_chan_list_event(ab, skb, WMI_REG_CHAN_LIST_CC_ID); in ath11k_wmi_tlv_op_rx()
8774 ath11k_reg_chan_list_event(ab, skb, WMI_REG_CHAN_LIST_CC_EXT_ID); in ath11k_wmi_tlv_op_rx()
8777 ath11k_ready_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8780 ath11k_peer_delete_resp_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8783 ath11k_vdev_start_resp_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8786 ath11k_bcn_tx_status_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8789 ath11k_vdev_stopped_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8792 ath11k_mgmt_rx_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8796 ath11k_mgmt_tx_compl_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8799 ath11k_scan_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8802 ath11k_peer_sta_kickout_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8805 ath11k_roam_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8808 ath11k_chan_info_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8811 ath11k_pdev_bss_chan_info_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8814 ath11k_vdev_install_key_compl_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8817 ath11k_service_available_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8820 ath11k_peer_assoc_conf_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8823 ath11k_update_stats_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8826 ath11k_pdev_ctl_failsafe_check_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8829 ath11k_wmi_pdev_csa_switch_count_status_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8832 ath11k_tm_wmi_event(ab, id, skb); in ath11k_wmi_tlv_op_rx()
8835 ath11k_wmi_pdev_temperature_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8838 ath11k_wmi_pdev_dma_ring_buf_release_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8841 ath11k_fils_discovery_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8844 ath11k_probe_resp_tx_status_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8847 ath11k_wmi_obss_color_collision_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8850 ath11k_wmi_twt_add_dialog_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8853 ath11k_wmi_pdev_dfs_radar_detected_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8856 ath11k_vdev_delete_resp_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8859 ath11k_wmi_event_wow_wakeup_host(ab, skb); in ath11k_wmi_tlv_op_rx()
8862 ath11k_reg_11d_new_cc_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8865 ath11k_wmi_diag_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8868 ath11k_wmi_event_peer_sta_ps_state_chg(ab, skb); in ath11k_wmi_tlv_op_rx()
8871 ath11k_wmi_gtk_offload_status_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8874 ath11k_wmi_p2p_noa_event(ab, skb); in ath11k_wmi_tlv_op_rx()
8877 ath11k_dbg(ab, ATH11K_DBG_WMI, "unsupported event id 0x%x\n", id); in ath11k_wmi_tlv_op_rx()
8885 static int ath11k_connect_pdev_htc_service(struct ath11k_base *ab, in ath11k_connect_pdev_htc_service() argument
8907 status = ath11k_htc_connect_service(&ab->htc, &conn_req, &conn_resp); in ath11k_connect_pdev_htc_service()
8909 ath11k_warn(ab, "failed to connect to WMI CONTROL service status: %d\n", in ath11k_connect_pdev_htc_service()
8914 ab->wmi_ab.wmi_endpoint_id[pdev_idx] = conn_resp.eid; in ath11k_connect_pdev_htc_service()
8915 ab->wmi_ab.wmi[pdev_idx].eid = conn_resp.eid; in ath11k_connect_pdev_htc_service()
8916 ab->wmi_ab.max_msg_len[pdev_idx] = conn_resp.max_msg_len; in ath11k_connect_pdev_htc_service()
8917 init_waitqueue_head(&ab->wmi_ab.wmi[pdev_idx].tx_ce_desc_wq); in ath11k_connect_pdev_htc_service()
8968 ath11k_warn(ar->ab, "failed to send WMI_UNIT_TEST CMD :%d\n", in ath11k_wmi_send_unit_test_cmd()
8973 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_send_unit_test_cmd()
9011 ath11k_dbg(ar->ab, ATH11K_DBG_REG, "Triggering Radar Simulation\n"); in ath11k_wmi_simulate_radar()
9062 ath11k_warn(ar->ab, in ath11k_wmi_fw_dbglog_cfg()
9067 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "cmd dbglog cfg"); in ath11k_wmi_fw_dbglog_cfg()
9072 int ath11k_wmi_connect(struct ath11k_base *ab) in ath11k_wmi_connect() argument
9077 wmi_ep_count = ab->htc.wmi_ep_count; in ath11k_wmi_connect()
9078 if (wmi_ep_count > ab->hw_params.max_radios) in ath11k_wmi_connect()
9082 ath11k_connect_pdev_htc_service(ab, i); in ath11k_wmi_connect()
9087 static void ath11k_wmi_pdev_detach(struct ath11k_base *ab, u8 pdev_id) in ath11k_wmi_pdev_detach() argument
9095 int ath11k_wmi_pdev_attach(struct ath11k_base *ab, in ath11k_wmi_pdev_attach() argument
9100 if (pdev_id >= ab->hw_params.max_radios) in ath11k_wmi_pdev_attach()
9103 wmi_handle = &ab->wmi_ab.wmi[pdev_id]; in ath11k_wmi_pdev_attach()
9105 wmi_handle->wmi_ab = &ab->wmi_ab; in ath11k_wmi_pdev_attach()
9107 ab->wmi_ab.ab = ab; in ath11k_wmi_pdev_attach()
9113 int ath11k_wmi_attach(struct ath11k_base *ab) in ath11k_wmi_attach() argument
9117 ret = ath11k_wmi_pdev_attach(ab, 0); in ath11k_wmi_attach()
9121 ab->wmi_ab.ab = ab; in ath11k_wmi_attach()
9122 ab->wmi_ab.preferred_hw_mode = WMI_HOST_HW_MODE_MAX; in ath11k_wmi_attach()
9125 if (ab->hw_params.single_pdev_only && ab->hw_params.num_rxdma_per_pdev > 1) in ath11k_wmi_attach()
9126 ab->wmi_ab.preferred_hw_mode = WMI_HOST_HW_MODE_SINGLE; in ath11k_wmi_attach()
9129 init_completion(&ab->wmi_ab.service_ready); in ath11k_wmi_attach()
9130 init_completion(&ab->wmi_ab.unified_ready); in ath11k_wmi_attach()
9135 void ath11k_wmi_detach(struct ath11k_base *ab) in ath11k_wmi_detach() argument
9141 for (i = 0; i < ab->htc.wmi_ep_count; i++) in ath11k_wmi_detach()
9142 ath11k_wmi_pdev_detach(ab, i); in ath11k_wmi_detach()
9144 ath11k_wmi_free_dbring_caps(ab); in ath11k_wmi_detach()
9173 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_hw_data_filter_cmd()
9196 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "tlv wow host wakeup ind\n"); in ath11k_wmi_wow_host_wakeup_ind()
9218 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "tlv wow enable\n"); in ath11k_wmi_wow_enable()
9245 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "scan prob req oui %d\n", in ath11k_wmi_scan_prob_req_oui()
9272 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "tlv wow add wakeup event %s enable %d vdev_id %d\n", in ath11k_wmi_wow_add_wakeup_event()
9377 …ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "tlv wow add pattern vdev_id %d pattern_id %d pattern_offset %d… in ath11k_wmi_wow_add_pattern()
9403 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "tlv wow del pattern vdev_id %d pattern_id %d\n", in ath11k_wmi_wow_del_pattern()
9516 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "tlv start pno config vdev_id %d\n", in ath11k_wmi_op_gen_config_pno_start()
9541 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_op_gen_config_pno_stop()
9618 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_fill_ns_offload()
9657 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "arp offload address %pI4", in ath11k_wmi_fill_arp_offload()
9755 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "offload gtk rekey vdev: %d %d\n", in ath11k_wmi_gtk_rekey_offload()
9779 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "get gtk rekey vdev_id: %d\n", in ath11k_wmi_gtk_rekey_getinfo()
9889 ath11k_dbg(ar->ab, ATH11K_DBG_WMI, in ath11k_wmi_sta_keepalive()
9899 ar->ab->wmi_ab.svc_map) && ar->supports_6ghz; in ath11k_wmi_supports_6ghz_cc_ext()