wil               116 drivers/net/wireless/ath/wil6210/cfg80211.c static int wil_num_supported_channels(struct wil6210_priv *wil)
wil               120 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (!test_bit(WMI_FW_CAPABILITY_CHANNEL_4, wil->fw_capabilities))
wil               126 drivers/net/wireless/ath/wil6210/cfg80211.c void update_supported_bands(struct wil6210_priv *wil)
wil               128 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wiphy *wiphy = wil_to_wiphy(wil);
wil               130 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "update supported bands");
wil               133 drivers/net/wireless/ath/wil6210/cfg80211.c 						wil_num_supported_channels(wil);
wil               135 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (test_bit(WMI_FW_CAPABILITY_CHANNEL_BONDING, wil->fw_capabilities)) {
wil               444 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               453 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil_net_stats *stats = &wil->sta[cid].stats;
wil               459 drivers/net/wireless/ath/wil6210/cfg80211.c 	rc = wmi_call(wil, WMI_NOTIFY_REQ_CMDID, vif->mid, &cmd, sizeof(cmd),
wil               465 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_wmi(wil, "Link status for CID %d MID %d: {\n"
wil               484 drivers/net/wireless/ath/wil6210/cfg80211.c 	sinfo->generation = wil->sinfo_gen;
wil               495 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (wil->use_enhanced_dma_hw && reply.evt.tx_mode != WMI_TX_MODE_DMG)
wil               515 drivers/net/wireless/ath/wil6210/cfg80211.c 			     wil->fw_capabilities))
wil               529 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil               532 drivers/net/wireless/ath/wil6210/cfg80211.c 	int cid = wil_find_cid(wil, vif->mid, mac);
wil               534 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "get_station: %pM CID %d MID %d\n", mac, cid,
wil               536 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (!wil_cid_valid(wil, cid))
wil               547 drivers/net/wireless/ath/wil6210/cfg80211.c int wil_find_cid_by_idx(struct wil6210_priv *wil, u8 mid, int idx)
wil               551 drivers/net/wireless/ath/wil6210/cfg80211.c 	for (i = 0; i < wil->max_assoc_sta; i++) {
wil               552 drivers/net/wireless/ath/wil6210/cfg80211.c 		if (wil->sta[i].status == wil_sta_unused)
wil               554 drivers/net/wireless/ath/wil6210/cfg80211.c 		if (wil->sta[i].mid != mid)
wil               569 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil               571 drivers/net/wireless/ath/wil6210/cfg80211.c 	int cid = wil_find_cid_by_idx(wil, vif->mid, idx);
wil               573 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (!wil_cid_valid(wil, cid))
wil               576 drivers/net/wireless/ath/wil6210/cfg80211.c 	ether_addr_copy(mac, wil->sta[cid].addr);
wil               577 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "dump_station: %pM CID %d MID %d\n", mac, cid,
wil               588 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil               590 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "start_p2p_device: entered\n");
wil               591 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil->p2p_dev_started = 1;
wil               598 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil               600 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (!wil->p2p_dev_started)
wil               603 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "stop_p2p_device: entered\n");
wil               604 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_lock(&wil->mutex);
wil               605 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_lock(&wil->vif_mutex);
wil               606 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_p2p_stop_radio_operations(wil);
wil               607 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil->p2p_dev_started = 0;
wil               608 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_unlock(&wil->vif_mutex);
wil               609 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_unlock(&wil->mutex);
wil               612 drivers/net/wireless/ath/wil6210/cfg80211.c static int wil_cfg80211_validate_add_iface(struct wil6210_priv *wil,
wil               621 drivers/net/wireless/ath/wil6210/cfg80211.c 	for (i = 0; i < GET_MAX_VIFS(wil); i++) {
wil               622 drivers/net/wireless/ath/wil6210/cfg80211.c 		if (wil->vifs[i]) {
wil               623 drivers/net/wireless/ath/wil6210/cfg80211.c 			wdev = vif_to_wdev(wil->vifs[i]);
wil               628 drivers/net/wireless/ath/wil6210/cfg80211.c 	return cfg80211_check_combinations(wil->wiphy, &params);
wil               631 drivers/net/wireless/ath/wil6210/cfg80211.c static int wil_cfg80211_validate_change_iface(struct wil6210_priv *wil,
wil               642 drivers/net/wireless/ath/wil6210/cfg80211.c 	for (i = 0; i < GET_MAX_VIFS(wil); i++) {
wil               643 drivers/net/wireless/ath/wil6210/cfg80211.c 		struct wil6210_vif *vif_pos = wil->vifs[i];
wil               654 drivers/net/wireless/ath/wil6210/cfg80211.c 		ret = cfg80211_check_combinations(wil->wiphy, &params);
wil               665 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil               666 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct net_device *ndev_main = wil->main_ndev, *ndev;
wil               671 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "add_iface, type %d\n", type);
wil               678 drivers/net/wireless/ath/wil6210/cfg80211.c 		if (wil->p2p_wdev) {
wil               679 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "P2P_DEVICE interface already created\n");
wil               692 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil->p2p_wdev = p2p_wdev;
wil               697 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (!wil->wiphy->n_iface_combinations) {
wil               698 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "virtual interfaces not supported\n");
wil               702 drivers/net/wireless/ath/wil6210/cfg80211.c 	rc = wil_cfg80211_validate_add_iface(wil, type);
wil               704 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "iface validation failed, err=%d\n", rc);
wil               708 drivers/net/wireless/ath/wil6210/cfg80211.c 	vif = wil_vif_alloc(wil, name, name_assign_type, type);
wil               724 drivers/net/wireless/ath/wil6210/cfg80211.c 	rc = wil_vif_add(wil, vif);
wil               728 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_info(wil, "added VIF, mid %d iftype %d MAC %pM\n",
wil               738 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               750 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_info(wil, "failed to stop AP, status %d\n",
wil               764 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil               765 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_vif *vif = wdev_to_vif(wil, wdev);
wil               768 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "del_iface\n");
wil               771 drivers/net/wireless/ath/wil6210/cfg80211.c 		if (wdev != wil->p2p_wdev) {
wil               772 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "delete of incorrect interface 0x%p\n",
wil               778 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_p2p_wdev_free(wil);
wil               783 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "cannot remove the main interface\n");
wil               791 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_info(wil, "deleted VIF, mid %d iftype %d MAC %pM\n",
wil               794 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_vif_remove(wil, vif->mid);
wil               814 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil               820 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "change_iface: type=%d\n", type);
wil               823 drivers/net/wireless/ath/wil6210/cfg80211.c 		rc = wil_cfg80211_validate_change_iface(wil, vif, type);
wil               825 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "iface validation failed, err=%d\n", rc);
wil               833 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (!wil_has_other_active_ifaces(wil, ndev, true, false) &&
wil               834 drivers/net/wireless/ath/wil6210/cfg80211.c 	    netif_running(ndev) && !wil_is_recovery_blocked(wil) &&
wil               836 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil, "interface is up. resetting...\n");
wil               837 drivers/net/wireless/ath/wil6210/cfg80211.c 		mutex_lock(&wil->mutex);
wil               838 drivers/net/wireless/ath/wil6210/cfg80211.c 		__wil_down(wil);
wil               839 drivers/net/wireless/ath/wil6210/cfg80211.c 		rc = __wil_up(wil);
wil               840 drivers/net/wireless/ath/wil6210/cfg80211.c 		mutex_unlock(&wil->mutex);
wil               855 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil->monitor_flags = params->flags;
wil               861 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (vif->mid != 0 && wil_has_active_ifaces(wil, true, false)) {
wil               864 drivers/net/wireless/ath/wil6210/cfg80211.c 		rc = wmi_port_delete(wil, vif->mid);
wil               867 drivers/net/wireless/ath/wil6210/cfg80211.c 		rc = wmi_port_allocate(wil, vif->mid, ndev->dev_addr, type);
wil               879 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil               881 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_vif *vif = wdev_to_vif(wil, wdev);
wil               889 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "scan: wdev=0x%p iftype=%d\n", wdev, wdev->iftype);
wil               903 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (test_bit(wil_status_dontscan, wil->status)) {
wil               904 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Can't scan now\n");
wil               908 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_lock(&wil->mutex);
wil               910 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_lock(&wil->vif_mutex);
wil               912 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Already scanning\n");
wil               913 drivers/net/wireless/ath/wil6210/cfg80211.c 		mutex_unlock(&wil->vif_mutex);
wil               917 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_unlock(&wil->vif_mutex);
wil               920 drivers/net/wireless/ath/wil6210/cfg80211.c 		if (!wil->p2p_dev_started) {
wil               921 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "P2P search requested on stopped P2P device\n");
wil               929 drivers/net/wireless/ath/wil6210/cfg80211.c 				wil->radio_wdev = wdev;
wil               933 drivers/net/wireless/ath/wil6210/cfg80211.c 					wil->radio_wdev =
wil               934 drivers/net/wireless/ath/wil6210/cfg80211.c 						wil->main_ndev->ieee80211_ptr;
wil               943 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "Start scan_request 0x%p\n", request);
wil               944 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "SSID count: %d", request->n_ssids);
wil               947 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil, "SSID[%d]", i);
wil               960 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "set SSID for scan request failed: %d\n", rc);
wil               975 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil,
wil               982 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil, "Scan for ch %d  : %d MHz\n", ch,
wil               990 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil, "Scan has no IE's\n");
wil               997 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (wil->discovery_mode && cmd.cmd.scan_type == WMI_ACTIVE_SCAN) {
wil               999 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil, "active scan with discovery_mode=1\n");
wil              1003 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil->radio_wdev = wdev;
wil              1004 drivers/net/wireless/ath/wil6210/cfg80211.c 	rc = wmi_send(wil, WMI_START_SCAN_CMDID, vif->mid,
wil              1012 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil->radio_wdev = wil->main_ndev->ieee80211_ptr;
wil              1016 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_unlock(&wil->mutex);
wil              1023 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              1024 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_vif *vif = wdev_to_vif(wil, wdev);
wil              1026 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "wdev=0x%p iftype=%d\n", wdev, wdev->iftype);
wil              1028 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_lock(&wil->mutex);
wil              1029 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_lock(&wil->vif_mutex);
wil              1035 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil, "abort scan was called on the wrong iface\n");
wil              1039 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (wdev == wil->p2p_wdev && wil->radio_wdev == wil->p2p_wdev)
wil              1040 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_p2p_stop_radio_operations(wil);
wil              1045 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_unlock(&wil->vif_mutex);
wil              1046 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_unlock(&wil->mutex);
wil              1049 drivers/net/wireless/ath/wil6210/cfg80211.c static void wil_print_crypto(struct wil6210_priv *wil,
wil              1054 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "WPA versions: 0x%08x cipher group 0x%08x\n",
wil              1056 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "Pairwise ciphers [%d] {\n", c->n_ciphers_pairwise);
wil              1059 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil, "  [%d] = 0x%08x\n", i,
wil              1061 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "}\n");
wil              1062 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "AKM suites [%d] {\n", c->n_akm_suites);
wil              1065 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil, "  [%d] = 0x%08x\n", i,
wil              1067 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "}\n");
wil              1068 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "Control port : %d, eth_type 0x%04x no_encrypt %d\n",
wil              1093 drivers/net/wireless/ath/wil6210/cfg80211.c static void wil_print_connect_params(struct wil6210_priv *wil,
wil              1096 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_info(wil, "Connecting to:\n");
wil              1098 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_info(wil, "  Channel: %d freq %d\n",
wil              1102 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_info(wil, "  BSSID: %pM\n", sme->bssid);
wil              1107 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_info(wil, "  Previous BSSID=%pM\n", sme->prev_bssid);
wil              1108 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_info(wil, "  Auth Type: %s\n",
wil              1110 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_info(wil, "  Privacy: %s\n", sme->privacy ? "secure" : "open");
wil              1111 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_info(wil, "  PBSS: %d\n", sme->pbss);
wil              1112 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_print_crypto(wil, &sme->crypto);
wil              1119 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              1124 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (!test_bit(WMI_FW_CAPABILITY_FT_ROAMING, wil->fw_capabilities)) {
wil              1125 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "FT: FW does not support FT roaming\n");
wil              1130 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "FT: prev_bssid was not set\n");
wil              1135 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "FT: can not roam to same AP\n");
wil              1140 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "FT: roam while not connected\n");
wil              1145 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "FT: privacy mismatch, current (%d) roam (%d)\n",
wil              1151 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "FT: roam is not valid for PBSS\n");
wil              1159 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_info(wil, "FT: roaming\n");
wil              1162 drivers/net/wireless/ath/wil6210/cfg80211.c 	rc = wmi_send(wil, WMI_FT_AUTH_CMDID, vif->mid,
wil              1173 drivers/net/wireless/ath/wil6210/cfg80211.c static int wil_get_wmi_edmg_channel(struct wil6210_priv *wil, u8 edmg_bw_config,
wil              1189 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "Unsupported edmg channel bitmap 0x%x\n",
wil              1194 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Unsupported EDMG BW configuration %d\n",
wil              1204 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              1216 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "connect, mid=%d\n", vif->mid);
wil              1217 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_print_connect_params(wil, sme);
wil              1231 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "IE too large (%td bytes)\n", sme->ie_len);
wil              1239 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_info(wil, "WSC connection\n");
wil              1241 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "No WSC with FT roam\n");
wil              1253 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Unable to find BSS\n");
wil              1259 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "No SSID\n");
wil              1278 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Unsupported BSS type, capability= 0x%04x\n",
wil              1286 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "BSS at unknown frequency %dMhz\n",
wil              1294 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "FT: Unsupported BSS type, capability= 0x%04x\n",
wil              1310 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "WMI_DELETE_CIPHER_KEY_CMD(PTK) failed\n");
wil              1316 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "WMI_DELETE_CIPHER_KEY_CMD(GTK) failed\n");
wil              1345 drivers/net/wireless/ath/wil6210/cfg80211.c 	rc = wil_get_wmi_edmg_channel(wil, sme->edmg.bw_config,
wil              1355 drivers/net/wireless/ath/wil6210/cfg80211.c 	rc = wmi_send(wil, WMI_CONNECT_CMDID, vif->mid, &conn, sizeof(conn));
wil              1358 drivers/net/wireless/ath/wil6210/cfg80211.c 		if (!wil_has_other_active_ifaces(wil, ndev, false, true))
wil              1359 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil6210_bus_request(wil, WIL_MAX_BUS_REQUEST_KBPS);
wil              1379 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              1382 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "disconnect: reason=%d, mid=%d\n",
wil              1387 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Disconnect was called while disconnected\n");
wil              1392 drivers/net/wireless/ath/wil6210/cfg80211.c 	rc = wmi_call(wil, WMI_DISCONNECT_CMDID, vif->mid, NULL, 0,
wil              1396 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "disconnect error %d\n", rc);
wil              1403 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              1413 drivers/net/wireless/ath/wil6210/cfg80211.c 		rc = wmi_set_mgmt_retry(wil, wiphy->retry_short);
wil              1427 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              1428 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_vif *vif = wdev_to_vif(wil, wdev);
wil              1432 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "mgmt_tx: channel %d offchan %d, wait %d\n",
wil              1443 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "invalid channel\n");
wil              1448 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil,
wil              1455 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil,
wil              1462 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil,
wil              1488 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              1490 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil->monitor_chandef = *chandef;
wil              1498 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wdev_to_wil(wdev);
wil              1515 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "Can't determine GTK type\n");
wil              1520 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "detect_key_usage: -> %s\n", key_usage_str[rc]);
wil              1526 drivers/net/wireless/ath/wil6210/cfg80211.c wil_find_sta_by_key_usage(struct wil6210_priv *wil, u8 mid,
wil              1536 drivers/net/wireless/ath/wil6210/cfg80211.c 		cid = wil_find_cid(wil, mid, mac_addr);
wil              1538 drivers/net/wireless/ath/wil6210/cfg80211.c 		cid = wil_find_cid_by_idx(wil, mid, 0);
wil              1540 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "No CID for %pM %s\n", mac_addr,
wil              1545 drivers/net/wireless/ath/wil6210/cfg80211.c 	return &wil->sta[cid];
wil              1617 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              1620 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil_sta_info *cs = wil_find_sta_by_key_usage(wil, vif->mid,
wil              1625 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "NULL params\n");
wil              1629 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "add_key: %pM %s[%d] PN %*phN\n",
wil              1638 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "Not connected, %pM %s[%d] PN %*phN\n",
wil              1649 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil,
wil              1657 drivers/net/wireless/ath/wil6210/cfg80211.c 	spin_lock_bh(&wil->eap_lock);
wil              1663 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil, "Store EAPOL key\n");
wil              1665 drivers/net/wireless/ath/wil6210/cfg80211.c 	spin_unlock_bh(&wil->eap_lock);
wil              1692 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              1695 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil_sta_info *cs = wil_find_sta_by_key_usage(wil, vif->mid,
wil              1699 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "del_key: %pM %s[%d]\n", mac_addr,
wil              1703 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_info(wil, "Not connected, %pM %s[%d]\n",
wil              1718 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              1720 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "set_default_key: entered\n");
wil              1730 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              1733 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil,
wil              1737 drivers/net/wireless/ath/wil6210/cfg80211.c 	rc = wil_p2p_listen(wil, wdev, duration, chan, cookie);
wil              1745 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              1746 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_vif *vif = wdev_to_vif(wil, wdev);
wil              1748 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "cancel_remain_on_channel\n");
wil              1926 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              1939 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "start_ap: mid=%d, is_go=%d\n", vif->mid, is_go);
wil              1941 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "P2P GO must be in PBSS\n");
wil              1945 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_set_recovery_state(wil, fw_recovery_idle);
wil              1959 drivers/net/wireless/ath/wil6210/cfg80211.c 			      wil->fw_capabilities)) {
wil              1960 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "FW does not support FT roaming\n");
wil              1966 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_lock(&wil->mutex);
wil              1968 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (!wil_has_other_active_ifaces(wil, ndev, true, false)) {
wil              1969 drivers/net/wireless/ath/wil6210/cfg80211.c 		__wil_down(wil);
wil              1970 drivers/net/wireless/ath/wil6210/cfg80211.c 		rc = __wil_up(wil);
wil              1993 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (!wil_has_other_active_ifaces(wil, ndev, false, true))
wil              1994 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil6210_bus_request(wil, WIL_MAX_BUS_REQUEST_KBPS);
wil              2011 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (!wil_has_other_active_ifaces(wil, ndev, false, true))
wil              2012 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil6210_bus_request(wil, WIL_DEFAULT_BUS_REQUEST_KBPS);
wil              2014 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_unlock(&wil->mutex);
wil              2018 drivers/net/wireless/ath/wil6210/cfg80211.c void wil_cfg80211_ap_recovery(struct wil6210_priv *wil)
wil              2021 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wiphy *wiphy = wil_to_wiphy(wil);
wil              2023 drivers/net/wireless/ath/wil6210/cfg80211.c 	for (i = 0; i < GET_MAX_VIFS(wil); i++) {
wil              2024 drivers/net/wireless/ath/wil6210/cfg80211.c 		struct wil6210_vif *vif = wil->vifs[i];
wil              2040 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_info(wil,
wil              2053 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "vif %d recovery failed (%d)\n", i, rc);
wil              2066 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "vif %d recovery add key failed (%d)\n",
wil              2075 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              2081 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "change_beacon, mid=%d\n", vif->mid);
wil              2094 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil, "privacy changed %d=>%d. Restarting AP\n",
wil              2116 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              2123 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "start_ap\n");
wil              2125 drivers/net/wireless/ath/wil6210/cfg80211.c 	rc = wil_get_wmi_edmg_channel(wil, info->chandef.edmg.bw_config,
wil              2132 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "AP: No channel???\n");
wil              2150 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "AP: Invalid hidden SSID %d\n", info->hidden_ssid);
wil              2153 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "AP on Channel %d %d MHz, %s\n", channel->hw_value,
wil              2155 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "Privacy: %d auth_type %d\n",
wil              2157 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "Hidden SSID mode: %d\n",
wil              2159 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "BI %d DTIM %d\n", info->beacon_interval,
wil              2161 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "PBSS %d\n", info->pbss);
wil              2165 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_print_crypto(wil, crypto);
wil              2179 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              2183 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "stop_ap, mid=%d\n", vif->mid);
wil              2186 drivers/net/wireless/ath/wil6210/cfg80211.c 	last = !wil_has_other_active_ifaces(wil, ndev, false, true);
wil              2188 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil6210_bus_request(wil, WIL_DEFAULT_BUS_REQUEST_KBPS);
wil              2189 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_set_recovery_state(wil, fw_recovery_idle);
wil              2190 drivers/net/wireless/ath/wil6210/cfg80211.c 		set_bit(wil_status_resetting, wil->status);
wil              2193 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_lock(&wil->mutex);
wil              2205 drivers/net/wireless/ath/wil6210/cfg80211.c 		__wil_down(wil);
wil              2209 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_unlock(&wil->mutex);
wil              2220 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              2222 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "add station %pM aid %d mid %d mask 0x%x set 0x%x\n",
wil              2227 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "not supported with AP SME enabled\n");
wil              2232 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "invalid aid\n");
wil              2244 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              2246 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "del_station: %pM, reason=%d mid=%d\n",
wil              2249 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_lock(&wil->mutex);
wil              2251 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_unlock(&wil->mutex);
wil              2262 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              2267 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "change station %pM mask 0x%x set 0x%x mid %d\n",
wil              2272 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil, "not supported with AP SME enabled\n");
wil              2279 drivers/net/wireless/ath/wil6210/cfg80211.c 	cid = wil_find_cid(wil, vif->mid, mac);
wil              2281 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "station not found\n");
wil              2285 drivers/net/wireless/ath/wil6210/cfg80211.c 	for (i = 0; i < ARRAY_SIZE(wil->ring2cid_tid); i++)
wil              2286 drivers/net/wireless/ath/wil6210/cfg80211.c 		if (wil->ring2cid_tid[i][0] == cid) {
wil              2287 drivers/net/wireless/ath/wil6210/cfg80211.c 			txdata = &wil->ring_tx_data[i];
wil              2292 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "ring data not found\n");
wil              2298 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "cid %d ring %d authorize %d\n", cid, i,
wil              2305 drivers/net/wireless/ath/wil6210/cfg80211.c static void wil_probe_client_handle(struct wil6210_priv *wil,
wil              2310 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil_sta_info *sta = &wil->sta[req->cid];
wil              2340 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              2347 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_probe_client_handle(wil, vif, req);
wil              2355 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              2357 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "probe_client_flush\n");
wil              2373 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              2376 drivers/net/wireless/ath/wil6210/cfg80211.c 	int cid = wil_find_cid(wil, vif->mid, peer);
wil              2378 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "probe_client: %pM => CID %d MID %d\n",
wil              2396 drivers/net/wireless/ath/wil6210/cfg80211.c 	queue_work(wil->wq_service, &vif->probe_client_worker);
wil              2404 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              2408 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil, "change_bss: ap_isolate MID %d, %d => %d\n",
wil              2420 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              2423 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "enabled=%d, timeout=%d\n",
wil              2431 drivers/net/wireless/ath/wil6210/cfg80211.c 	return wil_ps_update(wil, ps_profile);
wil              2437 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              2442 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (test_bit(wil_status_suspended, wil->status)) {
wil              2443 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_pm(wil, "trying to suspend while suspended\n");
wil              2447 drivers/net/wireless/ath/wil6210/cfg80211.c 	rc = wil_can_suspend(wil, false);
wil              2451 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_pm(wil, "suspending\n");
wil              2453 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_lock(&wil->mutex);
wil              2454 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_lock(&wil->vif_mutex);
wil              2455 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_p2p_stop_radio_operations(wil);
wil              2456 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_abort_scan_all_vifs(wil, true);
wil              2457 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_unlock(&wil->vif_mutex);
wil              2458 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_unlock(&wil->mutex);
wil              2466 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              2468 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_pm(wil, "resuming\n");
wil              2478 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              2485 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil,
wil              2489 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil, "SSID[%d]:", i);
wil              2494 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "channels:");
wil              2496 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil, " %d%s", request->channels[i]->hw_value,
wil              2498 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "n_match_sets %d, min_rssi_thold %d, delay %d\n",
wil              2504 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil, "MATCHSET[%d]: rssi_thold %d\n",
wil              2510 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "n_scan_plans %d\n", request->n_scan_plans);
wil              2514 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil, "SCAN PLAN[%d]: interval %d iterations %d\n",
wil              2522 drivers/net/wireless/ath/wil6210/cfg80211.c 	return wmi_start_sched_scan(wil, request);
wil              2529 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              2536 drivers/net/wireless/ath/wil6210/cfg80211.c 	rc = wmi_stop_sched_scan(wil);
wil              2540 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "sched scan stopped (%d)\n", rc);
wil              2549 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil              2555 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "update ft ies, mid=%d\n", vif->mid);
wil              2559 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (!test_bit(WMI_FW_CAPABILITY_FT_ROAMING, wil->fw_capabilities)) {
wil              2560 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "FW does not support FT roaming\n");
wil              2578 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "FT: bss is NULL\n");
wil              2585 drivers/net/wireless/ath/wil6210/cfg80211.c 	rc = wmi_send(wil, WMI_FT_REASSOC_CMDID, vif->mid,
wil              2588 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "FT: reassoc failed (%d)\n", rc);
wil              2674 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil, const struct wil_fw_record_concurrency *conc)
wil              2676 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wiphy *wiphy = wil_to_wiphy(wil);
wil              2686 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil, "iface_combinations already set, skipping\n");
wil              2714 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_dbg_misc(wil,
wil              2723 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_dbg_misc(wil,
wil              2733 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil_dbg_misc(wil, "multiple VIFs supported, n_mids %d\n", conc->n_mids);
wil              2734 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil->max_vifs = conc->n_mids + 1; /* including main interface */
wil              2735 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (wil->max_vifs > WIL_MAX_VIFS) {
wil              2736 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_info(wil, "limited number of VIFs supported(%d, FW %d)\n",
wil              2737 drivers/net/wireless/ath/wil6210/cfg80211.c 			 WIL_MAX_VIFS, wil->max_vifs);
wil              2738 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil->max_vifs = WIL_MAX_VIFS;
wil              2748 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil;
wil              2764 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil = wiphy_to_wil(wiphy);
wil              2765 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil->wiphy = wiphy;
wil              2769 drivers/net/wireless/ath/wil6210/cfg80211.c 	cfg80211_chandef_create(&wil->monitor_chandef, ch, NL80211_CHAN_NO_HT);
wil              2771 drivers/net/wireless/ath/wil6210/cfg80211.c 	return wil;
wil              2774 drivers/net/wireless/ath/wil6210/cfg80211.c void wil_cfg80211_deinit(struct wil6210_priv *wil)
wil              2776 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wiphy *wiphy = wil_to_wiphy(wil);
wil              2778 drivers/net/wireless/ath/wil6210/cfg80211.c 	dev_dbg(wil_to_dev(wil), "%s()\n", __func__);
wil              2790 drivers/net/wireless/ath/wil6210/cfg80211.c void wil_p2p_wdev_free(struct wil6210_priv *wil)
wil              2794 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_lock(&wil->vif_mutex);
wil              2795 drivers/net/wireless/ath/wil6210/cfg80211.c 	p2p_wdev = wil->p2p_wdev;
wil              2796 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil->p2p_wdev = NULL;
wil              2797 drivers/net/wireless/ath/wil6210/cfg80211.c 	wil->radio_wdev = wil->main_ndev->ieee80211_ptr;
wil              2798 drivers/net/wireless/ath/wil6210/cfg80211.c 	mutex_unlock(&wil->vif_mutex);
wil              2825 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wdev_to_wil(wdev);
wil              2826 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_vif *vif = wdev_to_vif(wil, wdev);
wil              2844 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (!test_bit(WMI_FW_CAPABILITY_RF_SECTORS, wil->fw_capabilities))
wil              2850 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Invalid rf sector ATTR\n");
wil              2857 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Invalid rf sector spec\n");
wil              2864 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Invalid sector index %d\n", sector_index);
wil              2870 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Invalid sector type %d\n", sector_type);
wil              2877 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Invalid rf module mask 0x%x\n", rf_modules_vec);
wil              2884 drivers/net/wireless/ath/wil6210/cfg80211.c 	rc = wmi_call(wil, WMI_GET_RF_SECTOR_PARAMS_CMDID, vif->mid,
wil              2891 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "get rf sector cfg failed with status %d\n",
wil              2946 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wdev_to_wil(wdev);
wil              2947 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_vif *vif = wdev_to_vif(wil, wdev);
wil              2964 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (!test_bit(WMI_FW_CAPABILITY_RF_SECTORS, wil->fw_capabilities))
wil              2970 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Invalid rf sector ATTR\n");
wil              2977 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Invalid rf sector spec\n");
wil              2984 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Invalid sector index %d\n", sector_index);
wil              2990 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Invalid sector type %d\n", sector_type);
wil              3006 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "invalid sector cfg\n");
wil              3017 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "missing cfg params\n");
wil              3024 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "invalid RF module index %d\n",
wil              3045 drivers/net/wireless/ath/wil6210/cfg80211.c 	rc = wmi_call(wil, WMI_SET_RF_SECTOR_PARAMS_CMDID, vif->mid,
wil              3058 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wdev_to_wil(wdev);
wil              3059 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_vif *vif = wdev_to_vif(wil, wdev);
wil              3073 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (!test_bit(WMI_FW_CAPABILITY_RF_SECTORS, wil->fw_capabilities))
wil              3079 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Invalid rf sector ATTR\n");
wil              3084 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Invalid rf sector spec\n");
wil              3089 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Invalid sector type %d\n", sector_type);
wil              3095 drivers/net/wireless/ath/wil6210/cfg80211.c 		cid = wil_find_cid(wil, vif->mid, mac_addr);
wil              3097 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "invalid MAC address %pM\n", mac_addr);
wil              3102 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "must specify MAC address when connected\n");
wil              3110 drivers/net/wireless/ath/wil6210/cfg80211.c 	rc = wmi_call(wil, WMI_GET_SELECTED_RF_SECTOR_INDEX_CMDID, vif->mid,
wil              3118 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "get rf selected sector cfg failed with status %d\n",
wil              3142 drivers/net/wireless/ath/wil6210/cfg80211.c static int wil_rf_sector_wmi_set_selected(struct wil6210_priv *wil,
wil              3159 drivers/net/wireless/ath/wil6210/cfg80211.c 	rc = wmi_call(wil, WMI_SET_SELECTED_RF_SECTOR_INDEX_CMDID, mid,
wil              3173 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_priv *wil = wdev_to_wil(wdev);
wil              3174 drivers/net/wireless/ath/wil6210/cfg80211.c 	struct wil6210_vif *vif = wdev_to_vif(wil, wdev);
wil              3181 drivers/net/wireless/ath/wil6210/cfg80211.c 	if (!test_bit(WMI_FW_CAPABILITY_RF_SECTORS, wil->fw_capabilities))
wil              3187 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Invalid rf sector ATTR\n");
wil              3193 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Invalid rf sector spec\n");
wil              3201 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Invalid sector index %d\n", sector_index);
wil              3207 drivers/net/wireless/ath/wil6210/cfg80211.c 		wil_err(wil, "Invalid sector type %d\n", sector_type);
wil              3214 drivers/net/wireless/ath/wil6210/cfg80211.c 			cid = wil_find_cid(wil, vif->mid, mac_addr);
wil              3216 drivers/net/wireless/ath/wil6210/cfg80211.c 				wil_err(wil, "invalid MAC address %pM\n",
wil              3222 drivers/net/wireless/ath/wil6210/cfg80211.c 				wil_err(wil, "broadcast MAC valid only with unlocking\n");
wil              3229 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil_err(wil, "must specify MAC address when connected\n");
wil              3236 drivers/net/wireless/ath/wil6210/cfg80211.c 		rc = wil_rf_sector_wmi_set_selected(wil, vif->mid, sector_index,
wil              3241 drivers/net/wireless/ath/wil6210/cfg80211.c 			wil, vif->mid, WMI_INVALID_RF_SECTOR_INDEX,
wil              3244 drivers/net/wireless/ath/wil6210/cfg80211.c 			for (i = 0; i < wil->max_assoc_sta; i++) {
wil              3245 drivers/net/wireless/ath/wil6210/cfg80211.c 				if (wil->sta[i].mid != vif->mid)
wil              3248 drivers/net/wireless/ath/wil6210/cfg80211.c 					wil, vif->mid,
wil              3256 drivers/net/wireless/ath/wil6210/cfg80211.c 					wil_err(wil, "unlock cid %d failed with status %d\n",
wil                21 drivers/net/wireless/ath/wil6210/debug.c void __wil_err(struct wil6210_priv *wil, const char *fmt, ...)
wil                29 drivers/net/wireless/ath/wil6210/debug.c 	netdev_err(wil->main_ndev, "%pV", &vaf);
wil                34 drivers/net/wireless/ath/wil6210/debug.c void __wil_err_ratelimited(struct wil6210_priv *wil, const char *fmt, ...)
wil                45 drivers/net/wireless/ath/wil6210/debug.c 	netdev_err(wil->main_ndev, "%pV", &vaf);
wil                50 drivers/net/wireless/ath/wil6210/debug.c void wil_dbg_ratelimited(const struct wil6210_priv *wil, const char *fmt, ...)
wil                61 drivers/net/wireless/ath/wil6210/debug.c 	netdev_dbg(wil->main_ndev, "%pV", &vaf);
wil                66 drivers/net/wireless/ath/wil6210/debug.c void __wil_info(struct wil6210_priv *wil, const char *fmt, ...)
wil                74 drivers/net/wireless/ath/wil6210/debug.c 	netdev_info(wil->main_ndev, "%pV", &vaf);
wil                79 drivers/net/wireless/ath/wil6210/debug.c void wil_dbg_trace(struct wil6210_priv *wil, const char *fmt, ...)
wil                53 drivers/net/wireless/ath/wil6210/debugfs.c static void wil_print_desc_edma(struct seq_file *s, struct wil6210_priv *wil,
wil                66 drivers/net/wireless/ath/wil6210/debugfs.c 		if (wil->rx_buff_mgmt.buff_arr &&
wil                67 drivers/net/wireless/ath/wil6210/debugfs.c 		    wil_val_in_range(buff_id, 0, wil->rx_buff_mgmt.size))
wil                68 drivers/net/wireless/ath/wil6210/debugfs.c 			has_skb = wil->rx_buff_mgmt.buff_arr[buff_id].skb;
wil                85 drivers/net/wireless/ath/wil6210/debugfs.c static void wil_print_ring(struct seq_file *s, struct wil6210_priv *wil,
wil                96 drivers/net/wireless/ath/wil6210/debugfs.c 	if (wil->use_enhanced_dma_hw && ring->is_rx)
wil               101 drivers/net/wireless/ath/wil6210/debugfs.c 	if (wil->use_enhanced_dma_hw) {
wil               103 drivers/net/wireless/ath/wil6210/debugfs.c 			WIL_RX_DESC_RING_ID : ring - wil->ring_tx;
wil               108 drivers/net/wireless/ath/wil6210/debugfs.c 		x = wmi_addr(wil, RGF_DMA_SCM_SUBQ_CONS + 4 * (ring_id / 2));
wil               115 drivers/net/wireless/ath/wil6210/debugfs.c 	x = wmi_addr(wil, ring->hwtail);
wil               129 drivers/net/wireless/ath/wil6210/debugfs.c 			if (wil->use_enhanced_dma_hw) {
wil               130 drivers/net/wireless/ath/wil6210/debugfs.c 				wil_print_desc_edma(s, wil, ring, _s, _h, i);
wil               146 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil               148 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_print_ring(s, wil, "rx", &wil->ring_rx, 'S', '_');
wil               150 drivers/net/wireless/ath/wil6210/debugfs.c 	for (i = 0; i < ARRAY_SIZE(wil->ring_tx); i++) {
wil               151 drivers/net/wireless/ath/wil6210/debugfs.c 		struct wil_ring *ring = &wil->ring_tx[i];
wil               152 drivers/net/wireless/ath/wil6210/debugfs.c 		struct wil_ring_tx_data *txdata = &wil->ring_tx_data[i];
wil               155 drivers/net/wireless/ath/wil6210/debugfs.c 			int cid = wil->ring2cid_tid[i][0];
wil               156 drivers/net/wireless/ath/wil6210/debugfs.c 			int tid = wil->ring2cid_tid[i][1];
wil               181 drivers/net/wireless/ath/wil6210/debugfs.c 			if (cid < wil->max_assoc_sta)
wil               184 drivers/net/wireless/ath/wil6210/debugfs.c 					   wil->sta[cid].addr, cid, tid,
wil               196 drivers/net/wireless/ath/wil6210/debugfs.c 			wil_print_ring(s, wil, name, ring, '_', 'H');
wil               204 drivers/net/wireless/ath/wil6210/debugfs.c static void wil_print_sring(struct seq_file *s, struct wil6210_priv *wil,
wil               208 drivers/net/wireless/ath/wil6210/debugfs.c 	int sring_idx = sring - wil->srings;
wil               218 drivers/net/wireless/ath/wil6210/debugfs.c 	if (wil->use_enhanced_dma_hw) {
wil               223 drivers/net/wireless/ath/wil6210/debugfs.c 		x = wmi_addr(wil, RGF_DMA_SCM_COMPQ_PROD + 4 * (sring_idx / 2));
wil               230 drivers/net/wireless/ath/wil6210/debugfs.c 	x = wmi_addr(wil, sring->hwtail);
wil               264 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil               268 drivers/net/wireless/ath/wil6210/debugfs.c 		if (wil->srings[i].va)
wil               269 drivers/net/wireless/ath/wil6210/debugfs.c 			wil_print_sring(s, wil, &wil->srings[i]);
wil               284 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil               289 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_halp_vote(wil);
wil               291 drivers/net/wireless/ath/wil6210/debugfs.c 	if (wil_mem_access_lock(wil)) {
wil               292 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_halp_unvote(wil);
wil               317 drivers/net/wireless/ath/wil6210/debugfs.c 	if (!wmi_addr(wil, r.base) ||
wil               318 drivers/net/wireless/ath/wil6210/debugfs.c 	    !wmi_addr(wil, r.tail) ||
wil               319 drivers/net/wireless/ath/wil6210/debugfs.c 	    !wmi_addr(wil, r.head)) {
wil               328 drivers/net/wireless/ath/wil6210/debugfs.c 		void __iomem *x = wil->csr + HOSTADDR(r.base) + delta;
wil               337 drivers/net/wireless/ath/wil6210/debugfs.c 		if (0 == wmi_read_hdr(wil, d.addr, &hdr)) {
wil               345 drivers/net/wireless/ath/wil6210/debugfs.c 				void __iomem *src = wmi_buffer(wil, d.addr) +
wil               361 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_mem_access_unlock(wil);
wil               362 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_halp_unvote(wil);
wil               367 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil               370 drivers/net/wireless/ath/wil6210/debugfs.c 	ret = wil_pm_runtime_get(wil);
wil               374 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_print_mbox_ring(s, "tx", wil->csr + HOST_MBOX +
wil               376 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_print_mbox_ring(s, "rx", wil->csr + HOST_MBOX +
wil               379 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_pm_runtime_put(wil);
wil               389 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = d->wil;
wil               392 drivers/net/wireless/ath/wil6210/debugfs.c 	ret = wil_pm_runtime_get(wil);
wil               400 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_pm_runtime_put(wil);
wil               409 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = d->wil;
wil               412 drivers/net/wireless/ath/wil6210/debugfs.c 	ret = wil_pm_runtime_get(wil);
wil               418 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_pm_runtime_put(wil);
wil               428 drivers/net/wireless/ath/wil6210/debugfs.c 					 struct wil6210_priv *wil)
wil               430 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil_debugfs_iomem_data *data = &wil->dbg_data.data_arr[
wil               431 drivers/net/wireless/ath/wil6210/debugfs.c 					      wil->dbg_data.iomem_data_count];
wil               433 drivers/net/wireless/ath/wil6210/debugfs.c 	data->wil = wil;
wil               437 drivers/net/wireless/ath/wil6210/debugfs.c 	wil->dbg_data.iomem_data_count++;
wil               464 drivers/net/wireless/ath/wil6210/debugfs.c static void wil6210_debugfs_init_offset(struct wil6210_priv *wil,
wil               488 drivers/net/wireless/ath/wil6210/debugfs.c 						     wil);
wil               509 drivers/net/wireless/ath/wil6210/debugfs.c static void wil6210_debugfs_create_ISR(struct wil6210_priv *wil,
wil               515 drivers/net/wireless/ath/wil6210/debugfs.c 	wil6210_debugfs_init_offset(wil, d, (void * __force)wil->csr + off,
wil               526 drivers/net/wireless/ath/wil6210/debugfs.c static void wil6210_debugfs_create_pseudo_ISR(struct wil6210_priv *wil,
wil               531 drivers/net/wireless/ath/wil6210/debugfs.c 	wil6210_debugfs_init_offset(wil, d, (void * __force)wil->csr,
wil               574 drivers/net/wireless/ath/wil6210/debugfs.c static int wil6210_debugfs_create_ITR_CNT(struct wil6210_priv *wil,
wil               584 drivers/net/wireless/ath/wil6210/debugfs.c 	wil6210_debugfs_init_offset(wil, d, (void * __force)wil->csr,
wil               587 drivers/net/wireless/ath/wil6210/debugfs.c 	wil6210_debugfs_init_offset(wil, dtx, (void * __force)wil->csr,
wil               590 drivers/net/wireless/ath/wil6210/debugfs.c 	wil6210_debugfs_init_offset(wil, drx, (void * __force)wil->csr,
wil               597 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil               601 drivers/net/wireless/ath/wil6210/debugfs.c 	ret = wil_pm_runtime_get(wil);
wil               605 drivers/net/wireless/ath/wil6210/debugfs.c 	ret = wil_mem_access_lock(wil);
wil               607 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_pm_runtime_put(wil);
wil               611 drivers/net/wireless/ath/wil6210/debugfs.c 	a = wmi_buffer(wil, cpu_to_le32(mem_addr));
wil               618 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_mem_access_unlock(wil);
wil               619 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_pm_runtime_put(wil);
wil               630 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = wil_blob->wil;
wil               657 drivers/net/wireless/ath/wil6210/debugfs.c 	rc = wil_pm_runtime_get(wil);
wil               663 drivers/net/wireless/ath/wil6210/debugfs.c 	rc = wil_mem_access_lock(wil);
wil               666 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_pm_runtime_put(wil);
wil               675 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_mem_access_unlock(wil);
wil               676 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_pm_runtime_put(wil);
wil               707 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = file->private_data;
wil               722 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_err(wil, "Invalid channel %ld\n", channel);
wil               728 drivers/net/wireless/ath/wil6210/debugfs.c 		rc = wmi_set_channel(wil, (int)channel);
wil               733 drivers/net/wireless/ath/wil6210/debugfs.c 	rc = wmi_rxon(wil, on);
wil               749 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = file->private_data;
wil               755 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_err(wil, "Invalid argument\n");
wil               761 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_info(wil, "%s RBUFCAP, descriptors threshold - %d\n",
wil               764 drivers/net/wireless/ath/wil6210/debugfs.c 	if (!wil->ring_rx.va || val > wil->ring_rx.size) {
wil               765 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_err(wil, "Invalid descriptors threshold, %d\n", val);
wil               769 drivers/net/wireless/ath/wil6210/debugfs.c 	rc = wmi_rbufcap_cfg(wil, val < 0 ? 0 : 1, val < 0 ? 0 : val);
wil               771 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_err(wil, "RBUFCAP config failed: %d\n", rc);
wil               791 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = file->private_data;
wil               820 drivers/net/wireless/ath/wil6210/debugfs.c 			wil_err(wil, "BACK: invalid ring id %d\n", p1);
wil               823 drivers/net/wireless/ath/wil6210/debugfs.c 		txdata = &wil->ring_tx_data[p1];
wil               826 drivers/net/wireless/ath/wil6210/debugfs.c 				wil_err(wil, "BACK: add require at least 2 params\n");
wil               831 drivers/net/wireless/ath/wil6210/debugfs.c 			wmi_addba(wil, txdata->mid, p1, p2, p3);
wil               835 drivers/net/wireless/ath/wil6210/debugfs.c 			wmi_delba_tx(wil, txdata->mid, p1, p2);
wil               841 drivers/net/wireless/ath/wil6210/debugfs.c 			wil_err(wil,
wil               845 drivers/net/wireless/ath/wil6210/debugfs.c 		if (p1 < 0 || p1 >= wil->max_assoc_sta) {
wil               846 drivers/net/wireless/ath/wil6210/debugfs.c 			wil_err(wil, "BACK: invalid CID %d\n", p1);
wil               851 drivers/net/wireless/ath/wil6210/debugfs.c 		sta = &wil->sta[p1];
wil               852 drivers/net/wireless/ath/wil6210/debugfs.c 		wmi_delba_rx(wil, sta->mid, p1, p2, p3);
wil               854 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_err(wil, "BACK: Unrecognized command \"%s\"\n", cmd);
wil               888 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = file->private_data;
wil               911 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_err(wil, "pmccfg: no params given\n");
wil               917 drivers/net/wireless/ath/wil6210/debugfs.c 			wil_err(wil, "pmccfg: alloc requires 2 params\n");
wil               920 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_pmc_alloc(wil, num_descs, desc_size);
wil               923 drivers/net/wireless/ath/wil6210/debugfs.c 			wil_err(wil, "pmccfg: free does not have any params\n");
wil               926 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_pmc_free(wil, true);
wil               928 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_err(wil, "pmccfg: Unrecognized command \"%s\"\n", cmd);
wil               938 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = file->private_data;
wil               945 drivers/net/wireless/ath/wil6210/debugfs.c 		 wil_pmc_last_cmd_status(wil), help);
wil               980 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = file->private_data;
wil               981 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wiphy *wiphy = wil_to_wiphy(wil);
wil               982 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wireless_dev *wdev = wil->main_ndev->ieee80211_ptr;
wil              1002 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_info(wil, "-> %d\n", rc);
wil              1018 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = file->private_data;
wil              1019 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              1042 drivers/net/wireless/ath/wil6210/debugfs.c 	rc1 = wmi_send(wil, cmdid, vif->mid, cmd, cmdlen);
wil              1045 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_info(wil, "0x%04x[%d] -> %d\n", cmdid, cmdlen, rc1);
wil              1081 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              1090 drivers/net/wireless/ath/wil6210/debugfs.c 	if (wil->use_enhanced_dma_hw) {
wil              1106 drivers/net/wireless/ath/wil6210/debugfs.c 	ring = tx ? &wil->ring_tx[ring_idx] : &wil->ring_rx;
wil              1133 drivers/net/wireless/ath/wil6210/debugfs.c 	if (wil->use_enhanced_dma_hw) {
wil              1136 drivers/net/wireless/ath/wil6210/debugfs.c 		} else if (wil->rx_buff_mgmt.buff_arr) {
wil              1143 drivers/net/wireless/ath/wil6210/debugfs.c 					      wil->rx_buff_mgmt.size))
wil              1146 drivers/net/wireless/ath/wil6210/debugfs.c 				skb = wil->rx_buff_mgmt.buff_arr[buff_id].skb;
wil              1176 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              1188 drivers/net/wireless/ath/wil6210/debugfs.c 	sring = &wil->srings[sring_idx];
wil              1209 drivers/net/wireless/ath/wil6210/debugfs.c 	if (!tx && !wil->use_compressed_rx_status)
wil              1237 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              1238 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil_rx_buff_mgmt *rbm = &wil->rx_buff_mgmt;
wil              1294 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              1295 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              1306 drivers/net/wireless/ath/wil6210/debugfs.c 	for (i = 0; i < wil->max_assoc_sta; i++) {
wil              1310 drivers/net/wireless/ath/wil6210/debugfs.c 		rc = wmi_call(wil, WMI_NOTIFY_REQ_CMDID, vif->mid,
wil              1363 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              1367 drivers/net/wireless/ath/wil6210/debugfs.c 		     wil->fw_capabilities)) {
wil              1370 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_dbg_misc(wil,
wil              1372 drivers/net/wireless/ath/wil6210/debugfs.c 		rc = wmi_get_all_temperatures(wil, &sense_all_evt);
wil              1389 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_dbg_misc(wil,
wil              1391 drivers/net/wireless/ath/wil6210/debugfs.c 		rc = wmi_get_temperature(wil, &t_m, &t_r);
wil              1406 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              1407 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wireless_dev *wdev = wil->main_ndev->ieee80211_ptr;
wil              1419 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              1427 drivers/net/wireless/ath/wil6210/debugfs.c 	for (i = 0; i < wil->max_assoc_sta; i++) {
wil              1428 drivers/net/wireless/ath/wil6210/debugfs.c 		struct wil_sta_info *p = &wil->sta[i];
wil              1451 drivers/net/wireless/ath/wil6210/debugfs.c 		vif = (mid < GET_MAX_VIFS(wil)) ? wil->vifs[mid] : NULL;
wil              1474 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              1475 drivers/net/wireless/ath/wil6210/debugfs.c 	struct net_device *ndev = wil->main_ndev;
wil              1477 drivers/net/wireless/ath/wil6210/debugfs.c 	int rx = atomic_xchg(&wil->isr_count_rx, 0);
wil              1478 drivers/net/wireless/ath/wil6210/debugfs.c 	int tx = atomic_xchg(&wil->isr_count_tx, 0);
wil              1516 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = file->private_data;
wil              1523 drivers/net/wireless/ath/wil6210/debugfs.c 		     sstate[wil->recovery_state]);
wil              1535 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = file->private_data;
wil              1540 drivers/net/wireless/ath/wil6210/debugfs.c 	if (wil->recovery_state != fw_recovery_pending) {
wil              1541 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_err(wil, "No recovery pending\n");
wil              1546 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_err(wil, "Offset [%d]\n", (int)*ppos);
wil              1551 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_err(wil, "Input too long, len = %d\n", (int)count);
wil              1561 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_set_recovery_state(wil, fw_recovery_running);
wil              1563 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_err(wil, "Bad recovery command \"%s\"\n", buf);
wil              1626 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              1629 drivers/net/wireless/ath/wil6210/debugfs.c 	for (i = 0; i < wil->max_assoc_sta; i++) {
wil              1630 drivers/net/wireless/ath/wil6210/debugfs.c 		struct wil_sta_info *p = &wil->sta[i];
wil              1649 drivers/net/wireless/ath/wil6210/debugfs.c 		if (mid < GET_MAX_VIFS(wil)) {
wil              1650 drivers/net/wireless/ath/wil6210/debugfs.c 			struct wil6210_vif *vif = wil->vifs[mid];
wil              1709 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              1714 drivers/net/wireless/ath/wil6210/debugfs.c 	mutex_lock(&wil->vif_mutex);
wil              1715 drivers/net/wireless/ath/wil6210/debugfs.c 	for (i = 0; i < GET_MAX_VIFS(wil); i++) {
wil              1716 drivers/net/wireless/ath/wil6210/debugfs.c 		vif = wil->vifs[i];
wil              1726 drivers/net/wireless/ath/wil6210/debugfs.c 	mutex_unlock(&wil->vif_mutex);
wil              1735 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              1738 drivers/net/wireless/ath/wil6210/debugfs.c 	for (i = 0; i < wil->max_assoc_sta; i++) {
wil              1739 drivers/net/wireless/ath/wil6210/debugfs.c 		struct wil_sta_info *p = &wil->sta[i];
wil              1799 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              1805 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_err(wil, "Invalid argument\n");
wil              1812 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_err(wil, "Invalid resolution %d\n", val);
wil              1817 drivers/net/wireless/ath/wil6210/debugfs.c 	if (wil->tx_latency == enable)
wil              1820 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_info(wil, "%s TX latency measurements (resolution %dusec)\n",
wil              1826 drivers/net/wireless/ath/wil6210/debugfs.c 		wil->tx_latency_res = val;
wil              1827 drivers/net/wireless/ath/wil6210/debugfs.c 		for (i = 0; i < wil->max_assoc_sta; i++) {
wil              1828 drivers/net/wireless/ath/wil6210/debugfs.c 			struct wil_sta_info *sta = &wil->sta[i];
wil              1839 drivers/net/wireless/ath/wil6210/debugfs.c 	wil->tx_latency = enable;
wil              1880 drivers/net/wireless/ath/wil6210/debugfs.c static void wil_link_stats_print_global(struct wil6210_priv *wil,
wil              1902 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1912 drivers/net/wireless/ath/wil6210/debugfs.c 	for (i = 0; i < wil->max_assoc_sta; i++) {
wil              1913 drivers/net/wireless/ath/wil6210/debugfs.c 		if (wil->sta[i].status == wil_sta_unused)
wil              1915 drivers/net/wireless/ath/wil6210/debugfs.c 		if (wil->sta[i].mid != vif->mid)
wil              1918 drivers/net/wireless/ath/wil6210/debugfs.c 		stats = &wil->sta[i].fw_stats_basic;
wil              1925 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              1929 drivers/net/wireless/ath/wil6210/debugfs.c 	rc = mutex_lock_interruptible(&wil->vif_mutex);
wil              1936 drivers/net/wireless/ath/wil6210/debugfs.c 	for (i = 0; i < GET_MAX_VIFS(wil); i++) {
wil              1937 drivers/net/wireless/ath/wil6210/debugfs.c 		vif = wil->vifs[i];
wil              1948 drivers/net/wireless/ath/wil6210/debugfs.c 	mutex_unlock(&wil->vif_mutex);
wil              1962 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              1985 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_info(wil, "request link statistics, cid %d interval %d\n",
wil              1988 drivers/net/wireless/ath/wil6210/debugfs.c 	rc = mutex_lock_interruptible(&wil->vif_mutex);
wil              1992 drivers/net/wireless/ath/wil6210/debugfs.c 	for (i = 0; i < GET_MAX_VIFS(wil); i++) {
wil              1993 drivers/net/wireless/ath/wil6210/debugfs.c 		vif = wil->vifs[i];
wil              2000 drivers/net/wireless/ath/wil6210/debugfs.c 			wil_err(wil, "link statistics failed for mid %d\n", i);
wil              2002 drivers/net/wireless/ath/wil6210/debugfs.c 	mutex_unlock(&wil->vif_mutex);
wil              2018 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              2020 drivers/net/wireless/ath/wil6210/debugfs.c 	if (!wil->fw_stats_global.ready)
wil              2023 drivers/net/wireless/ath/wil6210/debugfs.c 	seq_printf(s, "TSF %lld\n", wil->fw_stats_global.tsf);
wil              2024 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_link_stats_print_global(wil, s, &wil->fw_stats_global.stats);
wil              2041 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              2043 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              2048 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_err(wil, "Invalid argument\n");
wil              2052 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_info(wil, "request global link stats, interval %d\n", interval);
wil              2056 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_err(wil, "global link stats failed %d\n", rc);
wil              2089 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = file->private_data;
wil              2095 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_err(wil, "Invalid argument\n");
wil              2099 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_info(wil, "%s led %d\n", val ? "Enabling" : "Disabling", led_id);
wil              2100 drivers/net/wireless/ath/wil6210/debugfs.c 	rc = wmi_led_cfg(wil, val);
wil              2102 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_info(wil, "%s led %d failed\n",
wil              2184 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              2187 drivers/net/wireless/ath/wil6210/debugfs.c 		   wil->fw_capabilities);
wil              2208 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              2210 drivers/net/wireless/ath/wil6210/debugfs.c 	if (wil->fw_version[0])
wil              2211 drivers/net/wireless/ath/wil6210/debugfs.c 		seq_printf(s, "%s\n", wil->fw_version);
wil              2236 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = file->private_data;
wil              2238 drivers/net/wireless/ath/wil6210/debugfs.c 	memset(&wil->suspend_stats, 0, sizeof(wil->suspend_stats));
wil              2247 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = file->private_data;
wil              2265 drivers/net/wireless/ath/wil6210/debugfs.c 		     wil->suspend_stats.r_on.successful_suspends,
wil              2266 drivers/net/wireless/ath/wil6210/debugfs.c 		     wil->suspend_stats.r_on.failed_suspends,
wil              2267 drivers/net/wireless/ath/wil6210/debugfs.c 		     wil->suspend_stats.r_on.successful_resumes,
wil              2268 drivers/net/wireless/ath/wil6210/debugfs.c 		     wil->suspend_stats.r_on.failed_resumes,
wil              2269 drivers/net/wireless/ath/wil6210/debugfs.c 		     wil->suspend_stats.rejected_by_device,
wil              2270 drivers/net/wireless/ath/wil6210/debugfs.c 		     wil->suspend_stats.r_off.successful_suspends,
wil              2271 drivers/net/wireless/ath/wil6210/debugfs.c 		     wil->suspend_stats.r_off.failed_suspends,
wil              2272 drivers/net/wireless/ath/wil6210/debugfs.c 		     wil->suspend_stats.r_off.successful_resumes,
wil              2273 drivers/net/wireless/ath/wil6210/debugfs.c 		     wil->suspend_stats.r_off.failed_resumes,
wil              2274 drivers/net/wireless/ath/wil6210/debugfs.c 		     wil->suspend_stats.rejected_by_host);
wil              2297 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              2303 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_err(wil, "Invalid argument\n");
wil              2307 drivers/net/wireless/ath/wil6210/debugfs.c 	if (wil_has_active_ifaces(wil, true, false)) {
wil              2308 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_err(wil, "cannot change edma config after iface is up\n");
wil              2312 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_info(wil, "%sable compressed_rx_status\n",
wil              2315 drivers/net/wireless/ath/wil6210/debugfs.c 	wil->use_compressed_rx_status = compressed_rx_status;
wil              2323 drivers/net/wireless/ath/wil6210/debugfs.c 	struct wil6210_priv *wil = s->private;
wil              2325 drivers/net/wireless/ath/wil6210/debugfs.c 	seq_printf(s, "%d\n", wil->use_compressed_rx_status);
wil              2346 drivers/net/wireless/ath/wil6210/debugfs.c static void wil6210_debugfs_init_blobs(struct wil6210_priv *wil,
wil              2353 drivers/net/wireless/ath/wil6210/debugfs.c 		struct wil_blob_wrapper *wil_blob = &wil->blobs[i];
wil              2360 drivers/net/wireless/ath/wil6210/debugfs.c 		wil_blob->wil = wil;
wil              2361 drivers/net/wireless/ath/wil6210/debugfs.c 		blob->data = (void * __force)wil->csr + HOSTADDR(map->host);
wil              2408 drivers/net/wireless/ath/wil6210/debugfs.c static void wil6210_debugfs_init_files(struct wil6210_priv *wil,
wil              2415 drivers/net/wireless/ath/wil6210/debugfs.c 				    wil, dbg_files[i].fops);
wil              2429 drivers/net/wireless/ath/wil6210/debugfs.c static void wil6210_debugfs_init_isr(struct wil6210_priv *wil,
wil              2435 drivers/net/wireless/ath/wil6210/debugfs.c 		wil6210_debugfs_create_ISR(wil, dbg_icr[i].name, dbg,
wil              2487 drivers/net/wireless/ath/wil6210/debugfs.c int wil6210_debugfs_init(struct wil6210_priv *wil)
wil              2489 drivers/net/wireless/ath/wil6210/debugfs.c 	struct dentry *dbg = wil->debug = debugfs_create_dir(WIL_NAME,
wil              2490 drivers/net/wireless/ath/wil6210/debugfs.c 			wil_to_wiphy(wil)->debugfsdir);
wil              2494 drivers/net/wireless/ath/wil6210/debugfs.c 	wil->dbg_data.data_arr = kcalloc(dbg_off_count,
wil              2497 drivers/net/wireless/ath/wil6210/debugfs.c 	if (!wil->dbg_data.data_arr) {
wil              2499 drivers/net/wireless/ath/wil6210/debugfs.c 		wil->debug = NULL;
wil              2503 drivers/net/wireless/ath/wil6210/debugfs.c 	wil->dbg_data.iomem_data_count = 0;
wil              2505 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_pmc_init(wil);
wil              2507 drivers/net/wireless/ath/wil6210/debugfs.c 	wil6210_debugfs_init_files(wil, dbg);
wil              2508 drivers/net/wireless/ath/wil6210/debugfs.c 	wil6210_debugfs_init_isr(wil, dbg);
wil              2509 drivers/net/wireless/ath/wil6210/debugfs.c 	wil6210_debugfs_init_blobs(wil, dbg);
wil              2510 drivers/net/wireless/ath/wil6210/debugfs.c 	wil6210_debugfs_init_offset(wil, dbg, wil, dbg_wil_off);
wil              2511 drivers/net/wireless/ath/wil6210/debugfs.c 	wil6210_debugfs_init_offset(wil, dbg, (void * __force)wil->csr,
wil              2513 drivers/net/wireless/ath/wil6210/debugfs.c 	wil6210_debugfs_init_offset(wil, dbg, NULL, dbg_statics);
wil              2515 drivers/net/wireless/ath/wil6210/debugfs.c 	wil6210_debugfs_create_pseudo_ISR(wil, dbg);
wil              2517 drivers/net/wireless/ath/wil6210/debugfs.c 	wil6210_debugfs_create_ITR_CNT(wil, dbg);
wil              2522 drivers/net/wireless/ath/wil6210/debugfs.c void wil6210_debugfs_remove(struct wil6210_priv *wil)
wil              2526 drivers/net/wireless/ath/wil6210/debugfs.c 	debugfs_remove_recursive(wil->debug);
wil              2527 drivers/net/wireless/ath/wil6210/debugfs.c 	wil->debug = NULL;
wil              2529 drivers/net/wireless/ath/wil6210/debugfs.c 	kfree(wil->dbg_data.data_arr);
wil              2530 drivers/net/wireless/ath/wil6210/debugfs.c 	for (i = 0; i < wil->max_assoc_sta; i++)
wil              2531 drivers/net/wireless/ath/wil6210/debugfs.c 		kfree(wil->sta[i].tx_latency_bins);
wil              2536 drivers/net/wireless/ath/wil6210/debugfs.c 	wil_pmc_free(wil, false);
wil                27 drivers/net/wireless/ath/wil6210/ethtool.c 	struct wil6210_priv *wil = ndev_to_wil(ndev);
wil                29 drivers/net/wireless/ath/wil6210/ethtool.c 	mutex_lock(&wil->mutex);
wil                31 drivers/net/wireless/ath/wil6210/ethtool.c 	wil_dbg_misc(wil, "ethtoolops_begin\n");
wil                38 drivers/net/wireless/ath/wil6210/ethtool.c 	struct wil6210_priv *wil = ndev_to_wil(ndev);
wil                40 drivers/net/wireless/ath/wil6210/ethtool.c 	wil_dbg_misc(wil, "ethtoolops_complete\n");
wil                42 drivers/net/wireless/ath/wil6210/ethtool.c 	mutex_unlock(&wil->mutex);
wil                48 drivers/net/wireless/ath/wil6210/ethtool.c 	struct wil6210_priv *wil = ndev_to_wil(ndev);
wil                53 drivers/net/wireless/ath/wil6210/ethtool.c 	wil_dbg_misc(wil, "ethtoolops_get_coalesce\n");
wil                55 drivers/net/wireless/ath/wil6210/ethtool.c 	ret = wil_pm_runtime_get(wil);
wil                59 drivers/net/wireless/ath/wil6210/ethtool.c 	tx_itr_en = wil_r(wil, RGF_DMA_ITR_TX_CNT_CTL);
wil                61 drivers/net/wireless/ath/wil6210/ethtool.c 		tx_itr_val = wil_r(wil, RGF_DMA_ITR_TX_CNT_TRSH);
wil                63 drivers/net/wireless/ath/wil6210/ethtool.c 	rx_itr_en = wil_r(wil, RGF_DMA_ITR_RX_CNT_CTL);
wil                65 drivers/net/wireless/ath/wil6210/ethtool.c 		rx_itr_val = wil_r(wil, RGF_DMA_ITR_RX_CNT_TRSH);
wil                67 drivers/net/wireless/ath/wil6210/ethtool.c 	wil_pm_runtime_put(wil);
wil                77 drivers/net/wireless/ath/wil6210/ethtool.c 	struct wil6210_priv *wil = ndev_to_wil(ndev);
wil                81 drivers/net/wireless/ath/wil6210/ethtool.c 	wil_dbg_misc(wil, "ethtoolops_set_coalesce: rx %d usec, tx %d usec\n",
wil                85 drivers/net/wireless/ath/wil6210/ethtool.c 		wil_dbg_misc(wil, "No IRQ coalescing in monitor mode\n");
wil                97 drivers/net/wireless/ath/wil6210/ethtool.c 	wil->tx_max_burst_duration = cp->tx_coalesce_usecs;
wil                98 drivers/net/wireless/ath/wil6210/ethtool.c 	wil->rx_max_burst_duration = cp->rx_coalesce_usecs;
wil               100 drivers/net/wireless/ath/wil6210/ethtool.c 	ret = wil_pm_runtime_get(wil);
wil               104 drivers/net/wireless/ath/wil6210/ethtool.c 	wil->txrx_ops.configure_interrupt_moderation(wil);
wil               106 drivers/net/wireless/ath/wil6210/ethtool.c 	wil_pm_runtime_put(wil);
wil               111 drivers/net/wireless/ath/wil6210/ethtool.c 	wil_dbg_misc(wil, "Unsupported coalescing params. Raw command:\n");
wil                22 drivers/net/wireless/ath/wil6210/fw_inc.c #define wil_err_fw(wil, fmt, arg...) wil_err(wil, "ERR[ FW ]" fmt, ##arg)
wil                23 drivers/net/wireless/ath/wil6210/fw_inc.c #define wil_dbg_fw(wil, fmt, arg...) wil_dbg(wil, "DBG[ FW ]" fmt, ##arg)
wil                30 drivers/net/wireless/ath/wil6210/fw_inc.c static bool wil_fw_addr_check(struct wil6210_priv *wil,
wil                34 drivers/net/wireless/ath/wil6210/fw_inc.c 	*ioaddr = wmi_buffer_block(wil, val, size);
wil                36 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "bad %s: 0x%08x\n", msg, le32_to_cpu(val));
wil                50 drivers/net/wireless/ath/wil6210/fw_inc.c static int wil_fw_verify(struct wil6210_priv *wil, const u8 *data, size_t size)
wil                59 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "image size not aligned: %zu\n", size);
wil                64 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "file too short: %zu bytes\n", size);
wil                70 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "no file header\n");
wil                78 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "data length not aligned: %lu\n", (ulong)dlen);
wil                82 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "file truncated at %zu/%lu\n",
wil                87 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "data length too short: %lu\n", (ulong)dlen);
wil                93 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "bad header signature: 0x%08x\n",
wil               100 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "unsupported header version: %d\n",
wil               116 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "checksum mismatch:"
wil               125 drivers/net/wireless/ath/wil6210/fw_inc.c static int fw_ignore_section(struct wil6210_priv *wil, const void *data,
wil               132 drivers/net/wireless/ath/wil6210/fw_inc.c fw_handle_capabilities(struct wil6210_priv *wil, const void *data,
wil               139 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "capabilities record too short: %zu\n", size);
wil               146 drivers/net/wireless/ath/wil6210/fw_inc.c 	bitmap_zero(wil->fw_capabilities, WMI_FW_CAPABILITY_MAX);
wil               147 drivers/net/wireless/ath/wil6210/fw_inc.c 	memcpy(wil->fw_capabilities, rec->capabilities,
wil               148 drivers/net/wireless/ath/wil6210/fw_inc.c 	       min_t(size_t, sizeof(wil->fw_capabilities), capa_size));
wil               155 drivers/net/wireless/ath/wil6210/fw_inc.c fw_handle_brd_file(struct wil6210_priv *wil, const void *data,
wil               162 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err(wil, "board record too short, size %zu\n", size);
wil               170 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err(wil, "brd info entries are missing\n");
wil               174 drivers/net/wireless/ath/wil6210/fw_inc.c 	wil->brd_info = kcalloc(max_num_ent, sizeof(struct wil_brd_info),
wil               176 drivers/net/wireless/ath/wil6210/fw_inc.c 	if (!wil->brd_info)
wil               180 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil->brd_info[i].file_addr =
wil               182 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil->brd_info[i].file_max_size =
wil               185 drivers/net/wireless/ath/wil6210/fw_inc.c 		if (!wil->brd_info[i].file_addr)
wil               188 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_dbg_fw(wil,
wil               190 drivers/net/wireless/ath/wil6210/fw_inc.c 			   i, wil->brd_info[i].file_addr,
wil               191 drivers/net/wireless/ath/wil6210/fw_inc.c 			   wil->brd_info[i].file_max_size);
wil               194 drivers/net/wireless/ath/wil6210/fw_inc.c 	wil->num_of_brd_entries = i;
wil               195 drivers/net/wireless/ath/wil6210/fw_inc.c 	if (wil->num_of_brd_entries == 0) {
wil               196 drivers/net/wireless/ath/wil6210/fw_inc.c 		kfree(wil->brd_info);
wil               197 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil->brd_info = NULL;
wil               198 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_dbg_fw(wil,
wil               202 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_dbg_fw(wil, "num of brd info entries %d\n",
wil               203 drivers/net/wireless/ath/wil6210/fw_inc.c 			   wil->num_of_brd_entries);
wil               210 drivers/net/wireless/ath/wil6210/fw_inc.c fw_handle_concurrency(struct wil6210_priv *wil, const void *data,
wil               220 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "concurrency record too short: %zu\n", size);
wil               241 drivers/net/wireless/ath/wil6210/fw_inc.c 	return wil_cfg80211_iface_combinations_from_fw(wil, rec);
wil               243 drivers/net/wireless/ath/wil6210/fw_inc.c 	wil_err_fw(wil, "concurrency record truncated\n");
wil               248 drivers/net/wireless/ath/wil6210/fw_inc.c fw_handle_comment(struct wil6210_priv *wil, const void *data,
wil               262 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_dbg_fw(wil, "magic is WIL_FW_CAPABILITIES_MAGIC\n");
wil               263 drivers/net/wireless/ath/wil6210/fw_inc.c 		rc = fw_handle_capabilities(wil, data, size);
wil               266 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_dbg_fw(wil, "magic is WIL_BRD_FILE_MAGIC\n");
wil               267 drivers/net/wireless/ath/wil6210/fw_inc.c 		rc = fw_handle_brd_file(wil, data, size);
wil               270 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_dbg_fw(wil, "magic is WIL_FW_CONCURRENCY_MAGIC\n");
wil               271 drivers/net/wireless/ath/wil6210/fw_inc.c 		rc = fw_handle_concurrency(wil, data, size);
wil               281 drivers/net/wireless/ath/wil6210/fw_inc.c static int __fw_handle_data(struct wil6210_priv *wil, const void *data,
wil               289 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "data record too short: %zu\n", size);
wil               293 drivers/net/wireless/ath/wil6210/fw_inc.c 	if (!wil_fw_addr_check(wil, &dst, addr, s, "address"))
wil               295 drivers/net/wireless/ath/wil6210/fw_inc.c 	wil_dbg_fw(wil, "write [0x%08x] <== %zu bytes\n", le32_to_cpu(addr), s);
wil               302 drivers/net/wireless/ath/wil6210/fw_inc.c static int fw_handle_data(struct wil6210_priv *wil, const void *data,
wil               307 drivers/net/wireless/ath/wil6210/fw_inc.c 	return __fw_handle_data(wil, data, size, d->addr);
wil               310 drivers/net/wireless/ath/wil6210/fw_inc.c static int fw_handle_fill(struct wil6210_priv *wil, const void *data,
wil               319 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "bad size for fill record: %zu\n", size);
wil               324 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "fill size too short: %zu\n", s);
wil               329 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "fill size not aligned: %zu\n", s);
wil               333 drivers/net/wireless/ath/wil6210/fw_inc.c 	if (!wil_fw_addr_check(wil, &dst, d->addr, s, "address"))
wil               337 drivers/net/wireless/ath/wil6210/fw_inc.c 	wil_dbg_fw(wil, "fill [0x%08x] <== 0x%08x, %zu bytes\n",
wil               345 drivers/net/wireless/ath/wil6210/fw_inc.c static int fw_handle_file_header(struct wil6210_priv *wil, const void *data,
wil               351 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "file header length incorrect: %zu\n", size);
wil               355 drivers/net/wireless/ath/wil6210/fw_inc.c 	wil_dbg_fw(wil, "new file, ver. %d, %i bytes\n",
wil               362 drivers/net/wireless/ath/wil6210/fw_inc.c 		memcpy(wil->fw_version,
wil               365 drivers/net/wireless/ath/wil6210/fw_inc.c 			   sizeof(wil->fw_version) - 1));
wil               370 drivers/net/wireless/ath/wil6210/fw_inc.c static int fw_handle_direct_write(struct wil6210_priv *wil, const void *data,
wil               378 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "record size not aligned on %zu: %zu\n",
wil               390 drivers/net/wireless/ath/wil6210/fw_inc.c 		if (!wil_fw_addr_check(wil, &dst, block[i].addr, 0, "address"))
wil               395 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_dbg_fw(wil, "write [0x%08x] <== 0x%08x "
wil               405 drivers/net/wireless/ath/wil6210/fw_inc.c static int gw_write(struct wil6210_priv *wil, void __iomem *gwa_addr,
wil               419 drivers/net/wireless/ath/wil6210/fw_inc.c 			wil_err_fw(wil, "gw timeout\n");
wil               427 drivers/net/wireless/ath/wil6210/fw_inc.c static int fw_handle_gateway_data(struct wil6210_priv *wil, const void *data,
wil               440 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "gateway record too short: %zu\n", size);
wil               445 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "gateway record data size"
wil               454 drivers/net/wireless/ath/wil6210/fw_inc.c 	wil_dbg_fw(wil, "gw write record [%3d] blocks, cmd 0x%08x\n",
wil               457 drivers/net/wireless/ath/wil6210/fw_inc.c 	if (!wil_fw_addr_check(wil, &gwa_addr, d->gateway_addr_addr, 0,
wil               459 drivers/net/wireless/ath/wil6210/fw_inc.c 	    !wil_fw_addr_check(wil, &gwa_val, d->gateway_value_addr, 0,
wil               461 drivers/net/wireless/ath/wil6210/fw_inc.c 	    !wil_fw_addr_check(wil, &gwa_cmd, d->gateway_cmd_addr, 0,
wil               463 drivers/net/wireless/ath/wil6210/fw_inc.c 	    !wil_fw_addr_check(wil, &gwa_ctl, d->gateway_ctrl_address, 0,
wil               467 drivers/net/wireless/ath/wil6210/fw_inc.c 	wil_dbg_fw(wil, "gw addresses: addr 0x%08x val 0x%08x"
wil               479 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_dbg_fw(wil, "  gw write[%3d] [0x%08x] <== 0x%08x\n",
wil               483 drivers/net/wireless/ath/wil6210/fw_inc.c 		rc = gw_write(wil, gwa_addr, gwa_cmd, gwa_ctl, gw_cmd, a);
wil               491 drivers/net/wireless/ath/wil6210/fw_inc.c static int fw_handle_gateway_data4(struct wil6210_priv *wil, const void *data,
wil               504 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "gateway4 record too short: %zu\n", size);
wil               509 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "gateway4 record data size"
wil               518 drivers/net/wireless/ath/wil6210/fw_inc.c 	wil_dbg_fw(wil, "gw4 write record [%3d] blocks, cmd 0x%08x\n",
wil               521 drivers/net/wireless/ath/wil6210/fw_inc.c 	if (!wil_fw_addr_check(wil, &gwa_addr, d->gateway_addr_addr, 0,
wil               525 drivers/net/wireless/ath/wil6210/fw_inc.c 		if (!wil_fw_addr_check(wil, &gwa_val[k],
wil               529 drivers/net/wireless/ath/wil6210/fw_inc.c 	if (!wil_fw_addr_check(wil, &gwa_cmd, d->gateway_cmd_addr, 0,
wil               531 drivers/net/wireless/ath/wil6210/fw_inc.c 	    !wil_fw_addr_check(wil, &gwa_ctl, d->gateway_ctrl_address, 0,
wil               535 drivers/net/wireless/ath/wil6210/fw_inc.c 	wil_dbg_fw(wil, "gw4 addresses: addr 0x%08x cmd 0x%08x ctl 0x%08x\n",
wil               551 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_dbg_fw(wil, "  gw4 write[%3d] [0x%08x] <==\n", i, a);
wil               557 drivers/net/wireless/ath/wil6210/fw_inc.c 		rc = gw_write(wil, gwa_addr, gwa_cmd, gwa_ctl, gw_cmd, a);
wil               567 drivers/net/wireless/ath/wil6210/fw_inc.c 	int (*load_handler)(struct wil6210_priv *wil, const void *data,
wil               569 drivers/net/wireless/ath/wil6210/fw_inc.c 	int (*parse_handler)(struct wil6210_priv *wil, const void *data,
wil               585 drivers/net/wireless/ath/wil6210/fw_inc.c static int wil_fw_handle_record(struct wil6210_priv *wil, int type,
wil               594 drivers/net/wireless/ath/wil6210/fw_inc.c 					wil, data, size) :
wil               596 drivers/net/wireless/ath/wil6210/fw_inc.c 					wil, data, size);
wil               598 drivers/net/wireless/ath/wil6210/fw_inc.c 	wil_err_fw(wil, "unknown record type: %d\n", type);
wil               610 drivers/net/wireless/ath/wil6210/fw_inc.c static int wil_fw_process(struct wil6210_priv *wil, const void *data,
wil               625 drivers/net/wireless/ath/wil6210/fw_inc.c 			wil_err_fw(wil, "unaligned record size: %zu\n",
wil               629 drivers/net/wireless/ath/wil6210/fw_inc.c 		rc = wil_fw_handle_record(wil, le16_to_cpu(hdr->type),
wil               635 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "unprocessed bytes: %zu\n", size);
wil               637 drivers/net/wireless/ath/wil6210/fw_inc.c 			wil_err_fw(wil, "Stop at offset %ld"
wil               657 drivers/net/wireless/ath/wil6210/fw_inc.c int wil_request_firmware(struct wil6210_priv *wil, const char *name,
wil               665 drivers/net/wireless/ath/wil6210/fw_inc.c 	rc = request_firmware(&fw, name, wil_to_dev(wil));
wil               667 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "Failed to load firmware %s rc %d\n", name, rc);
wil               670 drivers/net/wireless/ath/wil6210/fw_inc.c 	wil_dbg_fw(wil, "Loading <%s>, %zu bytes\n", name, fw->size);
wil               673 drivers/net/wireless/ath/wil6210/fw_inc.c 	wil->num_of_brd_entries = 0;
wil               674 drivers/net/wireless/ath/wil6210/fw_inc.c 	kfree(wil->brd_info);
wil               675 drivers/net/wireless/ath/wil6210/fw_inc.c 	wil->brd_info = NULL;
wil               678 drivers/net/wireless/ath/wil6210/fw_inc.c 		rc1 = wil_fw_verify(wil, d, sz);
wil               683 drivers/net/wireless/ath/wil6210/fw_inc.c 		rc = wil_fw_process(wil, d, rc1, load);
wil               691 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "Loading <%s> failed, rc %d\n", name, rc);
wil               700 drivers/net/wireless/ath/wil6210/fw_inc.c static int wil_brd_process(struct wil6210_priv *wil, const void *data,
wil               726 drivers/net/wireless/ath/wil6210/fw_inc.c 		if (i >= wil->num_of_brd_entries) {
wil               727 drivers/net/wireless/ath/wil6210/fw_inc.c 			wil_err_fw(wil,
wil               729 drivers/net/wireless/ath/wil6210/fw_inc.c 				   i, wil->num_of_brd_entries);
wil               735 drivers/net/wireless/ath/wil6210/fw_inc.c 		if (wil->brd_info[i].file_max_size &&
wil               736 drivers/net/wireless/ath/wil6210/fw_inc.c 		    hdr_sz > wil->brd_info[i].file_max_size)
wil               741 drivers/net/wireless/ath/wil6210/fw_inc.c 			wil_err_fw(wil, "unaligned record size: %zu\n",
wil               747 drivers/net/wireless/ath/wil6210/fw_inc.c 			wil_err_fw(wil,
wil               753 drivers/net/wireless/ath/wil6210/fw_inc.c 			wil_err_fw(wil, "data record too short: %zu\n", hdr_sz);
wil               757 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_dbg_fw(wil,
wil               759 drivers/net/wireless/ath/wil6210/fw_inc.c 			   i, wil->brd_info[i].file_addr,
wil               760 drivers/net/wireless/ath/wil6210/fw_inc.c 			   wil->brd_info[i].file_max_size);
wil               762 drivers/net/wireless/ath/wil6210/fw_inc.c 		rc = __fw_handle_data(wil, &hdr[1], hdr_sz,
wil               763 drivers/net/wireless/ath/wil6210/fw_inc.c 				      cpu_to_le32(wil->brd_info[i].file_addr));
wil               769 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "unprocessed bytes: %zu\n", size);
wil               771 drivers/net/wireless/ath/wil6210/fw_inc.c 			wil_err_fw(wil,
wil               792 drivers/net/wireless/ath/wil6210/fw_inc.c int wil_request_board(struct wil6210_priv *wil, const char *name)
wil               797 drivers/net/wireless/ath/wil6210/fw_inc.c 	rc = request_firmware(&brd, name, wil_to_dev(wil));
wil               799 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "Failed to load brd %s\n", name);
wil               802 drivers/net/wireless/ath/wil6210/fw_inc.c 	wil_dbg_fw(wil, "Loading <%s>, %zu bytes\n", name, brd->size);
wil               805 drivers/net/wireless/ath/wil6210/fw_inc.c 	dlen = wil_fw_verify(wil, brd->data, brd->size);
wil               812 drivers/net/wireless/ath/wil6210/fw_inc.c 	rc = wil_brd_process(wil, brd->data, dlen);
wil               817 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_err_fw(wil, "Loading <%s> failed, rc %d\n", name, rc);
wil               829 drivers/net/wireless/ath/wil6210/fw_inc.c bool wil_fw_verify_file_exists(struct wil6210_priv *wil, const char *name)
wil               834 drivers/net/wireless/ath/wil6210/fw_inc.c 	rc = request_firmware(&fw, name, wil_to_dev(wil));
wil               838 drivers/net/wireless/ath/wil6210/fw_inc.c 		wil_dbg_fw(wil, "<%s> not available: %d\n", name, rc);
wil                86 drivers/net/wireless/ath/wil6210/interrupt.c static void wil6210_mask_irq_tx(struct wil6210_priv *wil)
wil                88 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_EP_TX_ICR + offsetof(struct RGF_ICR, IMS),
wil                92 drivers/net/wireless/ath/wil6210/interrupt.c static void wil6210_mask_irq_tx_edma(struct wil6210_priv *wil)
wil                94 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_INT_GEN_TX_ICR + offsetof(struct RGF_ICR, IMS),
wil                98 drivers/net/wireless/ath/wil6210/interrupt.c static void wil6210_mask_irq_rx(struct wil6210_priv *wil)
wil               100 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_EP_RX_ICR + offsetof(struct RGF_ICR, IMS),
wil               104 drivers/net/wireless/ath/wil6210/interrupt.c static void wil6210_mask_irq_rx_edma(struct wil6210_priv *wil)
wil               106 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_INT_GEN_RX_ICR + offsetof(struct RGF_ICR, IMS),
wil               110 drivers/net/wireless/ath/wil6210/interrupt.c static void wil6210_mask_irq_misc(struct wil6210_priv *wil, bool mask_halp)
wil               112 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "mask_irq_misc: mask_halp(%s)\n",
wil               115 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_EP_MISC_ICR + offsetof(struct RGF_ICR, IMS),
wil               119 drivers/net/wireless/ath/wil6210/interrupt.c void wil6210_mask_halp(struct wil6210_priv *wil)
wil               121 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "mask_halp\n");
wil               123 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_EP_MISC_ICR + offsetof(struct RGF_ICR, IMS),
wil               127 drivers/net/wireless/ath/wil6210/interrupt.c static void wil6210_mask_irq_pseudo(struct wil6210_priv *wil)
wil               129 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "mask_irq_pseudo\n");
wil               131 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_PSEUDO_CAUSE_MASK_SW, WIL6210_IRQ_DISABLE);
wil               133 drivers/net/wireless/ath/wil6210/interrupt.c 	clear_bit(wil_status_irqen, wil->status);
wil               136 drivers/net/wireless/ath/wil6210/interrupt.c void wil6210_unmask_irq_tx(struct wil6210_priv *wil)
wil               138 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_EP_TX_ICR + offsetof(struct RGF_ICR, IMC),
wil               142 drivers/net/wireless/ath/wil6210/interrupt.c void wil6210_unmask_irq_tx_edma(struct wil6210_priv *wil)
wil               144 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_INT_GEN_TX_ICR + offsetof(struct RGF_ICR, IMC),
wil               148 drivers/net/wireless/ath/wil6210/interrupt.c void wil6210_unmask_irq_rx(struct wil6210_priv *wil)
wil               150 drivers/net/wireless/ath/wil6210/interrupt.c 	bool unmask_rx_htrsh = atomic_read(&wil->connected_vifs) > 0;
wil               152 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_EP_RX_ICR + offsetof(struct RGF_ICR, IMC),
wil               156 drivers/net/wireless/ath/wil6210/interrupt.c void wil6210_unmask_irq_rx_edma(struct wil6210_priv *wil)
wil               158 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_INT_GEN_RX_ICR + offsetof(struct RGF_ICR, IMC),
wil               162 drivers/net/wireless/ath/wil6210/interrupt.c static void wil6210_unmask_irq_misc(struct wil6210_priv *wil, bool unmask_halp)
wil               164 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "unmask_irq_misc: unmask_halp(%s)\n",
wil               167 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_EP_MISC_ICR + offsetof(struct RGF_ICR, IMC),
wil               171 drivers/net/wireless/ath/wil6210/interrupt.c static void wil6210_unmask_halp(struct wil6210_priv *wil)
wil               173 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "unmask_halp\n");
wil               175 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_EP_MISC_ICR + offsetof(struct RGF_ICR, IMC),
wil               179 drivers/net/wireless/ath/wil6210/interrupt.c static void wil6210_unmask_irq_pseudo(struct wil6210_priv *wil)
wil               181 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "unmask_irq_pseudo\n");
wil               183 drivers/net/wireless/ath/wil6210/interrupt.c 	set_bit(wil_status_irqen, wil->status);
wil               185 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_PSEUDO_CAUSE_MASK_SW, WIL6210_IRQ_PSEUDO_MASK);
wil               188 drivers/net/wireless/ath/wil6210/interrupt.c void wil_mask_irq(struct wil6210_priv *wil)
wil               190 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "mask_irq\n");
wil               192 drivers/net/wireless/ath/wil6210/interrupt.c 	wil6210_mask_irq_tx(wil);
wil               193 drivers/net/wireless/ath/wil6210/interrupt.c 	wil6210_mask_irq_tx_edma(wil);
wil               194 drivers/net/wireless/ath/wil6210/interrupt.c 	wil6210_mask_irq_rx(wil);
wil               195 drivers/net/wireless/ath/wil6210/interrupt.c 	wil6210_mask_irq_rx_edma(wil);
wil               196 drivers/net/wireless/ath/wil6210/interrupt.c 	wil6210_mask_irq_misc(wil, true);
wil               197 drivers/net/wireless/ath/wil6210/interrupt.c 	wil6210_mask_irq_pseudo(wil);
wil               200 drivers/net/wireless/ath/wil6210/interrupt.c void wil_unmask_irq(struct wil6210_priv *wil)
wil               202 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "unmask_irq\n");
wil               204 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_EP_RX_ICR + offsetof(struct RGF_ICR, ICC),
wil               206 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_EP_TX_ICR + offsetof(struct RGF_ICR, ICC),
wil               208 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_EP_MISC_ICR + offsetof(struct RGF_ICR, ICC),
wil               210 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_INT_GEN_TX_ICR + offsetof(struct RGF_ICR, ICC),
wil               212 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_INT_GEN_RX_ICR + offsetof(struct RGF_ICR, ICC),
wil               215 drivers/net/wireless/ath/wil6210/interrupt.c 	wil6210_unmask_irq_pseudo(wil);
wil               216 drivers/net/wireless/ath/wil6210/interrupt.c 	if (wil->use_enhanced_dma_hw) {
wil               217 drivers/net/wireless/ath/wil6210/interrupt.c 		wil6210_unmask_irq_tx_edma(wil);
wil               218 drivers/net/wireless/ath/wil6210/interrupt.c 		wil6210_unmask_irq_rx_edma(wil);
wil               220 drivers/net/wireless/ath/wil6210/interrupt.c 		wil6210_unmask_irq_tx(wil);
wil               221 drivers/net/wireless/ath/wil6210/interrupt.c 		wil6210_unmask_irq_rx(wil);
wil               223 drivers/net/wireless/ath/wil6210/interrupt.c 	wil6210_unmask_irq_misc(wil, true);
wil               226 drivers/net/wireless/ath/wil6210/interrupt.c void wil_configure_interrupt_moderation_edma(struct wil6210_priv *wil)
wil               230 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_s(wil, RGF_INT_GEN_IDLE_TIME_LIMIT, WIL_EDMA_IDLE_TIME_LIMIT_USEC);
wil               232 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_s(wil, RGF_INT_GEN_TIME_UNIT_LIMIT, WIL_EDMA_TIME_UNIT_CLK_CYCLES);
wil               235 drivers/net/wireless/ath/wil6210/interrupt.c 	moderation = wil->rx_max_burst_duration |
wil               237 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_INT_CTRL_INT_GEN_CFG_0, moderation);
wil               238 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_INT_CTRL_INT_GEN_CFG_1, moderation);
wil               243 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_c(wil, RGF_INT_COUNT_ON_SPECIAL_EVT, 0x1FE);
wil               244 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_s(wil, RGF_INT_COUNT_ON_SPECIAL_EVT, 0x1);
wil               247 drivers/net/wireless/ath/wil6210/interrupt.c void wil_configure_interrupt_moderation(struct wil6210_priv *wil)
wil               249 drivers/net/wireless/ath/wil6210/interrupt.c 	struct wireless_dev *wdev = wil->main_ndev->ieee80211_ptr;
wil               251 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "configure_interrupt_moderation\n");
wil               260 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_ITR_TX_CNT_CTL, BIT_DMA_ITR_TX_CNT_CTL_CLR);
wil               261 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_ITR_TX_CNT_TRSH, wil->tx_max_burst_duration);
wil               262 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_info(wil, "set ITR_TX_CNT_TRSH = %d usec\n",
wil               263 drivers/net/wireless/ath/wil6210/interrupt.c 		 wil->tx_max_burst_duration);
wil               265 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_ITR_TX_CNT_CTL,
wil               269 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_ITR_TX_IDL_CNT_CTL, BIT_DMA_ITR_TX_IDL_CNT_CTL_CLR);
wil               270 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_ITR_TX_IDL_CNT_TRSH, wil->tx_interframe_timeout);
wil               271 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_info(wil, "set ITR_TX_IDL_CNT_TRSH = %d usec\n",
wil               272 drivers/net/wireless/ath/wil6210/interrupt.c 		 wil->tx_interframe_timeout);
wil               274 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_ITR_TX_IDL_CNT_CTL, BIT_DMA_ITR_TX_IDL_CNT_CTL_EN |
wil               278 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_ITR_RX_CNT_CTL, BIT_DMA_ITR_RX_CNT_CTL_CLR);
wil               279 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_ITR_RX_CNT_TRSH, wil->rx_max_burst_duration);
wil               280 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_info(wil, "set ITR_RX_CNT_TRSH = %d usec\n",
wil               281 drivers/net/wireless/ath/wil6210/interrupt.c 		 wil->rx_max_burst_duration);
wil               283 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_ITR_RX_CNT_CTL,
wil               287 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_ITR_RX_IDL_CNT_CTL, BIT_DMA_ITR_RX_IDL_CNT_CTL_CLR);
wil               288 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_ITR_RX_IDL_CNT_TRSH, wil->rx_interframe_timeout);
wil               289 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_info(wil, "set ITR_RX_IDL_CNT_TRSH = %d usec\n",
wil               290 drivers/net/wireless/ath/wil6210/interrupt.c 		 wil->rx_interframe_timeout);
wil               292 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_ITR_RX_IDL_CNT_CTL, BIT_DMA_ITR_RX_IDL_CNT_CTL_EN |
wil               298 drivers/net/wireless/ath/wil6210/interrupt.c 	struct wil6210_priv *wil = cookie;
wil               302 drivers/net/wireless/ath/wil6210/interrupt.c 	wil6210_mask_irq_rx(wil);
wil               304 drivers/net/wireless/ath/wil6210/interrupt.c 	isr = wil_ioread32_and_clear(wil->csr +
wil               309 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "ISR RX 0x%08x\n", isr);
wil               312 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_err_ratelimited(wil, "spurious IRQ: RX\n");
wil               313 drivers/net/wireless/ath/wil6210/interrupt.c 		wil6210_unmask_irq_rx(wil);
wil               325 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_dbg_irq(wil, "RX done / RX_HTRSH received, ISR (0x%x)\n",
wil               330 drivers/net/wireless/ath/wil6210/interrupt.c 		if (likely(test_bit(wil_status_fwready, wil->status))) {
wil               331 drivers/net/wireless/ath/wil6210/interrupt.c 			if (likely(test_bit(wil_status_napi_en, wil->status))) {
wil               332 drivers/net/wireless/ath/wil6210/interrupt.c 				wil_dbg_txrx(wil, "NAPI(Rx) schedule\n");
wil               334 drivers/net/wireless/ath/wil6210/interrupt.c 				napi_schedule(&wil->napi_rx);
wil               337 drivers/net/wireless/ath/wil6210/interrupt.c 					wil,
wil               341 drivers/net/wireless/ath/wil6210/interrupt.c 			wil_err_ratelimited(wil, "Got Rx interrupt while in reset\n");
wil               346 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_err(wil, "un-handled RX ISR bits 0x%08x\n", isr);
wil               350 drivers/net/wireless/ath/wil6210/interrupt.c 	atomic_inc(&wil->isr_count_rx);
wil               353 drivers/net/wireless/ath/wil6210/interrupt.c 		wil6210_unmask_irq_rx(wil);
wil               360 drivers/net/wireless/ath/wil6210/interrupt.c 	struct wil6210_priv *wil = cookie;
wil               364 drivers/net/wireless/ath/wil6210/interrupt.c 	wil6210_mask_irq_rx_edma(wil);
wil               366 drivers/net/wireless/ath/wil6210/interrupt.c 	isr = wil_ioread32_and_clear(wil->csr +
wil               371 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "ISR RX 0x%08x\n", isr);
wil               374 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_err(wil, "spurious IRQ: RX\n");
wil               375 drivers/net/wireless/ath/wil6210/interrupt.c 		wil6210_unmask_irq_rx_edma(wil);
wil               380 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_dbg_irq(wil, "RX status ring\n");
wil               382 drivers/net/wireless/ath/wil6210/interrupt.c 		if (likely(test_bit(wil_status_fwready, wil->status))) {
wil               383 drivers/net/wireless/ath/wil6210/interrupt.c 			if (likely(test_bit(wil_status_napi_en, wil->status))) {
wil               384 drivers/net/wireless/ath/wil6210/interrupt.c 				wil_dbg_txrx(wil, "NAPI(Rx) schedule\n");
wil               386 drivers/net/wireless/ath/wil6210/interrupt.c 				napi_schedule(&wil->napi_rx);
wil               388 drivers/net/wireless/ath/wil6210/interrupt.c 				wil_err(wil,
wil               392 drivers/net/wireless/ath/wil6210/interrupt.c 			wil_err(wil, "Got Rx interrupt while in reset\n");
wil               397 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_err(wil, "un-handled RX ISR bits 0x%08x\n", isr);
wil               401 drivers/net/wireless/ath/wil6210/interrupt.c 	atomic_inc(&wil->isr_count_rx);
wil               404 drivers/net/wireless/ath/wil6210/interrupt.c 		wil6210_unmask_irq_rx_edma(wil);
wil               411 drivers/net/wireless/ath/wil6210/interrupt.c 	struct wil6210_priv *wil = cookie;
wil               415 drivers/net/wireless/ath/wil6210/interrupt.c 	wil6210_mask_irq_tx_edma(wil);
wil               417 drivers/net/wireless/ath/wil6210/interrupt.c 	isr = wil_ioread32_and_clear(wil->csr +
wil               422 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "ISR TX 0x%08x\n", isr);
wil               425 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_err(wil, "spurious IRQ: TX\n");
wil               426 drivers/net/wireless/ath/wil6210/interrupt.c 		wil6210_unmask_irq_tx_edma(wil);
wil               431 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_dbg_irq(wil, "TX status ring\n");
wil               433 drivers/net/wireless/ath/wil6210/interrupt.c 		if (likely(test_bit(wil_status_fwready, wil->status))) {
wil               434 drivers/net/wireless/ath/wil6210/interrupt.c 			wil_dbg_txrx(wil, "NAPI(Tx) schedule\n");
wil               436 drivers/net/wireless/ath/wil6210/interrupt.c 			napi_schedule(&wil->napi_tx);
wil               438 drivers/net/wireless/ath/wil6210/interrupt.c 			wil_err(wil, "Got Tx status ring IRQ while in reset\n");
wil               443 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_err(wil, "un-handled TX ISR bits 0x%08x\n", isr);
wil               447 drivers/net/wireless/ath/wil6210/interrupt.c 	atomic_inc(&wil->isr_count_tx);
wil               450 drivers/net/wireless/ath/wil6210/interrupt.c 		wil6210_unmask_irq_tx_edma(wil);
wil               457 drivers/net/wireless/ath/wil6210/interrupt.c 	struct wil6210_priv *wil = cookie;
wil               461 drivers/net/wireless/ath/wil6210/interrupt.c 	wil6210_mask_irq_tx(wil);
wil               463 drivers/net/wireless/ath/wil6210/interrupt.c 	isr = wil_ioread32_and_clear(wil->csr +
wil               468 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "ISR TX 0x%08x\n", isr);
wil               471 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_err_ratelimited(wil, "spurious IRQ: TX\n");
wil               472 drivers/net/wireless/ath/wil6210/interrupt.c 		wil6210_unmask_irq_tx(wil);
wil               477 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_dbg_irq(wil, "TX done\n");
wil               481 drivers/net/wireless/ath/wil6210/interrupt.c 		if (likely(test_bit(wil_status_fwready, wil->status))) {
wil               482 drivers/net/wireless/ath/wil6210/interrupt.c 			wil_dbg_txrx(wil, "NAPI(Tx) schedule\n");
wil               484 drivers/net/wireless/ath/wil6210/interrupt.c 			napi_schedule(&wil->napi_tx);
wil               486 drivers/net/wireless/ath/wil6210/interrupt.c 			wil_err_ratelimited(wil, "Got Tx interrupt while in reset\n");
wil               491 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_err_ratelimited(wil, "un-handled TX ISR bits 0x%08x\n",
wil               496 drivers/net/wireless/ath/wil6210/interrupt.c 	atomic_inc(&wil->isr_count_tx);
wil               499 drivers/net/wireless/ath/wil6210/interrupt.c 		wil6210_unmask_irq_tx(wil);
wil               504 drivers/net/wireless/ath/wil6210/interrupt.c static void wil_notify_fw_error(struct wil6210_priv *wil)
wil               506 drivers/net/wireless/ath/wil6210/interrupt.c 	struct device *dev = &wil->main_ndev->dev;
wil               512 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_err(wil, "Notify about firmware error\n");
wil               516 drivers/net/wireless/ath/wil6210/interrupt.c static void wil_cache_mbox_regs(struct wil6210_priv *wil)
wil               519 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_memcpy_fromio_32(&wil->mbox_ctl, wil->csr + HOST_MBOX,
wil               521 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_mbox_ring_le2cpus(&wil->mbox_ctl.rx);
wil               522 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_mbox_ring_le2cpus(&wil->mbox_ctl.tx);
wil               525 drivers/net/wireless/ath/wil6210/interrupt.c static bool wil_validate_mbox_regs(struct wil6210_priv *wil)
wil               530 drivers/net/wireless/ath/wil6210/interrupt.c 	if (wil->mbox_ctl.rx.entry_size < min_size) {
wil               531 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_err(wil, "rx mbox entry too small (%d)\n",
wil               532 drivers/net/wireless/ath/wil6210/interrupt.c 			wil->mbox_ctl.rx.entry_size);
wil               535 drivers/net/wireless/ath/wil6210/interrupt.c 	if (wil->mbox_ctl.tx.entry_size < min_size) {
wil               536 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_err(wil, "tx mbox entry too small (%d)\n",
wil               537 drivers/net/wireless/ath/wil6210/interrupt.c 			wil->mbox_ctl.tx.entry_size);
wil               546 drivers/net/wireless/ath/wil6210/interrupt.c 	struct wil6210_priv *wil = cookie;
wil               549 drivers/net/wireless/ath/wil6210/interrupt.c 	wil6210_mask_irq_misc(wil, false);
wil               551 drivers/net/wireless/ath/wil6210/interrupt.c 	isr = wil_ioread32_and_clear(wil->csr +
wil               556 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "ISR MISC 0x%08x\n", isr);
wil               559 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_err(wil, "spurious IRQ: MISC\n");
wil               560 drivers/net/wireless/ath/wil6210/interrupt.c 		wil6210_unmask_irq_misc(wil, false);
wil               565 drivers/net/wireless/ath/wil6210/interrupt.c 		u32 fw_assert_code = wil_r(wil, wil->rgf_fw_assert_code_addr);
wil               567 drivers/net/wireless/ath/wil6210/interrupt.c 			wil_r(wil, wil->rgf_ucode_assert_code_addr);
wil               569 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_err(wil,
wil               572 drivers/net/wireless/ath/wil6210/interrupt.c 		clear_bit(wil_status_fwready, wil->status);
wil               581 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_dbg_irq(wil, "IRQ: FW ready\n");
wil               582 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_cache_mbox_regs(wil);
wil               583 drivers/net/wireless/ath/wil6210/interrupt.c 		if (wil_validate_mbox_regs(wil))
wil               584 drivers/net/wireless/ath/wil6210/interrupt.c 			set_bit(wil_status_mbox_ready, wil->status);
wil               594 drivers/net/wireless/ath/wil6210/interrupt.c 		if (wil->halp.handle_icr) {
wil               596 drivers/net/wireless/ath/wil6210/interrupt.c 			wil->halp.handle_icr = false;
wil               597 drivers/net/wireless/ath/wil6210/interrupt.c 			wil_dbg_irq(wil, "irq_misc: HALP IRQ invoked\n");
wil               598 drivers/net/wireless/ath/wil6210/interrupt.c 			wil6210_mask_irq_misc(wil, true);
wil               599 drivers/net/wireless/ath/wil6210/interrupt.c 			complete(&wil->halp.comp);
wil               603 drivers/net/wireless/ath/wil6210/interrupt.c 	wil->isr_misc = isr;
wil               608 drivers/net/wireless/ath/wil6210/interrupt.c 		wil6210_unmask_irq_misc(wil, false);
wil               615 drivers/net/wireless/ath/wil6210/interrupt.c 	struct wil6210_priv *wil = cookie;
wil               616 drivers/net/wireless/ath/wil6210/interrupt.c 	u32 isr = wil->isr_misc;
wil               619 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "Thread ISR MISC 0x%08x\n", isr);
wil               622 drivers/net/wireless/ath/wil6210/interrupt.c 		wil->recovery_state = fw_recovery_pending;
wil               623 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_fw_core_dump(wil);
wil               624 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_notify_fw_error(wil);
wil               626 drivers/net/wireless/ath/wil6210/interrupt.c 		if (wil->platform_ops.notify) {
wil               627 drivers/net/wireless/ath/wil6210/interrupt.c 			wil_err(wil, "notify platform driver about FW crash");
wil               628 drivers/net/wireless/ath/wil6210/interrupt.c 			wil->platform_ops.notify(wil->platform_handle,
wil               631 drivers/net/wireless/ath/wil6210/interrupt.c 			wil_fw_error_recovery(wil);
wil               635 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_dbg_irq(wil, "MBOX event\n");
wil               636 drivers/net/wireless/ath/wil6210/interrupt.c 		wmi_recv_cmd(wil);
wil               641 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_dbg_irq(wil, "un-handled MISC ISR bits 0x%08x\n", isr);
wil               643 drivers/net/wireless/ath/wil6210/interrupt.c 	wil->isr_misc = 0;
wil               645 drivers/net/wireless/ath/wil6210/interrupt.c 	wil6210_unmask_irq_misc(wil, false);
wil               650 drivers/net/wireless/ath/wil6210/interrupt.c 	if (wil->n_msi == 3 && wil->suspend_resp_rcvd) {
wil               651 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_dbg_irq(wil, "set suspend_resp_comp to true\n");
wil               652 drivers/net/wireless/ath/wil6210/interrupt.c 		wil->suspend_resp_comp = true;
wil               653 drivers/net/wireless/ath/wil6210/interrupt.c 		wake_up_interruptible(&wil->wq);
wil               664 drivers/net/wireless/ath/wil6210/interrupt.c 	struct wil6210_priv *wil = cookie;
wil               666 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "Thread IRQ\n");
wil               668 drivers/net/wireless/ath/wil6210/interrupt.c 	if (wil->isr_misc)
wil               671 drivers/net/wireless/ath/wil6210/interrupt.c 	wil6210_unmask_irq_pseudo(wil);
wil               673 drivers/net/wireless/ath/wil6210/interrupt.c 	if (wil->suspend_resp_rcvd) {
wil               674 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_dbg_irq(wil, "set suspend_resp_comp to true\n");
wil               675 drivers/net/wireless/ath/wil6210/interrupt.c 		wil->suspend_resp_comp = true;
wil               676 drivers/net/wireless/ath/wil6210/interrupt.c 		wake_up_interruptible(&wil->wq);
wil               688 drivers/net/wireless/ath/wil6210/interrupt.c static int wil6210_debug_irq_mask(struct wil6210_priv *wil, u32 pseudo_cause)
wil               694 drivers/net/wireless/ath/wil6210/interrupt.c 	if (!test_bit(wil_status_irqen, wil->status)) {
wil               695 drivers/net/wireless/ath/wil6210/interrupt.c 		if (wil->use_enhanced_dma_hw) {
wil               696 drivers/net/wireless/ath/wil6210/interrupt.c 			icm_rx = wil_ioread32_and_clear(wil->csr +
wil               699 drivers/net/wireless/ath/wil6210/interrupt.c 			icr_rx = wil_ioread32_and_clear(wil->csr +
wil               702 drivers/net/wireless/ath/wil6210/interrupt.c 			imv_rx = wil_r(wil, RGF_INT_GEN_RX_ICR +
wil               704 drivers/net/wireless/ath/wil6210/interrupt.c 			icm_tx = wil_ioread32_and_clear(wil->csr +
wil               707 drivers/net/wireless/ath/wil6210/interrupt.c 			icr_tx = wil_ioread32_and_clear(wil->csr +
wil               710 drivers/net/wireless/ath/wil6210/interrupt.c 			imv_tx = wil_r(wil, RGF_INT_GEN_TX_ICR +
wil               713 drivers/net/wireless/ath/wil6210/interrupt.c 			icm_rx = wil_ioread32_and_clear(wil->csr +
wil               716 drivers/net/wireless/ath/wil6210/interrupt.c 			icr_rx = wil_ioread32_and_clear(wil->csr +
wil               719 drivers/net/wireless/ath/wil6210/interrupt.c 			imv_rx = wil_r(wil, RGF_DMA_EP_RX_ICR +
wil               721 drivers/net/wireless/ath/wil6210/interrupt.c 			icm_tx = wil_ioread32_and_clear(wil->csr +
wil               724 drivers/net/wireless/ath/wil6210/interrupt.c 			icr_tx = wil_ioread32_and_clear(wil->csr +
wil               727 drivers/net/wireless/ath/wil6210/interrupt.c 			imv_tx = wil_r(wil, RGF_DMA_EP_TX_ICR +
wil               730 drivers/net/wireless/ath/wil6210/interrupt.c 		icm_misc = wil_ioread32_and_clear(wil->csr +
wil               733 drivers/net/wireless/ath/wil6210/interrupt.c 		icr_misc = wil_ioread32_and_clear(wil->csr +
wil               736 drivers/net/wireless/ath/wil6210/interrupt.c 		imv_misc = wil_r(wil, RGF_DMA_EP_MISC_ICR +
wil               745 drivers/net/wireless/ath/wil6210/interrupt.c 		wil_err(wil, "IRQ when it should be masked: pseudo 0x%08x\n"
wil               763 drivers/net/wireless/ath/wil6210/interrupt.c 	struct wil6210_priv *wil = cookie;
wil               764 drivers/net/wireless/ath/wil6210/interrupt.c 	u32 pseudo_cause = wil_r(wil, RGF_DMA_PSEUDO_CAUSE);
wil               773 drivers/net/wireless/ath/wil6210/interrupt.c 	if (unlikely(wil6210_debug_irq_mask(wil, pseudo_cause)))
wil               777 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "Pseudo IRQ 0x%08x\n", pseudo_cause);
wil               779 drivers/net/wireless/ath/wil6210/interrupt.c 	wil6210_mask_irq_pseudo(wil);
wil               795 drivers/net/wireless/ath/wil6210/interrupt.c 	    (wil->txrx_ops.irq_rx(irq, cookie) == IRQ_WAKE_THREAD))
wil               799 drivers/net/wireless/ath/wil6210/interrupt.c 	    (wil->txrx_ops.irq_tx(irq, cookie) == IRQ_WAKE_THREAD))
wil               808 drivers/net/wireless/ath/wil6210/interrupt.c 		wil6210_unmask_irq_pseudo(wil);
wil               813 drivers/net/wireless/ath/wil6210/interrupt.c static int wil6210_request_3msi(struct wil6210_priv *wil, int irq)
wil               822 drivers/net/wireless/ath/wil6210/interrupt.c 	rc = request_irq(irq, wil->txrx_ops.irq_tx, IRQF_SHARED,
wil               823 drivers/net/wireless/ath/wil6210/interrupt.c 			 WIL_NAME "_tx", wil);
wil               827 drivers/net/wireless/ath/wil6210/interrupt.c 	rc = request_irq(irq + 1, wil->txrx_ops.irq_rx, IRQF_SHARED,
wil               828 drivers/net/wireless/ath/wil6210/interrupt.c 			 WIL_NAME "_rx", wil);
wil               834 drivers/net/wireless/ath/wil6210/interrupt.c 				  IRQF_SHARED, WIL_NAME "_misc", wil);
wil               840 drivers/net/wireless/ath/wil6210/interrupt.c 	free_irq(irq + 1, wil);
wil               842 drivers/net/wireless/ath/wil6210/interrupt.c 	free_irq(irq, wil);
wil               855 drivers/net/wireless/ath/wil6210/interrupt.c void wil6210_clear_irq(struct wil6210_priv *wil)
wil               857 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_clear32(wil->csr + HOSTADDR(RGF_DMA_EP_RX_ICR) +
wil               859 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_clear32(wil->csr + HOSTADDR(RGF_DMA_EP_TX_ICR) +
wil               861 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_clear32(wil->csr + HOSTADDR(RGF_INT_GEN_RX_ICR) +
wil               863 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_clear32(wil->csr + HOSTADDR(RGF_INT_GEN_TX_ICR) +
wil               865 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_clear32(wil->csr + HOSTADDR(RGF_DMA_EP_MISC_ICR) +
wil               870 drivers/net/wireless/ath/wil6210/interrupt.c void wil6210_set_halp(struct wil6210_priv *wil)
wil               872 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "set_halp\n");
wil               874 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_EP_MISC_ICR + offsetof(struct RGF_ICR, ICS),
wil               878 drivers/net/wireless/ath/wil6210/interrupt.c void wil6210_clear_halp(struct wil6210_priv *wil)
wil               880 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_irq(wil, "clear_halp\n");
wil               882 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_w(wil, RGF_DMA_EP_MISC_ICR + offsetof(struct RGF_ICR, ICR),
wil               884 drivers/net/wireless/ath/wil6210/interrupt.c 	wil6210_unmask_halp(wil);
wil               887 drivers/net/wireless/ath/wil6210/interrupt.c int wil6210_init_irq(struct wil6210_priv *wil, int irq)
wil               891 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_misc(wil, "init_irq: %s, n_msi=%d\n",
wil               892 drivers/net/wireless/ath/wil6210/interrupt.c 		     wil->n_msi ? "MSI" : "INTx", wil->n_msi);
wil               894 drivers/net/wireless/ath/wil6210/interrupt.c 	if (wil->use_enhanced_dma_hw) {
wil               895 drivers/net/wireless/ath/wil6210/interrupt.c 		wil->txrx_ops.irq_tx = wil6210_irq_tx_edma;
wil               896 drivers/net/wireless/ath/wil6210/interrupt.c 		wil->txrx_ops.irq_rx = wil6210_irq_rx_edma;
wil               898 drivers/net/wireless/ath/wil6210/interrupt.c 		wil->txrx_ops.irq_tx = wil6210_irq_tx;
wil               899 drivers/net/wireless/ath/wil6210/interrupt.c 		wil->txrx_ops.irq_rx = wil6210_irq_rx;
wil               902 drivers/net/wireless/ath/wil6210/interrupt.c 	if (wil->n_msi == 3)
wil               903 drivers/net/wireless/ath/wil6210/interrupt.c 		rc = wil6210_request_3msi(wil, irq);
wil               907 drivers/net/wireless/ath/wil6210/interrupt.c 					  wil->n_msi ? 0 : IRQF_SHARED,
wil               908 drivers/net/wireless/ath/wil6210/interrupt.c 					  WIL_NAME, wil);
wil               912 drivers/net/wireless/ath/wil6210/interrupt.c void wil6210_fini_irq(struct wil6210_priv *wil, int irq)
wil               914 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_dbg_misc(wil, "fini_irq:\n");
wil               916 drivers/net/wireless/ath/wil6210/interrupt.c 	wil_mask_irq(wil);
wil               917 drivers/net/wireless/ath/wil6210/interrupt.c 	free_irq(irq, wil);
wil               918 drivers/net/wireless/ath/wil6210/interrupt.c 	if (wil->n_msi == 3) {
wil               919 drivers/net/wireless/ath/wil6210/interrupt.c 		free_irq(irq + 1, wil);
wil               920 drivers/net/wireless/ath/wil6210/interrupt.c 		free_irq(irq + 2, wil);
wil               190 drivers/net/wireless/ath/wil6210/main.c int wil_mem_access_lock(struct wil6210_priv *wil)
wil               192 drivers/net/wireless/ath/wil6210/main.c 	if (!down_read_trylock(&wil->mem_lock))
wil               195 drivers/net/wireless/ath/wil6210/main.c 	if (test_bit(wil_status_suspending, wil->status) ||
wil               196 drivers/net/wireless/ath/wil6210/main.c 	    test_bit(wil_status_suspended, wil->status)) {
wil               197 drivers/net/wireless/ath/wil6210/main.c 		up_read(&wil->mem_lock);
wil               204 drivers/net/wireless/ath/wil6210/main.c void wil_mem_access_unlock(struct wil6210_priv *wil)
wil               206 drivers/net/wireless/ath/wil6210/main.c 	up_read(&wil->mem_lock);
wil               209 drivers/net/wireless/ath/wil6210/main.c static void wil_ring_fini_tx(struct wil6210_priv *wil, int id)
wil               211 drivers/net/wireless/ath/wil6210/main.c 	struct wil_ring *ring = &wil->ring_tx[id];
wil               212 drivers/net/wireless/ath/wil6210/main.c 	struct wil_ring_tx_data *txdata = &wil->ring_tx_data[id];
wil               214 drivers/net/wireless/ath/wil6210/main.c 	lockdep_assert_held(&wil->mutex);
wil               219 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "vring_fini_tx: id=%d\n", id);
wil               234 drivers/net/wireless/ath/wil6210/main.c 	if (test_bit(wil_status_napi_en, wil->status))
wil               235 drivers/net/wireless/ath/wil6210/main.c 		napi_synchronize(&wil->napi_tx);
wil               237 drivers/net/wireless/ath/wil6210/main.c 	wil->txrx_ops.ring_fini_tx(wil, ring);
wil               240 drivers/net/wireless/ath/wil6210/main.c static bool wil_vif_is_connected(struct wil6210_priv *wil, u8 mid)
wil               244 drivers/net/wireless/ath/wil6210/main.c 	for (i = 0; i < wil->max_assoc_sta; i++) {
wil               245 drivers/net/wireless/ath/wil6210/main.c 		if (wil->sta[i].mid == mid &&
wil               246 drivers/net/wireless/ath/wil6210/main.c 		    wil->sta[i].status == wil_sta_connected)
wil               258 drivers/net/wireless/ath/wil6210/main.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               261 drivers/net/wireless/ath/wil6210/main.c 	struct wil_sta_info *sta = &wil->sta[cid];
wil               262 drivers/net/wireless/ath/wil6210/main.c 	int min_ring_id = wil_get_min_tx_ring_id(wil);
wil               265 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil,
wil               271 drivers/net/wireless/ath/wil6210/main.c 			wil_err(wil, "STA MID mismatch with VIF MID(%d)\n",
wil               295 drivers/net/wireless/ath/wil6210/main.c 		wil_tid_ampdu_rx_free(wil, r);
wil               303 drivers/net/wireless/ath/wil6210/main.c 	for (i = min_ring_id; i < ARRAY_SIZE(wil->ring_tx); i++) {
wil               304 drivers/net/wireless/ath/wil6210/main.c 		if (wil->ring2cid_tid[i][0] == cid)
wil               305 drivers/net/wireless/ath/wil6210/main.c 			wil_ring_fini_tx(wil, i);
wil               315 drivers/net/wireless/ath/wil6210/main.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               324 drivers/net/wireless/ath/wil6210/main.c 	wil_info(wil, "disconnect_complete: bssid=%pM, reason=%d\n",
wil               339 drivers/net/wireless/ath/wil6210/main.c 		cid = wil_find_cid(wil, vif->mid, bssid);
wil               340 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil,
wil               343 drivers/net/wireless/ath/wil6210/main.c 		if (wil_cid_valid(wil, cid)) /* disconnect 1 peer */
wil               346 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil, "Disconnect complete all\n");
wil               347 drivers/net/wireless/ath/wil6210/main.c 		for (cid = 0; cid < wil->max_assoc_sta; cid++)
wil               356 drivers/net/wireless/ath/wil6210/main.c 		wil_update_net_queues_bh(wil, vif, NULL, true);
wil               358 drivers/net/wireless/ath/wil6210/main.c 		if (!wil_has_other_active_ifaces(wil, ndev, false, true))
wil               359 drivers/net/wireless/ath/wil6210/main.c 			wil6210_bus_request(wil, WIL_DEFAULT_BUS_REQUEST_KBPS);
wil               362 drivers/net/wireless/ath/wil6210/main.c 			atomic_dec(&wil->connected_vifs);
wil               381 drivers/net/wireless/ath/wil6210/main.c 		if (!wil_vif_is_connected(wil, vif->mid)) {
wil               382 drivers/net/wireless/ath/wil6210/main.c 			wil_update_net_queues_bh(wil, vif, NULL, true);
wil               385 drivers/net/wireless/ath/wil6210/main.c 				atomic_dec(&wil->connected_vifs);
wil               387 drivers/net/wireless/ath/wil6210/main.c 			wil_update_net_queues_bh(wil, vif, NULL, false);
wil               398 drivers/net/wireless/ath/wil6210/main.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               400 drivers/net/wireless/ath/wil6210/main.c 	struct wil_sta_info *sta = &wil->sta[cid];
wil               404 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "disconnect_cid: CID %d, MID %d, status %d\n",
wil               411 drivers/net/wireless/ath/wil6210/main.c 		wil_err(wil, "STA MID mismatch with VIF MID(%d)\n", vif->mid);
wil               428 drivers/net/wireless/ath/wil6210/main.c 	struct wil6210_priv *wil;
wil               435 drivers/net/wireless/ath/wil6210/main.c 	wil = vif_to_wil(vif);
wil               439 drivers/net/wireless/ath/wil6210/main.c 	wil_info(wil, "disconnect bssid=%pM, reason=%d\n", bssid, reason_code);
wil               453 drivers/net/wireless/ath/wil6210/main.c 		cid = wil_find_cid(wil, vif->mid, bssid);
wil               454 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil, "Disconnect %pM, CID=%d, reason=%d\n",
wil               456 drivers/net/wireless/ath/wil6210/main.c 		if (wil_cid_valid(wil, cid)) /* disconnect 1 peer */
wil               459 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil, "Disconnect all\n");
wil               460 drivers/net/wireless/ath/wil6210/main.c 		for (cid = 0; cid < wil->max_assoc_sta; cid++)
wil               475 drivers/net/wireless/ath/wil6210/main.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               493 drivers/net/wireless/ath/wil6210/main.c 	rc = wmi_call(wil, WMI_DISCONNECT_CMDID, vif->mid, NULL, 0,
wil               497 drivers/net/wireless/ath/wil6210/main.c 		wil_err(wil, "disconnect error %d\n", rc);
wil               501 drivers/net/wireless/ath/wil6210/main.c 	wil_update_net_queues_bh(wil, vif, NULL, true);
wil               508 drivers/net/wireless/ath/wil6210/main.c static int wil_wait_for_recovery(struct wil6210_priv *wil)
wil               510 drivers/net/wireless/ath/wil6210/main.c 	if (wait_event_interruptible(wil->wq, wil->recovery_state !=
wil               512 drivers/net/wireless/ath/wil6210/main.c 		wil_err(wil, "Interrupt, canceling recovery\n");
wil               515 drivers/net/wireless/ath/wil6210/main.c 	if (wil->recovery_state != fw_recovery_running) {
wil               516 drivers/net/wireless/ath/wil6210/main.c 		wil_info(wil, "Recovery cancelled\n");
wil               519 drivers/net/wireless/ath/wil6210/main.c 	wil_info(wil, "Proceed with recovery\n");
wil               523 drivers/net/wireless/ath/wil6210/main.c void wil_set_recovery_state(struct wil6210_priv *wil, int state)
wil               525 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "set_recovery_state: %d -> %d\n",
wil               526 drivers/net/wireless/ath/wil6210/main.c 		     wil->recovery_state, state);
wil               528 drivers/net/wireless/ath/wil6210/main.c 	wil->recovery_state = state;
wil               529 drivers/net/wireless/ath/wil6210/main.c 	wake_up_interruptible(&wil->wq);
wil               532 drivers/net/wireless/ath/wil6210/main.c bool wil_is_recovery_blocked(struct wil6210_priv *wil)
wil               534 drivers/net/wireless/ath/wil6210/main.c 	return no_fw_recovery && (wil->recovery_state == fw_recovery_pending);
wil               539 drivers/net/wireless/ath/wil6210/main.c 	struct wil6210_priv *wil = container_of(work, struct wil6210_priv,
wil               541 drivers/net/wireless/ath/wil6210/main.c 	struct net_device *ndev = wil->main_ndev;
wil               544 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "fw error worker\n");
wil               547 drivers/net/wireless/ath/wil6210/main.c 		wil_info(wil, "No recovery - interface is down\n");
wil               555 drivers/net/wireless/ath/wil6210/main.c 	if (time_is_after_jiffies(wil->last_fw_recovery +
wil               557 drivers/net/wireless/ath/wil6210/main.c 		wil->recovery_count++;
wil               559 drivers/net/wireless/ath/wil6210/main.c 		wil->recovery_count = 1; /* fw was alive for a long time */
wil               561 drivers/net/wireless/ath/wil6210/main.c 	if (wil->recovery_count > WIL6210_FW_RECOVERY_RETRIES) {
wil               562 drivers/net/wireless/ath/wil6210/main.c 		wil_err(wil, "too many recovery attempts (%d), giving up\n",
wil               563 drivers/net/wireless/ath/wil6210/main.c 			wil->recovery_count);
wil               567 drivers/net/wireless/ath/wil6210/main.c 	wil->last_fw_recovery = jiffies;
wil               569 drivers/net/wireless/ath/wil6210/main.c 	wil_info(wil, "fw error recovery requested (try %d)...\n",
wil               570 drivers/net/wireless/ath/wil6210/main.c 		 wil->recovery_count);
wil               572 drivers/net/wireless/ath/wil6210/main.c 		wil->recovery_state = fw_recovery_running;
wil               573 drivers/net/wireless/ath/wil6210/main.c 	if (wil_wait_for_recovery(wil) != 0)
wil               577 drivers/net/wireless/ath/wil6210/main.c 	mutex_lock(&wil->mutex);
wil               587 drivers/net/wireless/ath/wil6210/main.c 		__wil_down(wil);
wil               588 drivers/net/wireless/ath/wil6210/main.c 		__wil_up(wil);
wil               595 drivers/net/wireless/ath/wil6210/main.c 		__wil_down(wil);
wil               596 drivers/net/wireless/ath/wil6210/main.c 		__wil_up(wil);
wil               597 drivers/net/wireless/ath/wil6210/main.c 		mutex_unlock(&wil->mutex);
wil               598 drivers/net/wireless/ath/wil6210/main.c 		wil_cfg80211_ap_recovery(wil);
wil               599 drivers/net/wireless/ath/wil6210/main.c 		mutex_lock(&wil->mutex);
wil               600 drivers/net/wireless/ath/wil6210/main.c 		wil_info(wil, "... completed\n");
wil               603 drivers/net/wireless/ath/wil6210/main.c 		wil_err(wil, "No recovery - unknown interface type %d\n",
wil               608 drivers/net/wireless/ath/wil6210/main.c 	mutex_unlock(&wil->mutex);
wil               612 drivers/net/wireless/ath/wil6210/main.c static int wil_find_free_ring(struct wil6210_priv *wil)
wil               615 drivers/net/wireless/ath/wil6210/main.c 	int min_ring_id = wil_get_min_tx_ring_id(wil);
wil               618 drivers/net/wireless/ath/wil6210/main.c 		if (!wil->ring_tx[i].va)
wil               626 drivers/net/wireless/ath/wil6210/main.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               630 drivers/net/wireless/ath/wil6210/main.c 		wil_err(wil, "No connection pending\n");
wil               633 drivers/net/wireless/ath/wil6210/main.c 	ringid = wil_find_free_ring(wil);
wil               635 drivers/net/wireless/ath/wil6210/main.c 		wil_err(wil, "No free vring found\n");
wil               639 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_wmi(wil, "Configure for connection CID %d MID %d ring %d\n",
wil               642 drivers/net/wireless/ath/wil6210/main.c 	rc = wil->txrx_ops.ring_init_tx(vif, ringid, 1 << tx_ring_order,
wil               645 drivers/net/wireless/ath/wil6210/main.c 		wil_err(wil, "init TX for CID %d MID %d vring %d failed\n",
wil               654 drivers/net/wireless/ath/wil6210/main.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               657 drivers/net/wireless/ath/wil6210/main.c 	if (ri >= 0 && wil->ring_tx[ri].va)
wil               660 drivers/net/wireless/ath/wil6210/main.c 	ri = wil_find_free_ring(wil);
wil               665 drivers/net/wireless/ath/wil6210/main.c 	rc = wil->txrx_ops.ring_init_bcast(vif, ri, 1 << bcast_ring_order);
wil               674 drivers/net/wireless/ath/wil6210/main.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               681 drivers/net/wireless/ath/wil6210/main.c 	wil_ring_fini_tx(wil, ri);
wil               684 drivers/net/wireless/ath/wil6210/main.c void wil_bcast_fini_all(struct wil6210_priv *wil)
wil               689 drivers/net/wireless/ath/wil6210/main.c 	for (i = 0; i < GET_MAX_VIFS(wil); i++) {
wil               690 drivers/net/wireless/ath/wil6210/main.c 		vif = wil->vifs[i];
wil               696 drivers/net/wireless/ath/wil6210/main.c int wil_priv_init(struct wil6210_priv *wil)
wil               700 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "priv_init\n");
wil               702 drivers/net/wireless/ath/wil6210/main.c 	memset(wil->sta, 0, sizeof(wil->sta));
wil               704 drivers/net/wireless/ath/wil6210/main.c 		spin_lock_init(&wil->sta[i].tid_rx_lock);
wil               705 drivers/net/wireless/ath/wil6210/main.c 		wil->sta[i].mid = U8_MAX;
wil               709 drivers/net/wireless/ath/wil6210/main.c 		spin_lock_init(&wil->ring_tx_data[i].lock);
wil               710 drivers/net/wireless/ath/wil6210/main.c 		wil->ring2cid_tid[i][0] = WIL6210_MAX_CID;
wil               713 drivers/net/wireless/ath/wil6210/main.c 	mutex_init(&wil->mutex);
wil               714 drivers/net/wireless/ath/wil6210/main.c 	mutex_init(&wil->vif_mutex);
wil               715 drivers/net/wireless/ath/wil6210/main.c 	mutex_init(&wil->wmi_mutex);
wil               716 drivers/net/wireless/ath/wil6210/main.c 	mutex_init(&wil->halp.lock);
wil               718 drivers/net/wireless/ath/wil6210/main.c 	init_completion(&wil->wmi_ready);
wil               719 drivers/net/wireless/ath/wil6210/main.c 	init_completion(&wil->wmi_call);
wil               720 drivers/net/wireless/ath/wil6210/main.c 	init_completion(&wil->halp.comp);
wil               722 drivers/net/wireless/ath/wil6210/main.c 	INIT_WORK(&wil->wmi_event_worker, wmi_event_worker);
wil               723 drivers/net/wireless/ath/wil6210/main.c 	INIT_WORK(&wil->fw_error_worker, wil_fw_error_worker);
wil               725 drivers/net/wireless/ath/wil6210/main.c 	INIT_LIST_HEAD(&wil->pending_wmi_ev);
wil               726 drivers/net/wireless/ath/wil6210/main.c 	spin_lock_init(&wil->wmi_ev_lock);
wil               727 drivers/net/wireless/ath/wil6210/main.c 	spin_lock_init(&wil->net_queue_lock);
wil               728 drivers/net/wireless/ath/wil6210/main.c 	spin_lock_init(&wil->eap_lock);
wil               730 drivers/net/wireless/ath/wil6210/main.c 	init_waitqueue_head(&wil->wq);
wil               731 drivers/net/wireless/ath/wil6210/main.c 	init_rwsem(&wil->mem_lock);
wil               733 drivers/net/wireless/ath/wil6210/main.c 	wil->wmi_wq = create_singlethread_workqueue(WIL_NAME "_wmi");
wil               734 drivers/net/wireless/ath/wil6210/main.c 	if (!wil->wmi_wq)
wil               737 drivers/net/wireless/ath/wil6210/main.c 	wil->wq_service = create_singlethread_workqueue(WIL_NAME "_service");
wil               738 drivers/net/wireless/ath/wil6210/main.c 	if (!wil->wq_service)
wil               741 drivers/net/wireless/ath/wil6210/main.c 	wil->last_fw_recovery = jiffies;
wil               742 drivers/net/wireless/ath/wil6210/main.c 	wil->tx_interframe_timeout = WIL6210_ITR_TX_INTERFRAME_TIMEOUT_DEFAULT;
wil               743 drivers/net/wireless/ath/wil6210/main.c 	wil->rx_interframe_timeout = WIL6210_ITR_RX_INTERFRAME_TIMEOUT_DEFAULT;
wil               744 drivers/net/wireless/ath/wil6210/main.c 	wil->tx_max_burst_duration = WIL6210_ITR_TX_MAX_BURST_DURATION_DEFAULT;
wil               745 drivers/net/wireless/ath/wil6210/main.c 	wil->rx_max_burst_duration = WIL6210_ITR_RX_MAX_BURST_DURATION_DEFAULT;
wil               750 drivers/net/wireless/ath/wil6210/main.c 	wil->ps_profile =  WMI_PS_PROFILE_TYPE_DEFAULT;
wil               752 drivers/net/wireless/ath/wil6210/main.c 	wil->wakeup_trigger = WMI_WAKEUP_TRIGGER_UCAST |
wil               754 drivers/net/wireless/ath/wil6210/main.c 	memset(&wil->suspend_stats, 0, sizeof(wil->suspend_stats));
wil               755 drivers/net/wireless/ath/wil6210/main.c 	wil->ring_idle_trsh = 16;
wil               757 drivers/net/wireless/ath/wil6210/main.c 	wil->reply_mid = U8_MAX;
wil               758 drivers/net/wireless/ath/wil6210/main.c 	wil->max_vifs = 1;
wil               759 drivers/net/wireless/ath/wil6210/main.c 	wil->max_assoc_sta = max_assoc_sta;
wil               762 drivers/net/wireless/ath/wil6210/main.c 	wil->num_rx_status_rings = WIL_DEFAULT_NUM_RX_STATUS_RINGS;
wil               763 drivers/net/wireless/ath/wil6210/main.c 	wil->tx_status_ring_order = WIL_TX_SRING_SIZE_ORDER_DEFAULT;
wil               769 drivers/net/wireless/ath/wil6210/main.c 	wil->rx_status_ring_order = WIL_RX_SRING_SIZE_ORDER_DEFAULT;
wil               774 drivers/net/wireless/ath/wil6210/main.c 	wil->rx_buff_id_count = WIL_RX_BUFF_ARR_SIZE_DEFAULT;
wil               776 drivers/net/wireless/ath/wil6210/main.c 	wil->amsdu_en = 1;
wil               781 drivers/net/wireless/ath/wil6210/main.c 	destroy_workqueue(wil->wmi_wq);
wil               786 drivers/net/wireless/ath/wil6210/main.c void wil6210_bus_request(struct wil6210_priv *wil, u32 kbps)
wil               788 drivers/net/wireless/ath/wil6210/main.c 	if (wil->platform_ops.bus_request) {
wil               789 drivers/net/wireless/ath/wil6210/main.c 		wil->bus_request_kbps = kbps;
wil               790 drivers/net/wireless/ath/wil6210/main.c 		wil->platform_ops.bus_request(wil->platform_handle, kbps);
wil               808 drivers/net/wireless/ath/wil6210/main.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               810 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "disconnecting\n");
wil               828 drivers/net/wireless/ath/wil6210/main.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               830 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "got disconnect\n");
wil               836 drivers/net/wireless/ath/wil6210/main.c void wil_priv_deinit(struct wil6210_priv *wil)
wil               838 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "priv_deinit\n");
wil               840 drivers/net/wireless/ath/wil6210/main.c 	wil_set_recovery_state(wil, fw_recovery_idle);
wil               841 drivers/net/wireless/ath/wil6210/main.c 	cancel_work_sync(&wil->fw_error_worker);
wil               842 drivers/net/wireless/ath/wil6210/main.c 	wmi_event_flush(wil);
wil               843 drivers/net/wireless/ath/wil6210/main.c 	destroy_workqueue(wil->wq_service);
wil               844 drivers/net/wireless/ath/wil6210/main.c 	destroy_workqueue(wil->wmi_wq);
wil               845 drivers/net/wireless/ath/wil6210/main.c 	kfree(wil->brd_info);
wil               848 drivers/net/wireless/ath/wil6210/main.c static void wil_shutdown_bl(struct wil6210_priv *wil)
wil               852 drivers/net/wireless/ath/wil6210/main.c 	wil_s(wil, RGF_USER_BL +
wil               858 drivers/net/wireless/ath/wil6210/main.c 	val = wil_r(wil, RGF_USER_BL +
wil               862 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil, "BL is ready for halt\n");
wil               866 drivers/net/wireless/ath/wil6210/main.c 	wil_err(wil, "BL did not report ready for halt\n");
wil               880 drivers/net/wireless/ath/wil6210/main.c static void wil_freeze_bl(struct wil6210_priv *wil)
wil               885 drivers/net/wireless/ath/wil6210/main.c 	jal = wil_r(wil, wil->iccm_base + ivt3);
wil               887 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil, "invalid IVT entry found, skipping\n");
wil               894 drivers/net/wireless/ath/wil6210/main.c 	saved = wil_r(wil, RGF_USER_USAGE_8);
wil               895 drivers/net/wireless/ath/wil6210/main.c 	wil_w(wil, RGF_USER_USAGE_8, saved | BIT_USER_PREVENT_DEEP_SLEEP);
wil               899 drivers/net/wireless/ath/wil6210/main.c 	wil_w(wil, wil->iccm_base + ivt3 + 4, ARC_me_imm32(ivt3));
wil               903 drivers/net/wireless/ath/wil6210/main.c 	upc = wil_r(wil, RGF_USER_CPU_PC);
wil               905 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil, "BL freeze failed, PC=0x%08X\n", upc);
wil               907 drivers/net/wireless/ath/wil6210/main.c 	wil_w(wil, RGF_USER_USAGE_8, saved);
wil               910 drivers/net/wireless/ath/wil6210/main.c static void wil_bl_prepare_halt(struct wil6210_priv *wil)
wil               921 drivers/net/wireless/ath/wil6210/main.c 	tmp = wil_r(wil, RGF_USER_BL +
wil               925 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil, "old BL, skipping halt preparation\n");
wil               929 drivers/net/wireless/ath/wil6210/main.c 	tmp = wil_r(wil, RGF_USER_BL +
wil               935 drivers/net/wireless/ath/wil6210/main.c 		wil_shutdown_bl(wil);
wil               937 drivers/net/wireless/ath/wil6210/main.c 		wil_freeze_bl(wil);
wil               940 drivers/net/wireless/ath/wil6210/main.c static inline void wil_halt_cpu(struct wil6210_priv *wil)
wil               942 drivers/net/wireless/ath/wil6210/main.c 	if (wil->hw_version >= HW_VER_TALYN_MB) {
wil               943 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_USER_CPU_0_TALYN_MB,
wil               945 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_MAC_CPU_0_TALYN_MB,
wil               948 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_USER_CPU_0, BIT_USER_USER_CPU_MAN_RST);
wil               949 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_MAC_CPU_0,  BIT_USER_MAC_CPU_MAN_RST);
wil               953 drivers/net/wireless/ath/wil6210/main.c static inline void wil_release_cpu(struct wil6210_priv *wil)
wil               956 drivers/net/wireless/ath/wil6210/main.c 	if (wil->hw_version >= HW_VER_TALYN_MB)
wil               957 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_USER_CPU_0_TALYN_MB, 1);
wil               959 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_USER_CPU_0, 1);
wil               962 drivers/net/wireless/ath/wil6210/main.c static void wil_set_oob_mode(struct wil6210_priv *wil, u8 mode)
wil               964 drivers/net/wireless/ath/wil6210/main.c 	wil_info(wil, "oob_mode to %d\n", mode);
wil               967 drivers/net/wireless/ath/wil6210/main.c 		wil_c(wil, RGF_USER_USAGE_6, BIT_USER_OOB_MODE |
wil               971 drivers/net/wireless/ath/wil6210/main.c 		wil_c(wil, RGF_USER_USAGE_6, BIT_USER_OOB_R2_MODE);
wil               972 drivers/net/wireless/ath/wil6210/main.c 		wil_s(wil, RGF_USER_USAGE_6, BIT_USER_OOB_MODE);
wil               975 drivers/net/wireless/ath/wil6210/main.c 		wil_c(wil, RGF_USER_USAGE_6, BIT_USER_OOB_MODE);
wil               976 drivers/net/wireless/ath/wil6210/main.c 		wil_s(wil, RGF_USER_USAGE_6, BIT_USER_OOB_R2_MODE);
wil               979 drivers/net/wireless/ath/wil6210/main.c 		wil_err(wil, "invalid oob_mode: %d\n", mode);
wil               983 drivers/net/wireless/ath/wil6210/main.c static int wil_wait_device_ready(struct wil6210_priv *wil, int no_flash)
wil               992 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil, "Reset completed\n");
wil               996 drivers/net/wireless/ath/wil6210/main.c 			x = wil_r(wil, RGF_USER_BL +
wil              1000 drivers/net/wireless/ath/wil6210/main.c 				wil_dbg_misc(wil, "BL.ready 0x%08x => 0x%08x\n",
wil              1005 drivers/net/wireless/ath/wil6210/main.c 				wil_err(wil, "Reset not completed, bl.ready 0x%08x\n",
wil              1011 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil, "Reset completed in %d ms\n",
wil              1018 drivers/net/wireless/ath/wil6210/main.c static int wil_wait_device_ready_talyn_mb(struct wil6210_priv *wil)
wil              1030 drivers/net/wireless/ath/wil6210/main.c 	wil->boot_config = WIL_BOOT_ERR;
wil              1039 drivers/net/wireless/ath/wil6210/main.c 		otp_hw = wil_r(wil, RGF_USER_OTP_HW_RD_MACHINE_1);
wil              1045 drivers/net/wireless/ath/wil6210/main.c 			wil->boot_config = WIL_BOOT_VANILLA;
wil              1050 drivers/net/wireless/ath/wil6210/main.c 			wil->boot_config = WIL_BOOT_DEVELOPMENT;
wil              1055 drivers/net/wireless/ath/wil6210/main.c 			wil->boot_config = WIL_BOOT_PRODUCTION;
wil              1066 drivers/net/wireless/ath/wil6210/main.c 			wil->boot_config = WIL_BOOT_PRODUCTION;
wil              1075 drivers/net/wireless/ath/wil6210/main.c 	if (wil->boot_config == WIL_BOOT_ERR) {
wil              1076 drivers/net/wireless/ath/wil6210/main.c 		wil_err(wil,
wil              1082 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil,
wil              1084 drivers/net/wireless/ath/wil6210/main.c 		     delay * OTP_HW_DELAY, otp_hw, wil->boot_config);
wil              1086 drivers/net/wireless/ath/wil6210/main.c 	if (wil->boot_config == WIL_BOOT_VANILLA)
wil              1096 drivers/net/wireless/ath/wil6210/main.c 		otp_hw = wil_r(wil, RGF_USER_OTP_HW_RD_MACHINE_1);
wil              1100 drivers/net/wireless/ath/wil6210/main.c 			wil_err(wil, "TO waiting for hw_section_done\n");
wil              1105 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "HW section done in %d ms\n", delay * RST_DELAY);
wil              1107 drivers/net/wireless/ath/wil6210/main.c 	otp_qc_secured = wil_r(wil, RGF_OTP_QC_SECURED);
wil              1108 drivers/net/wireless/ath/wil6210/main.c 	wil->secured_boot = otp_qc_secured & BIT_BOOT_FROM_ROM ? 1 : 0;
wil              1109 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "secured boot is %sabled\n",
wil              1110 drivers/net/wireless/ath/wil6210/main.c 		     wil->secured_boot ? "en" : "dis");
wil              1113 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "Reset completed\n");
wil              1118 drivers/net/wireless/ath/wil6210/main.c static int wil_target_reset(struct wil6210_priv *wil, int no_flash)
wil              1123 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "Resetting \"%s\"...\n", wil->hw_name);
wil              1125 drivers/net/wireless/ath/wil6210/main.c 	if (wil->hw_version < HW_VER_TALYN) {
wil              1127 drivers/net/wireless/ath/wil6210/main.c 		wil_s(wil, RGF_HP_CTRL, BIT(15));
wil              1128 drivers/net/wireless/ath/wil6210/main.c 		wil_s(wil, RGF_USER_CLKS_CTL_SW_RST_MASK_0,
wil              1130 drivers/net/wireless/ath/wil6210/main.c 		wil_s(wil, RGF_USER_CLKS_CTL_SW_RST_MASK_0, BIT_CAR_PERST_RST);
wil              1133 drivers/net/wireless/ath/wil6210/main.c 	wil_halt_cpu(wil);
wil              1137 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_BL +
wil              1141 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_BL +
wil              1146 drivers/net/wireless/ath/wil6210/main.c 	wil_c(wil, RGF_USER_USAGE_6, BIT(0));
wil              1148 drivers/net/wireless/ath/wil6210/main.c 	wil_s(wil, RGF_CAF_OSC_CONTROL, BIT_CAF_OSC_XTAL_EN);
wil              1151 drivers/net/wireless/ath/wil6210/main.c 	x = wil_r(wil, RGF_CAF_PLL_LOCK_STATUS);
wil              1153 drivers/net/wireless/ath/wil6210/main.c 		wil_err(wil, "Xtal stabilization timeout\n"
wil              1158 drivers/net/wireless/ath/wil6210/main.c 	wil_c(wil, RGF_USER_SPARROW_M_4, BIT_SPARROW_M_4_SEL_SLEEP_OR_REF);
wil              1160 drivers/net/wireless/ath/wil6210/main.c 	wil_c(wil, RGF_USER_CLKS_CTL_0, BIT_USER_CLKS_CAR_AHB_SW_SEL);
wil              1162 drivers/net/wireless/ath/wil6210/main.c 	wil_w(wil, RGF_USER_CLKS_CTL_EXT_SW_RST_VEC_0, 0x3ff81f);
wil              1163 drivers/net/wireless/ath/wil6210/main.c 	wil_w(wil, RGF_USER_CLKS_CTL_EXT_SW_RST_VEC_1, 0xf);
wil              1165 drivers/net/wireless/ath/wil6210/main.c 	if (wil->hw_version >= HW_VER_TALYN_MB) {
wil              1166 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_CLKS_CTL_SW_RST_VEC_2, 0x7e000000);
wil              1167 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_CLKS_CTL_SW_RST_VEC_1, 0x0000003f);
wil              1168 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_CLKS_CTL_SW_RST_VEC_3, 0xc00000f0);
wil              1169 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_CLKS_CTL_SW_RST_VEC_0, 0xffe7fe00);
wil              1171 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_CLKS_CTL_SW_RST_VEC_2, 0xfe000000);
wil              1172 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_CLKS_CTL_SW_RST_VEC_1, 0x0000003f);
wil              1173 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_CLKS_CTL_SW_RST_VEC_3, 0x000000f0);
wil              1174 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_CLKS_CTL_SW_RST_VEC_0, 0xffe7fe00);
wil              1177 drivers/net/wireless/ath/wil6210/main.c 	wil_w(wil, RGF_USER_CLKS_CTL_EXT_SW_RST_VEC_0, 0x0);
wil              1178 drivers/net/wireless/ath/wil6210/main.c 	wil_w(wil, RGF_USER_CLKS_CTL_EXT_SW_RST_VEC_1, 0x0);
wil              1180 drivers/net/wireless/ath/wil6210/main.c 	wil_w(wil, RGF_USER_CLKS_CTL_SW_RST_VEC_3, 0);
wil              1181 drivers/net/wireless/ath/wil6210/main.c 	wil_w(wil, RGF_USER_CLKS_CTL_SW_RST_VEC_2, 0);
wil              1182 drivers/net/wireless/ath/wil6210/main.c 	wil_w(wil, RGF_USER_CLKS_CTL_SW_RST_VEC_1, 0);
wil              1183 drivers/net/wireless/ath/wil6210/main.c 	wil_w(wil, RGF_USER_CLKS_CTL_SW_RST_VEC_0, 0);
wil              1185 drivers/net/wireless/ath/wil6210/main.c 	wil_w(wil, RGF_USER_CLKS_CTL_SW_RST_VEC_3, 0x00000003);
wil              1187 drivers/net/wireless/ath/wil6210/main.c 	wil_w(wil, RGF_USER_CLKS_CTL_SW_RST_VEC_2, 0x00008000);
wil              1189 drivers/net/wireless/ath/wil6210/main.c 	wil_w(wil, RGF_USER_CLKS_CTL_SW_RST_VEC_0, 0);
wil              1191 drivers/net/wireless/ath/wil6210/main.c 	if (wil->hw_version == HW_VER_TALYN_MB)
wil              1192 drivers/net/wireless/ath/wil6210/main.c 		rc = wil_wait_device_ready_talyn_mb(wil);
wil              1194 drivers/net/wireless/ath/wil6210/main.c 		rc = wil_wait_device_ready(wil, no_flash);
wil              1198 drivers/net/wireless/ath/wil6210/main.c 	wil_c(wil, RGF_USER_CLKS_CTL_0, BIT_USER_CLKS_RST_PWGD);
wil              1201 drivers/net/wireless/ath/wil6210/main.c 	wil_s(wil, RGF_DMA_OFUL_NID_0, BIT_DMA_OFUL_NID_0_RX_EXT_TR_EN |
wil              1204 drivers/net/wireless/ath/wil6210/main.c 	if (wil->hw_version < HW_VER_TALYN_MB && no_flash) {
wil              1206 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_XPM_IFC_RD_TIME1, 0x60001);
wil              1207 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_XPM_IFC_RD_TIME2, 0x20027);
wil              1208 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_XPM_IFC_RD_TIME3, 0x1);
wil              1209 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_XPM_IFC_RD_TIME4, 0x20027);
wil              1210 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_XPM_IFC_RD_TIME5, 0x30003);
wil              1211 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_XPM_IFC_RD_TIME6, 0x20002);
wil              1212 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_XPM_IFC_RD_TIME7, 0x60001);
wil              1213 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_XPM_IFC_RD_TIME8, 0x60001);
wil              1214 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_XPM_IFC_RD_TIME9, 0x60001);
wil              1215 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_XPM_IFC_RD_TIME10, 0x60001);
wil              1216 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_XPM_RD_DOUT_SAMPLE_TIME, 0x57);
wil              1222 drivers/net/wireless/ath/wil6210/main.c static void wil_collect_fw_info(struct wil6210_priv *wil)
wil              1224 drivers/net/wireless/ath/wil6210/main.c 	struct wiphy *wiphy = wil_to_wiphy(wil);
wil              1228 drivers/net/wireless/ath/wil6210/main.c 	wil_refresh_fw_capabilities(wil);
wil              1230 drivers/net/wireless/ath/wil6210/main.c 	rc = wmi_get_mgmt_retry(wil, &retry_short);
wil              1233 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil, "FW retry_short: %d\n", retry_short);
wil              1237 drivers/net/wireless/ath/wil6210/main.c void wil_refresh_fw_capabilities(struct wil6210_priv *wil)
wil              1239 drivers/net/wireless/ath/wil6210/main.c 	struct wiphy *wiphy = wil_to_wiphy(wil);
wil              1242 drivers/net/wireless/ath/wil6210/main.c 	wil->keep_radio_on_during_sleep =
wil              1244 drivers/net/wireless/ath/wil6210/main.c 			 wil->platform_capa) &&
wil              1245 drivers/net/wireless/ath/wil6210/main.c 		test_bit(WMI_FW_CAPABILITY_D3_SUSPEND, wil->fw_capabilities);
wil              1247 drivers/net/wireless/ath/wil6210/main.c 	wil_info(wil, "keep_radio_on_during_sleep (%d)\n",
wil              1248 drivers/net/wireless/ath/wil6210/main.c 		 wil->keep_radio_on_during_sleep);
wil              1250 drivers/net/wireless/ath/wil6210/main.c 	if (test_bit(WMI_FW_CAPABILITY_RSSI_REPORTING, wil->fw_capabilities))
wil              1255 drivers/net/wireless/ath/wil6210/main.c 	if (test_bit(WMI_FW_CAPABILITY_PNO, wil->fw_capabilities)) {
wil              1263 drivers/net/wireless/ath/wil6210/main.c 	if (test_bit(WMI_FW_CAPABILITY_TX_REQ_EXT, wil->fw_capabilities))
wil              1266 drivers/net/wireless/ath/wil6210/main.c 	if (wil->platform_ops.set_features) {
wil              1268 drivers/net/wireless/ath/wil6210/main.c 				     wil->fw_capabilities) &&
wil              1270 drivers/net/wireless/ath/wil6210/main.c 				     wil->platform_capa)) ?
wil              1273 drivers/net/wireless/ath/wil6210/main.c 		if (wil->n_msi == 3)
wil              1276 drivers/net/wireless/ath/wil6210/main.c 		wil->platform_ops.set_features(wil->platform_handle, features);
wil              1280 drivers/net/wireless/ath/wil6210/main.c 		     wil->fw_capabilities)) {
wil              1281 drivers/net/wireless/ath/wil6210/main.c 		wil->max_agg_wsize = WIL_MAX_AGG_WSIZE_64;
wil              1282 drivers/net/wireless/ath/wil6210/main.c 		wil->max_ampdu_size = WIL_MAX_AMPDU_SIZE_128;
wil              1284 drivers/net/wireless/ath/wil6210/main.c 		wil->max_agg_wsize = WIL_MAX_AGG_WSIZE;
wil              1285 drivers/net/wireless/ath/wil6210/main.c 		wil->max_ampdu_size = WIL_MAX_AMPDU_SIZE;
wil              1288 drivers/net/wireless/ath/wil6210/main.c 	update_supported_bands(wil);
wil              1301 drivers/net/wireless/ath/wil6210/main.c void wil_get_board_file(struct wil6210_priv *wil, char *buf, size_t len)
wil              1307 drivers/net/wireless/ath/wil6210/main.c 	if (wil->board_file) {
wil              1308 drivers/net/wireless/ath/wil6210/main.c 		board_file = wil->board_file;
wil              1313 drivers/net/wireless/ath/wil6210/main.c 		if (strcmp(wil->wil_fw_name, wil_talyn_fw_name) == 0)
wil              1322 drivers/net/wireless/ath/wil6210/main.c static int wil_get_bl_info(struct wil6210_priv *wil)
wil              1324 drivers/net/wireless/ath/wil6210/main.c 	struct net_device *ndev = wil->main_ndev;
wil              1325 drivers/net/wireless/ath/wil6210/main.c 	struct wiphy *wiphy = wil_to_wiphy(wil);
wil              1334 drivers/net/wireless/ath/wil6210/main.c 	wil_memcpy_fromio_32(&bl, wil->csr + HOSTADDR(RGF_USER_BL),
wil              1343 drivers/net/wireless/ath/wil6210/main.c 		wil_info(wil,
wil              1347 drivers/net/wireless/ath/wil6210/main.c 		wil_info(wil, "Boot Loader build unknown for struct v0\n");
wil              1354 drivers/net/wireless/ath/wil6210/main.c 		wil_info(wil,
wil              1359 drivers/net/wireless/ath/wil6210/main.c 		wil_info(wil, "Boot Loader build %d.%d.%d.%d\n",
wil              1365 drivers/net/wireless/ath/wil6210/main.c 		wil_err(wil, "BL: Invalid MAC %pM\n", mac);
wil              1375 drivers/net/wireless/ath/wil6210/main.c 		wil_err(wil, "RF communication error 0x%04x",
wil              1383 drivers/net/wireless/ath/wil6210/main.c static void wil_bl_crash_info(struct wil6210_priv *wil, bool is_err)
wil              1386 drivers/net/wireless/ath/wil6210/main.c 	u32 bl_ver = wil_r(wil, RGF_USER_BL +
wil              1393 drivers/net/wireless/ath/wil6210/main.c 	bl_assert_code = wil_r(wil, RGF_USER_BL +
wil              1396 drivers/net/wireless/ath/wil6210/main.c 	bl_assert_blink = wil_r(wil, RGF_USER_BL +
wil              1399 drivers/net/wireless/ath/wil6210/main.c 	bl_magic_number = wil_r(wil, RGF_USER_BL +
wil              1404 drivers/net/wireless/ath/wil6210/main.c 		wil_err(wil,
wil              1408 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil,
wil              1414 drivers/net/wireless/ath/wil6210/main.c static int wil_get_otp_info(struct wil6210_priv *wil)
wil              1416 drivers/net/wireless/ath/wil6210/main.c 	struct net_device *ndev = wil->main_ndev;
wil              1417 drivers/net/wireless/ath/wil6210/main.c 	struct wiphy *wiphy = wil_to_wiphy(wil);
wil              1423 drivers/net/wireless/ath/wil6210/main.c 	wil_memcpy_fromio_32(mac, wil->csr + HOSTADDR(mac_addr), sizeof(mac));
wil              1426 drivers/net/wireless/ath/wil6210/main.c 		wil_info(wil, "using OEM MAC %pM\n", mac);
wil              1428 drivers/net/wireless/ath/wil6210/main.c 		if (wil->hw_version >= HW_VER_TALYN_MB)
wil              1433 drivers/net/wireless/ath/wil6210/main.c 		wil_memcpy_fromio_32(mac, wil->csr + HOSTADDR(mac_addr),
wil              1438 drivers/net/wireless/ath/wil6210/main.c 		wil_err(wil, "Invalid MAC %pM\n", mac);
wil              1450 drivers/net/wireless/ath/wil6210/main.c static int wil_wait_for_fw_ready(struct wil6210_priv *wil)
wil              1453 drivers/net/wireless/ath/wil6210/main.c 	ulong left = wait_for_completion_timeout(&wil->wmi_ready, to);
wil              1456 drivers/net/wireless/ath/wil6210/main.c 		wil_err(wil, "Firmware not ready\n");
wil              1459 drivers/net/wireless/ath/wil6210/main.c 		wil_info(wil, "FW ready after %d ms. HW version 0x%08x\n",
wil              1460 drivers/net/wireless/ath/wil6210/main.c 			 jiffies_to_msecs(to-left), wil->hw_version);
wil              1467 drivers/net/wireless/ath/wil6210/main.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1473 drivers/net/wireless/ath/wil6210/main.c 	lockdep_assert_held(&wil->vif_mutex);
wil              1478 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "Abort scan_request 0x%p\n", vif->scan_request);
wil              1480 drivers/net/wireless/ath/wil6210/main.c 	mutex_unlock(&wil->vif_mutex);
wil              1483 drivers/net/wireless/ath/wil6210/main.c 		wait_event_interruptible_timeout(wil->wq, !vif->scan_request,
wil              1487 drivers/net/wireless/ath/wil6210/main.c 	mutex_lock(&wil->vif_mutex);
wil              1494 drivers/net/wireless/ath/wil6210/main.c void wil_abort_scan_all_vifs(struct wil6210_priv *wil, bool sync)
wil              1498 drivers/net/wireless/ath/wil6210/main.c 	lockdep_assert_held(&wil->vif_mutex);
wil              1500 drivers/net/wireless/ath/wil6210/main.c 	for (i = 0; i < GET_MAX_VIFS(wil); i++) {
wil              1501 drivers/net/wireless/ath/wil6210/main.c 		struct wil6210_vif *vif = wil->vifs[i];
wil              1508 drivers/net/wireless/ath/wil6210/main.c int wil_ps_update(struct wil6210_priv *wil, enum wmi_ps_profile_type ps_profile)
wil              1512 drivers/net/wireless/ath/wil6210/main.c 	if (!test_bit(WMI_FW_CAPABILITY_PS_CONFIG, wil->fw_capabilities)) {
wil              1513 drivers/net/wireless/ath/wil6210/main.c 		wil_err(wil, "set_power_mgmt not supported\n");
wil              1517 drivers/net/wireless/ath/wil6210/main.c 	rc  = wmi_ps_dev_profile_cfg(wil, ps_profile);
wil              1519 drivers/net/wireless/ath/wil6210/main.c 		wil_err(wil, "wmi_ps_dev_profile_cfg failed (%d)\n", rc);
wil              1521 drivers/net/wireless/ath/wil6210/main.c 		wil->ps_profile = ps_profile;
wil              1526 drivers/net/wireless/ath/wil6210/main.c static void wil_pre_fw_config(struct wil6210_priv *wil)
wil              1528 drivers/net/wireless/ath/wil6210/main.c 	wil_clear_fw_log_addr(wil);
wil              1530 drivers/net/wireless/ath/wil6210/main.c 	wil_s(wil, RGF_USER_USAGE_6, 1);
wil              1535 drivers/net/wireless/ath/wil6210/main.c 	wil6210_clear_irq(wil);
wil              1538 drivers/net/wireless/ath/wil6210/main.c 	if (wil->hw_version < HW_VER_TALYN_MB) {
wil              1539 drivers/net/wireless/ath/wil6210/main.c 		wil_s(wil, RGF_CAF_ICR + offsetof(struct RGF_ICR, ICR), 0);
wil              1540 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_CAF_ICR + offsetof(struct RGF_ICR, IMV), ~0);
wil              1546 drivers/net/wireless/ath/wil6210/main.c 	if (wil->hw_version < HW_VER_TALYN_MB)
wil              1547 drivers/net/wireless/ath/wil6210/main.c 		wil_s(wil, RGF_PAL_UNIT_ICR + offsetof(struct RGF_ICR, ICR),
wil              1550 drivers/net/wireless/ath/wil6210/main.c 	if (wil->fw_calib_result > 0) {
wil              1551 drivers/net/wireless/ath/wil6210/main.c 		__le32 val = cpu_to_le32(wil->fw_calib_result |
wil              1553 drivers/net/wireless/ath/wil6210/main.c 		wil_w(wil, RGF_USER_FW_CALIB_RESULT, (u32 __force)val);
wil              1557 drivers/net/wireless/ath/wil6210/main.c static int wil_restore_vifs(struct wil6210_priv *wil)
wil              1564 drivers/net/wireless/ath/wil6210/main.c 	for (i = 0; i < GET_MAX_VIFS(wil); i++) {
wil              1565 drivers/net/wireless/ath/wil6210/main.c 		vif = wil->vifs[i];
wil              1572 drivers/net/wireless/ath/wil6210/main.c 			rc = wmi_port_allocate(wil, vif->mid, ndev->dev_addr,
wil              1575 drivers/net/wireless/ath/wil6210/main.c 				wil_err(wil, "fail to restore VIF %d type %d, rc %d\n",
wil              1590 drivers/net/wireless/ath/wil6210/main.c void wil_clear_fw_log_addr(struct wil6210_priv *wil)
wil              1593 drivers/net/wireless/ath/wil6210/main.c 	wil_w(wil, RGF_USER_USAGE_1, 0);
wil              1595 drivers/net/wireless/ath/wil6210/main.c 	wil_w(wil, RGF_USER_USAGE_2, 0);
wil              1596 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "Cleared FW and ucode log address");
wil              1604 drivers/net/wireless/ath/wil6210/main.c int wil_reset(struct wil6210_priv *wil, bool load_fw)
wil              1611 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "reset\n");
wil              1613 drivers/net/wireless/ath/wil6210/main.c 	WARN_ON(!mutex_is_locked(&wil->mutex));
wil              1614 drivers/net/wireless/ath/wil6210/main.c 	WARN_ON(test_bit(wil_status_napi_en, wil->status));
wil              1620 drivers/net/wireless/ath/wil6210/main.c 		struct net_device *ndev = wil->main_ndev;
wil              1627 drivers/net/wireless/ath/wil6210/main.c 	if (wil->hw_version == HW_VER_UNKNOWN)
wil              1630 drivers/net/wireless/ath/wil6210/main.c 	if (test_bit(WIL_PLATFORM_CAPA_T_PWR_ON_0, wil->platform_capa) &&
wil              1631 drivers/net/wireless/ath/wil6210/main.c 	    wil->hw_version < HW_VER_TALYN_MB) {
wil              1632 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil, "Notify FW to set T_POWER_ON=0\n");
wil              1633 drivers/net/wireless/ath/wil6210/main.c 		wil_s(wil, RGF_USER_USAGE_8, BIT_USER_SUPPORT_T_POWER_ON_0);
wil              1636 drivers/net/wireless/ath/wil6210/main.c 	if (test_bit(WIL_PLATFORM_CAPA_EXT_CLK, wil->platform_capa)) {
wil              1637 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil, "Notify FW on ext clock configuration\n");
wil              1638 drivers/net/wireless/ath/wil6210/main.c 		wil_s(wil, RGF_USER_USAGE_8, BIT_USER_EXT_CLK);
wil              1641 drivers/net/wireless/ath/wil6210/main.c 	if (wil->platform_ops.notify) {
wil              1642 drivers/net/wireless/ath/wil6210/main.c 		rc = wil->platform_ops.notify(wil->platform_handle,
wil              1645 drivers/net/wireless/ath/wil6210/main.c 			wil_err(wil, "PRE_RESET platform notify failed, rc %d\n",
wil              1649 drivers/net/wireless/ath/wil6210/main.c 	set_bit(wil_status_resetting, wil->status);
wil              1650 drivers/net/wireless/ath/wil6210/main.c 	mutex_lock(&wil->vif_mutex);
wil              1651 drivers/net/wireless/ath/wil6210/main.c 	wil_abort_scan_all_vifs(wil, false);
wil              1652 drivers/net/wireless/ath/wil6210/main.c 	mutex_unlock(&wil->vif_mutex);
wil              1654 drivers/net/wireless/ath/wil6210/main.c 	for (i = 0; i < GET_MAX_VIFS(wil); i++) {
wil              1655 drivers/net/wireless/ath/wil6210/main.c 		vif = wil->vifs[i];
wil              1663 drivers/net/wireless/ath/wil6210/main.c 	wil_bcast_fini_all(wil);
wil              1666 drivers/net/wireless/ath/wil6210/main.c 	wmi_led_cfg(wil, false);
wil              1669 drivers/net/wireless/ath/wil6210/main.c 	mutex_lock(&wil->wmi_mutex);
wil              1670 drivers/net/wireless/ath/wil6210/main.c 	if (test_bit(wil_status_suspending, wil->status))
wil              1672 drivers/net/wireless/ath/wil6210/main.c 	bitmap_and(wil->status, wil->status, &status_flags,
wil              1674 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "wil->status (0x%lx)\n", *wil->status);
wil              1675 drivers/net/wireless/ath/wil6210/main.c 	mutex_unlock(&wil->wmi_mutex);
wil              1677 drivers/net/wireless/ath/wil6210/main.c 	wil_mask_irq(wil);
wil              1679 drivers/net/wireless/ath/wil6210/main.c 	wmi_event_flush(wil);
wil              1681 drivers/net/wireless/ath/wil6210/main.c 	flush_workqueue(wil->wq_service);
wil              1682 drivers/net/wireless/ath/wil6210/main.c 	flush_workqueue(wil->wmi_wq);
wil              1684 drivers/net/wireless/ath/wil6210/main.c 	no_flash = test_bit(hw_capa_no_flash, wil->hw_capa);
wil              1686 drivers/net/wireless/ath/wil6210/main.c 		wil_bl_crash_info(wil, false);
wil              1687 drivers/net/wireless/ath/wil6210/main.c 	wil_disable_irq(wil);
wil              1688 drivers/net/wireless/ath/wil6210/main.c 	rc = wil_target_reset(wil, no_flash);
wil              1689 drivers/net/wireless/ath/wil6210/main.c 	wil6210_clear_irq(wil);
wil              1690 drivers/net/wireless/ath/wil6210/main.c 	wil_enable_irq(wil);
wil              1691 drivers/net/wireless/ath/wil6210/main.c 	wil->txrx_ops.rx_fini(wil);
wil              1692 drivers/net/wireless/ath/wil6210/main.c 	wil->txrx_ops.tx_fini(wil);
wil              1695 drivers/net/wireless/ath/wil6210/main.c 			wil_bl_crash_info(wil, true);
wil              1700 drivers/net/wireless/ath/wil6210/main.c 		rc = wil_get_otp_info(wil);
wil              1702 drivers/net/wireless/ath/wil6210/main.c 		rc = wil_get_bl_info(wil);
wil              1710 drivers/net/wireless/ath/wil6210/main.c 	wil_set_oob_mode(wil, oob_mode);
wil              1714 drivers/net/wireless/ath/wil6210/main.c 		if  (wil->secured_boot) {
wil              1715 drivers/net/wireless/ath/wil6210/main.c 			wil_err(wil, "secured boot is not supported\n");
wil              1720 drivers/net/wireless/ath/wil6210/main.c 		wil_get_board_file(wil, board_file, sizeof(board_file));
wil              1721 drivers/net/wireless/ath/wil6210/main.c 		wil_info(wil, "Use firmware <%s> + board <%s>\n",
wil              1722 drivers/net/wireless/ath/wil6210/main.c 			 wil->wil_fw_name, board_file);
wil              1725 drivers/net/wireless/ath/wil6210/main.c 			wil_bl_prepare_halt(wil);
wil              1727 drivers/net/wireless/ath/wil6210/main.c 		wil_halt_cpu(wil);
wil              1728 drivers/net/wireless/ath/wil6210/main.c 		memset(wil->fw_version, 0, sizeof(wil->fw_version));
wil              1730 drivers/net/wireless/ath/wil6210/main.c 		rc = wil_request_firmware(wil, wil->wil_fw_name, true);
wil              1733 drivers/net/wireless/ath/wil6210/main.c 		if (wil->num_of_brd_entries)
wil              1734 drivers/net/wireless/ath/wil6210/main.c 			rc = wil_request_board(wil, board_file);
wil              1736 drivers/net/wireless/ath/wil6210/main.c 			rc = wil_request_firmware(wil, board_file, true);
wil              1740 drivers/net/wireless/ath/wil6210/main.c 		wil_pre_fw_config(wil);
wil              1741 drivers/net/wireless/ath/wil6210/main.c 		wil_release_cpu(wil);
wil              1745 drivers/net/wireless/ath/wil6210/main.c 	reinit_completion(&wil->wmi_ready);
wil              1746 drivers/net/wireless/ath/wil6210/main.c 	reinit_completion(&wil->wmi_call);
wil              1747 drivers/net/wireless/ath/wil6210/main.c 	reinit_completion(&wil->halp.comp);
wil              1749 drivers/net/wireless/ath/wil6210/main.c 	clear_bit(wil_status_resetting, wil->status);
wil              1752 drivers/net/wireless/ath/wil6210/main.c 		wil_unmask_irq(wil);
wil              1755 drivers/net/wireless/ath/wil6210/main.c 		rc = wil_wait_for_fw_ready(wil);
wil              1760 drivers/net/wireless/ath/wil6210/main.c 		rc = wmi_echo(wil);
wil              1762 drivers/net/wireless/ath/wil6210/main.c 			wil_err(wil, "wmi_echo failed, rc %d\n", rc);
wil              1766 drivers/net/wireless/ath/wil6210/main.c 		wil->txrx_ops.configure_interrupt_moderation(wil);
wil              1771 drivers/net/wireless/ath/wil6210/main.c 		if (wil->hw_version >= HW_VER_TALYN_MB)
wil              1772 drivers/net/wireless/ath/wil6210/main.c 			wil_s(wil, RGF_DMA_MISC_CTL,
wil              1775 drivers/net/wireless/ath/wil6210/main.c 		rc = wil_restore_vifs(wil);
wil              1777 drivers/net/wireless/ath/wil6210/main.c 			wil_err(wil, "failed to restore vifs, rc %d\n", rc);
wil              1781 drivers/net/wireless/ath/wil6210/main.c 		wil_collect_fw_info(wil);
wil              1783 drivers/net/wireless/ath/wil6210/main.c 		if (wil->ps_profile != WMI_PS_PROFILE_TYPE_DEFAULT)
wil              1784 drivers/net/wireless/ath/wil6210/main.c 			wil_ps_update(wil, wil->ps_profile);
wil              1786 drivers/net/wireless/ath/wil6210/main.c 		if (wil->platform_ops.notify) {
wil              1787 drivers/net/wireless/ath/wil6210/main.c 			rc = wil->platform_ops.notify(wil->platform_handle,
wil              1790 drivers/net/wireless/ath/wil6210/main.c 				wil_err(wil, "FW_RDY notify failed, rc %d\n",
wil              1800 drivers/net/wireless/ath/wil6210/main.c 	clear_bit(wil_status_resetting, wil->status);
wil              1804 drivers/net/wireless/ath/wil6210/main.c void wil_fw_error_recovery(struct wil6210_priv *wil)
wil              1806 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "starting fw error recovery\n");
wil              1808 drivers/net/wireless/ath/wil6210/main.c 	if (test_bit(wil_status_resetting, wil->status)) {
wil              1809 drivers/net/wireless/ath/wil6210/main.c 		wil_info(wil, "Reset already in progress\n");
wil              1813 drivers/net/wireless/ath/wil6210/main.c 	wil->recovery_state = fw_recovery_pending;
wil              1814 drivers/net/wireless/ath/wil6210/main.c 	schedule_work(&wil->fw_error_worker);
wil              1817 drivers/net/wireless/ath/wil6210/main.c int __wil_up(struct wil6210_priv *wil)
wil              1819 drivers/net/wireless/ath/wil6210/main.c 	struct net_device *ndev = wil->main_ndev;
wil              1823 drivers/net/wireless/ath/wil6210/main.c 	WARN_ON(!mutex_is_locked(&wil->mutex));
wil              1825 drivers/net/wireless/ath/wil6210/main.c 	down_write(&wil->mem_lock);
wil              1826 drivers/net/wireless/ath/wil6210/main.c 	rc = wil_reset(wil, true);
wil              1827 drivers/net/wireless/ath/wil6210/main.c 	up_write(&wil->mem_lock);
wil              1833 drivers/net/wireless/ath/wil6210/main.c 		rx_ring_order = wil->hw_version < HW_VER_TALYN_MB ?
wil              1837 drivers/net/wireless/ath/wil6210/main.c 	rc = wil->txrx_ops.rx_init(wil, rx_ring_order);
wil              1841 drivers/net/wireless/ath/wil6210/main.c 	rc = wil->txrx_ops.tx_init(wil);
wil              1847 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil, "type: STATION\n");
wil              1851 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil, "type: AP\n");
wil              1855 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil, "type: P2P_CLIENT\n");
wil              1859 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil, "type: P2P_GO\n");
wil              1863 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil, "type: Monitor\n");
wil              1872 drivers/net/wireless/ath/wil6210/main.c 	wmi_set_mac_address(wil, ndev->dev_addr);
wil              1874 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "NAPI enable\n");
wil              1875 drivers/net/wireless/ath/wil6210/main.c 	napi_enable(&wil->napi_rx);
wil              1876 drivers/net/wireless/ath/wil6210/main.c 	napi_enable(&wil->napi_tx);
wil              1877 drivers/net/wireless/ath/wil6210/main.c 	set_bit(wil_status_napi_en, wil->status);
wil              1879 drivers/net/wireless/ath/wil6210/main.c 	wil6210_bus_request(wil, WIL_DEFAULT_BUS_REQUEST_KBPS);
wil              1884 drivers/net/wireless/ath/wil6210/main.c int wil_up(struct wil6210_priv *wil)
wil              1888 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "up\n");
wil              1890 drivers/net/wireless/ath/wil6210/main.c 	mutex_lock(&wil->mutex);
wil              1891 drivers/net/wireless/ath/wil6210/main.c 	rc = __wil_up(wil);
wil              1892 drivers/net/wireless/ath/wil6210/main.c 	mutex_unlock(&wil->mutex);
wil              1897 drivers/net/wireless/ath/wil6210/main.c int __wil_down(struct wil6210_priv *wil)
wil              1900 drivers/net/wireless/ath/wil6210/main.c 	WARN_ON(!mutex_is_locked(&wil->mutex));
wil              1902 drivers/net/wireless/ath/wil6210/main.c 	set_bit(wil_status_resetting, wil->status);
wil              1904 drivers/net/wireless/ath/wil6210/main.c 	wil6210_bus_request(wil, 0);
wil              1906 drivers/net/wireless/ath/wil6210/main.c 	wil_disable_irq(wil);
wil              1907 drivers/net/wireless/ath/wil6210/main.c 	if (test_and_clear_bit(wil_status_napi_en, wil->status)) {
wil              1908 drivers/net/wireless/ath/wil6210/main.c 		napi_disable(&wil->napi_rx);
wil              1909 drivers/net/wireless/ath/wil6210/main.c 		napi_disable(&wil->napi_tx);
wil              1910 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_misc(wil, "NAPI disable\n");
wil              1912 drivers/net/wireless/ath/wil6210/main.c 	wil_enable_irq(wil);
wil              1914 drivers/net/wireless/ath/wil6210/main.c 	mutex_lock(&wil->vif_mutex);
wil              1915 drivers/net/wireless/ath/wil6210/main.c 	wil_p2p_stop_radio_operations(wil);
wil              1916 drivers/net/wireless/ath/wil6210/main.c 	wil_abort_scan_all_vifs(wil, false);
wil              1917 drivers/net/wireless/ath/wil6210/main.c 	mutex_unlock(&wil->vif_mutex);
wil              1919 drivers/net/wireless/ath/wil6210/main.c 	down_write(&wil->mem_lock);
wil              1920 drivers/net/wireless/ath/wil6210/main.c 	rc = wil_reset(wil, false);
wil              1921 drivers/net/wireless/ath/wil6210/main.c 	up_write(&wil->mem_lock);
wil              1926 drivers/net/wireless/ath/wil6210/main.c int wil_down(struct wil6210_priv *wil)
wil              1930 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_misc(wil, "down\n");
wil              1932 drivers/net/wireless/ath/wil6210/main.c 	wil_set_recovery_state(wil, fw_recovery_idle);
wil              1933 drivers/net/wireless/ath/wil6210/main.c 	mutex_lock(&wil->mutex);
wil              1934 drivers/net/wireless/ath/wil6210/main.c 	rc = __wil_down(wil);
wil              1935 drivers/net/wireless/ath/wil6210/main.c 	mutex_unlock(&wil->mutex);
wil              1940 drivers/net/wireless/ath/wil6210/main.c int wil_find_cid(struct wil6210_priv *wil, u8 mid, const u8 *mac)
wil              1945 drivers/net/wireless/ath/wil6210/main.c 	for (i = 0; i < wil->max_assoc_sta; i++) {
wil              1946 drivers/net/wireless/ath/wil6210/main.c 		if (wil->sta[i].mid == mid &&
wil              1947 drivers/net/wireless/ath/wil6210/main.c 		    wil->sta[i].status != wil_sta_unused &&
wil              1948 drivers/net/wireless/ath/wil6210/main.c 		    ether_addr_equal(wil->sta[i].addr, mac)) {
wil              1957 drivers/net/wireless/ath/wil6210/main.c void wil_halp_vote(struct wil6210_priv *wil)
wil              1962 drivers/net/wireless/ath/wil6210/main.c 	if (wil->hw_version >= HW_VER_TALYN_MB)
wil              1965 drivers/net/wireless/ath/wil6210/main.c 	mutex_lock(&wil->halp.lock);
wil              1967 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_irq(wil, "halp_vote: start, HALP ref_cnt (%d)\n",
wil              1968 drivers/net/wireless/ath/wil6210/main.c 		    wil->halp.ref_cnt);
wil              1970 drivers/net/wireless/ath/wil6210/main.c 	if (++wil->halp.ref_cnt == 1) {
wil              1971 drivers/net/wireless/ath/wil6210/main.c 		reinit_completion(&wil->halp.comp);
wil              1973 drivers/net/wireless/ath/wil6210/main.c 		wil->halp.handle_icr = true;
wil              1974 drivers/net/wireless/ath/wil6210/main.c 		wil6210_set_halp(wil);
wil              1975 drivers/net/wireless/ath/wil6210/main.c 		rc = wait_for_completion_timeout(&wil->halp.comp, to_jiffies);
wil              1977 drivers/net/wireless/ath/wil6210/main.c 			wil_err(wil, "HALP vote timed out\n");
wil              1979 drivers/net/wireless/ath/wil6210/main.c 			wil->halp.handle_icr = false;
wil              1980 drivers/net/wireless/ath/wil6210/main.c 			wil6210_mask_halp(wil);
wil              1982 drivers/net/wireless/ath/wil6210/main.c 			wil_dbg_irq(wil,
wil              1988 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_irq(wil, "halp_vote: end, HALP ref_cnt (%d)\n",
wil              1989 drivers/net/wireless/ath/wil6210/main.c 		    wil->halp.ref_cnt);
wil              1991 drivers/net/wireless/ath/wil6210/main.c 	mutex_unlock(&wil->halp.lock);
wil              1994 drivers/net/wireless/ath/wil6210/main.c void wil_halp_unvote(struct wil6210_priv *wil)
wil              1996 drivers/net/wireless/ath/wil6210/main.c 	if (wil->hw_version >= HW_VER_TALYN_MB)
wil              1999 drivers/net/wireless/ath/wil6210/main.c 	WARN_ON(wil->halp.ref_cnt == 0);
wil              2001 drivers/net/wireless/ath/wil6210/main.c 	mutex_lock(&wil->halp.lock);
wil              2003 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_irq(wil, "halp_unvote: start, HALP ref_cnt (%d)\n",
wil              2004 drivers/net/wireless/ath/wil6210/main.c 		    wil->halp.ref_cnt);
wil              2006 drivers/net/wireless/ath/wil6210/main.c 	if (--wil->halp.ref_cnt == 0) {
wil              2007 drivers/net/wireless/ath/wil6210/main.c 		wil6210_clear_halp(wil);
wil              2008 drivers/net/wireless/ath/wil6210/main.c 		wil_dbg_irq(wil, "HALP unvote\n");
wil              2011 drivers/net/wireless/ath/wil6210/main.c 	wil_dbg_irq(wil, "halp_unvote:end, HALP ref_cnt (%d)\n",
wil              2012 drivers/net/wireless/ath/wil6210/main.c 		    wil->halp.ref_cnt);
wil              2014 drivers/net/wireless/ath/wil6210/main.c 	mutex_unlock(&wil->halp.lock);
wil              2017 drivers/net/wireless/ath/wil6210/main.c void wil_init_txrx_ops(struct wil6210_priv *wil)
wil              2019 drivers/net/wireless/ath/wil6210/main.c 	if (wil->use_enhanced_dma_hw)
wil              2020 drivers/net/wireless/ath/wil6210/main.c 		wil_init_txrx_ops_edma(wil);
wil              2022 drivers/net/wireless/ath/wil6210/main.c 		wil_init_txrx_ops_legacy_dma(wil);
wil                23 drivers/net/wireless/ath/wil6210/netdev.c bool wil_has_other_active_ifaces(struct wil6210_priv *wil,
wil                30 drivers/net/wireless/ath/wil6210/netdev.c 	for (i = 0; i < GET_MAX_VIFS(wil); i++) {
wil                31 drivers/net/wireless/ath/wil6210/netdev.c 		vif = wil->vifs[i];
wil                44 drivers/net/wireless/ath/wil6210/netdev.c bool wil_has_active_ifaces(struct wil6210_priv *wil, bool up, bool ok)
wil                47 drivers/net/wireless/ath/wil6210/netdev.c 	return wil_has_other_active_ifaces(wil, NULL, up, ok);
wil                52 drivers/net/wireless/ath/wil6210/netdev.c 	struct wil6210_priv *wil = ndev_to_wil(ndev);
wil                55 drivers/net/wireless/ath/wil6210/netdev.c 	wil_dbg_misc(wil, "open\n");
wil                58 drivers/net/wireless/ath/wil6210/netdev.c 	    test_bit(WMI_FW_CAPABILITY_WMI_ONLY, wil->fw_capabilities)) {
wil                59 drivers/net/wireless/ath/wil6210/netdev.c 		wil_err(wil, "while in debug_fw or wmi_only mode\n");
wil                63 drivers/net/wireless/ath/wil6210/netdev.c 	if (!wil_has_other_active_ifaces(wil, ndev, true, false)) {
wil                64 drivers/net/wireless/ath/wil6210/netdev.c 		wil_dbg_misc(wil, "open, first iface\n");
wil                65 drivers/net/wireless/ath/wil6210/netdev.c 		rc = wil_pm_runtime_get(wil);
wil                69 drivers/net/wireless/ath/wil6210/netdev.c 		rc = wil_up(wil);
wil                71 drivers/net/wireless/ath/wil6210/netdev.c 			wil_pm_runtime_put(wil);
wil                79 drivers/net/wireless/ath/wil6210/netdev.c 	struct wil6210_priv *wil = ndev_to_wil(ndev);
wil                82 drivers/net/wireless/ath/wil6210/netdev.c 	wil_dbg_misc(wil, "stop\n");
wil                84 drivers/net/wireless/ath/wil6210/netdev.c 	if (!wil_has_other_active_ifaces(wil, ndev, true, false)) {
wil                85 drivers/net/wireless/ath/wil6210/netdev.c 		wil_dbg_misc(wil, "stop, last iface\n");
wil                86 drivers/net/wireless/ath/wil6210/netdev.c 		rc = wil_down(wil);
wil                88 drivers/net/wireless/ath/wil6210/netdev.c 			wil_pm_runtime_put(wil);
wil               104 drivers/net/wireless/ath/wil6210/netdev.c 	struct wil6210_priv *wil = container_of(napi, struct wil6210_priv,
wil               109 drivers/net/wireless/ath/wil6210/netdev.c 	wil_rx_handle(wil, &quota);
wil               114 drivers/net/wireless/ath/wil6210/netdev.c 		wil6210_unmask_irq_rx(wil);
wil               115 drivers/net/wireless/ath/wil6210/netdev.c 		wil_dbg_txrx(wil, "NAPI RX complete\n");
wil               118 drivers/net/wireless/ath/wil6210/netdev.c 	wil_dbg_txrx(wil, "NAPI RX poll(%d) done %d\n", budget, done);
wil               125 drivers/net/wireless/ath/wil6210/netdev.c 	struct wil6210_priv *wil = container_of(napi, struct wil6210_priv,
wil               130 drivers/net/wireless/ath/wil6210/netdev.c 	wil_rx_handle_edma(wil, &quota);
wil               135 drivers/net/wireless/ath/wil6210/netdev.c 		wil6210_unmask_irq_rx_edma(wil);
wil               136 drivers/net/wireless/ath/wil6210/netdev.c 		wil_dbg_txrx(wil, "NAPI RX complete\n");
wil               139 drivers/net/wireless/ath/wil6210/netdev.c 	wil_dbg_txrx(wil, "NAPI RX poll(%d) done %d\n", budget, done);
wil               146 drivers/net/wireless/ath/wil6210/netdev.c 	struct wil6210_priv *wil = container_of(napi, struct wil6210_priv,
wil               153 drivers/net/wireless/ath/wil6210/netdev.c 		struct wil_ring *ring = &wil->ring_tx[i];
wil               154 drivers/net/wireless/ath/wil6210/netdev.c 		struct wil_ring_tx_data *txdata = &wil->ring_tx_data[i];
wil               158 drivers/net/wireless/ath/wil6210/netdev.c 		    txdata->mid >= GET_MAX_VIFS(wil))
wil               161 drivers/net/wireless/ath/wil6210/netdev.c 		vif = wil->vifs[txdata->mid];
wil               163 drivers/net/wireless/ath/wil6210/netdev.c 			wil_dbg_txrx(wil, "Invalid MID %d\n", txdata->mid);
wil               172 drivers/net/wireless/ath/wil6210/netdev.c 		wil6210_unmask_irq_tx(wil);
wil               173 drivers/net/wireless/ath/wil6210/netdev.c 		wil_dbg_txrx(wil, "NAPI TX complete\n");
wil               176 drivers/net/wireless/ath/wil6210/netdev.c 	wil_dbg_txrx(wil, "NAPI TX poll(%d) done %d\n", budget, tx_done);
wil               183 drivers/net/wireless/ath/wil6210/netdev.c 	struct wil6210_priv *wil = container_of(napi, struct wil6210_priv,
wil               187 drivers/net/wireless/ath/wil6210/netdev.c 	struct wil_status_ring *sring = &wil->srings[wil->tx_sring_idx];
wil               192 drivers/net/wireless/ath/wil6210/netdev.c 	tx_done = wil_tx_sring_handler(wil, sring);
wil               196 drivers/net/wireless/ath/wil6210/netdev.c 		wil6210_unmask_irq_tx_edma(wil);
wil               197 drivers/net/wireless/ath/wil6210/netdev.c 		wil_dbg_txrx(wil, "NAPI TX complete\n");
wil               200 drivers/net/wireless/ath/wil6210/netdev.c 	wil_dbg_txrx(wil, "NAPI TX poll(%d) done %d\n", budget, tx_done);
wil               242 drivers/net/wireless/ath/wil6210/netdev.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               245 drivers/net/wireless/ath/wil6210/netdev.c 	wil_err(wil, "Connect timeout detected, disconnect station\n");
wil               251 drivers/net/wireless/ath/wil6210/netdev.c 	q = queue_work(wil->wmi_wq, &vif->disconnect_worker);
wil               252 drivers/net/wireless/ath/wil6210/netdev.c 	wil_dbg_wmi(wil, "queue_work of disconnect_worker -> %d\n", q);
wil               258 drivers/net/wireless/ath/wil6210/netdev.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               260 drivers/net/wireless/ath/wil6210/netdev.c 	clear_bit(wil_status_fwready, wil->status);
wil               261 drivers/net/wireless/ath/wil6210/netdev.c 	wil_err(wil, "Scan timeout detected, start fw error recovery\n");
wil               262 drivers/net/wireless/ath/wil6210/netdev.c 	wil_fw_error_recovery(wil);
wil               268 drivers/net/wireless/ath/wil6210/netdev.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               270 drivers/net/wireless/ath/wil6210/netdev.c 	wil_dbg_misc(wil, "p2p_discovery_timer_fn\n");
wil               296 drivers/net/wireless/ath/wil6210/netdev.c static u8 wil_vif_find_free_mid(struct wil6210_priv *wil)
wil               300 drivers/net/wireless/ath/wil6210/netdev.c 	for (i = 0; i < GET_MAX_VIFS(wil); i++) {
wil               301 drivers/net/wireless/ath/wil6210/netdev.c 		if (!wil->vifs[i])
wil               309 drivers/net/wireless/ath/wil6210/netdev.c wil_vif_alloc(struct wil6210_priv *wil, const char *name,
wil               317 drivers/net/wireless/ath/wil6210/netdev.c 	mid = wil_vif_find_free_mid(wil);
wil               319 drivers/net/wireless/ath/wil6210/netdev.c 		wil_err(wil, "no available virtual interface\n");
wil               326 drivers/net/wireless/ath/wil6210/netdev.c 		dev_err(wil_to_dev(wil), "alloc_netdev failed\n");
wil               330 drivers/net/wireless/ath/wil6210/netdev.c 		wil->main_ndev = ndev;
wil               338 drivers/net/wireless/ath/wil6210/netdev.c 	vif->wil = wil;
wil               343 drivers/net/wireless/ath/wil6210/netdev.c 	wdev->wiphy = wil->wiphy;
wil               361 drivers/net/wireless/ath/wil6210/netdev.c 	struct wil6210_priv *wil;
wil               365 drivers/net/wireless/ath/wil6210/netdev.c 	wil = wil_cfg80211_init(dev);
wil               366 drivers/net/wireless/ath/wil6210/netdev.c 	if (IS_ERR(wil)) {
wil               368 drivers/net/wireless/ath/wil6210/netdev.c 		return wil;
wil               371 drivers/net/wireless/ath/wil6210/netdev.c 	rc = wil_priv_init(wil);
wil               377 drivers/net/wireless/ath/wil6210/netdev.c 	wil_dbg_misc(wil, "if_alloc\n");
wil               379 drivers/net/wireless/ath/wil6210/netdev.c 	vif = wil_vif_alloc(wil, "wlan%d", NET_NAME_UNKNOWN,
wil               387 drivers/net/wireless/ath/wil6210/netdev.c 	wil->radio_wdev = vif_to_wdev(vif);
wil               389 drivers/net/wireless/ath/wil6210/netdev.c 	return wil;
wil               392 drivers/net/wireless/ath/wil6210/netdev.c 	wil_priv_deinit(wil);
wil               395 drivers/net/wireless/ath/wil6210/netdev.c 	wil_cfg80211_deinit(wil);
wil               400 drivers/net/wireless/ath/wil6210/netdev.c void wil_if_free(struct wil6210_priv *wil)
wil               402 drivers/net/wireless/ath/wil6210/netdev.c 	struct net_device *ndev = wil->main_ndev;
wil               404 drivers/net/wireless/ath/wil6210/netdev.c 	wil_dbg_misc(wil, "if_free\n");
wil               409 drivers/net/wireless/ath/wil6210/netdev.c 	wil_priv_deinit(wil);
wil               411 drivers/net/wireless/ath/wil6210/netdev.c 	wil->main_ndev = NULL;
wil               415 drivers/net/wireless/ath/wil6210/netdev.c 	wil_cfg80211_deinit(wil);
wil               418 drivers/net/wireless/ath/wil6210/netdev.c int wil_vif_add(struct wil6210_priv *wil, struct wil6210_vif *vif)
wil               422 drivers/net/wireless/ath/wil6210/netdev.c 	bool any_active = wil_has_active_ifaces(wil, true, false);
wil               427 drivers/net/wireless/ath/wil6210/netdev.c 	if (wil->vifs[vif->mid]) {
wil               433 drivers/net/wireless/ath/wil6210/netdev.c 		rc = wmi_port_allocate(wil, vif->mid, ndev->dev_addr,
wil               442 drivers/net/wireless/ath/wil6210/netdev.c 			wmi_port_delete(wil, vif->mid);
wil               446 drivers/net/wireless/ath/wil6210/netdev.c 	wil->vifs[vif->mid] = vif;
wil               450 drivers/net/wireless/ath/wil6210/netdev.c int wil_if_add(struct wil6210_priv *wil)
wil               452 drivers/net/wireless/ath/wil6210/netdev.c 	struct wiphy *wiphy = wil->wiphy;
wil               453 drivers/net/wireless/ath/wil6210/netdev.c 	struct net_device *ndev = wil->main_ndev;
wil               457 drivers/net/wireless/ath/wil6210/netdev.c 	wil_dbg_misc(wil, "entered");
wil               459 drivers/net/wireless/ath/wil6210/netdev.c 	strlcpy(wiphy->fw_version, wil->fw_version, sizeof(wiphy->fw_version));
wil               463 drivers/net/wireless/ath/wil6210/netdev.c 		wil_err(wil, "failed to register wiphy, err %d\n", rc);
wil               467 drivers/net/wireless/ath/wil6210/netdev.c 	init_dummy_netdev(&wil->napi_ndev);
wil               468 drivers/net/wireless/ath/wil6210/netdev.c 	if (wil->use_enhanced_dma_hw) {
wil               469 drivers/net/wireless/ath/wil6210/netdev.c 		netif_napi_add(&wil->napi_ndev, &wil->napi_rx,
wil               472 drivers/net/wireless/ath/wil6210/netdev.c 		netif_tx_napi_add(&wil->napi_ndev,
wil               473 drivers/net/wireless/ath/wil6210/netdev.c 				  &wil->napi_tx, wil6210_netdev_poll_tx_edma,
wil               476 drivers/net/wireless/ath/wil6210/netdev.c 		netif_napi_add(&wil->napi_ndev, &wil->napi_rx,
wil               479 drivers/net/wireless/ath/wil6210/netdev.c 		netif_tx_napi_add(&wil->napi_ndev,
wil               480 drivers/net/wireless/ath/wil6210/netdev.c 				  &wil->napi_tx, wil6210_netdev_poll_tx,
wil               484 drivers/net/wireless/ath/wil6210/netdev.c 	wil_update_net_queues_bh(wil, vif, NULL, true);
wil               487 drivers/net/wireless/ath/wil6210/netdev.c 	rc = wil_vif_add(wil, vif);
wil               499 drivers/net/wireless/ath/wil6210/netdev.c void wil_vif_remove(struct wil6210_priv *wil, u8 mid)
wil               503 drivers/net/wireless/ath/wil6210/netdev.c 	bool any_active = wil_has_active_ifaces(wil, true, false);
wil               506 drivers/net/wireless/ath/wil6210/netdev.c 	if (mid >= GET_MAX_VIFS(wil)) {
wil               507 drivers/net/wireless/ath/wil6210/netdev.c 		wil_err(wil, "invalid MID: %d\n", mid);
wil               511 drivers/net/wireless/ath/wil6210/netdev.c 	vif = wil->vifs[mid];
wil               513 drivers/net/wireless/ath/wil6210/netdev.c 		wil_err(wil, "MID %d not registered\n", mid);
wil               517 drivers/net/wireless/ath/wil6210/netdev.c 	mutex_lock(&wil->mutex);
wil               519 drivers/net/wireless/ath/wil6210/netdev.c 	mutex_unlock(&wil->mutex);
wil               528 drivers/net/wireless/ath/wil6210/netdev.c 		wmi_port_delete(wil, vif->mid);
wil               531 drivers/net/wireless/ath/wil6210/netdev.c 	mutex_lock(&wil->vif_mutex);
wil               532 drivers/net/wireless/ath/wil6210/netdev.c 	wil->vifs[mid] = NULL;
wil               535 drivers/net/wireless/ath/wil6210/netdev.c 	if (test_bit(wil_status_napi_en, wil->status)) {
wil               536 drivers/net/wireless/ath/wil6210/netdev.c 		napi_synchronize(&wil->napi_rx);
wil               537 drivers/net/wireless/ath/wil6210/netdev.c 		napi_synchronize(&wil->napi_tx);
wil               539 drivers/net/wireless/ath/wil6210/netdev.c 	mutex_unlock(&wil->vif_mutex);
wil               541 drivers/net/wireless/ath/wil6210/netdev.c 	flush_work(&wil->wmi_event_worker);
wil               553 drivers/net/wireless/ath/wil6210/netdev.c void wil_if_remove(struct wil6210_priv *wil)
wil               555 drivers/net/wireless/ath/wil6210/netdev.c 	struct net_device *ndev = wil->main_ndev;
wil               558 drivers/net/wireless/ath/wil6210/netdev.c 	wil_dbg_misc(wil, "if_remove\n");
wil               561 drivers/net/wireless/ath/wil6210/netdev.c 	wil_vif_remove(wil, 0);
wil               564 drivers/net/wireless/ath/wil6210/netdev.c 	netif_napi_del(&wil->napi_tx);
wil               565 drivers/net/wireless/ath/wil6210/netdev.c 	netif_napi_del(&wil->napi_rx);
wil                28 drivers/net/wireless/ath/wil6210/p2p.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil                33 drivers/net/wireless/ath/wil6210/p2p.c 	lockdep_assert_held(&wil->mutex);
wil                37 drivers/net/wireless/ath/wil6210/p2p.c 		wil_err(wil, "wmi_p2p_cfg failed\n");
wil                43 drivers/net/wireless/ath/wil6210/p2p.c 		wil_err(wil, "wmi_set_ssid failed\n");
wil                49 drivers/net/wireless/ath/wil6210/p2p.c 		wil_err(wil, "wmi_start_listen failed\n");
wil                73 drivers/net/wireless/ath/wil6210/p2p.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil                77 drivers/net/wireless/ath/wil6210/p2p.c 	wil_dbg_misc(wil, "p2p_search: channel %d\n", P2P_DMG_SOCIAL_CHANNEL);
wil                79 drivers/net/wireless/ath/wil6210/p2p.c 	lockdep_assert_held(&wil->mutex);
wil                82 drivers/net/wireless/ath/wil6210/p2p.c 		wil_err(wil, "search failed. discovery already ongoing\n");
wil                89 drivers/net/wireless/ath/wil6210/p2p.c 		wil_err(wil, "wmi_p2p_cfg failed\n");
wil                95 drivers/net/wireless/ath/wil6210/p2p.c 		wil_err(wil, "wmi_set_ssid failed\n");
wil               103 drivers/net/wireless/ath/wil6210/p2p.c 		wil_err(wil, "wmi_set_ie(WMI_FRAME_PROBE_REQ) failed\n");
wil               113 drivers/net/wireless/ath/wil6210/p2p.c 		wil_err(wil, "wmi_set_ie(WMI_FRAME_PROBE_RESP) failed\n");
wil               119 drivers/net/wireless/ath/wil6210/p2p.c 		wil_err(wil, "wmi_start_search failed\n");
wil               136 drivers/net/wireless/ath/wil6210/p2p.c int wil_p2p_listen(struct wil6210_priv *wil, struct wireless_dev *wdev,
wil               140 drivers/net/wireless/ath/wil6210/p2p.c 	struct wil6210_vif *vif = wdev_to_vif(wil, wdev);
wil               147 drivers/net/wireless/ath/wil6210/p2p.c 	wil_dbg_misc(wil, "p2p_listen: duration %d\n", duration);
wil               149 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_lock(&wil->mutex);
wil               152 drivers/net/wireless/ath/wil6210/p2p.c 		wil_err(wil, "discovery already ongoing\n");
wil               161 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_lock(&wil->vif_mutex);
wil               163 drivers/net/wireless/ath/wil6210/p2p.c 		wil_dbg_misc(wil, "Delaying p2p listen until scan done\n");
wil               167 drivers/net/wireless/ath/wil6210/p2p.c 		mutex_unlock(&wil->vif_mutex);
wil               170 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_unlock(&wil->vif_mutex);
wil               178 drivers/net/wireless/ath/wil6210/p2p.c 		wil->radio_wdev = wdev;
wil               184 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_unlock(&wil->mutex);
wil               209 drivers/net/wireless/ath/wil6210/p2p.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               213 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_lock(&wil->mutex);
wil               216 drivers/net/wireless/ath/wil6210/p2p.c 		wil_info(wil, "Cookie mismatch: 0x%016llx vs. 0x%016llx\n",
wil               218 drivers/net/wireless/ath/wil6210/p2p.c 		mutex_unlock(&wil->mutex);
wil               224 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_unlock(&wil->mutex);
wil               227 drivers/net/wireless/ath/wil6210/p2p.c 		wil_err(wil, "listen not started\n");
wil               231 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_lock(&wil->vif_mutex);
wil               232 drivers/net/wireless/ath/wil6210/p2p.c 	cfg80211_remain_on_channel_expired(vif_to_radio_wdev(wil, vif),
wil               237 drivers/net/wireless/ath/wil6210/p2p.c 		wil->radio_wdev = wil->main_ndev->ieee80211_ptr;
wil               238 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_unlock(&wil->vif_mutex);
wil               248 drivers/net/wireless/ath/wil6210/p2p.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               251 drivers/net/wireless/ath/wil6210/p2p.c 	wil_dbg_misc(wil, "p2p_listen_expired\n");
wil               253 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_lock(&wil->mutex);
wil               255 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_unlock(&wil->mutex);
wil               260 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_lock(&wil->vif_mutex);
wil               261 drivers/net/wireless/ath/wil6210/p2p.c 	cfg80211_remain_on_channel_expired(vif_to_radio_wdev(wil, vif),
wil               266 drivers/net/wireless/ath/wil6210/p2p.c 		wil->radio_wdev = wil->main_ndev->ieee80211_ptr;
wil               267 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_unlock(&wil->vif_mutex);
wil               276 drivers/net/wireless/ath/wil6210/p2p.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               279 drivers/net/wireless/ath/wil6210/p2p.c 	wil_dbg_misc(wil, "p2p_search_expired\n");
wil               281 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_lock(&wil->mutex);
wil               283 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_unlock(&wil->mutex);
wil               290 drivers/net/wireless/ath/wil6210/p2p.c 		mutex_lock(&wil->vif_mutex);
wil               295 drivers/net/wireless/ath/wil6210/p2p.c 				wil->radio_wdev =
wil               296 drivers/net/wireless/ath/wil6210/p2p.c 					wil->main_ndev->ieee80211_ptr;
wil               298 drivers/net/wireless/ath/wil6210/p2p.c 		mutex_unlock(&wil->vif_mutex);
wil               308 drivers/net/wireless/ath/wil6210/p2p.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               311 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_lock(&wil->mutex);
wil               313 drivers/net/wireless/ath/wil6210/p2p.c 	wil_dbg_misc(wil, "Checking delayed p2p listen\n");
wil               317 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_lock(&wil->vif_mutex);
wil               320 drivers/net/wireless/ath/wil6210/p2p.c 		mutex_unlock(&wil->vif_mutex);
wil               323 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_unlock(&wil->vif_mutex);
wil               327 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_lock(&wil->vif_mutex);
wil               334 drivers/net/wireless/ath/wil6210/p2p.c 			wil->radio_wdev = wil->main_ndev->ieee80211_ptr;
wil               340 drivers/net/wireless/ath/wil6210/p2p.c 			wil->radio_wdev = p2p->pending_listen_wdev;
wil               343 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_unlock(&wil->vif_mutex);
wil               346 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_unlock(&wil->mutex);
wil               349 drivers/net/wireless/ath/wil6210/p2p.c void wil_p2p_stop_radio_operations(struct wil6210_priv *wil)
wil               351 drivers/net/wireless/ath/wil6210/p2p.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil               357 drivers/net/wireless/ath/wil6210/p2p.c 	lockdep_assert_held(&wil->mutex);
wil               358 drivers/net/wireless/ath/wil6210/p2p.c 	lockdep_assert_held(&wil->vif_mutex);
wil               360 drivers/net/wireless/ath/wil6210/p2p.c 	if (wil->radio_wdev != wil->p2p_wdev)
wil               366 drivers/net/wireless/ath/wil6210/p2p.c 		    vif->scan_request->wdev == wil->p2p_wdev)
wil               372 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_unlock(&wil->vif_mutex);
wil               374 drivers/net/wireless/ath/wil6210/p2p.c 	mutex_lock(&wil->vif_mutex);
wil               382 drivers/net/wireless/ath/wil6210/p2p.c 		cfg80211_remain_on_channel_expired(wil->radio_wdev,
wil               389 drivers/net/wireless/ath/wil6210/p2p.c 	wil->radio_wdev = wil->main_ndev->ieee80211_ptr;
wil                39 drivers/net/wireless/ath/wil6210/pcie_bus.c int wil_set_capabilities(struct wil6210_priv *wil)
wil                42 drivers/net/wireless/ath/wil6210/pcie_bus.c 	u32 jtag_id = wil_r(wil, RGF_USER_JTAG_DEV_ID);
wil                43 drivers/net/wireless/ath/wil6210/pcie_bus.c 	u8 chip_revision = (wil_r(wil, RGF_USER_REVISION_ID) &
wil                48 drivers/net/wireless/ath/wil6210/pcie_bus.c 	bitmap_zero(wil->hw_capa, hw_capa_last);
wil                49 drivers/net/wireless/ath/wil6210/pcie_bus.c 	bitmap_zero(wil->fw_capabilities, WMI_FW_CAPABILITY_MAX);
wil                50 drivers/net/wireless/ath/wil6210/pcie_bus.c 	bitmap_zero(wil->platform_capa, WIL_PLATFORM_CAPA_MAX);
wil                51 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil->wil_fw_name = ftm_mode ? WIL_FW_NAME_FTM_DEFAULT :
wil                53 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil->chip_revision = chip_revision;
wil                61 drivers/net/wireless/ath/wil6210/pcie_bus.c 			wil->hw_name = "Sparrow D0";
wil                62 drivers/net/wireless/ath/wil6210/pcie_bus.c 			wil->hw_version = HW_VER_SPARROW_D0;
wil                66 drivers/net/wireless/ath/wil6210/pcie_bus.c 			if (wil_fw_verify_file_exists(wil, wil_fw_name))
wil                67 drivers/net/wireless/ath/wil6210/pcie_bus.c 				wil->wil_fw_name = wil_fw_name;
wil                70 drivers/net/wireless/ath/wil6210/pcie_bus.c 				wil_err(wil, "mac_rgf_ext section not found in fw_mapping\n");
wil                76 drivers/net/wireless/ath/wil6210/pcie_bus.c 			wil->hw_name = "Sparrow B0";
wil                77 drivers/net/wireless/ath/wil6210/pcie_bus.c 			wil->hw_version = HW_VER_SPARROW_B0;
wil                80 drivers/net/wireless/ath/wil6210/pcie_bus.c 			wil->hw_name = "Unknown";
wil                81 drivers/net/wireless/ath/wil6210/pcie_bus.c 			wil->hw_version = HW_VER_UNKNOWN;
wil                84 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil->rgf_fw_assert_code_addr = SPARROW_RGF_FW_ASSERT_CODE;
wil                85 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil->rgf_ucode_assert_code_addr = SPARROW_RGF_UCODE_ASSERT_CODE;
wil                88 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil->hw_name = "Talyn-MA";
wil                89 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil->hw_version = HW_VER_TALYN;
wil                91 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil->rgf_fw_assert_code_addr = TALYN_RGF_FW_ASSERT_CODE;
wil                92 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil->rgf_ucode_assert_code_addr = TALYN_RGF_UCODE_ASSERT_CODE;
wil                93 drivers/net/wireless/ath/wil6210/pcie_bus.c 		if (wil_r(wil, RGF_USER_OTP_HW_RD_MACHINE_1) &
wil                95 drivers/net/wireless/ath/wil6210/pcie_bus.c 			set_bit(hw_capa_no_flash, wil->hw_capa);
wil                98 drivers/net/wireless/ath/wil6210/pcie_bus.c 		if (wil_fw_verify_file_exists(wil, wil_fw_name))
wil                99 drivers/net/wireless/ath/wil6210/pcie_bus.c 			wil->wil_fw_name = wil_fw_name;
wil               102 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil->hw_name = "Talyn-MB";
wil               103 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil->hw_version = HW_VER_TALYN_MB;
wil               106 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil->rgf_fw_assert_code_addr = TALYN_RGF_FW_ASSERT_CODE;
wil               107 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil->rgf_ucode_assert_code_addr = TALYN_RGF_UCODE_ASSERT_CODE;
wil               108 drivers/net/wireless/ath/wil6210/pcie_bus.c 		set_bit(hw_capa_no_flash, wil->hw_capa);
wil               109 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil->use_enhanced_dma_hw = true;
wil               110 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil->use_rx_hw_reordering = true;
wil               111 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil->use_compressed_rx_status = true;
wil               114 drivers/net/wireless/ath/wil6210/pcie_bus.c 		if (wil_fw_verify_file_exists(wil, wil_fw_name))
wil               115 drivers/net/wireless/ath/wil6210/pcie_bus.c 			wil->wil_fw_name = wil_fw_name;
wil               118 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_err(wil, "Unknown board hardware, chip_id 0x%08x, chip_revision 0x%08x\n",
wil               120 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil->hw_name = "Unknown";
wil               121 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil->hw_version = HW_VER_UNKNOWN;
wil               125 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_init_txrx_ops(wil);
wil               129 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_err(wil, "fw_code section not found in fw_mapping\n");
wil               132 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil->iccm_base = iccm_section->host;
wil               134 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_info(wil, "Board hardware is %s, flash %sexist\n", wil->hw_name,
wil               135 drivers/net/wireless/ath/wil6210/pcie_bus.c 		 test_bit(hw_capa_no_flash, wil->hw_capa) ? "doesn't " : "");
wil               138 drivers/net/wireless/ath/wil6210/pcie_bus.c 	if (wil->platform_ops.get_capa) {
wil               140 drivers/net/wireless/ath/wil6210/pcie_bus.c 			wil->platform_ops.get_capa(wil->platform_handle);
wil               141 drivers/net/wireless/ath/wil6210/pcie_bus.c 		memcpy(wil->platform_capa, &platform_capa,
wil               142 drivers/net/wireless/ath/wil6210/pcie_bus.c 		       min(sizeof(wil->platform_capa), sizeof(platform_capa)));
wil               145 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_info(wil, "platform_capa 0x%lx\n", *wil->platform_capa);
wil               148 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_request_firmware(wil, wil->wil_fw_name, false);
wil               149 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_refresh_fw_capabilities(wil);
wil               154 drivers/net/wireless/ath/wil6210/pcie_bus.c void wil_disable_irq(struct wil6210_priv *wil)
wil               156 drivers/net/wireless/ath/wil6210/pcie_bus.c 	int irq = wil->pdev->irq;
wil               159 drivers/net/wireless/ath/wil6210/pcie_bus.c 	if (wil->n_msi == 3) {
wil               165 drivers/net/wireless/ath/wil6210/pcie_bus.c void wil_enable_irq(struct wil6210_priv *wil)
wil               167 drivers/net/wireless/ath/wil6210/pcie_bus.c 	int irq = wil->pdev->irq;
wil               170 drivers/net/wireless/ath/wil6210/pcie_bus.c 	if (wil->n_msi == 3) {
wil               176 drivers/net/wireless/ath/wil6210/pcie_bus.c static void wil_remove_all_additional_vifs(struct wil6210_priv *wil)
wil               181 drivers/net/wireless/ath/wil6210/pcie_bus.c 	for (i = 1; i < GET_MAX_VIFS(wil); i++) {
wil               182 drivers/net/wireless/ath/wil6210/pcie_bus.c 		vif = wil->vifs[i];
wil               185 drivers/net/wireless/ath/wil6210/pcie_bus.c 			wil_vif_remove(wil, vif->mid);
wil               191 drivers/net/wireless/ath/wil6210/pcie_bus.c static int wil_if_pcie_enable(struct wil6210_priv *wil)
wil               193 drivers/net/wireless/ath/wil6210/pcie_bus.c 	struct pci_dev *pdev = wil->pdev;
wil               201 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_dbg_misc(wil, "if_pcie_enable\n");
wil               209 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_dbg_misc(wil, "Setup %d MSI interrupts\n", n_msi);
wil               212 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_dbg_misc(wil, "MSI interrupts disabled, use INTx\n");
wil               215 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_err(wil, "Invalid n_msi=%d, default to 1\n", n_msi);
wil               221 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_err(wil, "3 MSI mode failed, try 1 MSI\n");
wil               226 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_err(wil, "pci_enable_msi failed, use INTx\n");
wil               230 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil->n_msi = n_msi;
wil               232 drivers/net/wireless/ath/wil6210/pcie_bus.c 	if (wil->n_msi == 0 && msi_only) {
wil               233 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_err(wil, "Interrupt pin not routed, unable to use INTx\n");
wil               238 drivers/net/wireless/ath/wil6210/pcie_bus.c 	rc = wil6210_init_irq(wil, pdev->irq);
wil               243 drivers/net/wireless/ath/wil6210/pcie_bus.c 	mutex_lock(&wil->mutex);
wil               244 drivers/net/wireless/ath/wil6210/pcie_bus.c 	rc = wil_reset(wil, false);
wil               245 drivers/net/wireless/ath/wil6210/pcie_bus.c 	mutex_unlock(&wil->mutex);
wil               252 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil6210_fini_irq(wil, pdev->irq);
wil               261 drivers/net/wireless/ath/wil6210/pcie_bus.c static int wil_if_pcie_disable(struct wil6210_priv *wil)
wil               263 drivers/net/wireless/ath/wil6210/pcie_bus.c 	struct pci_dev *pdev = wil->pdev;
wil               265 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_dbg_misc(wil, "if_pcie_disable\n");
wil               269 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil6210_fini_irq(wil, pdev->irq);
wil               279 drivers/net/wireless/ath/wil6210/pcie_bus.c 	struct wil6210_priv *wil = wil_handle;
wil               281 drivers/net/wireless/ath/wil6210/pcie_bus.c 	if (!wil)
wil               284 drivers/net/wireless/ath/wil6210/pcie_bus.c 	return wil_fw_copy_crash_dump(wil, buf, size);
wil               289 drivers/net/wireless/ath/wil6210/pcie_bus.c 	struct wil6210_priv *wil = wil_handle;
wil               291 drivers/net/wireless/ath/wil6210/pcie_bus.c 	if (!wil)
wil               294 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_fw_error_recovery(wil);
wil               299 drivers/net/wireless/ath/wil6210/pcie_bus.c static void wil_platform_ops_uninit(struct wil6210_priv *wil)
wil               301 drivers/net/wireless/ath/wil6210/pcie_bus.c 	if (wil->platform_ops.uninit)
wil               302 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil->platform_ops.uninit(wil->platform_handle);
wil               303 drivers/net/wireless/ath/wil6210/pcie_bus.c 	memset(&wil->platform_ops, 0, sizeof(wil->platform_ops));
wil               308 drivers/net/wireless/ath/wil6210/pcie_bus.c 	struct wil6210_priv *wil;
wil               332 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil = wil_if_alloc(dev);
wil               333 drivers/net/wireless/ath/wil6210/pcie_bus.c 	if (IS_ERR(wil)) {
wil               334 drivers/net/wireless/ath/wil6210/pcie_bus.c 		rc = (int)PTR_ERR(wil);
wil               339 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil->pdev = pdev;
wil               340 drivers/net/wireless/ath/wil6210/pcie_bus.c 	pci_set_drvdata(pdev, wil);
wil               341 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil->bar_size = bar_size;
wil               344 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil->platform_handle =
wil               345 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_platform_init(&pdev->dev, &wil->platform_ops, &rops, wil);
wil               346 drivers/net/wireless/ath/wil6210/pcie_bus.c 	if (!wil->platform_handle) {
wil               348 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_err(wil, "wil_platform_init failed\n");
wil               354 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_err(wil,
wil               363 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_err(wil,
wil               372 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_err(wil, "pci_request_region failed\n");
wil               377 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil->csr = pci_ioremap_bar(pdev, 0);
wil               378 drivers/net/wireless/ath/wil6210/pcie_bus.c 	if (!wil->csr) {
wil               379 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_err(wil, "pci_ioremap_bar failed\n");
wil               384 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_info(wil, "CSR at %pR -> 0x%p\n", &pdev->resource[0], wil->csr);
wil               386 drivers/net/wireless/ath/wil6210/pcie_bus.c 	rc = wil_set_capabilities(wil);
wil               388 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_err(wil, "wil_set_capabilities failed, rc %d\n", rc);
wil               395 drivers/net/wireless/ath/wil6210/pcie_bus.c 	start_idx = wil->use_enhanced_dma_hw ? 0 : 1;
wil               406 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil->dma_addr_size = dma_addr_size[i];
wil               410 drivers/net/wireless/ath/wil6210/pcie_bus.c 	if (wil->dma_addr_size == 0)
wil               413 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil6210_clear_irq(wil);
wil               416 drivers/net/wireless/ath/wil6210/pcie_bus.c 	rc = wil_if_pcie_enable(wil);
wil               418 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_err(wil, "Enable device failed\n");
wil               423 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_clear_fw_log_addr(wil);
wil               424 drivers/net/wireless/ath/wil6210/pcie_bus.c 	rc = wil_if_add(wil);
wil               426 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_err(wil, "wil_if_add failed: %d\n", rc);
wil               431 drivers/net/wireless/ath/wil6210/pcie_bus.c 	if (test_bit(WMI_FW_CAPABILITY_WMI_ONLY, wil->fw_capabilities)) {
wil               432 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_dbg_misc(wil, "Loading WMI only FW\n");
wil               433 drivers/net/wireless/ath/wil6210/pcie_bus.c 		mutex_lock(&wil->mutex);
wil               434 drivers/net/wireless/ath/wil6210/pcie_bus.c 		rc = wil_reset(wil, true);
wil               435 drivers/net/wireless/ath/wil6210/pcie_bus.c 		mutex_unlock(&wil->mutex);
wil               437 drivers/net/wireless/ath/wil6210/pcie_bus.c 			wil_err(wil, "failed to load WMI only FW\n");
wil               443 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil->pm_notify.notifier_call = wil6210_pm_notify;
wil               445 drivers/net/wireless/ath/wil6210/pcie_bus.c 	rc = register_pm_notifier(&wil->pm_notify);
wil               450 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_err(wil, "register_pm_notifier failed: %d\n", rc);
wil               452 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil6210_debugfs_init(wil);
wil               454 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_pm_runtime_allow(wil);
wil               459 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_if_pcie_disable(wil);
wil               461 drivers/net/wireless/ath/wil6210/pcie_bus.c 	pci_iounmap(pdev, wil->csr);
wil               467 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_platform_ops_uninit(wil);
wil               469 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_if_free(wil);
wil               476 drivers/net/wireless/ath/wil6210/pcie_bus.c 	struct wil6210_priv *wil = pci_get_drvdata(pdev);
wil               477 drivers/net/wireless/ath/wil6210/pcie_bus.c 	void __iomem *csr = wil->csr;
wil               479 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_dbg_misc(wil, "pcie_remove\n");
wil               481 drivers/net/wireless/ath/wil6210/pcie_bus.c 	unregister_pm_notifier(&wil->pm_notify);
wil               483 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_pm_runtime_forbid(wil);
wil               485 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil6210_debugfs_remove(wil);
wil               487 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_p2p_wdev_free(wil);
wil               488 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_remove_all_additional_vifs(wil);
wil               490 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_if_remove(wil);
wil               491 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_if_pcie_disable(wil);
wil               495 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_platform_ops_uninit(wil);
wil               496 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_if_free(wil);
wil               511 drivers/net/wireless/ath/wil6210/pcie_bus.c 	struct wil6210_priv *wil = pci_get_drvdata(pdev);
wil               514 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_dbg_pm(wil, "suspend: %s\n", is_runtime ? "runtime" : "system");
wil               516 drivers/net/wireless/ath/wil6210/pcie_bus.c 	mutex_lock(&wil->vif_mutex);
wil               517 drivers/net/wireless/ath/wil6210/pcie_bus.c 	active_ifaces = wil_has_active_ifaces(wil, true, false);
wil               518 drivers/net/wireless/ath/wil6210/pcie_bus.c 	mutex_unlock(&wil->vif_mutex);
wil               519 drivers/net/wireless/ath/wil6210/pcie_bus.c 	keep_radio_on = active_ifaces && wil->keep_radio_on_during_sleep;
wil               521 drivers/net/wireless/ath/wil6210/pcie_bus.c 	rc = wil_can_suspend(wil, is_runtime);
wil               525 drivers/net/wireless/ath/wil6210/pcie_bus.c 	rc = wil_suspend(wil, is_runtime, keep_radio_on);
wil               533 drivers/net/wireless/ath/wil6210/pcie_bus.c 			wil->suspend_stats.r_off.successful_suspends++;
wil               535 drivers/net/wireless/ath/wil6210/pcie_bus.c 			wil->suspend_stats.r_on.successful_suspends++;
wil               546 drivers/net/wireless/ath/wil6210/pcie_bus.c 	struct wil6210_priv *wil = pci_get_drvdata(pdev);
wil               549 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_dbg_pm(wil, "resume: %s\n", is_runtime ? "runtime" : "system");
wil               551 drivers/net/wireless/ath/wil6210/pcie_bus.c 	mutex_lock(&wil->vif_mutex);
wil               552 drivers/net/wireless/ath/wil6210/pcie_bus.c 	active_ifaces = wil_has_active_ifaces(wil, true, false);
wil               553 drivers/net/wireless/ath/wil6210/pcie_bus.c 	mutex_unlock(&wil->vif_mutex);
wil               554 drivers/net/wireless/ath/wil6210/pcie_bus.c 	keep_radio_on = active_ifaces && wil->keep_radio_on_during_sleep;
wil               562 drivers/net/wireless/ath/wil6210/pcie_bus.c 	rc = wil_resume(wil, is_runtime, keep_radio_on);
wil               564 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_err(wil, "device failed to resume (%d)\n", rc);
wil               567 drivers/net/wireless/ath/wil6210/pcie_bus.c 			wil->suspend_stats.r_off.failed_resumes++;
wil               569 drivers/net/wireless/ath/wil6210/pcie_bus.c 			wil->suspend_stats.r_on.failed_resumes++;
wil               573 drivers/net/wireless/ath/wil6210/pcie_bus.c 			wil->suspend_stats.r_on.successful_resumes++;
wil               575 drivers/net/wireless/ath/wil6210/pcie_bus.c 			wil->suspend_stats.r_off.successful_resumes++;
wil               584 drivers/net/wireless/ath/wil6210/pcie_bus.c 	struct wil6210_priv *wil = container_of(
wil               589 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_dbg_pm(wil, "pm_notify: mode (%ld)\n", mode);
wil               595 drivers/net/wireless/ath/wil6210/pcie_bus.c 		rc = wil_can_suspend(wil, false);
wil               599 drivers/net/wireless/ath/wil6210/pcie_bus.c 		if (wil->platform_ops.notify)
wil               600 drivers/net/wireless/ath/wil6210/pcie_bus.c 			rc = wil->platform_ops.notify(wil->platform_handle,
wil               607 drivers/net/wireless/ath/wil6210/pcie_bus.c 		if (wil->platform_ops.notify)
wil               608 drivers/net/wireless/ath/wil6210/pcie_bus.c 			rc = wil->platform_ops.notify(wil->platform_handle,
wil               612 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_dbg_pm(wil, "unhandled notify mode %ld\n", mode);
wil               616 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_dbg_pm(wil, "notification mode %ld: rc (%d)\n", mode, rc);
wil               633 drivers/net/wireless/ath/wil6210/pcie_bus.c 	struct wil6210_priv *wil = pci_get_drvdata(pdev);
wil               635 drivers/net/wireless/ath/wil6210/pcie_bus.c 	wil_dbg_pm(wil, "Runtime idle\n");
wil               637 drivers/net/wireless/ath/wil6210/pcie_bus.c 	return wil_can_suspend(wil, true);
wil               648 drivers/net/wireless/ath/wil6210/pcie_bus.c 	struct wil6210_priv *wil = pci_get_drvdata(pdev);
wil               650 drivers/net/wireless/ath/wil6210/pcie_bus.c 	if (test_bit(wil_status_suspended, wil->status)) {
wil               651 drivers/net/wireless/ath/wil6210/pcie_bus.c 		wil_dbg_pm(wil, "trying to suspend while suspended\n");
wil                24 drivers/net/wireless/ath/wil6210/pm.c static void wil_pm_wake_connected_net_queues(struct wil6210_priv *wil)
wil                28 drivers/net/wireless/ath/wil6210/pm.c 	mutex_lock(&wil->vif_mutex);
wil                29 drivers/net/wireless/ath/wil6210/pm.c 	for (i = 0; i < GET_MAX_VIFS(wil); i++) {
wil                30 drivers/net/wireless/ath/wil6210/pm.c 		struct wil6210_vif *vif = wil->vifs[i];
wil                33 drivers/net/wireless/ath/wil6210/pm.c 			wil_update_net_queues_bh(wil, vif, NULL, false);
wil                35 drivers/net/wireless/ath/wil6210/pm.c 	mutex_unlock(&wil->vif_mutex);
wil                38 drivers/net/wireless/ath/wil6210/pm.c static void wil_pm_stop_all_net_queues(struct wil6210_priv *wil)
wil                42 drivers/net/wireless/ath/wil6210/pm.c 	mutex_lock(&wil->vif_mutex);
wil                43 drivers/net/wireless/ath/wil6210/pm.c 	for (i = 0; i < GET_MAX_VIFS(wil); i++) {
wil                44 drivers/net/wireless/ath/wil6210/pm.c 		struct wil6210_vif *vif = wil->vifs[i];
wil                47 drivers/net/wireless/ath/wil6210/pm.c 			wil_update_net_queues_bh(wil, vif, NULL, true);
wil                49 drivers/net/wireless/ath/wil6210/pm.c 	mutex_unlock(&wil->vif_mutex);
wil                53 drivers/net/wireless/ath/wil6210/pm.c wil_can_suspend_vif(struct wil6210_priv *wil, struct wil6210_vif *vif,
wil                60 drivers/net/wireless/ath/wil6210/pm.c 		wil_dbg_pm(wil, "Sniffer\n");
wil                67 drivers/net/wireless/ath/wil6210/pm.c 			wil_dbg_pm(wil, "Delay suspend when connecting\n");
wil                71 drivers/net/wireless/ath/wil6210/pm.c 			wil_dbg_pm(wil, "STA-like interface\n");
wil                77 drivers/net/wireless/ath/wil6210/pm.c 		wil_dbg_pm(wil, "AP-like interface\n");
wil                84 drivers/net/wireless/ath/wil6210/pm.c int wil_can_suspend(struct wil6210_priv *wil, bool is_runtime)
wil                88 drivers/net/wireless/ath/wil6210/pm.c 				 wil->fw_capabilities);
wil                91 drivers/net/wireless/ath/wil6210/pm.c 	wil_dbg_pm(wil, "can_suspend: %s\n", is_runtime ? "runtime" : "system");
wil                94 drivers/net/wireless/ath/wil6210/pm.c 		wil_dbg_pm(wil, "Deny any suspend - %s mode\n",
wil                99 drivers/net/wireless/ath/wil6210/pm.c 	if (is_runtime && !wil->platform_ops.suspend) {
wil               104 drivers/net/wireless/ath/wil6210/pm.c 	mutex_lock(&wil->vif_mutex);
wil               105 drivers/net/wireless/ath/wil6210/pm.c 	active_ifaces = wil_has_active_ifaces(wil, true, false);
wil               106 drivers/net/wireless/ath/wil6210/pm.c 	mutex_unlock(&wil->vif_mutex);
wil               110 drivers/net/wireless/ath/wil6210/pm.c 		wil_dbg_pm(wil, "Interface is down\n");
wil               113 drivers/net/wireless/ath/wil6210/pm.c 	if (test_bit(wil_status_resetting, wil->status)) {
wil               114 drivers/net/wireless/ath/wil6210/pm.c 		wil_dbg_pm(wil, "Delay suspend when resetting\n");
wil               118 drivers/net/wireless/ath/wil6210/pm.c 	if (wil->recovery_state != fw_recovery_idle) {
wil               119 drivers/net/wireless/ath/wil6210/pm.c 		wil_dbg_pm(wil, "Delay suspend during recovery\n");
wil               125 drivers/net/wireless/ath/wil6210/pm.c 	mutex_lock(&wil->vif_mutex);
wil               126 drivers/net/wireless/ath/wil6210/pm.c 	for (i = 0; i < GET_MAX_VIFS(wil); i++) {
wil               127 drivers/net/wireless/ath/wil6210/pm.c 		struct wil6210_vif *vif = wil->vifs[i];
wil               131 drivers/net/wireless/ath/wil6210/pm.c 		if (!wil_can_suspend_vif(wil, vif, is_runtime)) {
wil               133 drivers/net/wireless/ath/wil6210/pm.c 			mutex_unlock(&wil->vif_mutex);
wil               137 drivers/net/wireless/ath/wil6210/pm.c 	mutex_unlock(&wil->vif_mutex);
wil               140 drivers/net/wireless/ath/wil6210/pm.c 	wil_dbg_pm(wil, "can_suspend: %s => %s (%d)\n",
wil               144 drivers/net/wireless/ath/wil6210/pm.c 		wil->suspend_stats.rejected_by_host++;
wil               149 drivers/net/wireless/ath/wil6210/pm.c static int wil_resume_keep_radio_on(struct wil6210_priv *wil)
wil               156 drivers/net/wireless/ath/wil6210/pm.c 	set_bit(wil_status_resuming, wil->status);
wil               157 drivers/net/wireless/ath/wil6210/pm.c 	clear_bit(wil_status_suspended, wil->status);
wil               158 drivers/net/wireless/ath/wil6210/pm.c 	wil_c(wil, RGF_USER_CLKS_CTL_0, BIT_USER_CLKS_RST_PWGD);
wil               159 drivers/net/wireless/ath/wil6210/pm.c 	wil_unmask_irq(wil);
wil               161 drivers/net/wireless/ath/wil6210/pm.c 	wil6210_bus_request(wil, wil->bus_request_kbps_pre_suspend);
wil               164 drivers/net/wireless/ath/wil6210/pm.c 	rc = wmi_resume(wil);
wil               166 drivers/net/wireless/ath/wil6210/pm.c 		wil_err(wil, "device failed to resume (%d)\n", rc);
wil               169 drivers/net/wireless/ath/wil6210/pm.c 		rc = wil_down(wil);
wil               171 drivers/net/wireless/ath/wil6210/pm.c 			wil_err(wil, "wil_down failed (%d)\n", rc);
wil               174 drivers/net/wireless/ath/wil6210/pm.c 		rc = wil_up(wil);
wil               176 drivers/net/wireless/ath/wil6210/pm.c 			wil_err(wil, "wil_up failed (%d)\n", rc);
wil               182 drivers/net/wireless/ath/wil6210/pm.c 	wil_pm_wake_connected_net_queues(wil);
wil               186 drivers/net/wireless/ath/wil6210/pm.c 		set_bit(wil_status_suspended, wil->status);
wil               190 drivers/net/wireless/ath/wil6210/pm.c static int wil_suspend_keep_radio_on(struct wil6210_priv *wil)
wil               195 drivers/net/wireless/ath/wil6210/pm.c 	wil_dbg_pm(wil, "suspend keep radio on\n");
wil               198 drivers/net/wireless/ath/wil6210/pm.c 	rc = down_write_trylock(&wil->mem_lock);
wil               200 drivers/net/wireless/ath/wil6210/pm.c 		wil_err(wil,
wil               203 drivers/net/wireless/ath/wil6210/pm.c 		wil->suspend_stats.rejected_by_host++;
wil               207 drivers/net/wireless/ath/wil6210/pm.c 	set_bit(wil_status_suspending, wil->status);
wil               208 drivers/net/wireless/ath/wil6210/pm.c 	up_write(&wil->mem_lock);
wil               210 drivers/net/wireless/ath/wil6210/pm.c 	wil_pm_stop_all_net_queues(wil);
wil               212 drivers/net/wireless/ath/wil6210/pm.c 	if (!wil_is_tx_idle(wil)) {
wil               213 drivers/net/wireless/ath/wil6210/pm.c 		wil_dbg_pm(wil, "Pending TX data, reject suspend\n");
wil               214 drivers/net/wireless/ath/wil6210/pm.c 		wil->suspend_stats.rejected_by_host++;
wil               218 drivers/net/wireless/ath/wil6210/pm.c 	if (!wil->txrx_ops.is_rx_idle(wil)) {
wil               219 drivers/net/wireless/ath/wil6210/pm.c 		wil_dbg_pm(wil, "Pending RX data, reject suspend\n");
wil               220 drivers/net/wireless/ath/wil6210/pm.c 		wil->suspend_stats.rejected_by_host++;
wil               224 drivers/net/wireless/ath/wil6210/pm.c 	if (!wil_is_wmi_idle(wil)) {
wil               225 drivers/net/wireless/ath/wil6210/pm.c 		wil_dbg_pm(wil, "Pending WMI events, reject suspend\n");
wil               226 drivers/net/wireless/ath/wil6210/pm.c 		wil->suspend_stats.rejected_by_host++;
wil               231 drivers/net/wireless/ath/wil6210/pm.c 	rc = wmi_suspend(wil);
wil               233 drivers/net/wireless/ath/wil6210/pm.c 		wil_dbg_pm(wil, "wmi_suspend failed, reject suspend (%d)\n",
wil               240 drivers/net/wireless/ath/wil6210/pm.c 	if (test_bit(wil_status_napi_en, wil->status)) {
wil               241 drivers/net/wireless/ath/wil6210/pm.c 		while (!wil->txrx_ops.is_rx_idle(wil)) {
wil               243 drivers/net/wireless/ath/wil6210/pm.c 				if (wil->txrx_ops.is_rx_idle(wil))
wil               245 drivers/net/wireless/ath/wil6210/pm.c 				wil_err(wil,
wil               247 drivers/net/wireless/ath/wil6210/pm.c 				wil->suspend_stats.r_on.failed_suspends++;
wil               250 drivers/net/wireless/ath/wil6210/pm.c 			wil_dbg_ratelimited(wil, "rx vring is not empty -> NAPI\n");
wil               251 drivers/net/wireless/ath/wil6210/pm.c 			napi_synchronize(&wil->napi_rx);
wil               261 drivers/net/wireless/ath/wil6210/pm.c 	if (!wil_is_wmi_idle(wil)) {
wil               262 drivers/net/wireless/ath/wil6210/pm.c 		wil_err(wil, "suspend failed due to pending WMI events\n");
wil               263 drivers/net/wireless/ath/wil6210/pm.c 		wil->suspend_stats.r_on.failed_suspends++;
wil               267 drivers/net/wireless/ath/wil6210/pm.c 	wil_mask_irq(wil);
wil               270 drivers/net/wireless/ath/wil6210/pm.c 	wil_s(wil, RGF_USER_CLKS_CTL_0, BIT_USER_CLKS_RST_PWGD);
wil               272 drivers/net/wireless/ath/wil6210/pm.c 	if (wil->platform_ops.suspend) {
wil               273 drivers/net/wireless/ath/wil6210/pm.c 		rc = wil->platform_ops.suspend(wil->platform_handle, true);
wil               275 drivers/net/wireless/ath/wil6210/pm.c 			wil_err(wil, "platform device failed to suspend (%d)\n",
wil               277 drivers/net/wireless/ath/wil6210/pm.c 			wil->suspend_stats.r_on.failed_suspends++;
wil               278 drivers/net/wireless/ath/wil6210/pm.c 			wil_c(wil, RGF_USER_CLKS_CTL_0, BIT_USER_CLKS_RST_PWGD);
wil               279 drivers/net/wireless/ath/wil6210/pm.c 			wil_unmask_irq(wil);
wil               285 drivers/net/wireless/ath/wil6210/pm.c 	wil->bus_request_kbps_pre_suspend = wil->bus_request_kbps;
wil               286 drivers/net/wireless/ath/wil6210/pm.c 	wil6210_bus_request(wil, 0);
wil               288 drivers/net/wireless/ath/wil6210/pm.c 	set_bit(wil_status_suspended, wil->status);
wil               289 drivers/net/wireless/ath/wil6210/pm.c 	clear_bit(wil_status_suspending, wil->status);
wil               294 drivers/net/wireless/ath/wil6210/pm.c 	set_bit(wil_status_resuming, wil->status);
wil               295 drivers/net/wireless/ath/wil6210/pm.c 	clear_bit(wil_status_suspending, wil->status);
wil               296 drivers/net/wireless/ath/wil6210/pm.c 	rc = wmi_resume(wil);
wil               300 drivers/net/wireless/ath/wil6210/pm.c 		wil_pm_wake_connected_net_queues(wil);
wil               305 drivers/net/wireless/ath/wil6210/pm.c 	clear_bit(wil_status_suspending, wil->status);
wil               306 drivers/net/wireless/ath/wil6210/pm.c 	wil_pm_wake_connected_net_queues(wil);
wil               310 drivers/net/wireless/ath/wil6210/pm.c static int wil_suspend_radio_off(struct wil6210_priv *wil)
wil               315 drivers/net/wireless/ath/wil6210/pm.c 	wil_dbg_pm(wil, "suspend radio off\n");
wil               317 drivers/net/wireless/ath/wil6210/pm.c 	rc = down_write_trylock(&wil->mem_lock);
wil               319 drivers/net/wireless/ath/wil6210/pm.c 		wil_err(wil,
wil               322 drivers/net/wireless/ath/wil6210/pm.c 		wil->suspend_stats.rejected_by_host++;
wil               326 drivers/net/wireless/ath/wil6210/pm.c 	set_bit(wil_status_suspending, wil->status);
wil               327 drivers/net/wireless/ath/wil6210/pm.c 	up_write(&wil->mem_lock);
wil               330 drivers/net/wireless/ath/wil6210/pm.c 	mutex_lock(&wil->vif_mutex);
wil               331 drivers/net/wireless/ath/wil6210/pm.c 	active_ifaces = wil_has_active_ifaces(wil, true, false);
wil               332 drivers/net/wireless/ath/wil6210/pm.c 	mutex_unlock(&wil->vif_mutex);
wil               335 drivers/net/wireless/ath/wil6210/pm.c 		rc = wil_down(wil);
wil               337 drivers/net/wireless/ath/wil6210/pm.c 			wil_err(wil, "wil_down : %d\n", rc);
wil               338 drivers/net/wireless/ath/wil6210/pm.c 			wil->suspend_stats.r_off.failed_suspends++;
wil               344 drivers/net/wireless/ath/wil6210/pm.c 	wil_dbg_pm(wil, "Disabling PCIe IRQ before suspending\n");
wil               345 drivers/net/wireless/ath/wil6210/pm.c 	wil_disable_irq(wil);
wil               347 drivers/net/wireless/ath/wil6210/pm.c 	if (wil->platform_ops.suspend) {
wil               348 drivers/net/wireless/ath/wil6210/pm.c 		rc = wil->platform_ops.suspend(wil->platform_handle, false);
wil               350 drivers/net/wireless/ath/wil6210/pm.c 			wil_enable_irq(wil);
wil               351 drivers/net/wireless/ath/wil6210/pm.c 			wil->suspend_stats.r_off.failed_suspends++;
wil               356 drivers/net/wireless/ath/wil6210/pm.c 	set_bit(wil_status_suspended, wil->status);
wil               359 drivers/net/wireless/ath/wil6210/pm.c 	clear_bit(wil_status_suspending, wil->status);
wil               360 drivers/net/wireless/ath/wil6210/pm.c 	wil_dbg_pm(wil, "suspend radio off: %d\n", rc);
wil               365 drivers/net/wireless/ath/wil6210/pm.c static int wil_resume_radio_off(struct wil6210_priv *wil)
wil               370 drivers/net/wireless/ath/wil6210/pm.c 	wil_dbg_pm(wil, "Enabling PCIe IRQ\n");
wil               371 drivers/net/wireless/ath/wil6210/pm.c 	wil_enable_irq(wil);
wil               377 drivers/net/wireless/ath/wil6210/pm.c 	mutex_lock(&wil->vif_mutex);
wil               378 drivers/net/wireless/ath/wil6210/pm.c 	active_ifaces = wil_has_active_ifaces(wil, true, false);
wil               379 drivers/net/wireless/ath/wil6210/pm.c 	mutex_unlock(&wil->vif_mutex);
wil               381 drivers/net/wireless/ath/wil6210/pm.c 		rc = wil_up(wil);
wil               383 drivers/net/wireless/ath/wil6210/pm.c 		clear_bit(wil_status_suspended, wil->status);
wil               388 drivers/net/wireless/ath/wil6210/pm.c int wil_suspend(struct wil6210_priv *wil, bool is_runtime, bool keep_radio_on)
wil               392 drivers/net/wireless/ath/wil6210/pm.c 	wil_dbg_pm(wil, "suspend: %s\n", is_runtime ? "runtime" : "system");
wil               394 drivers/net/wireless/ath/wil6210/pm.c 	if (test_bit(wil_status_suspended, wil->status)) {
wil               395 drivers/net/wireless/ath/wil6210/pm.c 		wil_dbg_pm(wil, "trying to suspend while suspended\n");
wil               400 drivers/net/wireless/ath/wil6210/pm.c 		rc = wil_suspend_radio_off(wil);
wil               402 drivers/net/wireless/ath/wil6210/pm.c 		rc = wil_suspend_keep_radio_on(wil);
wil               404 drivers/net/wireless/ath/wil6210/pm.c 	wil_dbg_pm(wil, "suspend: %s => %d\n",
wil               410 drivers/net/wireless/ath/wil6210/pm.c int wil_resume(struct wil6210_priv *wil, bool is_runtime, bool keep_radio_on)
wil               414 drivers/net/wireless/ath/wil6210/pm.c 	wil_dbg_pm(wil, "resume: %s\n", is_runtime ? "runtime" : "system");
wil               416 drivers/net/wireless/ath/wil6210/pm.c 	if (wil->platform_ops.resume) {
wil               417 drivers/net/wireless/ath/wil6210/pm.c 		rc = wil->platform_ops.resume(wil->platform_handle,
wil               420 drivers/net/wireless/ath/wil6210/pm.c 			wil_err(wil, "platform_ops.resume : %d\n", rc);
wil               426 drivers/net/wireless/ath/wil6210/pm.c 		rc = wil_resume_keep_radio_on(wil);
wil               428 drivers/net/wireless/ath/wil6210/pm.c 		rc = wil_resume_radio_off(wil);
wil               431 drivers/net/wireless/ath/wil6210/pm.c 	wil_dbg_pm(wil, "resume: %s => %d\n", is_runtime ? "runtime" : "system",
wil               436 drivers/net/wireless/ath/wil6210/pm.c void wil_pm_runtime_allow(struct wil6210_priv *wil)
wil               438 drivers/net/wireless/ath/wil6210/pm.c 	struct device *dev = wil_to_dev(wil);
wil               446 drivers/net/wireless/ath/wil6210/pm.c void wil_pm_runtime_forbid(struct wil6210_priv *wil)
wil               448 drivers/net/wireless/ath/wil6210/pm.c 	struct device *dev = wil_to_dev(wil);
wil               454 drivers/net/wireless/ath/wil6210/pm.c int wil_pm_runtime_get(struct wil6210_priv *wil)
wil               457 drivers/net/wireless/ath/wil6210/pm.c 	struct device *dev = wil_to_dev(wil);
wil               461 drivers/net/wireless/ath/wil6210/pm.c 		wil_err(wil, "pm_runtime_get_sync() failed, rc = %d\n", rc);
wil               469 drivers/net/wireless/ath/wil6210/pm.c void wil_pm_runtime_put(struct wil6210_priv *wil)
wil               471 drivers/net/wireless/ath/wil6210/pm.c 	struct device *dev = wil_to_dev(wil);
wil                37 drivers/net/wireless/ath/wil6210/pmc.c void wil_pmc_init(struct wil6210_priv *wil)
wil                39 drivers/net/wireless/ath/wil6210/pmc.c 	memset(&wil->pmc, 0, sizeof(struct pmc_ctx));
wil                40 drivers/net/wireless/ath/wil6210/pmc.c 	mutex_init(&wil->pmc.lock);
wil                51 drivers/net/wireless/ath/wil6210/pmc.c void wil_pmc_alloc(struct wil6210_priv *wil,
wil                56 drivers/net/wireless/ath/wil6210/pmc.c 	struct pmc_ctx *pmc = &wil->pmc;
wil                57 drivers/net/wireless/ath/wil6210/pmc.c 	struct device *dev = wil_to_dev(wil);
wil                58 drivers/net/wireless/ath/wil6210/pmc.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil                66 drivers/net/wireless/ath/wil6210/pmc.c 		wil_err(wil, "ERROR pmc is already allocated\n");
wil                70 drivers/net/wireless/ath/wil6210/pmc.c 		wil_err(wil,
wil                78 drivers/net/wireless/ath/wil6210/pmc.c 		wil_err(wil,
wil                86 drivers/net/wireless/ath/wil6210/pmc.c 		wil_err(wil,
wil                96 drivers/net/wireless/ath/wil6210/pmc.c 	wil_dbg_misc(wil, "pmc_alloc: %d descriptors x %d bytes each\n",
wil               104 drivers/net/wireless/ath/wil6210/pmc.c 		wil_err(wil, "ERROR allocating pmc skb list\n");
wil               108 drivers/net/wireless/ath/wil6210/pmc.c 	wil_dbg_misc(wil, "pmc_alloc: allocated descriptors info list %p\n",
wil               124 drivers/net/wireless/ath/wil6210/pmc.c 	if (wil->dma_addr_size > 32)
wil               132 drivers/net/wireless/ath/wil6210/pmc.c 	if (wil->dma_addr_size > 32)
wil               134 drivers/net/wireless/ath/wil6210/pmc.c 					  DMA_BIT_MASK(wil->dma_addr_size));
wil               136 drivers/net/wireless/ath/wil6210/pmc.c 	wil_dbg_misc(wil,
wil               144 drivers/net/wireless/ath/wil6210/pmc.c 		wil_err(wil, "ERROR allocating pmc pring\n");
wil               163 drivers/net/wireless/ath/wil6210/pmc.c 			wil_err(wil, "ERROR allocating pmc descriptor %d", i);
wil               183 drivers/net/wireless/ath/wil6210/pmc.c 	wil_dbg_misc(wil, "pmc_alloc: allocated successfully\n");
wil               189 drivers/net/wireless/ath/wil6210/pmc.c 	wil_dbg_misc(wil, "pmc_alloc: send WMI_PMC_CMD with ALLOCATE op\n");
wil               190 drivers/net/wireless/ath/wil6210/pmc.c 	pmc->last_cmd_status = wmi_send(wil,
wil               196 drivers/net/wireless/ath/wil6210/pmc.c 		wil_err(wil,
wil               207 drivers/net/wireless/ath/wil6210/pmc.c 	wil_err(wil, "exit on error: Releasing skbs...\n");
wil               216 drivers/net/wireless/ath/wil6210/pmc.c 	wil_err(wil, "exit on error: Releasing pring...\n");
wil               226 drivers/net/wireless/ath/wil6210/pmc.c 	wil_err(wil, "exit on error: Releasing descriptors info list...\n");
wil               239 drivers/net/wireless/ath/wil6210/pmc.c void wil_pmc_free(struct wil6210_priv *wil, int send_pmc_cmd)
wil               241 drivers/net/wireless/ath/wil6210/pmc.c 	struct pmc_ctx *pmc = &wil->pmc;
wil               242 drivers/net/wireless/ath/wil6210/pmc.c 	struct device *dev = wil_to_dev(wil);
wil               243 drivers/net/wireless/ath/wil6210/pmc.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil               251 drivers/net/wireless/ath/wil6210/pmc.c 		wil_dbg_misc(wil,
wil               259 drivers/net/wireless/ath/wil6210/pmc.c 		wil_dbg_misc(wil, "send WMI_PMC_CMD with RELEASE op\n");
wil               262 drivers/net/wireless/ath/wil6210/pmc.c 				wmi_send(wil, WMI_PMC_CMDID, vif->mid,
wil               265 drivers/net/wireless/ath/wil6210/pmc.c 			wil_err(wil,
wil               279 drivers/net/wireless/ath/wil6210/pmc.c 		wil_dbg_misc(wil, "pmc_free: free pring va %p\n",
wil               299 drivers/net/wireless/ath/wil6210/pmc.c 		wil_dbg_misc(wil, "pmc_free: free descriptor info %d/%d\n", i,
wil               301 drivers/net/wireless/ath/wil6210/pmc.c 		wil_dbg_misc(wil,
wil               317 drivers/net/wireless/ath/wil6210/pmc.c int wil_pmc_last_cmd_status(struct wil6210_priv *wil)
wil               319 drivers/net/wireless/ath/wil6210/pmc.c 	wil_dbg_misc(wil, "pmc_last_cmd_status: status %d\n",
wil               320 drivers/net/wireless/ath/wil6210/pmc.c 		     wil->pmc.last_cmd_status);
wil               322 drivers/net/wireless/ath/wil6210/pmc.c 	return wil->pmc.last_cmd_status;
wil               332 drivers/net/wireless/ath/wil6210/pmc.c 	struct wil6210_priv *wil = filp->private_data;
wil               333 drivers/net/wireless/ath/wil6210/pmc.c 	struct pmc_ctx *pmc = &wil->pmc;
wil               342 drivers/net/wireless/ath/wil6210/pmc.c 		wil_err(wil, "error, pmc is not allocated!\n");
wil               350 drivers/net/wireless/ath/wil6210/pmc.c 	wil_dbg_misc(wil,
wil               361 drivers/net/wireless/ath/wil6210/pmc.c 		wil_dbg_misc(wil,
wil               368 drivers/net/wireless/ath/wil6210/pmc.c 	wil_dbg_misc(wil,
wil               388 drivers/net/wireless/ath/wil6210/pmc.c 	struct wil6210_priv *wil = filp->private_data;
wil               389 drivers/net/wireless/ath/wil6210/pmc.c 	struct pmc_ctx *pmc = &wil->pmc;
wil               395 drivers/net/wireless/ath/wil6210/pmc.c 		wil_err(wil, "error, pmc is not allocated!\n");
wil               438 drivers/net/wireless/ath/wil6210/pmc.c 	struct wil6210_priv *wil = s->private;
wil               439 drivers/net/wireless/ath/wil6210/pmc.c 	struct pmc_ctx *pmc = &wil->pmc;
wil               446 drivers/net/wireless/ath/wil6210/pmc.c 		wil_err(wil, "error, pmc is not allocated!\n");
wil               452 drivers/net/wireless/ath/wil6210/pmc.c 	wil_dbg_misc(wil, "pmcring_read: size %zu\n", pmc_ring_size);
wil                21 drivers/net/wireless/ath/wil6210/pmc.h void wil_pmc_init(struct wil6210_priv *wil);
wil                22 drivers/net/wireless/ath/wil6210/pmc.h void wil_pmc_alloc(struct wil6210_priv *wil,
wil                24 drivers/net/wireless/ath/wil6210/pmc.h void wil_pmc_free(struct wil6210_priv *wil, int send_pmc_cmd);
wil                25 drivers/net/wireless/ath/wil6210/pmc.h int wil_pmc_last_cmd_status(struct wil6210_priv *wil);
wil                93 drivers/net/wireless/ath/wil6210/rx_reorder.c void wil_rx_reorder(struct wil6210_priv *wil, struct sk_buff *skb)
wil               105 drivers/net/wireless/ath/wil6210/rx_reorder.c 	wil->txrx_ops.get_reorder_params(wil, skb, &tid, &cid, &mid, &seq,
wil               107 drivers/net/wireless/ath/wil6210/rx_reorder.c 	sta = &wil->sta[cid];
wil               109 drivers/net/wireless/ath/wil6210/rx_reorder.c 	wil_dbg_txrx(wil, "MID %d CID %d TID %d Seq 0x%03x mcast %01x\n",
wil               112 drivers/net/wireless/ath/wil6210/rx_reorder.c 	vif = wil->vifs[mid];
wil               114 drivers/net/wireless/ath/wil6210/rx_reorder.c 		wil_dbg_txrx(wil, "invalid VIF, mid %d\n", mid);
wil               131 drivers/net/wireless/ath/wil6210/rx_reorder.c 			wil_dbg_txrx(wil, "Rx drop: dup mcast seq 0x%03x\n",
wil               156 drivers/net/wireless/ath/wil6210/rx_reorder.c 				wil_err(wil,
wil               163 drivers/net/wireless/ath/wil6210/rx_reorder.c 			wil_err(wil,
wil               175 drivers/net/wireless/ath/wil6210/rx_reorder.c 		wil_dbg_txrx(wil, "Rx drop: old seq 0x%03x head 0x%03x\n",
wil               198 drivers/net/wireless/ath/wil6210/rx_reorder.c 		wil_dbg_txrx(wil, "Rx drop: dup seq 0x%03x\n", seq);
wil               225 drivers/net/wireless/ath/wil6210/rx_reorder.c void wil_rx_bar(struct wil6210_priv *wil, struct wil6210_vif *vif,
wil               228 drivers/net/wireless/ath/wil6210/rx_reorder.c 	struct wil_sta_info *sta = &wil->sta[cid];
wil               236 drivers/net/wireless/ath/wil6210/rx_reorder.c 		wil_err(wil, "BAR for non-existing CID %d TID %d\n", cid, tid);
wil               240 drivers/net/wireless/ath/wil6210/rx_reorder.c 		wil_err(wil, "BAR Seq 0x%03x preceding head 0x%03x\n",
wil               244 drivers/net/wireless/ath/wil6210/rx_reorder.c 	wil_dbg_txrx(wil, "BAR: CID %d MID %d TID %d Seq 0x%03x head 0x%03x\n",
wil               252 drivers/net/wireless/ath/wil6210/rx_reorder.c struct wil_tid_ampdu_rx *wil_tid_ampdu_rx_alloc(struct wil6210_priv *wil,
wil               276 drivers/net/wireless/ath/wil6210/rx_reorder.c void wil_tid_ampdu_rx_free(struct wil6210_priv *wil,
wil               297 drivers/net/wireless/ath/wil6210/rx_reorder.c static u16 wil_agg_size(struct wil6210_priv *wil, u16 req_agg_wsize)
wil               299 drivers/net/wireless/ath/wil6210/rx_reorder.c 	u16 max_agg_size = min_t(u16, wil->max_agg_wsize, wil->max_ampdu_size /
wil               309 drivers/net/wireless/ath/wil6210/rx_reorder.c int wil_addba_rx_request(struct wil6210_priv *wil, u8 mid, u8 cid, u8 tid,
wil               325 drivers/net/wireless/ath/wil6210/rx_reorder.c 	bool agg_amsdu = wil->use_enhanced_dma_hw &&
wil               326 drivers/net/wireless/ath/wil6210/rx_reorder.c 		wil->use_rx_hw_reordering &&
wil               327 drivers/net/wireless/ath/wil6210/rx_reorder.c 		test_bit(WMI_FW_CAPABILITY_AMSDU, wil->fw_capabilities) &&
wil               328 drivers/net/wireless/ath/wil6210/rx_reorder.c 		wil->amsdu_en && (param_set & BIT(0));
wil               337 drivers/net/wireless/ath/wil6210/rx_reorder.c 	if (cid >= wil->max_assoc_sta) {
wil               338 drivers/net/wireless/ath/wil6210/rx_reorder.c 		wil_err(wil, "BACK: invalid CID %d\n", cid);
wil               343 drivers/net/wireless/ath/wil6210/rx_reorder.c 	sta = &wil->sta[cid];
wil               345 drivers/net/wireless/ath/wil6210/rx_reorder.c 		wil_err(wil, "BACK: CID %d not connected\n", cid);
wil               350 drivers/net/wireless/ath/wil6210/rx_reorder.c 	wil_dbg_wmi(wil,
wil               357 drivers/net/wireless/ath/wil6210/rx_reorder.c 		wil_dbg_misc(wil, "Suggest BACK wsize %d\n",
wil               358 drivers/net/wireless/ath/wil6210/rx_reorder.c 			     wil->max_agg_wsize);
wil               359 drivers/net/wireless/ath/wil6210/rx_reorder.c 		agg_wsize = wil->max_agg_wsize;
wil               361 drivers/net/wireless/ath/wil6210/rx_reorder.c 		agg_wsize = min_t(u16, wil->max_agg_wsize, req_agg_wsize);
wil               364 drivers/net/wireless/ath/wil6210/rx_reorder.c 	rc = wil->txrx_ops.wmi_addba_rx_resp(wil, mid, cid, tid, dialog_token,
wil               368 drivers/net/wireless/ath/wil6210/rx_reorder.c 		wil_err(wil, "do not apply ba, rc(%d)\n", rc);
wil               373 drivers/net/wireless/ath/wil6210/rx_reorder.c 	if (!wil->use_rx_hw_reordering) {
wil               374 drivers/net/wireless/ath/wil6210/rx_reorder.c 		r = wil_tid_ampdu_rx_alloc(wil, agg_wsize, ssn);
wil               376 drivers/net/wireless/ath/wil6210/rx_reorder.c 		wil_tid_ampdu_rx_free(wil, sta->tid_rx[tid]);
wil               386 drivers/net/wireless/ath/wil6210/rx_reorder.c int wil_addba_tx_request(struct wil6210_priv *wil, u8 ringid, u16 wsize)
wil               388 drivers/net/wireless/ath/wil6210/rx_reorder.c 	u8 agg_wsize = wil_agg_size(wil, wsize);
wil               390 drivers/net/wireless/ath/wil6210/rx_reorder.c 	struct wil_ring_tx_data *txdata = &wil->ring_tx_data[ringid];
wil               394 drivers/net/wireless/ath/wil6210/rx_reorder.c 		wil_dbg_misc(wil, "ADDBA for vring[%d] already in progress\n",
wil               399 drivers/net/wireless/ath/wil6210/rx_reorder.c 		wil_dbg_misc(wil,
wil               405 drivers/net/wireless/ath/wil6210/rx_reorder.c 	rc = wmi_addba(wil, txdata->mid, ringid, agg_wsize, agg_timeout);
wil               407 drivers/net/wireless/ath/wil6210/rx_reorder.c 		wil_err(wil, "wmi_addba failed, rc (%d)", rc);
wil               192 drivers/net/wireless/ath/wil6210/trace.h 	    TP_PROTO(struct wil6210_priv *wil, u8 use_compressed, u16 buff_id,
wil               194 drivers/net/wireless/ath/wil6210/trace.h 	    TP_ARGS(wil, use_compressed, buff_id, msg),
wil               212 drivers/net/wireless/ath/wil6210/trace.h 			   __entry->type = wil_rx_status_get_frame_type(wil,
wil               214 drivers/net/wireless/ath/wil6210/trace.h 			   __entry->subtype = wil_rx_status_get_fc1(wil, msg);
wil               215 drivers/net/wireless/ath/wil6210/trace.h 			   __entry->seq = wil_rx_status_get_seq(wil, msg);
wil                74 drivers/net/wireless/ath/wil6210/txrx.c bool wil_is_tx_idle(struct wil6210_priv *wil)
wil                78 drivers/net/wireless/ath/wil6210/txrx.c 	int min_ring_id = wil_get_min_tx_ring_id(wil);
wil                81 drivers/net/wireless/ath/wil6210/txrx.c 		struct wil_ring *vring = &wil->ring_tx[i];
wil                82 drivers/net/wireless/ath/wil6210/txrx.c 		int vring_index = vring - wil->ring_tx;
wil                84 drivers/net/wireless/ath/wil6210/txrx.c 			&wil->ring_tx_data[vring_index];
wil                95 drivers/net/wireless/ath/wil6210/txrx.c 		if (test_bit(wil_status_napi_en, wil->status)) {
wil                98 drivers/net/wireless/ath/wil6210/txrx.c 					wil_dbg_pm(wil,
wil               103 drivers/net/wireless/ath/wil6210/txrx.c 				wil_dbg_ratelimited(wil,
wil               106 drivers/net/wireless/ath/wil6210/txrx.c 				napi_synchronize(&wil->napi_tx);
wil               120 drivers/net/wireless/ath/wil6210/txrx.c static int wil_vring_alloc(struct wil6210_priv *wil, struct wil_ring *vring)
wil               122 drivers/net/wireless/ath/wil6210/txrx.c 	struct device *dev = wil_to_dev(wil);
wil               126 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_misc(wil, "vring_alloc:\n");
wil               150 drivers/net/wireless/ath/wil6210/txrx.c 	if (wil->dma_addr_size > 32)
wil               160 drivers/net/wireless/ath/wil6210/txrx.c 	if (wil->dma_addr_size > 32)
wil               162 drivers/net/wireless/ath/wil6210/txrx.c 					  DMA_BIT_MASK(wil->dma_addr_size));
wil               175 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_misc(wil, "vring[%d] 0x%p:%pad 0x%p\n", vring->size,
wil               200 drivers/net/wireless/ath/wil6210/txrx.c static void wil_vring_free(struct wil6210_priv *wil, struct wil_ring *vring)
wil               202 drivers/net/wireless/ath/wil6210/txrx.c 	struct device *dev = wil_to_dev(wil);
wil               205 drivers/net/wireless/ath/wil6210/txrx.c 	lockdep_assert_held(&wil->mutex);
wil               207 drivers/net/wireless/ath/wil6210/txrx.c 		int vring_index = vring - wil->ring_tx;
wil               209 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_misc(wil, "free Tx vring %d [%d] 0x%p:%pad 0x%p\n",
wil               213 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_misc(wil, "free Rx vring [%d] 0x%p:%pad 0x%p\n",
wil               230 drivers/net/wireless/ath/wil6210/txrx.c 				wil_dbg_txrx(wil,
wil               267 drivers/net/wireless/ath/wil6210/txrx.c static int wil_vring_alloc_skb(struct wil6210_priv *wil, struct wil_ring *vring,
wil               270 drivers/net/wireless/ath/wil6210/txrx.c 	struct device *dev = wil_to_dev(wil);
wil               271 drivers/net/wireless/ath/wil6210/txrx.c 	unsigned int sz = wil->rx_buf_len + ETH_HLEN + wil_rx_snaplen();
wil               317 drivers/net/wireless/ath/wil6210/txrx.c static void wil_rx_add_radiotap_header(struct wil6210_priv *wil,
wil               336 drivers/net/wireless/ath/wil6210/txrx.c 	struct ieee80211_channel *ch = wil->monitor_chandef.chan;
wil               340 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "Unable to expand headroom to %d\n", rtap_len);
wil               363 drivers/net/wireless/ath/wil6210/txrx.c static bool wil_is_rx_idle(struct wil6210_priv *wil)
wil               366 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil_ring *ring = &wil->ring_rx;
wil               375 drivers/net/wireless/ath/wil6210/txrx.c static int wil_rx_get_cid_by_skb(struct wil6210_priv *wil, struct sk_buff *skb)
wil               379 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil6210_vif *vif = wil->vifs[mid];
wil               398 drivers/net/wireless/ath/wil6210/txrx.c 			wil_err_ratelimited(wil,
wil               406 drivers/net/wireless/ath/wil6210/txrx.c 			wil_err_ratelimited(wil, "Short frame, len = %d\n",
wil               414 drivers/net/wireless/ath/wil6210/txrx.c 	if (wil->max_assoc_sta <= WIL6210_RX_DESC_MAX_CID)
wil               429 drivers/net/wireless/ath/wil6210/txrx.c 	for (i = cid; i < wil->max_assoc_sta; i += WIL6210_RX_DESC_MAX_CID) {
wil               430 drivers/net/wireless/ath/wil6210/txrx.c 		if (wil->sta[i].status != wil_sta_unused &&
wil               431 drivers/net/wireless/ath/wil6210/txrx.c 		    ether_addr_equal(wil->sta[i].addr, ta)) {
wil               436 drivers/net/wireless/ath/wil6210/txrx.c 	if (i >= wil->max_assoc_sta) {
wil               437 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err_ratelimited(wil, "Could not find cid for frame with transmit addr = %pM, iftype = %d, frametype = %d, len = %d\n",
wil               452 drivers/net/wireless/ath/wil6210/txrx.c static struct sk_buff *wil_vring_reap_rx(struct wil6210_priv *wil,
wil               455 drivers/net/wireless/ath/wil6210/txrx.c 	struct device *dev = wil_to_dev(wil);
wil               463 drivers/net/wireless/ath/wil6210/txrx.c 	unsigned int sz = wil->rx_buf_len + ETH_HLEN + snaplen;
wil               487 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "No Rx skb at [%d]\n", i);
wil               498 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_txrx(wil, "Rx[%3d] : %d bytes\n", i, dmalen);
wil               503 drivers/net/wireless/ath/wil6210/txrx.c 	vif = wil->vifs[mid];
wil               506 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_txrx(wil, "skipped RX descriptor with invalid mid %d",
wil               513 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err_ratelimited(wil, "Rx size too large: %d bytes!\n",
wil               525 drivers/net/wireless/ath/wil6210/txrx.c 	cid = wil_rx_get_cid_by_skb(wil, skb);
wil               531 drivers/net/wireless/ath/wil6210/txrx.c 	stats = &wil->sta[cid].stats;
wil               539 drivers/net/wireless/ath/wil6210/txrx.c 		wil_rx_add_radiotap_header(wil, skb);
wil               554 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_txrx(wil,
wil               559 drivers/net/wireless/ath/wil6210/txrx.c 			wil_dbg_txrx(wil,
wil               562 drivers/net/wireless/ath/wil6210/txrx.c 			wil_rx_bar(wil, vif, cid, tid, seq);
wil               567 drivers/net/wireless/ath/wil6210/txrx.c 			wil_dbg_txrx(wil,
wil               619 drivers/net/wireless/ath/wil6210/txrx.c static int wil_rx_refill(struct wil6210_priv *wil, int count)
wil               621 drivers/net/wireless/ath/wil6210/txrx.c 	struct net_device *ndev = wil->main_ndev;
wil               622 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil_ring *v = &wil->ring_rx;
wil               631 drivers/net/wireless/ath/wil6210/txrx.c 		rc = wil_vring_alloc_skb(wil, v, v->swtail, headroom);
wil               633 drivers/net/wireless/ath/wil6210/txrx.c 			wil_err_ratelimited(wil, "Error %d in rx refill[%d]\n",
wil               644 drivers/net/wireless/ath/wil6210/txrx.c 	wil_w(wil, v->hwtail, v->swtail);
wil               672 drivers/net/wireless/ath/wil6210/txrx.c static int wil_rx_crypto_check(struct wil6210_priv *wil, struct sk_buff *skb)
wil               679 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil_sta_info *s = &wil->sta[cid];
wil               686 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err_ratelimited(wil,
wil               693 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err_ratelimited(wil,
wil               703 drivers/net/wireless/ath/wil6210/txrx.c static int wil_rx_error_check(struct wil6210_priv *wil, struct sk_buff *skb,
wil               711 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_txrx(wil, "MIC error, dropping packet\n");
wil               733 drivers/net/wireless/ath/wil6210/txrx.c static struct wil_eapol_key *wil_is_ptk_eapol_key(struct wil6210_priv *wil,
wil               743 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "mac header was not set\n");
wil               771 drivers/net/wireless/ath/wil6210/txrx.c static bool wil_skb_is_eap_3(struct wil6210_priv *wil, struct sk_buff *skb)
wil               776 drivers/net/wireless/ath/wil6210/txrx.c 	key = wil_is_ptk_eapol_key(wil, skb);
wil               784 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_misc(wil, "EAPOL key message 3\n");
wil               788 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_misc(wil, "EAPOL key message 1\n");
wil               793 drivers/net/wireless/ath/wil6210/txrx.c static bool wil_skb_is_eap_4(struct wil6210_priv *wil, struct sk_buff *skb)
wil               798 drivers/net/wireless/ath/wil6210/txrx.c 	key = wil_is_ptk_eapol_key(wil, skb);
wil               806 drivers/net/wireless/ath/wil6210/txrx.c 			wil_dbg_misc(wil, "EAPOL key message 2\n");
wil               810 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_misc(wil, "EAPOL key message 4\n");
wil               819 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               824 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_misc(wil, "Invalid rekey state = %d\n",
wil               830 drivers/net/wireless/ath/wil6210/txrx.c 	cid =  wil_find_cid_by_idx(wil, vif->mid, 0);
wil               831 drivers/net/wireless/ath/wil6210/txrx.c 	if (!wil_cid_valid(wil, cid)) {
wil               832 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "Invalid cid = %d\n", cid);
wil               837 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_misc(wil, "Apply PTK key after eapol was sent out\n");
wil               838 drivers/net/wireless/ath/wil6210/txrx.c 	rc = wmi_add_cipher_key(vif, 0, wil->sta[cid].addr, 0, NULL,
wil               845 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "Apply PTK key failed %d\n", rc);
wil               850 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               855 drivers/net/wireless/ath/wil6210/txrx.c 	    !test_bit(WMI_FW_CAPABILITY_SPLIT_REKEY, wil->fw_capabilities))
wil               859 drivers/net/wireless/ath/wil6210/txrx.c 	if (!wil_skb_is_eap_4(wil, skb))
wil               862 drivers/net/wireless/ath/wil6210/txrx.c 	spin_lock_bh(&wil->eap_lock);
wil               874 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "Unknown rekey state = %d",
wil               877 drivers/net/wireless/ath/wil6210/txrx.c 	spin_unlock_bh(&wil->eap_lock);
wil               880 drivers/net/wireless/ath/wil6210/txrx.c 		q = queue_work(wil->wmi_wq, &vif->enable_tx_key_worker);
wil               881 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_misc(wil, "queue_work of enable_tx_key_worker -> %d\n",
wil               888 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               892 drivers/net/wireless/ath/wil6210/txrx.c 	    !test_bit(WMI_FW_CAPABILITY_SPLIT_REKEY, wil->fw_capabilities))
wil               896 drivers/net/wireless/ath/wil6210/txrx.c 	if (!wil_skb_is_eap_3(wil, skb))
wil               912 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil6210_priv *wil = ndev_to_wil(ndev);
wil               945 drivers/net/wireless/ath/wil6210/txrx.c 			int xmit_cid = wil_find_cid(wil, vif->mid, da);
wil               968 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_txrx(wil, "Rx -> Tx %d bytes\n", len);
wil               980 drivers/net/wireless/ath/wil6210/txrx.c 			rc = napi_gro_receive(&wil->napi_rx, skb);
wil               983 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_txrx(wil, "Rx complete %d bytes => %s\n",
wil               991 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_txrx(wil, "Rx drop %d bytes\n", len);
wil              1005 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil6210_priv *wil = ndev_to_wil(ndev);
wil              1008 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.get_netif_rx_params(skb, &cid, &security);
wil              1010 drivers/net/wireless/ath/wil6210/txrx.c 	stats = &wil->sta[cid].stats;
wil              1014 drivers/net/wireless/ath/wil6210/txrx.c 	if (security && (wil->txrx_ops.rx_crypto_check(wil, skb) != 0)) {
wil              1015 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_txrx(wil, "Rx drop %d bytes\n", skb->len);
wil              1024 drivers/net/wireless/ath/wil6210/txrx.c 	if (unlikely(wil->txrx_ops.rx_error_check(wil, skb, stats))) {
wil              1037 drivers/net/wireless/ath/wil6210/txrx.c void wil_rx_handle(struct wil6210_priv *wil, int *quota)
wil              1039 drivers/net/wireless/ath/wil6210/txrx.c 	struct net_device *ndev = wil->main_ndev;
wil              1041 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil_ring *v = &wil->ring_rx;
wil              1045 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "Rx IRQ while Rx not yet initialized\n");
wil              1048 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_txrx(wil, "rx_handle\n");
wil              1049 drivers/net/wireless/ath/wil6210/txrx.c 	while ((*quota > 0) && (NULL != (skb = wil_vring_reap_rx(wil, v)))) {
wil              1061 drivers/net/wireless/ath/wil6210/txrx.c 			wil_rx_reorder(wil, skb);
wil              1064 drivers/net/wireless/ath/wil6210/txrx.c 	wil_rx_refill(wil, v->size);
wil              1067 drivers/net/wireless/ath/wil6210/txrx.c static void wil_rx_buf_len_init(struct wil6210_priv *wil)
wil              1069 drivers/net/wireless/ath/wil6210/txrx.c 	wil->rx_buf_len = rx_large_buf ?
wil              1071 drivers/net/wireless/ath/wil6210/txrx.c 	if (mtu_max > wil->rx_buf_len) {
wil              1076 drivers/net/wireless/ath/wil6210/txrx.c 		wil_info(wil, "Override RX buffer to mtu_max(%d)\n", mtu_max);
wil              1077 drivers/net/wireless/ath/wil6210/txrx.c 		wil->rx_buf_len = mtu_max;
wil              1081 drivers/net/wireless/ath/wil6210/txrx.c static int wil_rx_init(struct wil6210_priv *wil, uint order)
wil              1083 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil_ring *vring = &wil->ring_rx;
wil              1086 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_misc(wil, "rx_init\n");
wil              1089 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "Rx ring already allocated\n");
wil              1093 drivers/net/wireless/ath/wil6210/txrx.c 	wil_rx_buf_len_init(wil);
wil              1097 drivers/net/wireless/ath/wil6210/txrx.c 	rc = wil_vring_alloc(wil, vring);
wil              1101 drivers/net/wireless/ath/wil6210/txrx.c 	rc = wmi_rx_chain_add(wil, vring);
wil              1105 drivers/net/wireless/ath/wil6210/txrx.c 	rc = wil_rx_refill(wil, vring->size);
wil              1111 drivers/net/wireless/ath/wil6210/txrx.c 	wil_vring_free(wil, vring);
wil              1116 drivers/net/wireless/ath/wil6210/txrx.c static void wil_rx_fini(struct wil6210_priv *wil)
wil              1118 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil_ring *vring = &wil->ring_rx;
wil              1120 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_misc(wil, "rx_fini\n");
wil              1123 drivers/net/wireless/ath/wil6210/txrx.c 		wil_vring_free(wil, vring);
wil              1169 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1196 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil_ring *vring = &wil->ring_tx[id];
wil              1197 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil_ring_tx_data *txdata = &wil->ring_tx_data[id];
wil              1207 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_misc(wil, "vring_init_tx: max_mpdu_size %d\n",
wil              1209 drivers/net/wireless/ath/wil6210/txrx.c 	lockdep_assert_held(&wil->mutex);
wil              1212 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "Tx ring [%d] already allocated\n", id);
wil              1220 drivers/net/wireless/ath/wil6210/txrx.c 	rc = wil_vring_alloc(wil, vring);
wil              1224 drivers/net/wireless/ath/wil6210/txrx.c 	wil->ring2cid_tid[id][0] = cid;
wil              1225 drivers/net/wireless/ath/wil6210/txrx.c 	wil->ring2cid_tid[id][1] = tid;
wil              1231 drivers/net/wireless/ath/wil6210/txrx.c 	rc = wmi_call(wil, WMI_VRING_CFG_CMDID, vif->mid, &cmd, sizeof(cmd),
wil              1238 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "Tx config failed, status 0x%02x\n",
wil              1251 drivers/net/wireless/ath/wil6210/txrx.c 		wil_addba_tx_request(wil, id, agg_wsize);
wil              1259 drivers/net/wireless/ath/wil6210/txrx.c 	wil_vring_free(wil, vring);
wil              1260 drivers/net/wireless/ath/wil6210/txrx.c 	wil->ring2cid_tid[id][0] = wil->max_assoc_sta;
wil              1261 drivers/net/wireless/ath/wil6210/txrx.c 	wil->ring2cid_tid[id][1] = 0;
wil              1271 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1299 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil_ring *vring = &wil->ring_tx[ring_id];
wil              1300 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil_ring_tx_data *txdata = &wil->ring_tx_data[ring_id];
wil              1302 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_misc(wil, "vring_modify: ring %d cid %d tid %d\n", ring_id,
wil              1304 drivers/net/wireless/ath/wil6210/txrx.c 	lockdep_assert_held(&wil->mutex);
wil              1307 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "Tx ring [%d] not allocated\n", ring_id);
wil              1311 drivers/net/wireless/ath/wil6210/txrx.c 	if (wil->ring2cid_tid[ring_id][0] != cid ||
wil              1312 drivers/net/wireless/ath/wil6210/txrx.c 	    wil->ring2cid_tid[ring_id][1] != tid) {
wil              1313 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "ring info does not match cid=%u tid=%u\n",
wil              1314 drivers/net/wireless/ath/wil6210/txrx.c 			wil->ring2cid_tid[ring_id][0],
wil              1315 drivers/net/wireless/ath/wil6210/txrx.c 			wil->ring2cid_tid[ring_id][1]);
wil              1320 drivers/net/wireless/ath/wil6210/txrx.c 	rc = wmi_call(wil, WMI_VRING_CFG_CMDID, vif->mid, &cmd, sizeof(cmd),
wil              1327 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "Tx modify failed, status 0x%02x\n",
wil              1338 drivers/net/wireless/ath/wil6210/txrx.c 		wil_addba_tx_request(wil, ring_id, agg_wsize);
wil              1346 drivers/net/wireless/ath/wil6210/txrx.c 	wil->ring2cid_tid[ring_id][0] = wil->max_assoc_sta;
wil              1347 drivers/net/wireless/ath/wil6210/txrx.c 	wil->ring2cid_tid[ring_id][1] = 0;
wil              1353 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1373 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil_ring *vring = &wil->ring_tx[id];
wil              1374 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil_ring_tx_data *txdata = &wil->ring_tx_data[id];
wil              1376 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_misc(wil, "vring_init_bcast: max_mpdu_size %d\n",
wil              1378 drivers/net/wireless/ath/wil6210/txrx.c 	lockdep_assert_held(&wil->mutex);
wil              1381 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "Tx ring [%d] already allocated\n", id);
wil              1389 drivers/net/wireless/ath/wil6210/txrx.c 	rc = wil_vring_alloc(wil, vring);
wil              1393 drivers/net/wireless/ath/wil6210/txrx.c 	wil->ring2cid_tid[id][0] = wil->max_assoc_sta; /* CID */
wil              1394 drivers/net/wireless/ath/wil6210/txrx.c 	wil->ring2cid_tid[id][1] = 0; /* TID */
wil              1400 drivers/net/wireless/ath/wil6210/txrx.c 	rc = wmi_call(wil, WMI_BCAST_VRING_CFG_CMDID, vif->mid,
wil              1408 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "Tx config failed, status 0x%02x\n",
wil              1426 drivers/net/wireless/ath/wil6210/txrx.c 	wil_vring_free(wil, vring);
wil              1432 drivers/net/wireless/ath/wil6210/txrx.c static struct wil_ring *wil_find_tx_ucast(struct wil6210_priv *wil,
wil              1438 drivers/net/wireless/ath/wil6210/txrx.c 	int min_ring_id = wil_get_min_tx_ring_id(wil);
wil              1440 drivers/net/wireless/ath/wil6210/txrx.c 	cid = wil_find_cid(wil, vif->mid, da);
wil              1442 drivers/net/wireless/ath/wil6210/txrx.c 	if (cid < 0 || cid >= wil->max_assoc_sta)
wil              1446 drivers/net/wireless/ath/wil6210/txrx.c 	for (i = min_ring_id; i < ARRAY_SIZE(wil->ring2cid_tid); i++) {
wil              1447 drivers/net/wireless/ath/wil6210/txrx.c 		if (!wil->ring_tx_data[i].dot1x_open &&
wil              1450 drivers/net/wireless/ath/wil6210/txrx.c 		if (wil->ring2cid_tid[i][0] == cid) {
wil              1451 drivers/net/wireless/ath/wil6210/txrx.c 			struct wil_ring *v = &wil->ring_tx[i];
wil              1452 drivers/net/wireless/ath/wil6210/txrx.c 			struct wil_ring_tx_data *txdata = &wil->ring_tx_data[i];
wil              1454 drivers/net/wireless/ath/wil6210/txrx.c 			wil_dbg_txrx(wil, "find_tx_ucast: (%pM) -> [%d]\n",
wil              1459 drivers/net/wireless/ath/wil6210/txrx.c 				wil_dbg_txrx(wil,
wil              1470 drivers/net/wireless/ath/wil6210/txrx.c static int wil_tx_ring(struct wil6210_priv *wil, struct wil6210_vif *vif,
wil              1473 drivers/net/wireless/ath/wil6210/txrx.c static struct wil_ring *wil_find_tx_ring_sta(struct wil6210_priv *wil,
wil              1481 drivers/net/wireless/ath/wil6210/txrx.c 	int min_ring_id = wil_get_min_tx_ring_id(wil);
wil              1488 drivers/net/wireless/ath/wil6210/txrx.c 		ring = &wil->ring_tx[i];
wil              1489 drivers/net/wireless/ath/wil6210/txrx.c 		txdata = &wil->ring_tx_data[i];
wil              1493 drivers/net/wireless/ath/wil6210/txrx.c 		cid = wil->ring2cid_tid[i][0];
wil              1494 drivers/net/wireless/ath/wil6210/txrx.c 		if (cid >= wil->max_assoc_sta) /* skip BCAST */
wil              1497 drivers/net/wireless/ath/wil6210/txrx.c 		if (!wil->ring_tx_data[i].dot1x_open &&
wil              1501 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_txrx(wil, "Tx -> ring %d\n", i);
wil              1506 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_txrx(wil, "Tx while no rings active?\n");
wil              1522 drivers/net/wireless/ath/wil6210/txrx.c static struct wil_ring *wil_find_tx_bcast_1(struct wil6210_priv *wil,
wil              1532 drivers/net/wireless/ath/wil6210/txrx.c 	v = &wil->ring_tx[i];
wil              1533 drivers/net/wireless/ath/wil6210/txrx.c 	txdata = &wil->ring_tx_data[i];
wil              1536 drivers/net/wireless/ath/wil6210/txrx.c 	if (!wil->ring_tx_data[i].dot1x_open &&
wil              1543 drivers/net/wireless/ath/wil6210/txrx.c static void wil_set_da_for_vring(struct wil6210_priv *wil,
wil              1547 drivers/net/wireless/ath/wil6210/txrx.c 	int cid = wil->ring2cid_tid[vring_index][0];
wil              1549 drivers/net/wireless/ath/wil6210/txrx.c 	ether_addr_copy(da, wil->sta[cid].addr);
wil              1552 drivers/net/wireless/ath/wil6210/txrx.c static struct wil_ring *wil_find_tx_bcast_2(struct wil6210_priv *wil,
wil              1562 drivers/net/wireless/ath/wil6210/txrx.c 	int min_ring_id = wil_get_min_tx_ring_id(wil);
wil              1566 drivers/net/wireless/ath/wil6210/txrx.c 		v = &wil->ring_tx[i];
wil              1567 drivers/net/wireless/ath/wil6210/txrx.c 		txdata = &wil->ring_tx_data[i];
wil              1571 drivers/net/wireless/ath/wil6210/txrx.c 		cid = wil->ring2cid_tid[i][0];
wil              1572 drivers/net/wireless/ath/wil6210/txrx.c 		if (cid >= wil->max_assoc_sta) /* skip BCAST */
wil              1574 drivers/net/wireless/ath/wil6210/txrx.c 		if (!wil->ring_tx_data[i].dot1x_open &&
wil              1579 drivers/net/wireless/ath/wil6210/txrx.c 		if (0 == memcmp(wil->sta[cid].addr, src, ETH_ALEN))
wil              1585 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_txrx(wil, "Tx while no vrings active?\n");
wil              1590 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_txrx(wil, "BCAST -> ring %d\n", i);
wil              1591 drivers/net/wireless/ath/wil6210/txrx.c 	wil_set_da_for_vring(wil, skb, i);
wil              1595 drivers/net/wireless/ath/wil6210/txrx.c 		v2 = &wil->ring_tx[i];
wil              1596 drivers/net/wireless/ath/wil6210/txrx.c 		txdata2 = &wil->ring_tx_data[i];
wil              1599 drivers/net/wireless/ath/wil6210/txrx.c 		cid = wil->ring2cid_tid[i][0];
wil              1600 drivers/net/wireless/ath/wil6210/txrx.c 		if (cid >= wil->max_assoc_sta) /* skip BCAST */
wil              1602 drivers/net/wireless/ath/wil6210/txrx.c 		if (!wil->ring_tx_data[i].dot1x_open &&
wil              1606 drivers/net/wireless/ath/wil6210/txrx.c 		if (0 == memcmp(wil->sta[cid].addr, src, ETH_ALEN))
wil              1611 drivers/net/wireless/ath/wil6210/txrx.c 			wil_dbg_txrx(wil, "BCAST DUP -> ring %d\n", i);
wil              1612 drivers/net/wireless/ath/wil6210/txrx.c 			wil_set_da_for_vring(wil, skb2, i);
wil              1613 drivers/net/wireless/ath/wil6210/txrx.c 			wil_tx_ring(wil, vif, v2, skb2);
wil              1617 drivers/net/wireless/ath/wil6210/txrx.c 			wil_err(wil, "skb_copy failed\n");
wil              1730 drivers/net/wireless/ath/wil6210/txrx.c static int __wil_tx_vring_tso(struct wil6210_priv *wil, struct wil6210_vif *vif,
wil              1733 drivers/net/wireless/ath/wil6210/txrx.c 	struct device *dev = wil_to_dev(wil);
wil              1756 drivers/net/wireless/ath/wil6210/txrx.c 	int vring_index = vring - wil->ring_tx;
wil              1757 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil_ring_tx_data *txdata = &wil->ring_tx_data[vring_index];
wil              1771 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_txrx(wil, "tx_vring_tso: %d bytes to vring %d\n", skb->len,
wil              1783 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err_ratelimited(wil,
wil              1829 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "TSO: Skb head DMA map error\n");
wil              1833 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.tx_desc_map((union wil_tx_desc *)hdr_desc, pa,
wil              1848 drivers/net/wireless/ath/wil6210/txrx.c 			wil_dbg_txrx(wil, "TSO: process skb head, len %u\n",
wil              1853 drivers/net/wireless/ath/wil6210/txrx.c 			wil_dbg_txrx(wil, "TSO: frag[%d]: len %u\n", f, len);
wil              1857 drivers/net/wireless/ath/wil6210/txrx.c 			wil_dbg_txrx(wil,
wil              1862 drivers/net/wireless/ath/wil6210/txrx.c 				wil_err_ratelimited(wil, "TSO: ring overflow\n");
wil              1869 drivers/net/wireless/ath/wil6210/txrx.c 			wil_dbg_txrx(wil, "TSO: lenmss %d, i %d\n", lenmss, i);
wil              1887 drivers/net/wireless/ath/wil6210/txrx.c 				wil_err(wil, "TSO: DMA map page error\n");
wil              1901 drivers/net/wireless/ath/wil6210/txrx.c 			wil->txrx_ops.tx_desc_map((union wil_tx_desc *)d,
wil              1915 drivers/net/wireless/ath/wil6210/txrx.c 			wil_dbg_txrx(wil,
wil              1984 drivers/net/wireless/ath/wil6210/txrx.c 	if (wil_val_in_range(wil->ring_idle_trsh,
wil              1987 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_txrx(wil,  "Ring[%2d] not idle %d -> %d\n",
wil              2000 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_txrx(wil, "TSO: Tx swhead %d -> %d\n", swhead, vring->swhead);
wil              2007 drivers/net/wireless/ath/wil6210/txrx.c 	if (wil->tx_latency)
wil              2012 drivers/net/wireless/ath/wil6210/txrx.c 	wil_w(wil, vring->hwtail, vring->swhead);
wil              2033 drivers/net/wireless/ath/wil6210/txrx.c static int __wil_tx_ring(struct wil6210_priv *wil, struct wil6210_vif *vif,
wil              2036 drivers/net/wireless/ath/wil6210/txrx.c 	struct device *dev = wil_to_dev(wil);
wil              2043 drivers/net/wireless/ath/wil6210/txrx.c 	int ring_index = ring - wil->ring_tx;
wil              2044 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil_ring_tx_data  *txdata = &wil->ring_tx_data[ring_index];
wil              2051 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_txrx(wil, "tx_ring: %d bytes to ring %d, nr_frags %d\n",
wil              2058 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err_ratelimited(wil,
wil              2067 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_txrx(wil, "Tx[%2d] skb %d bytes 0x%p -> %pad\n", ring_index,
wil              2076 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.tx_desc_map((union wil_tx_desc *)d, pa, len,
wil              2085 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "Tx[%2d] Failed to set cksum, drop packet\n",
wil              2099 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_txrx(wil, "Tx[%2d] desc[%4d]\n", ring_index, i);
wil              2107 drivers/net/wireless/ath/wil6210/txrx.c 			wil_err(wil, "Tx[%2d] failed to map fragment\n",
wil              2112 drivers/net/wireless/ath/wil6210/txrx.c 		wil->txrx_ops.tx_desc_map((union wil_tx_desc *)d,
wil              2125 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_txrx(wil, "Tx[%2d] desc[%4d]\n", ring_index, i);
wil              2137 drivers/net/wireless/ath/wil6210/txrx.c 	if (wil_val_in_range(wil->ring_idle_trsh,
wil              2140 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_txrx(wil,  "Ring[%2d] not idle %d -> %d\n",
wil              2153 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_txrx(wil, "Tx[%2d] swhead %d -> %d\n", ring_index, swhead,
wil              2162 drivers/net/wireless/ath/wil6210/txrx.c 	if (wil->tx_latency)
wil              2167 drivers/net/wireless/ath/wil6210/txrx.c 	wil_w(wil, ring->hwtail, ring->swhead);
wil              2181 drivers/net/wireless/ath/wil6210/txrx.c 		wil->txrx_ops.tx_desc_unmap(dev,
wil              2191 drivers/net/wireless/ath/wil6210/txrx.c static int wil_tx_ring(struct wil6210_priv *wil, struct wil6210_vif *vif,
wil              2194 drivers/net/wireless/ath/wil6210/txrx.c 	int ring_index = ring - wil->ring_tx;
wil              2195 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil_ring_tx_data *txdata = &wil->ring_tx_data[ring_index];
wil              2200 drivers/net/wireless/ath/wil6210/txrx.c 	if (test_bit(wil_status_suspending, wil->status) ||
wil              2201 drivers/net/wireless/ath/wil6210/txrx.c 	    test_bit(wil_status_suspended, wil->status) ||
wil              2202 drivers/net/wireless/ath/wil6210/txrx.c 	    test_bit(wil_status_resuming, wil->status)) {
wil              2203 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_txrx(wil,
wil              2209 drivers/net/wireless/ath/wil6210/txrx.c 	rc = (skb_is_gso(skb) ? wil->txrx_ops.tx_ring_tso : __wil_tx_ring)
wil              2210 drivers/net/wireless/ath/wil6210/txrx.c 	     (wil, vif, ring, skb);
wil              2234 drivers/net/wireless/ath/wil6210/txrx.c static inline void __wil_update_net_queues(struct wil6210_priv *wil,
wil              2240 drivers/net/wireless/ath/wil6210/txrx.c 	int min_ring_id = wil_get_min_tx_ring_id(wil);
wil              2246 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_txrx(wil, "vring %d, mid %d, check_stop=%d, stopped=%d",
wil              2247 drivers/net/wireless/ath/wil6210/txrx.c 			     (int)(ring - wil->ring_tx), vif->mid, check_stop,
wil              2250 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_txrx(wil, "check_stop=%d, mid=%d, stopped=%d",
wil              2266 drivers/net/wireless/ath/wil6210/txrx.c 			wil_dbg_txrx(wil, "netif_tx_stop called\n");
wil              2272 drivers/net/wireless/ath/wil6210/txrx.c 	if (test_bit(wil_status_suspending, wil->status) ||
wil              2273 drivers/net/wireless/ath/wil6210/txrx.c 	    test_bit(wil_status_suspended, wil->status))
wil              2278 drivers/net/wireless/ath/wil6210/txrx.c 		struct wil_ring *cur_ring = &wil->ring_tx[i];
wil              2279 drivers/net/wireless/ath/wil6210/txrx.c 		struct wil_ring_tx_data  *txdata = &wil->ring_tx_data[i];
wil              2286 drivers/net/wireless/ath/wil6210/txrx.c 			wil_dbg_txrx(wil, "ring %d full, can't wake\n",
wil              2287 drivers/net/wireless/ath/wil6210/txrx.c 				     (int)(cur_ring - wil->ring_tx));
wil              2294 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_txrx(wil, "calling netif_tx_wake\n");
wil              2300 drivers/net/wireless/ath/wil6210/txrx.c void wil_update_net_queues(struct wil6210_priv *wil, struct wil6210_vif *vif,
wil              2303 drivers/net/wireless/ath/wil6210/txrx.c 	spin_lock(&wil->net_queue_lock);
wil              2304 drivers/net/wireless/ath/wil6210/txrx.c 	__wil_update_net_queues(wil, vif, ring, check_stop);
wil              2305 drivers/net/wireless/ath/wil6210/txrx.c 	spin_unlock(&wil->net_queue_lock);
wil              2308 drivers/net/wireless/ath/wil6210/txrx.c void wil_update_net_queues_bh(struct wil6210_priv *wil, struct wil6210_vif *vif,
wil              2311 drivers/net/wireless/ath/wil6210/txrx.c 	spin_lock_bh(&wil->net_queue_lock);
wil              2312 drivers/net/wireless/ath/wil6210/txrx.c 	__wil_update_net_queues(wil, vif, ring, check_stop);
wil              2313 drivers/net/wireless/ath/wil6210/txrx.c 	spin_unlock_bh(&wil->net_queue_lock);
wil              2319 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              2326 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_txrx(wil, "start_xmit\n");
wil              2327 drivers/net/wireless/ath/wil6210/txrx.c 	if (unlikely(!test_bit(wil_status_fwready, wil->status))) {
wil              2329 drivers/net/wireless/ath/wil6210/txrx.c 			wil_err(wil, "FW not ready\n");
wil              2335 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_ratelimited(wil,
wil              2340 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "Xmit in monitor mode not supported\n");
wil              2348 drivers/net/wireless/ath/wil6210/txrx.c 		ring = wil_find_tx_ring_sta(wil, vif, skb);
wil              2354 drivers/net/wireless/ath/wil6210/txrx.c 			ring = wil_find_tx_bcast_2(wil, vif, skb);
wil              2357 drivers/net/wireless/ath/wil6210/txrx.c 			ring = wil_find_tx_bcast_1(wil, vif, skb);
wil              2362 drivers/net/wireless/ath/wil6210/txrx.c 			ring = wil_find_tx_bcast_2(wil, vif, skb);
wil              2365 drivers/net/wireless/ath/wil6210/txrx.c 		ring = wil_find_tx_ucast(wil, vif, skb);
wil              2368 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_txrx(wil, "No Tx RING found for %pM\n", da);
wil              2372 drivers/net/wireless/ath/wil6210/txrx.c 	rc = wil_tx_ring(wil, vif, ring, skb);
wil              2377 drivers/net/wireless/ath/wil6210/txrx.c 		wil_update_net_queues_bh(wil, vif, ring, true);
wil              2395 drivers/net/wireless/ath/wil6210/txrx.c void wil_tx_latency_calc(struct wil6210_priv *wil, struct sk_buff *skb,
wil              2401 drivers/net/wireless/ath/wil6210/txrx.c 	if (!wil->tx_latency)
wil              2408 drivers/net/wireless/ath/wil6210/txrx.c 	bin = skb_time_us / wil->tx_latency_res;
wil              2411 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_txrx(wil, "skb time %dus => bin %d\n", skb_time_us, bin);
wil              2429 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              2431 drivers/net/wireless/ath/wil6210/txrx.c 	struct device *dev = wil_to_dev(wil);
wil              2432 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil_ring *vring = &wil->ring_tx[ringid];
wil              2433 drivers/net/wireless/ath/wil6210/txrx.c 	struct wil_ring_tx_data *txdata = &wil->ring_tx_data[ringid];
wil              2435 drivers/net/wireless/ath/wil6210/txrx.c 	int cid = wil->ring2cid_tid[ringid][0];
wil              2442 drivers/net/wireless/ath/wil6210/txrx.c 		wil_err(wil, "Tx irq[%d]: vring not initialized\n", ringid);
wil              2447 drivers/net/wireless/ath/wil6210/txrx.c 		wil_info(wil, "Tx irq[%d]: vring disabled\n", ringid);
wil              2451 drivers/net/wireless/ath/wil6210/txrx.c 	wil_dbg_txrx(wil, "tx_complete: (%d)\n", ringid);
wil              2455 drivers/net/wireless/ath/wil6210/txrx.c 	if (cid < wil->max_assoc_sta)
wil              2456 drivers/net/wireless/ath/wil6210/txrx.c 		stats = &wil->sta[cid].stats;
wil              2488 drivers/net/wireless/ath/wil6210/txrx.c 			wil_dbg_txrx(wil,
wil              2495 drivers/net/wireless/ath/wil6210/txrx.c 			wil->txrx_ops.tx_desc_unmap(dev,
wil              2507 drivers/net/wireless/ath/wil6210/txrx.c 						wil_tx_latency_calc(wil, skb,
wil              2508 drivers/net/wireless/ath/wil6210/txrx.c 							&wil->sta[cid]);
wil              2540 drivers/net/wireless/ath/wil6210/txrx.c 	if (wil_val_in_range(wil->ring_idle_trsh,
wil              2542 drivers/net/wireless/ath/wil6210/txrx.c 		wil_dbg_txrx(wil, "Ring[%2d] idle %d -> %d\n",
wil              2549 drivers/net/wireless/ath/wil6210/txrx.c 		wil_update_net_queues(wil, vif, vring, false);
wil              2554 drivers/net/wireless/ath/wil6210/txrx.c static inline int wil_tx_init(struct wil6210_priv *wil)
wil              2559 drivers/net/wireless/ath/wil6210/txrx.c static inline void wil_tx_fini(struct wil6210_priv *wil) {}
wil              2561 drivers/net/wireless/ath/wil6210/txrx.c static void wil_get_reorder_params(struct wil6210_priv *wil,
wil              2575 drivers/net/wireless/ath/wil6210/txrx.c void wil_init_txrx_ops_legacy_dma(struct wil6210_priv *wil)
wil              2577 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.configure_interrupt_moderation =
wil              2580 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.tx_desc_map = wil_tx_desc_map;
wil              2581 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.tx_desc_unmap = wil_txdesc_unmap;
wil              2582 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.tx_ring_tso =  __wil_tx_vring_tso;
wil              2583 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.ring_init_tx = wil_vring_init_tx;
wil              2584 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.ring_fini_tx = wil_vring_free;
wil              2585 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.ring_init_bcast = wil_vring_init_bcast;
wil              2586 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.tx_init = wil_tx_init;
wil              2587 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.tx_fini = wil_tx_fini;
wil              2588 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.tx_ring_modify = wil_tx_vring_modify;
wil              2590 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.rx_init = wil_rx_init;
wil              2591 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.wmi_addba_rx_resp = wmi_addba_rx_resp;
wil              2592 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.get_reorder_params = wil_get_reorder_params;
wil              2593 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.get_netif_rx_params =
wil              2595 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.rx_crypto_check = wil_rx_crypto_check;
wil              2596 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.rx_error_check = wil_rx_error_check;
wil              2597 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.is_rx_idle = wil_is_rx_idle;
wil              2598 drivers/net/wireless/ath/wil6210/txrx.c 	wil->txrx_ops.rx_fini = wil_rx_fini;
wil               655 drivers/net/wireless/ath/wil6210/txrx.h static inline int wil_get_min_tx_ring_id(struct wil6210_priv *wil)
wil               658 drivers/net/wireless/ath/wil6210/txrx.h 	return wil->use_enhanced_dma_hw ? 1 : 0;
wil               691 drivers/net/wireless/ath/wil6210/txrx.h void wil_rx_reorder(struct wil6210_priv *wil, struct sk_buff *skb);
wil               692 drivers/net/wireless/ath/wil6210/txrx.h void wil_rx_bar(struct wil6210_priv *wil, struct wil6210_vif *vif,
wil               694 drivers/net/wireless/ath/wil6210/txrx.h struct wil_tid_ampdu_rx *wil_tid_ampdu_rx_alloc(struct wil6210_priv *wil,
wil               696 drivers/net/wireless/ath/wil6210/txrx.h void wil_tid_ampdu_rx_free(struct wil6210_priv *wil,
wil               699 drivers/net/wireless/ath/wil6210/txrx.h void wil_init_txrx_ops_legacy_dma(struct wil6210_priv *wil);
wil               700 drivers/net/wireless/ath/wil6210/txrx.h void wil_tx_latency_calc(struct wil6210_priv *wil, struct sk_buff *skb,
wil                58 drivers/net/wireless/ath/wil6210/txrx_edma.c static int wil_find_free_sring(struct wil6210_priv *wil)
wil                63 drivers/net/wireless/ath/wil6210/txrx_edma.c 		if (!wil->srings[i].va)
wil                70 drivers/net/wireless/ath/wil6210/txrx_edma.c static void wil_sring_free(struct wil6210_priv *wil,
wil                73 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct device *dev = wil_to_dev(wil);
wil                81 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_misc(wil, "status_ring_free, size(bytes)=%zu, 0x%p:%pad\n",
wil                89 drivers/net/wireless/ath/wil6210/txrx_edma.c static int wil_sring_alloc(struct wil6210_priv *wil,
wil                92 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct device *dev = wil_to_dev(wil);
wil                95 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_misc(wil, "status_ring_alloc: size=%zu\n", sz);
wil                98 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_err(wil, "Cannot allocate a zero size status ring\n");
wil               111 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_misc(wil, "status_ring[%d] 0x%p:%pad\n", sring->size, sring->va,
wil               117 drivers/net/wireless/ath/wil6210/txrx_edma.c static int wil_tx_init_edma(struct wil6210_priv *wil)
wil               119 drivers/net/wireless/ath/wil6210/txrx_edma.c 	int ring_id = wil_find_free_sring(wil);
wil               124 drivers/net/wireless/ath/wil6210/txrx_edma.c 	if (wil->tx_status_ring_order < WIL_SRING_SIZE_ORDER_MIN ||
wil               125 drivers/net/wireless/ath/wil6210/txrx_edma.c 	    wil->tx_status_ring_order > WIL_SRING_SIZE_ORDER_MAX)
wil               126 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil->tx_status_ring_order = WIL_TX_SRING_SIZE_ORDER_DEFAULT;
wil               128 drivers/net/wireless/ath/wil6210/txrx_edma.c 	status_ring_size = 1 << wil->tx_status_ring_order;
wil               130 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_misc(wil, "init TX sring: size=%u, ring_id=%u\n",
wil               139 drivers/net/wireless/ath/wil6210/txrx_edma.c 	sring = &wil->srings[ring_id];
wil               144 drivers/net/wireless/ath/wil6210/txrx_edma.c 	rc = wil_sring_alloc(wil, sring);
wil               148 drivers/net/wireless/ath/wil6210/txrx_edma.c 	rc = wil_wmi_tx_sring_cfg(wil, ring_id);
wil               153 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->tx_sring_idx = ring_id;
wil               157 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_sring_free(wil, sring);
wil               164 drivers/net/wireless/ath/wil6210/txrx_edma.c static int wil_ring_alloc_skb_edma(struct wil6210_priv *wil,
wil               167 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct device *dev = wil_to_dev(wil);
wil               168 drivers/net/wireless/ath/wil6210/txrx_edma.c 	unsigned int sz = wil->rx_buf_len;
wil               171 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct list_head *active = &wil->rx_buff_mgmt.active;
wil               172 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct list_head *free = &wil->rx_buff_mgmt.free;
wil               174 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct wil_rx_buff *buff_arr = wil->rx_buff_mgmt.buff_arr;
wil               181 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil->rx_buff_mgmt.free_list_empty_cnt++;
wil               244 drivers/net/wireless/ath/wil6210/txrx_edma.c static int wil_rx_refill_edma(struct wil6210_priv *wil)
wil               246 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct wil_ring *ring = &wil->ring_rx;
wil               254 drivers/net/wireless/ath/wil6210/txrx_edma.c 		rc = wil_ring_alloc_skb_edma(wil, ring, ring->swhead);
wil               257 drivers/net/wireless/ath/wil6210/txrx_edma.c 				wil_dbg_txrx(wil, "No free buffer ID found\n");
wil               259 drivers/net/wireless/ath/wil6210/txrx_edma.c 				wil_err_ratelimited(wil,
wil               271 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_w(wil, ring->hwtail, ring->swhead);
wil               276 drivers/net/wireless/ath/wil6210/txrx_edma.c static void wil_move_all_rx_buff_to_free_list(struct wil6210_priv *wil,
wil               279 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct device *dev = wil_to_dev(wil);
wil               280 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct list_head *active = &wil->rx_buff_mgmt.active;
wil               283 drivers/net/wireless/ath/wil6210/txrx_edma.c 	if (!wil->rx_buff_mgmt.buff_arr)
wil               292 drivers/net/wireless/ath/wil6210/txrx_edma.c 			wil_err(wil, "No Rx skb at buff_id %d\n", rx_buff->id);
wil               296 drivers/net/wireless/ath/wil6210/txrx_edma.c 			dma_unmap_single(dev, pa, wil->rx_buf_len,
wil               302 drivers/net/wireless/ath/wil6210/txrx_edma.c 		list_move(&rx_buff->list, &wil->rx_buff_mgmt.free);
wil               306 drivers/net/wireless/ath/wil6210/txrx_edma.c static void wil_free_rx_buff_arr(struct wil6210_priv *wil)
wil               308 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct wil_ring *ring = &wil->ring_rx;
wil               310 drivers/net/wireless/ath/wil6210/txrx_edma.c 	if (!wil->rx_buff_mgmt.buff_arr)
wil               316 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_move_all_rx_buff_to_free_list(wil, ring);
wil               318 drivers/net/wireless/ath/wil6210/txrx_edma.c 	kfree(wil->rx_buff_mgmt.buff_arr);
wil               319 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->rx_buff_mgmt.buff_arr = NULL;
wil               322 drivers/net/wireless/ath/wil6210/txrx_edma.c static int wil_init_rx_buff_arr(struct wil6210_priv *wil,
wil               326 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct list_head *active = &wil->rx_buff_mgmt.active;
wil               327 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct list_head *free = &wil->rx_buff_mgmt.free;
wil               330 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->rx_buff_mgmt.buff_arr = kcalloc(size + 1,
wil               333 drivers/net/wireless/ath/wil6210/txrx_edma.c 	if (!wil->rx_buff_mgmt.buff_arr)
wil               343 drivers/net/wireless/ath/wil6210/txrx_edma.c 	buff_arr = wil->rx_buff_mgmt.buff_arr;
wil               349 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->rx_buff_mgmt.size = size + 1;
wil               354 drivers/net/wireless/ath/wil6210/txrx_edma.c static int wil_init_rx_sring(struct wil6210_priv *wil,
wil               359 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct wil_status_ring *sring = &wil->srings[ring_id];
wil               362 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_misc(wil, "init RX sring: size=%u, ring_id=%u\n",
wil               370 drivers/net/wireless/ath/wil6210/txrx_edma.c 	rc = wil_sring_alloc(wil, sring);
wil               374 drivers/net/wireless/ath/wil6210/txrx_edma.c 	rc = wil_wmi_rx_sring_add(wil, ring_id);
wil               382 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_sring_free(wil, sring);
wil               386 drivers/net/wireless/ath/wil6210/txrx_edma.c static int wil_ring_alloc_desc_ring(struct wil6210_priv *wil,
wil               389 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct device *dev = wil_to_dev(wil);
wil               392 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_misc(wil, "alloc_desc_ring:\n");
wil               415 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_misc(wil, "%s ring[%d] 0x%p:%pad 0x%p\n",
wil               431 drivers/net/wireless/ath/wil6210/txrx_edma.c static void wil_ring_free_edma(struct wil6210_priv *wil, struct wil_ring *ring)
wil               433 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct device *dev = wil_to_dev(wil);
wil               442 drivers/net/wireless/ath/wil6210/txrx_edma.c 	lockdep_assert_held(&wil->mutex);
wil               444 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_dbg_misc(wil, "free Rx ring [%d] 0x%p:%pad 0x%p\n",
wil               448 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_move_all_rx_buff_to_free_list(wil, ring);
wil               456 drivers/net/wireless/ath/wil6210/txrx_edma.c 	ring_index = ring - wil->ring_tx;
wil               458 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_misc(wil, "free Tx ring %d [%d] 0x%p:%pad 0x%p\n",
wil               472 drivers/net/wireless/ath/wil6210/txrx_edma.c 			wil_dbg_txrx(wil,
wil               493 drivers/net/wireless/ath/wil6210/txrx_edma.c static int wil_init_rx_desc_ring(struct wil6210_priv *wil, u16 desc_ring_size,
wil               496 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct wil_ring *ring = &wil->ring_rx;
wil               499 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_misc(wil, "init RX desc ring\n");
wil               503 drivers/net/wireless/ath/wil6210/txrx_edma.c 	rc = wil_ring_alloc_desc_ring(wil, ring);
wil               507 drivers/net/wireless/ath/wil6210/txrx_edma.c 	rc = wil_wmi_rx_desc_ring_add(wil, status_ring_id);
wil               513 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_ring_free_edma(wil, ring);
wil               517 drivers/net/wireless/ath/wil6210/txrx_edma.c static void wil_get_reorder_params_edma(struct wil6210_priv *wil,
wil               527 drivers/net/wireless/ath/wil6210/txrx_edma.c 	*seq = le16_to_cpu(wil_rx_status_get_seq(wil, s));
wil               541 drivers/net/wireless/ath/wil6210/txrx_edma.c static int wil_rx_crypto_check_edma(struct wil6210_priv *wil,
wil               552 drivers/net/wireless/ath/wil6210/txrx_edma.c 	if (wil->use_rx_hw_reordering)
wil               561 drivers/net/wireless/ath/wil6210/txrx_edma.c 	s = &wil->sta[cid];
wil               567 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_err_ratelimited(wil,
wil               574 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_err_ratelimited(wil,
wil               584 drivers/net/wireless/ath/wil6210/txrx_edma.c static bool wil_is_rx_idle_edma(struct wil6210_priv *wil)
wil               592 drivers/net/wireless/ath/wil6210/txrx_edma.c 	for (i = 0; i < wil->num_rx_status_rings; i++) {
wil               593 drivers/net/wireless/ath/wil6210/txrx_edma.c 		sring = &wil->srings[i];
wil               607 drivers/net/wireless/ath/wil6210/txrx_edma.c static void wil_rx_buf_len_init_edma(struct wil6210_priv *wil)
wil               610 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->rx_buf_len = rx_large_buf ?
wil               614 drivers/net/wireless/ath/wil6210/txrx_edma.c static int wil_rx_init_edma(struct wil6210_priv *wil, uint desc_ring_order)
wil               617 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct wil_ring *ring = &wil->ring_rx;
wil               619 drivers/net/wireless/ath/wil6210/txrx_edma.c 	size_t elem_size = wil->use_compressed_rx_status ?
wil               625 drivers/net/wireless/ath/wil6210/txrx_edma.c 	if (wil->use_compressed_rx_status && !wil->use_rx_hw_reordering) {
wil               626 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_err(wil,
wil               630 drivers/net/wireless/ath/wil6210/txrx_edma.c 	if (wil->rx_status_ring_order <= desc_ring_order)
wil               632 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil->rx_status_ring_order = desc_ring_order + 1;
wil               633 drivers/net/wireless/ath/wil6210/txrx_edma.c 	if (wil->rx_buff_id_count <= desc_ring_size)
wil               635 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil->rx_buff_id_count = desc_ring_size + 512;
wil               636 drivers/net/wireless/ath/wil6210/txrx_edma.c 	if (wil->rx_status_ring_order < WIL_SRING_SIZE_ORDER_MIN ||
wil               637 drivers/net/wireless/ath/wil6210/txrx_edma.c 	    wil->rx_status_ring_order > WIL_SRING_SIZE_ORDER_MAX)
wil               638 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil->rx_status_ring_order = WIL_RX_SRING_SIZE_ORDER_DEFAULT;
wil               640 drivers/net/wireless/ath/wil6210/txrx_edma.c 	status_ring_size = 1 << wil->rx_status_ring_order;
wil               642 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_misc(wil,
wil               646 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_rx_buf_len_init_edma(wil);
wil               649 drivers/net/wireless/ath/wil6210/txrx_edma.c 	if (wil->num_rx_status_rings > WIL6210_MAX_STATUS_RINGS - 1)
wil               650 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil->num_rx_status_rings = WIL6210_MAX_STATUS_RINGS - 1;
wil               652 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_misc(wil, "rx_init: allocate %d status rings\n",
wil               653 drivers/net/wireless/ath/wil6210/txrx_edma.c 		     wil->num_rx_status_rings);
wil               655 drivers/net/wireless/ath/wil6210/txrx_edma.c 	rc = wil_wmi_cfg_def_rx_offload(wil, wil->rx_buf_len);
wil               660 drivers/net/wireless/ath/wil6210/txrx_edma.c 	for (i = 0; i < wil->num_rx_status_rings; i++) {
wil               661 drivers/net/wireless/ath/wil6210/txrx_edma.c 		int sring_id = wil_find_free_sring(wil);
wil               667 drivers/net/wireless/ath/wil6210/txrx_edma.c 		rc = wil_init_rx_sring(wil, status_ring_size, elem_size,
wil               674 drivers/net/wireless/ath/wil6210/txrx_edma.c 	rc = wil_init_rx_desc_ring(wil, desc_ring_size,
wil               679 drivers/net/wireless/ath/wil6210/txrx_edma.c 	if (wil->rx_buff_id_count >= status_ring_size) {
wil               680 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_info(wil,
wil               682 drivers/net/wireless/ath/wil6210/txrx_edma.c 			 wil->rx_buff_id_count, status_ring_size,
wil               684 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil->rx_buff_id_count = status_ring_size - 1;
wil               688 drivers/net/wireless/ath/wil6210/txrx_edma.c 	rc = wil_init_rx_buff_arr(wil, wil->rx_buff_id_count);
wil               693 drivers/net/wireless/ath/wil6210/txrx_edma.c 	rc = wil_rx_refill_edma(wil);
wil               699 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_free_rx_buff_arr(wil);
wil               701 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_ring_free_edma(wil, ring);
wil               703 drivers/net/wireless/ath/wil6210/txrx_edma.c 	for (i = 0; i < wil->num_rx_status_rings; i++)
wil               704 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_sring_free(wil, &wil->srings[i]);
wil               712 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               714 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct wil_ring *ring = &wil->ring_tx[ring_id];
wil               715 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct wil_ring_tx_data *txdata = &wil->ring_tx_data[ring_id];
wil               717 drivers/net/wireless/ath/wil6210/txrx_edma.c 	lockdep_assert_held(&wil->mutex);
wil               719 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_misc(wil,
wil               721 drivers/net/wireless/ath/wil6210/txrx_edma.c 		     ring_id, cid, tid, wil->tx_sring_idx);
wil               725 drivers/net/wireless/ath/wil6210/txrx_edma.c 	rc = wil_ring_alloc_desc_ring(wil, ring);
wil               729 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->ring2cid_tid[ring_id][0] = cid;
wil               730 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->ring2cid_tid[ring_id][1] = tid;
wil               736 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_err(wil, "WMI_TX_DESC_RING_ADD_CMD failed\n");
wil               741 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_addba_tx_request(wil, ring_id, agg_wsize);
wil               749 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_ring_free_edma(wil, ring);
wil               750 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->ring2cid_tid[ring_id][0] = wil->max_assoc_sta;
wil               751 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->ring2cid_tid[ring_id][1] = 0;
wil               760 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               762 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_err(wil, "ring modify is not supported for EDMA\n");
wil               768 drivers/net/wireless/ath/wil6210/txrx_edma.c static int wil_check_bar(struct wil6210_priv *wil, void *msg, int cid,
wil               778 drivers/net/wireless/ath/wil6210/txrx_edma.c 	ftype = wil_rx_status_get_frame_type(wil, msg);
wil               782 drivers/net/wireless/ath/wil6210/txrx_edma.c 	fc1 = wil_rx_status_get_fc1(wil, msg);
wil               785 drivers/net/wireless/ath/wil6210/txrx_edma.c 	seq = le16_to_cpu(wil_rx_status_get_seq(wil, msg));
wil               786 drivers/net/wireless/ath/wil6210/txrx_edma.c 	vif = wil->vifs[mid];
wil               789 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_dbg_txrx(wil, "RX descriptor with invalid mid %d", mid);
wil               793 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_txrx(wil,
wil               799 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_dbg_txrx(wil,
wil               802 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_rx_bar(wil, vif, cid, tid, seq);
wil               804 drivers/net/wireless/ath/wil6210/txrx_edma.c 		u32 sz = wil->use_compressed_rx_status ?
wil               811 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_dbg_txrx(wil,
wil               823 drivers/net/wireless/ath/wil6210/txrx_edma.c static int wil_rx_error_check_edma(struct wil6210_priv *wil,
wil               832 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_dbg_txrx(wil, "L2 RX error, l2_rx_status=0x%x\n",
wil               836 drivers/net/wireless/ath/wil6210/txrx_edma.c 			wil_err_ratelimited(wil,
wil               841 drivers/net/wireless/ath/wil6210/txrx_edma.c 			wil_err_ratelimited(wil,
wil               846 drivers/net/wireless/ath/wil6210/txrx_edma.c 			wil_err_ratelimited(wil,
wil               851 drivers/net/wireless/ath/wil6210/txrx_edma.c 			wil_err_ratelimited(wil,
wil               863 drivers/net/wireless/ath/wil6210/txrx_edma.c static struct sk_buff *wil_sring_reap_rx_edma(struct wil6210_priv *wil,
wil               866 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct device *dev = wil_to_dev(wil);
wil               873 drivers/net/wireless/ath/wil6210/txrx_edma.c 	unsigned int sz = wil->rx_buf_len;
wil               882 drivers/net/wireless/ath/wil6210/txrx_edma.c 	u16 sring_idx = sring - wil->srings;
wil               901 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_dbg_txrx(wil,
wil               914 drivers/net/wireless/ath/wil6210/txrx_edma.c 	if (unlikely(!wil_val_in_range(buff_id, 1, wil->rx_buff_mgmt.size))) {
wil               915 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_err(wil, "Corrupt buff_id=%d, sring->swhead=%d\n",
wil               924 drivers/net/wireless/ath/wil6210/txrx_edma.c 	skb = wil->rx_buff_mgmt.buff_arr[buff_id].skb;
wil               925 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->rx_buff_mgmt.buff_arr[buff_id].skb = NULL;
wil               927 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_err(wil, "No Rx skb at buff_id %d\n", buff_id);
wil               930 drivers/net/wireless/ath/wil6210/txrx_edma.c 		list_move_tail(&wil->rx_buff_mgmt.buff_arr[buff_id].list,
wil               931 drivers/net/wireless/ath/wil6210/txrx_edma.c 			       &wil->rx_buff_mgmt.free);
wil               944 drivers/net/wireless/ath/wil6210/txrx_edma.c 	trace_wil6210_rx_status(wil, wil->use_compressed_rx_status, buff_id,
wil               946 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_txrx(wil, "Rx, buff_id=%u, sring_idx=%u, dmalen=%u bytes\n",
wil               949 drivers/net/wireless/ath/wil6210/txrx_edma.c 			  (const void *)msg, wil->use_compressed_rx_status ?
wil               954 drivers/net/wireless/ath/wil6210/txrx_edma.c 	list_move_tail(&wil->rx_buff_mgmt.buff_arr[buff_id].list,
wil               955 drivers/net/wireless/ath/wil6210/txrx_edma.c 		       &wil->rx_buff_mgmt.free);
wil               960 drivers/net/wireless/ath/wil6210/txrx_edma.c 	if (unlikely(!wil_val_in_range(cid, 0, wil->max_assoc_sta))) {
wil               961 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_err(wil, "Corrupt cid=%d, sring->swhead=%d\n",
wil               966 drivers/net/wireless/ath/wil6210/txrx_edma.c 	stats = &wil->sta[cid].stats;
wil               969 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_dbg_txrx(wil, "Short frame, len = %d\n", dmalen);
wil               976 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_err(wil, "Rx size too large: %d bytes!\n", dmalen);
wil              1011 drivers/net/wireless/ath/wil6210/txrx_edma.c 			wil_err(wil, "failed to merge skbs!\n");
wil              1036 drivers/net/wireless/ath/wil6210/txrx_edma.c 	if (!wil->use_rx_hw_reordering && !wil->use_compressed_rx_status &&
wil              1037 drivers/net/wireless/ath/wil6210/txrx_edma.c 	    wil_check_bar(wil, msg, cid, skb, stats) == -EAGAIN) {
wil              1048 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_err(wil, "Unexpected data offset %d\n", data_offset);
wil              1067 drivers/net/wireless/ath/wil6210/txrx_edma.c void wil_rx_handle_edma(struct wil6210_priv *wil, int *quota)
wil              1070 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct wil_ring *ring = &wil->ring_rx;
wil              1076 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_err(wil, "Rx IRQ while Rx not yet initialized\n");
wil              1079 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_txrx(wil, "rx_handle\n");
wil              1081 drivers/net/wireless/ath/wil6210/txrx_edma.c 	for (i = 0; i < wil->num_rx_status_rings; i++) {
wil              1082 drivers/net/wireless/ath/wil6210/txrx_edma.c 		sring = &wil->srings[i];
wil              1084 drivers/net/wireless/ath/wil6210/txrx_edma.c 			wil_err(wil,
wil              1092 drivers/net/wireless/ath/wil6210/txrx_edma.c 			wil_sring_reap_rx_edma(wil, sring)))) {
wil              1094 drivers/net/wireless/ath/wil6210/txrx_edma.c 			if (wil->use_rx_hw_reordering) {
wil              1097 drivers/net/wireless/ath/wil6210/txrx_edma.c 				struct wil6210_vif *vif = wil->vifs[mid];
wil              1100 drivers/net/wireless/ath/wil6210/txrx_edma.c 					wil_dbg_txrx(wil,
wil              1109 drivers/net/wireless/ath/wil6210/txrx_edma.c 				wil_rx_reorder(wil, skb);
wil              1113 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_w(wil, sring->hwtail, (sring->swhead - 1) % sring->size);
wil              1116 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_rx_refill_edma(wil);
wil              1160 drivers/net/wireless/ath/wil6210/txrx_edma.c int wil_tx_sring_handler(struct wil6210_priv *wil,
wil              1164 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct device *dev = wil_to_dev(wil);
wil              1187 drivers/net/wireless/ath/wil6210/txrx_edma.c 			wil_err(wil, "invalid num_descs 0\n");
wil              1195 drivers/net/wireless/ath/wil6210/txrx_edma.c 			wil_err(wil, "invalid ring id %d\n", ring_id);
wil              1198 drivers/net/wireless/ath/wil6210/txrx_edma.c 		ring = &wil->ring_tx[ring_id];
wil              1200 drivers/net/wireless/ath/wil6210/txrx_edma.c 			wil_err(wil, "Tx irq[%d]: ring not initialized\n",
wil              1204 drivers/net/wireless/ath/wil6210/txrx_edma.c 		txdata = &wil->ring_tx_data[ring_id];
wil              1206 drivers/net/wireless/ath/wil6210/txrx_edma.c 			wil_info(wil, "Tx irq[%d]: ring disabled\n", ring_id);
wil              1209 drivers/net/wireless/ath/wil6210/txrx_edma.c 		vif = wil->vifs[txdata->mid];
wil              1211 drivers/net/wireless/ath/wil6210/txrx_edma.c 			wil_dbg_txrx(wil, "invalid MID %d for ring %d\n",
wil              1218 drivers/net/wireless/ath/wil6210/txrx_edma.c 		cid = wil->ring2cid_tid[ring_id][0];
wil              1219 drivers/net/wireless/ath/wil6210/txrx_edma.c 		stats = (cid < wil->max_assoc_sta) ? &wil->sta[cid].stats :
wil              1222 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_dbg_txrx(wil,
wil              1240 drivers/net/wireless/ath/wil6210/txrx_edma.c 			wil_dbg_txrx(wil,
wil              1260 drivers/net/wireless/ath/wil6210/txrx_edma.c 						wil_tx_latency_calc(wil, skb,
wil              1261 drivers/net/wireless/ath/wil6210/txrx_edma.c 							&wil->sta[cid]);
wil              1289 drivers/net/wireless/ath/wil6210/txrx_edma.c 		if (wil_val_in_range(wil->ring_idle_trsh,
wil              1291 drivers/net/wireless/ath/wil6210/txrx_edma.c 			wil_dbg_txrx(wil, "Ring[%2d] idle %d -> %d\n",
wil              1300 drivers/net/wireless/ath/wil6210/txrx_edma.c 			wil_w(wil, sring->hwtail, sring->swhead);
wil              1309 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_update_net_queues(wil, vif, NULL, false);
wil              1313 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_w(wil, sring->hwtail, (sring->swhead - 1) % sring->size);
wil              1354 drivers/net/wireless/ath/wil6210/txrx_edma.c static int wil_tx_tso_gen_desc(struct wil6210_priv *wil, void *buff_addr,
wil              1361 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct device *dev = wil_to_dev(wil);
wil              1365 drivers/net/wireless/ath/wil6210/txrx_edma.c 	int ring_index = ring - wil->ring_tx;
wil              1379 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_err(wil, "TSO: Skb DMA map error\n");
wil              1383 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.tx_desc_map((union wil_tx_desc *)d, pa,
wil              1405 drivers/net/wireless/ath/wil6210/txrx_edma.c static int __wil_tx_ring_tso_edma(struct wil6210_priv *wil,
wil              1410 drivers/net/wireless/ath/wil6210/txrx_edma.c 	int ring_index = ring - wil->ring_tx;
wil              1411 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct wil_ring_tx_data *txdata = &wil->ring_tx_data[ring_index];
wil              1425 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_txrx(wil, "tx_ring_tso: %d bytes to ring %d\n", skb->len,
wil              1432 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_err_ratelimited(wil,
wil              1463 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_txrx(wil, "TSO: process header descriptor, hdrlen %u\n",
wil              1465 drivers/net/wireless/ath/wil6210/txrx_edma.c 	rc = wil_tx_tso_gen_desc(wil, skb->data, hdrlen, swhead,
wil              1474 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_txrx(wil, "TSO: process skb head, headlen %u\n", headlen);
wil              1475 drivers/net/wireless/ath/wil6210/txrx_edma.c 	rc = wil_tx_tso_gen_desc(wil, skb->data + hdrlen, headlen,
wil              1489 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_dbg_txrx(wil, "TSO: frag[%d]: len %u, descs_used %d\n", f,
wil              1492 drivers/net/wireless/ath/wil6210/txrx_edma.c 		rc = wil_tx_tso_gen_desc(wil, NULL, len,
wil              1505 drivers/net/wireless/ath/wil6210/txrx_edma.c 	if (wil_val_in_range(wil->ring_idle_trsh,
wil              1508 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_dbg_txrx(wil,  "Ring[%2d] not idle %d -> %d\n",
wil              1514 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_txrx(wil, "TSO: Tx swhead %d -> %d\n", swhead, ring->swhead);
wil              1521 drivers/net/wireless/ath/wil6210/txrx_edma.c 	if (wil->tx_latency)
wil              1526 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_w(wil, ring->hwtail, ring->swhead);
wil              1532 drivers/net/wireless/ath/wil6210/txrx_edma.c 		struct device *dev = wil_to_dev(wil);
wil              1552 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1553 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct wil_ring *ring = &wil->ring_tx[ring_id];
wil              1555 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct wil_ring_tx_data *txdata = &wil->ring_tx_data[ring_id];
wil              1557 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_misc(wil, "init bcast: ring_id=%d, sring_id=%d\n",
wil              1558 drivers/net/wireless/ath/wil6210/txrx_edma.c 		     ring_id, wil->tx_sring_idx);
wil              1560 drivers/net/wireless/ath/wil6210/txrx_edma.c 	lockdep_assert_held(&wil->mutex);
wil              1565 drivers/net/wireless/ath/wil6210/txrx_edma.c 	rc = wil_ring_alloc_desc_ring(wil, ring);
wil              1569 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->ring2cid_tid[ring_id][0] = WIL6210_MAX_CID; /* CID */
wil              1570 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->ring2cid_tid[ring_id][1] = 0; /* TID */
wil              1585 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_ring_free_edma(wil, ring);
wil              1591 drivers/net/wireless/ath/wil6210/txrx_edma.c static void wil_tx_fini_edma(struct wil6210_priv *wil)
wil              1593 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct wil_status_ring *sring = &wil->srings[wil->tx_sring_idx];
wil              1595 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_misc(wil, "free TX sring\n");
wil              1597 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_sring_free(wil, sring);
wil              1609 drivers/net/wireless/ath/wil6210/txrx_edma.c static void wil_rx_fini_edma(struct wil6210_priv *wil)
wil              1611 drivers/net/wireless/ath/wil6210/txrx_edma.c 	struct wil_ring *ring = &wil->ring_rx;
wil              1614 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_dbg_misc(wil, "rx_fini_edma\n");
wil              1616 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_ring_free_edma(wil, ring);
wil              1618 drivers/net/wireless/ath/wil6210/txrx_edma.c 	for (i = 0; i < wil->num_rx_status_rings; i++) {
wil              1619 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_rx_data_free(&wil->srings[i]);
wil              1620 drivers/net/wireless/ath/wil6210/txrx_edma.c 		wil_sring_free(wil, &wil->srings[i]);
wil              1623 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil_free_rx_buff_arr(wil);
wil              1626 drivers/net/wireless/ath/wil6210/txrx_edma.c void wil_init_txrx_ops_edma(struct wil6210_priv *wil)
wil              1628 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.configure_interrupt_moderation =
wil              1631 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.ring_init_tx = wil_ring_init_tx_edma;
wil              1632 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.ring_fini_tx = wil_ring_free_edma;
wil              1633 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.ring_init_bcast = wil_ring_init_bcast_edma;
wil              1634 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.tx_init = wil_tx_init_edma;
wil              1635 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.tx_fini = wil_tx_fini_edma;
wil              1636 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.tx_desc_map = wil_tx_desc_map_edma;
wil              1637 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.tx_desc_unmap = wil_tx_desc_unmap_edma;
wil              1638 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.tx_ring_tso = __wil_tx_ring_tso_edma;
wil              1639 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.tx_ring_modify = wil_tx_ring_modify_edma;
wil              1641 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.rx_init = wil_rx_init_edma;
wil              1642 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.wmi_addba_rx_resp = wmi_addba_rx_resp_edma;
wil              1643 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.get_reorder_params = wil_get_reorder_params_edma;
wil              1644 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.get_netif_rx_params = wil_get_netif_rx_params_edma;
wil              1645 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.rx_crypto_check = wil_rx_crypto_check_edma;
wil              1646 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.rx_error_check = wil_rx_error_check_edma;
wil              1647 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.is_rx_idle = wil_is_rx_idle_edma;
wil              1648 drivers/net/wireless/ath/wil6210/txrx_edma.c 	wil->txrx_ops.rx_fini = wil_rx_fini_edma;
wil               453 drivers/net/wireless/ath/wil6210/txrx_edma.h static inline int wil_rx_status_get_frame_type(struct wil6210_priv *wil,
wil               456 drivers/net/wireless/ath/wil6210/txrx_edma.h 	if (wil->use_compressed_rx_status)
wil               463 drivers/net/wireless/ath/wil6210/txrx_edma.h static inline int wil_rx_status_get_fc1(struct wil6210_priv *wil, void *msg)
wil               465 drivers/net/wireless/ath/wil6210/txrx_edma.h 	if (wil->use_compressed_rx_status)
wil               472 drivers/net/wireless/ath/wil6210/txrx_edma.h static inline __le16 wil_rx_status_get_seq(struct wil6210_priv *wil, void *msg)
wil               474 drivers/net/wireless/ath/wil6210/txrx_edma.h 	if (wil->use_compressed_rx_status)
wil               606 drivers/net/wireless/ath/wil6210/txrx_edma.h void wil_configure_interrupt_moderation_edma(struct wil6210_priv *wil);
wil               607 drivers/net/wireless/ath/wil6210/txrx_edma.h int wil_tx_sring_handler(struct wil6210_priv *wil,
wil               609 drivers/net/wireless/ath/wil6210/txrx_edma.h void wil_rx_handle_edma(struct wil6210_priv *wil, int *quota);
wil               610 drivers/net/wireless/ath/wil6210/txrx_edma.h void wil_init_txrx_ops_edma(struct wil6210_priv *wil);
wil               603 drivers/net/wireless/ath/wil6210/wil6210.h 	void (*configure_interrupt_moderation)(struct wil6210_priv *wil);
wil               607 drivers/net/wireless/ath/wil6210/wil6210.h 	void (*ring_fini_tx)(struct wil6210_priv *wil, struct wil_ring *ring);
wil               609 drivers/net/wireless/ath/wil6210/wil6210.h 	int (*tx_init)(struct wil6210_priv *wil);
wil               610 drivers/net/wireless/ath/wil6210/wil6210.h 	void (*tx_fini)(struct wil6210_priv *wil);
wil               616 drivers/net/wireless/ath/wil6210/wil6210.h 	int (*tx_ring_tso)(struct wil6210_priv *wil, struct wil6210_vif *vif,
wil               622 drivers/net/wireless/ath/wil6210/wil6210.h 	int (*rx_init)(struct wil6210_priv *wil, uint ring_order);
wil               623 drivers/net/wireless/ath/wil6210/wil6210.h 	void (*rx_fini)(struct wil6210_priv *wil);
wil               624 drivers/net/wireless/ath/wil6210/wil6210.h 	int (*wmi_addba_rx_resp)(struct wil6210_priv *wil, u8 mid, u8 cid,
wil               627 drivers/net/wireless/ath/wil6210/wil6210.h 	void (*get_reorder_params)(struct wil6210_priv *wil,
wil               632 drivers/net/wireless/ath/wil6210/wil6210.h 	int (*rx_crypto_check)(struct wil6210_priv *wil, struct sk_buff *skb);
wil               633 drivers/net/wireless/ath/wil6210/wil6210.h 	int (*rx_error_check)(struct wil6210_priv *wil, struct sk_buff *skb,
wil               635 drivers/net/wireless/ath/wil6210/wil6210.h 	bool (*is_rx_idle)(struct wil6210_priv *wil);
wil               807 drivers/net/wireless/ath/wil6210/wil6210.h 	struct wil6210_priv *wil;
wil               833 drivers/net/wireless/ath/wil6210/wil6210.h 	struct wil6210_priv *wil;
wil               855 drivers/net/wireless/ath/wil6210/wil6210.h 	struct wil6210_priv *wil;
wil              1081 drivers/net/wireless/ath/wil6210/wil6210.h #define vif_to_wil(v) (v->wil)
wil              1084 drivers/net/wireless/ath/wil6210/wil6210.h #define GET_MAX_VIFS(wil) min_t(int, (wil)->max_vifs, WIL_MAX_VIFS)
wil              1086 drivers/net/wireless/ath/wil6210/wil6210.h static inline struct wil6210_vif *wdev_to_vif(struct wil6210_priv *wil,
wil              1090 drivers/net/wireless/ath/wil6210/wil6210.h 	if (wdev == wil->p2p_wdev)
wil              1091 drivers/net/wireless/ath/wil6210/wil6210.h 		return ndev_to_vif(wil->main_ndev);
wil              1097 drivers/net/wireless/ath/wil6210/wil6210.h vif_to_radio_wdev(struct wil6210_priv *wil, struct wil6210_vif *vif)
wil              1103 drivers/net/wireless/ath/wil6210/wil6210.h 		return wil->radio_wdev;
wil              1107 drivers/net/wireless/ath/wil6210/wil6210.h void wil_dbg_trace(struct wil6210_priv *wil, const char *fmt, ...);
wil              1109 drivers/net/wireless/ath/wil6210/wil6210.h void __wil_err(struct wil6210_priv *wil, const char *fmt, ...);
wil              1111 drivers/net/wireless/ath/wil6210/wil6210.h void __wil_err_ratelimited(struct wil6210_priv *wil, const char *fmt, ...);
wil              1113 drivers/net/wireless/ath/wil6210/wil6210.h void __wil_info(struct wil6210_priv *wil, const char *fmt, ...);
wil              1115 drivers/net/wireless/ath/wil6210/wil6210.h void wil_dbg_ratelimited(const struct wil6210_priv *wil, const char *fmt, ...);
wil              1116 drivers/net/wireless/ath/wil6210/wil6210.h #define wil_dbg(wil, fmt, arg...) do { \
wil              1117 drivers/net/wireless/ath/wil6210/wil6210.h 	netdev_dbg(wil->main_ndev, fmt, ##arg); \
wil              1118 drivers/net/wireless/ath/wil6210/wil6210.h 	wil_dbg_trace(wil, fmt, ##arg); \
wil              1121 drivers/net/wireless/ath/wil6210/wil6210.h #define wil_dbg_irq(wil, fmt, arg...) wil_dbg(wil, "DBG[ IRQ]" fmt, ##arg)
wil              1122 drivers/net/wireless/ath/wil6210/wil6210.h #define wil_dbg_txrx(wil, fmt, arg...) wil_dbg(wil, "DBG[TXRX]" fmt, ##arg)
wil              1123 drivers/net/wireless/ath/wil6210/wil6210.h #define wil_dbg_wmi(wil, fmt, arg...) wil_dbg(wil, "DBG[ WMI]" fmt, ##arg)
wil              1124 drivers/net/wireless/ath/wil6210/wil6210.h #define wil_dbg_misc(wil, fmt, arg...) wil_dbg(wil, "DBG[MISC]" fmt, ##arg)
wil              1125 drivers/net/wireless/ath/wil6210/wil6210.h #define wil_dbg_pm(wil, fmt, arg...) wil_dbg(wil, "DBG[ PM ]" fmt, ##arg)
wil              1126 drivers/net/wireless/ath/wil6210/wil6210.h #define wil_err(wil, fmt, arg...) __wil_err(wil, "%s: " fmt, __func__, ##arg)
wil              1127 drivers/net/wireless/ath/wil6210/wil6210.h #define wil_info(wil, fmt, arg...) __wil_info(wil, "%s: " fmt, __func__, ##arg)
wil              1128 drivers/net/wireless/ath/wil6210/wil6210.h #define wil_err_ratelimited(wil, fmt, arg...) \
wil              1129 drivers/net/wireless/ath/wil6210/wil6210.h 	__wil_err_ratelimited(wil, "%s: " fmt, __func__, ##arg)
wil              1133 drivers/net/wireless/ath/wil6210/wil6210.h static inline u32 wil_r(struct wil6210_priv *wil, u32 reg)
wil              1135 drivers/net/wireless/ath/wil6210/wil6210.h 	return readl(wil->csr + HOSTADDR(reg));
wil              1139 drivers/net/wireless/ath/wil6210/wil6210.h static inline void wil_w(struct wil6210_priv *wil, u32 reg, u32 val)
wil              1141 drivers/net/wireless/ath/wil6210/wil6210.h 	writel(val, wil->csr + HOSTADDR(reg));
wil              1146 drivers/net/wireless/ath/wil6210/wil6210.h static inline void wil_s(struct wil6210_priv *wil, u32 reg, u32 val)
wil              1148 drivers/net/wireless/ath/wil6210/wil6210.h 	wil_w(wil, reg, wil_r(wil, reg) | val);
wil              1152 drivers/net/wireless/ath/wil6210/wil6210.h static inline void wil_c(struct wil6210_priv *wil, u32 reg, u32 val)
wil              1154 drivers/net/wireless/ath/wil6210/wil6210.h 	wil_w(wil, reg, wil_r(wil, reg) & ~val);
wil              1160 drivers/net/wireless/ath/wil6210/wil6210.h static inline bool wil_cid_valid(struct wil6210_priv *wil, int cid)
wil              1162 drivers/net/wireless/ath/wil6210/wil6210.h 	return (cid >= 0 && cid < wil->max_assoc_sta);
wil              1165 drivers/net/wireless/ath/wil6210/wil6210.h void wil_get_board_file(struct wil6210_priv *wil, char *buf, size_t len);
wil              1209 drivers/net/wireless/ath/wil6210/wil6210.h int wil_mem_access_lock(struct wil6210_priv *wil);
wil              1210 drivers/net/wireless/ath/wil6210/wil6210.h void wil_mem_access_unlock(struct wil6210_priv *wil);
wil              1213 drivers/net/wireless/ath/wil6210/wil6210.h wil_vif_alloc(struct wil6210_priv *wil, const char *name,
wil              1217 drivers/net/wireless/ath/wil6210/wil6210.h bool wil_has_other_active_ifaces(struct wil6210_priv *wil,
wil              1219 drivers/net/wireless/ath/wil6210/wil6210.h bool wil_has_active_ifaces(struct wil6210_priv *wil, bool up, bool ok);
wil              1220 drivers/net/wireless/ath/wil6210/wil6210.h void wil_if_free(struct wil6210_priv *wil);
wil              1221 drivers/net/wireless/ath/wil6210/wil6210.h int wil_vif_add(struct wil6210_priv *wil, struct wil6210_vif *vif);
wil              1222 drivers/net/wireless/ath/wil6210/wil6210.h int wil_if_add(struct wil6210_priv *wil);
wil              1223 drivers/net/wireless/ath/wil6210/wil6210.h void wil_vif_remove(struct wil6210_priv *wil, u8 mid);
wil              1224 drivers/net/wireless/ath/wil6210/wil6210.h void wil_if_remove(struct wil6210_priv *wil);
wil              1225 drivers/net/wireless/ath/wil6210/wil6210.h int wil_priv_init(struct wil6210_priv *wil);
wil              1226 drivers/net/wireless/ath/wil6210/wil6210.h void wil_priv_deinit(struct wil6210_priv *wil);
wil              1227 drivers/net/wireless/ath/wil6210/wil6210.h int wil_ps_update(struct wil6210_priv *wil,
wil              1229 drivers/net/wireless/ath/wil6210/wil6210.h int wil_reset(struct wil6210_priv *wil, bool no_fw);
wil              1230 drivers/net/wireless/ath/wil6210/wil6210.h void wil_fw_error_recovery(struct wil6210_priv *wil);
wil              1231 drivers/net/wireless/ath/wil6210/wil6210.h void wil_set_recovery_state(struct wil6210_priv *wil, int state);
wil              1232 drivers/net/wireless/ath/wil6210/wil6210.h bool wil_is_recovery_blocked(struct wil6210_priv *wil);
wil              1233 drivers/net/wireless/ath/wil6210/wil6210.h int wil_up(struct wil6210_priv *wil);
wil              1234 drivers/net/wireless/ath/wil6210/wil6210.h int __wil_up(struct wil6210_priv *wil);
wil              1235 drivers/net/wireless/ath/wil6210/wil6210.h int wil_down(struct wil6210_priv *wil);
wil              1236 drivers/net/wireless/ath/wil6210/wil6210.h int __wil_down(struct wil6210_priv *wil);
wil              1237 drivers/net/wireless/ath/wil6210/wil6210.h void wil_refresh_fw_capabilities(struct wil6210_priv *wil);
wil              1239 drivers/net/wireless/ath/wil6210/wil6210.h int wil_find_cid(struct wil6210_priv *wil, u8 mid, const u8 *mac);
wil              1240 drivers/net/wireless/ath/wil6210/wil6210.h int wil_find_cid_by_idx(struct wil6210_priv *wil, u8 mid, int idx);
wil              1244 drivers/net/wireless/ath/wil6210/wil6210.h void __iomem *wmi_buffer_block(struct wil6210_priv *wil, __le32 ptr, u32 size);
wil              1245 drivers/net/wireless/ath/wil6210/wil6210.h void __iomem *wmi_buffer(struct wil6210_priv *wil, __le32 ptr);
wil              1246 drivers/net/wireless/ath/wil6210/wil6210.h void __iomem *wmi_addr(struct wil6210_priv *wil, u32 ptr);
wil              1247 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_read_hdr(struct wil6210_priv *wil, __le32 ptr,
wil              1249 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_send(struct wil6210_priv *wil, u16 cmdid, u8 mid, void *buf, u16 len);
wil              1250 drivers/net/wireless/ath/wil6210/wil6210.h void wmi_recv_cmd(struct wil6210_priv *wil);
wil              1251 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_call(struct wil6210_priv *wil, u16 cmdid, u8 mid, void *buf, u16 len,
wil              1254 drivers/net/wireless/ath/wil6210/wil6210.h void wmi_event_flush(struct wil6210_priv *wil);
wil              1257 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_set_channel(struct wil6210_priv *wil, int channel);
wil              1258 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_get_channel(struct wil6210_priv *wil, int *channel);
wil              1264 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_echo(struct wil6210_priv *wil);
wil              1266 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_rx_chain_add(struct wil6210_priv *wil, struct wil_ring *vring);
wil              1268 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_rxon(struct wil6210_priv *wil, bool on);
wil              1269 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_get_temperature(struct wil6210_priv *wil, u32 *t_m, u32 *t_r);
wil              1270 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_get_all_temperatures(struct wil6210_priv *wil,
wil              1275 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_addba(struct wil6210_priv *wil, u8 mid,
wil              1277 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_delba_tx(struct wil6210_priv *wil, u8 mid, u8 ringid, u16 reason);
wil              1278 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_delba_rx(struct wil6210_priv *wil, u8 mid, u8 cid, u8 tid, u16 reason);
wil              1279 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_addba_rx_resp(struct wil6210_priv *wil,
wil              1282 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_ps_dev_profile_cfg(struct wil6210_priv *wil,
wil              1284 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_set_mgmt_retry(struct wil6210_priv *wil, u8 retry_short);
wil              1285 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_get_mgmt_retry(struct wil6210_priv *wil, u8 *retry_short);
wil              1287 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_port_allocate(struct wil6210_priv *wil, u8 mid,
wil              1289 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_port_delete(struct wil6210_priv *wil, u8 mid);
wil              1291 drivers/net/wireless/ath/wil6210/wil6210.h int wil_addba_rx_request(struct wil6210_priv *wil, u8 mid, u8 cid, u8 tid,
wil              1294 drivers/net/wireless/ath/wil6210/wil6210.h int wil_addba_tx_request(struct wil6210_priv *wil, u8 ringid, u16 wsize);
wil              1296 drivers/net/wireless/ath/wil6210/wil6210.h void wil6210_clear_irq(struct wil6210_priv *wil);
wil              1297 drivers/net/wireless/ath/wil6210/wil6210.h int wil6210_init_irq(struct wil6210_priv *wil, int irq);
wil              1298 drivers/net/wireless/ath/wil6210/wil6210.h void wil6210_fini_irq(struct wil6210_priv *wil, int irq);
wil              1299 drivers/net/wireless/ath/wil6210/wil6210.h void wil_mask_irq(struct wil6210_priv *wil);
wil              1300 drivers/net/wireless/ath/wil6210/wil6210.h void wil_unmask_irq(struct wil6210_priv *wil);
wil              1301 drivers/net/wireless/ath/wil6210/wil6210.h void wil_configure_interrupt_moderation(struct wil6210_priv *wil);
wil              1302 drivers/net/wireless/ath/wil6210/wil6210.h void wil_disable_irq(struct wil6210_priv *wil);
wil              1303 drivers/net/wireless/ath/wil6210/wil6210.h void wil_enable_irq(struct wil6210_priv *wil);
wil              1304 drivers/net/wireless/ath/wil6210/wil6210.h void wil6210_mask_halp(struct wil6210_priv *wil);
wil              1310 drivers/net/wireless/ath/wil6210/wil6210.h int wil_p2p_listen(struct wil6210_priv *wil, struct wireless_dev *wdev,
wil              1317 drivers/net/wireless/ath/wil6210/wil6210.h void wil_p2p_stop_radio_operations(struct wil6210_priv *wil);
wil              1329 drivers/net/wireless/ath/wil6210/wil6210.h void wil_cfg80211_ap_recovery(struct wil6210_priv *wil);
wil              1331 drivers/net/wireless/ath/wil6210/wil6210.h 	struct wil6210_priv *wil,
wil              1336 drivers/net/wireless/ath/wil6210/wil6210.h int wil6210_debugfs_init(struct wil6210_priv *wil);
wil              1337 drivers/net/wireless/ath/wil6210/wil6210.h void wil6210_debugfs_remove(struct wil6210_priv *wil);
wil              1339 drivers/net/wireless/ath/wil6210/wil6210.h static inline int wil6210_debugfs_init(struct wil6210_priv *wil) { return 0; }
wil              1340 drivers/net/wireless/ath/wil6210/wil6210.h static inline void wil6210_debugfs_remove(struct wil6210_priv *wil) {}
wil              1347 drivers/net/wireless/ath/wil6210/wil6210.h void wil_cfg80211_deinit(struct wil6210_priv *wil);
wil              1348 drivers/net/wireless/ath/wil6210/wil6210.h void wil_p2p_wdev_free(struct wil6210_priv *wil);
wil              1350 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_set_mac_address(struct wil6210_priv *wil, void *addr);
wil              1354 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_led_cfg(struct wil6210_priv *wil, bool enable);
wil              1357 drivers/net/wireless/ath/wil6210/wil6210.h void wil_abort_scan_all_vifs(struct wil6210_priv *wil, bool sync);
wil              1358 drivers/net/wireless/ath/wil6210/wil6210.h void wil6210_bus_request(struct wil6210_priv *wil, u32 kbps);
wil              1368 drivers/net/wireless/ath/wil6210/wil6210.h void wil_init_txrx_ops(struct wil6210_priv *wil);
wil              1375 drivers/net/wireless/ath/wil6210/wil6210.h void wil_bcast_fini_all(struct wil6210_priv *wil);
wil              1377 drivers/net/wireless/ath/wil6210/wil6210.h void wil_update_net_queues(struct wil6210_priv *wil, struct wil6210_vif *vif,
wil              1379 drivers/net/wireless/ath/wil6210/wil6210.h void wil_update_net_queues_bh(struct wil6210_priv *wil, struct wil6210_vif *vif,
wil              1385 drivers/net/wireless/ath/wil6210/wil6210.h void wil6210_unmask_irq_tx(struct wil6210_priv *wil);
wil              1386 drivers/net/wireless/ath/wil6210/wil6210.h void wil6210_unmask_irq_tx_edma(struct wil6210_priv *wil);
wil              1389 drivers/net/wireless/ath/wil6210/wil6210.h void wil_rx_handle(struct wil6210_priv *wil, int *quota);
wil              1390 drivers/net/wireless/ath/wil6210/wil6210.h void wil6210_unmask_irq_rx(struct wil6210_priv *wil);
wil              1391 drivers/net/wireless/ath/wil6210/wil6210.h void wil6210_unmask_irq_rx_edma(struct wil6210_priv *wil);
wil              1398 drivers/net/wireless/ath/wil6210/wil6210.h int wil_request_firmware(struct wil6210_priv *wil, const char *name,
wil              1400 drivers/net/wireless/ath/wil6210/wil6210.h int wil_request_board(struct wil6210_priv *wil, const char *name);
wil              1401 drivers/net/wireless/ath/wil6210/wil6210.h bool wil_fw_verify_file_exists(struct wil6210_priv *wil, const char *name);
wil              1403 drivers/net/wireless/ath/wil6210/wil6210.h void wil_pm_runtime_allow(struct wil6210_priv *wil);
wil              1404 drivers/net/wireless/ath/wil6210/wil6210.h void wil_pm_runtime_forbid(struct wil6210_priv *wil);
wil              1405 drivers/net/wireless/ath/wil6210/wil6210.h int wil_pm_runtime_get(struct wil6210_priv *wil);
wil              1406 drivers/net/wireless/ath/wil6210/wil6210.h void wil_pm_runtime_put(struct wil6210_priv *wil);
wil              1408 drivers/net/wireless/ath/wil6210/wil6210.h int wil_can_suspend(struct wil6210_priv *wil, bool is_runtime);
wil              1409 drivers/net/wireless/ath/wil6210/wil6210.h int wil_suspend(struct wil6210_priv *wil, bool is_runtime, bool keep_radio_on);
wil              1410 drivers/net/wireless/ath/wil6210/wil6210.h int wil_resume(struct wil6210_priv *wil, bool is_runtime, bool keep_radio_on);
wil              1411 drivers/net/wireless/ath/wil6210/wil6210.h bool wil_is_wmi_idle(struct wil6210_priv *wil);
wil              1412 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_resume(struct wil6210_priv *wil);
wil              1413 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_suspend(struct wil6210_priv *wil);
wil              1414 drivers/net/wireless/ath/wil6210/wil6210.h bool wil_is_tx_idle(struct wil6210_priv *wil);
wil              1416 drivers/net/wireless/ath/wil6210/wil6210.h int wil_fw_copy_crash_dump(struct wil6210_priv *wil, void *dest, u32 size);
wil              1417 drivers/net/wireless/ath/wil6210/wil6210.h void wil_fw_core_dump(struct wil6210_priv *wil);
wil              1419 drivers/net/wireless/ath/wil6210/wil6210.h void wil_halp_vote(struct wil6210_priv *wil);
wil              1420 drivers/net/wireless/ath/wil6210/wil6210.h void wil_halp_unvote(struct wil6210_priv *wil);
wil              1421 drivers/net/wireless/ath/wil6210/wil6210.h void wil6210_set_halp(struct wil6210_priv *wil);
wil              1422 drivers/net/wireless/ath/wil6210/wil6210.h void wil6210_clear_halp(struct wil6210_priv *wil);
wil              1424 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_start_sched_scan(struct wil6210_priv *wil,
wil              1426 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_stop_sched_scan(struct wil6210_priv *wil);
wil              1430 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_rbufcap_cfg(struct wil6210_priv *wil, bool enable, u16 threshold);
wil              1434 drivers/net/wireless/ath/wil6210/wil6210.h void wil_update_supported_bands(struct wil6210_priv *wil);
wil              1439 drivers/net/wireless/ath/wil6210/wil6210.h int wil_wmi_tx_sring_cfg(struct wil6210_priv *wil, int ring_id);
wil              1440 drivers/net/wireless/ath/wil6210/wil6210.h int wil_wmi_cfg_def_rx_offload(struct wil6210_priv *wil,
wil              1442 drivers/net/wireless/ath/wil6210/wil6210.h int wil_wmi_rx_sring_add(struct wil6210_priv *wil, u16 ring_id);
wil              1443 drivers/net/wireless/ath/wil6210/wil6210.h int wil_wmi_rx_desc_ring_add(struct wil6210_priv *wil, int status_ring_id);
wil              1447 drivers/net/wireless/ath/wil6210/wil6210.h int wmi_addba_rx_resp_edma(struct wil6210_priv *wil, u8 mid, u8 cid,
wil              1451 drivers/net/wireless/ath/wil6210/wil6210.h void update_supported_bands(struct wil6210_priv *wil);
wil              1453 drivers/net/wireless/ath/wil6210/wil6210.h void wil_clear_fw_log_addr(struct wil6210_priv *wil);
wil                21 drivers/net/wireless/ath/wil6210/wil_crash_dump.c static int wil_fw_get_crash_dump_bounds(struct wil6210_priv *wil,
wil                58 drivers/net/wireless/ath/wil6210/wil_crash_dump.c int wil_fw_copy_crash_dump(struct wil6210_priv *wil, void *dest, u32 size)
wil                65 drivers/net/wireless/ath/wil6210/wil_crash_dump.c 	if (wil_fw_get_crash_dump_bounds(wil, &dump_size, &host_min)) {
wil                66 drivers/net/wireless/ath/wil6210/wil_crash_dump.c 		wil_err(wil, "fail to obtain crash dump size\n");
wil                71 drivers/net/wireless/ath/wil6210/wil_crash_dump.c 		wil_err(wil, "not enough space for dump. Need %d have %d\n",
wil                76 drivers/net/wireless/ath/wil6210/wil_crash_dump.c 	rc = wil_mem_access_lock(wil);
wil                87 drivers/net/wireless/ath/wil6210/wil_crash_dump.c 		data = (void * __force)wil->csr + HOSTADDR(map->host);
wil                91 drivers/net/wireless/ath/wil6210/wil_crash_dump.c 		wil_dbg_misc(wil,
wil                98 drivers/net/wireless/ath/wil6210/wil_crash_dump.c 	wil_mem_access_unlock(wil);
wil               103 drivers/net/wireless/ath/wil6210/wil_crash_dump.c void wil_fw_core_dump(struct wil6210_priv *wil)
wil               108 drivers/net/wireless/ath/wil6210/wil_crash_dump.c 	if (wil_fw_get_crash_dump_bounds(wil, &fw_dump_size, NULL)) {
wil               109 drivers/net/wireless/ath/wil6210/wil_crash_dump.c 		wil_err(wil, "fail to get fw dump size\n");
wil               117 drivers/net/wireless/ath/wil6210/wil_crash_dump.c 	if (wil_fw_copy_crash_dump(wil, fw_dump_data, fw_dump_size)) {
wil               124 drivers/net/wireless/ath/wil6210/wil_crash_dump.c 	dev_coredumpv(wil_to_dev(wil), fw_dump_data, fw_dump_size, GFP_KERNEL);
wil               125 drivers/net/wireless/ath/wil6210/wil_crash_dump.c 	wil_info(wil, "fw core dumped, size %d bytes\n", fw_dump_size);
wil               288 drivers/net/wireless/ath/wil6210/wmi.c void __iomem *wmi_buffer_block(struct wil6210_priv *wil, __le32 ptr_, u32 size)
wil               301 drivers/net/wireless/ath/wil6210/wmi.c 	if (off > wil->bar_size - 4)
wil               303 drivers/net/wireless/ath/wil6210/wmi.c 	if (size && ((off + size > wil->bar_size) || (off + size < off)))
wil               306 drivers/net/wireless/ath/wil6210/wmi.c 	return wil->csr + off;
wil               309 drivers/net/wireless/ath/wil6210/wmi.c void __iomem *wmi_buffer(struct wil6210_priv *wil, __le32 ptr_)
wil               311 drivers/net/wireless/ath/wil6210/wmi.c 	return wmi_buffer_block(wil, ptr_, 0);
wil               317 drivers/net/wireless/ath/wil6210/wmi.c void __iomem *wmi_addr(struct wil6210_priv *wil, u32 ptr)
wil               328 drivers/net/wireless/ath/wil6210/wmi.c 	if (off > wil->bar_size - 4)
wil               331 drivers/net/wireless/ath/wil6210/wmi.c 	return wil->csr + off;
wil               334 drivers/net/wireless/ath/wil6210/wmi.c int wmi_read_hdr(struct wil6210_priv *wil, __le32 ptr,
wil               337 drivers/net/wireless/ath/wil6210/wmi.c 	void __iomem *src = wmi_buffer(wil, ptr);
wil               643 drivers/net/wireless/ath/wil6210/wmi.c static int __wmi_send(struct wil6210_priv *wil, u16 cmdid, u8 mid,
wil               660 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_mbox_ring *r = &wil->mbox_ctl.tx;
wil               664 drivers/net/wireless/ath/wil6210/wmi.c 	void __iomem *head = wmi_addr(wil, r->head);
wil               669 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "WMI size too large: %d bytes, max is %d\n",
wil               676 drivers/net/wireless/ath/wil6210/wmi.c 	if (!test_bit(wil_status_fwready, wil->status)) {
wil               677 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "WMI: cannot send command while FW not ready\n");
wil               682 drivers/net/wireless/ath/wil6210/wmi.c 	if ((test_bit(wil_status_suspending, wil->status) ||
wil               683 drivers/net/wireless/ath/wil6210/wmi.c 	     test_bit(wil_status_suspended, wil->status) ||
wil               684 drivers/net/wireless/ath/wil6210/wmi.c 	     test_bit(wil_status_resuming, wil->status)) &&
wil               687 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "WMI: reject send_command during suspend\n");
wil               692 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "WMI head is garbage: 0x%08x\n", r->head);
wil               696 drivers/net/wireless/ath/wil6210/wmi.c 	wil_halp_vote(wil);
wil               706 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "WMI head busy\n");
wil               712 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "Head 0x%08x -> 0x%08x\n", r->head, next_head);
wil               715 drivers/net/wireless/ath/wil6210/wmi.c 		if (!test_bit(wil_status_fwready, wil->status)) {
wil               716 drivers/net/wireless/ath/wil6210/wmi.c 			wil_err(wil, "WMI: cannot send command while FW not ready\n");
wil               720 drivers/net/wireless/ath/wil6210/wmi.c 		r->tail = wil_r(wil, RGF_MBOX +
wil               727 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "WMI ring full\n");
wil               731 drivers/net/wireless/ath/wil6210/wmi.c 	dst = wmi_buffer(wil, d_head.addr);
wil               733 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "invalid WMI buffer: 0x%08x\n",
wil               738 drivers/net/wireless/ath/wil6210/wmi.c 	cmd.hdr.seq = cpu_to_le16(++wil->wmi_seq);
wil               740 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "sending %s (0x%04x) [%d] mid %d\n",
wil               749 drivers/net/wireless/ath/wil6210/wmi.c 	wil_w(wil, r->head + offsetof(struct wil6210_mbox_ring_desc, sync), 1);
wil               751 drivers/net/wireless/ath/wil6210/wmi.c 	wil_w(wil, RGF_MBOX + offsetof(struct wil6210_mbox_ctl, tx.head),
wil               757 drivers/net/wireless/ath/wil6210/wmi.c 	wil_w(wil, RGF_USER_USER_ICR + offsetof(struct RGF_ICR, ICS),
wil               761 drivers/net/wireless/ath/wil6210/wmi.c 	wil_halp_unvote(wil);
wil               765 drivers/net/wireless/ath/wil6210/wmi.c int wmi_send(struct wil6210_priv *wil, u16 cmdid, u8 mid, void *buf, u16 len)
wil               769 drivers/net/wireless/ath/wil6210/wmi.c 	mutex_lock(&wil->wmi_mutex);
wil               770 drivers/net/wireless/ath/wil6210/wmi.c 	rc = __wmi_send(wil, cmdid, mid, buf, len);
wil               771 drivers/net/wireless/ath/wil6210/wmi.c 	mutex_unlock(&wil->wmi_mutex);
wil               779 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               780 drivers/net/wireless/ath/wil6210/wmi.c 	struct wiphy *wiphy = wil_to_wiphy(wil);
wil               784 drivers/net/wireless/ath/wil6210/wmi.c 	wil_info(wil, "FW ver. %s(SW %d); MAC %pM; %d MID's\n",
wil               785 drivers/net/wireless/ath/wil6210/wmi.c 		 wil->fw_version, le32_to_cpu(evt->sw_version),
wil               787 drivers/net/wireless/ath/wil6210/wmi.c 	if (evt->numof_additional_mids + 1 < wil->max_vifs) {
wil               788 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "FW does not support enough MIDs (need %d)",
wil               789 drivers/net/wireless/ath/wil6210/wmi.c 			wil->max_vifs - 1);
wil               793 drivers/net/wireless/ath/wil6210/wmi.c 	strlcpy(wiphy->fw_version, wil->fw_version, sizeof(wiphy->fw_version));
wil               796 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_wmi(wil, "rfc calibration result %d\n",
wil               798 drivers/net/wireless/ath/wil6210/wmi.c 		wil->fw_calib_result = evt->rfc_read_calib_result;
wil               805 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_wmi(wil, "fw reported max assoc sta %d\n",
wil               809 drivers/net/wireless/ath/wil6210/wmi.c 			wil_dbg_wmi(wil,
wil               816 drivers/net/wireless/ath/wil6210/wmi.c 	wil->max_assoc_sta = min_t(uint, max_assoc_sta, fw_max_assoc_sta);
wil               817 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "setting max assoc sta to %d\n", wil->max_assoc_sta);
wil               819 drivers/net/wireless/ath/wil6210/wmi.c 	wil_set_recovery_state(wil, fw_recovery_idle);
wil               820 drivers/net/wireless/ath/wil6210/wmi.c 	set_bit(wil_status_fwready, wil->status);
wil               822 drivers/net/wireless/ath/wil6210/wmi.c 	complete(&wil->wmi_ready);
wil               827 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               829 drivers/net/wireless/ath/wil6210/wmi.c 	struct wiphy *wiphy = wil_to_wiphy(wil);
wil               842 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "MGMT Rx: short event, len %d\n", len);
wil               848 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil,
wil               857 drivers/net/wireless/ath/wil6210/wmi.c 	if (test_bit(WMI_FW_CAPABILITY_RSSI_REPORTING, wil->fw_capabilities))
wil               864 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "MGMT Rx: channel %d MCS %d RSSI %d SQI %d%%\n",
wil               867 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "status 0x%04x len %d fc 0x%04x\n", d_status, d_len,
wil               869 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "qid %d mid %d cid %d\n",
wil               875 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "Frame on unsupported channel\n");
wil               893 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_wmi(wil, "Capability info : 0x%04x\n", cap);
wil               894 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_wmi(wil, "TSF : 0x%016llx\n", tsf);
wil               895 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_wmi(wil, "Beacon interval : %d\n", bi);
wil               899 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_wmi(wil, "Capability info : 0x%04x\n", cap);
wil               905 drivers/net/wireless/ath/wil6210/wmi.c 			wil_dbg_wmi(wil, "Added BSS %pM\n",
wil               909 drivers/net/wireless/ath/wil6210/wmi.c 			wil_err(wil, "cfg80211_inform_bss_frame() failed\n");
wil               912 drivers/net/wireless/ath/wil6210/wmi.c 		mutex_lock(&wil->vif_mutex);
wil               913 drivers/net/wireless/ath/wil6210/wmi.c 		cfg80211_rx_mgmt(vif_to_radio_wdev(wil, vif), freq, signal,
wil               915 drivers/net/wireless/ath/wil6210/wmi.c 		mutex_unlock(&wil->vif_mutex);
wil               933 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               935 drivers/net/wireless/ath/wil6210/wmi.c 	mutex_lock(&wil->vif_mutex);
wil               944 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_wmi(wil, "SCAN_COMPLETE(0x%08x)\n", status);
wil               945 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_misc(wil, "Complete scan_request 0x%p aborted %d\n",
wil               950 drivers/net/wireless/ath/wil6210/wmi.c 			wil->radio_wdev = wil->main_ndev->ieee80211_ptr;
wil               952 drivers/net/wireless/ath/wil6210/wmi.c 		wake_up_interruptible(&wil->wq);
wil               954 drivers/net/wireless/ath/wil6210/wmi.c 			wil_dbg_misc(wil, "Scheduling delayed listen\n");
wil               958 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "SCAN_COMPLETE while not scanning\n");
wil               960 drivers/net/wireless/ath/wil6210/wmi.c 	mutex_unlock(&wil->vif_mutex);
wil               965 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil               980 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "Connect event too short : %d bytes\n", len);
wil               985 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil,
wil               991 drivers/net/wireless/ath/wil6210/wmi.c 	if (evt->cid >= wil->max_assoc_sta) {
wil               992 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "Connect CID invalid : %d\n", evt->cid);
wil               997 drivers/net/wireless/ath/wil6210/wmi.c 	wil_info(wil, "Connect %pM channel [%d] cid %d aid %d\n",
wil              1020 drivers/net/wireless/ath/wil6210/wmi.c 	if (test_bit(wil_status_resetting, wil->status) ||
wil              1021 drivers/net/wireless/ath/wil6210/wmi.c 	    !test_bit(wil_status_fwready, wil->status)) {
wil              1022 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "status_resetting, cancel connect event, CID %d\n",
wil              1028 drivers/net/wireless/ath/wil6210/wmi.c 	mutex_lock(&wil->mutex);
wil              1033 drivers/net/wireless/ath/wil6210/wmi.c 			wil_err(wil, "Not in connecting state\n");
wil              1034 drivers/net/wireless/ath/wil6210/wmi.c 			mutex_unlock(&wil->mutex);
wil              1040 drivers/net/wireless/ath/wil6210/wmi.c 		if (wil->sta[evt->cid].status != wil_sta_unused) {
wil              1041 drivers/net/wireless/ath/wil6210/wmi.c 			wil_err(wil, "AP: Invalid status %d for CID %d\n",
wil              1042 drivers/net/wireless/ath/wil6210/wmi.c 				wil->sta[evt->cid].status, evt->cid);
wil              1043 drivers/net/wireless/ath/wil6210/wmi.c 			mutex_unlock(&wil->mutex);
wil              1048 drivers/net/wireless/ath/wil6210/wmi.c 	ether_addr_copy(wil->sta[evt->cid].addr, evt->bssid);
wil              1049 drivers/net/wireless/ath/wil6210/wmi.c 	wil->sta[evt->cid].mid = vif->mid;
wil              1050 drivers/net/wireless/ath/wil6210/wmi.c 	wil->sta[evt->cid].status = wil_sta_conn_pending;
wil              1054 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "config tx vring failed for CID %d, rc (%d)\n",
wil              1056 drivers/net/wireless/ath/wil6210/wmi.c 		wmi_disconnect_sta(vif, wil->sta[evt->cid].addr,
wil              1059 drivers/net/wireless/ath/wil6210/wmi.c 		wil_info(wil, "successful connection to CID %d\n", evt->cid);
wil              1066 drivers/net/wireless/ath/wil6210/wmi.c 			wil6210_bus_request(wil, WIL_DEFAULT_BUS_REQUEST_KBPS);
wil              1067 drivers/net/wireless/ath/wil6210/wmi.c 			wil_err(wil, "cfg80211_connect_result with failure\n");
wil              1074 drivers/net/wireless/ath/wil6210/wmi.c 			struct wiphy *wiphy = wil_to_wiphy(wil);
wil              1100 drivers/net/wireless/ath/wil6210/wmi.c 		sinfo->generation = wil->sinfo_gen++;
wil              1111 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "unhandled iftype %d for CID %d\n", wdev->iftype,
wil              1116 drivers/net/wireless/ath/wil6210/wmi.c 	wil->sta[evt->cid].status = wil_sta_connected;
wil              1117 drivers/net/wireless/ath/wil6210/wmi.c 	wil->sta[evt->cid].aid = evt->aid;
wil              1119 drivers/net/wireless/ath/wil6210/wmi.c 		atomic_inc(&wil->connected_vifs);
wil              1120 drivers/net/wireless/ath/wil6210/wmi.c 	wil_update_net_queues_bh(wil, vif, NULL, false);
wil              1124 drivers/net/wireless/ath/wil6210/wmi.c 		wil->sta[evt->cid].status = wil_sta_unused;
wil              1125 drivers/net/wireless/ath/wil6210/wmi.c 		wil->sta[evt->cid].mid = U8_MAX;
wil              1128 drivers/net/wireless/ath/wil6210/wmi.c 	mutex_unlock(&wil->mutex);
wil              1134 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1138 drivers/net/wireless/ath/wil6210/wmi.c 	wil_info(wil, "Disconnect %pM reason [proto %d wmi %d]\n",
wil              1141 drivers/net/wireless/ath/wil6210/wmi.c 	wil->sinfo_gen++;
wil              1143 drivers/net/wireless/ath/wil6210/wmi.c 	if (test_bit(wil_status_resetting, wil->status) ||
wil              1144 drivers/net/wireless/ath/wil6210/wmi.c 	    !test_bit(wil_status_fwready, wil->status)) {
wil              1145 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "status_resetting, cancel disconnect event\n");
wil              1150 drivers/net/wireless/ath/wil6210/wmi.c 	mutex_lock(&wil->mutex);
wil              1169 drivers/net/wireless/ath/wil6210/wmi.c 	mutex_unlock(&wil->mutex);
wil              1178 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1188 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "EAPOL len %d from %pM MID %d\n", eapol_len,
wil              1191 drivers/net/wireless/ath/wil6210/wmi.c 	cid = wil_find_cid(wil, vif->mid, evt->src_mac);
wil              1193 drivers/net/wireless/ath/wil6210/wmi.c 		stats = &wil->sta[cid].stats;
wil              1196 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "EAPOL too large\n");
wil              1202 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "Failed to allocate skb\n");
wil              1228 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1236 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "Enable vring %d MID %d\n", vri, vif->mid);
wil              1238 drivers/net/wireless/ath/wil6210/wmi.c 	if (vri >= ARRAY_SIZE(wil->ring_tx)) {
wil              1239 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "Enable for invalid vring %d\n", vri);
wil              1248 drivers/net/wireless/ath/wil6210/wmi.c 		wil->ring_tx_data[vri].dot1x_open = true;
wil              1252 drivers/net/wireless/ath/wil6210/wmi.c 	cid = wil->ring2cid_tid[vri][0];
wil              1253 drivers/net/wireless/ath/wil6210/wmi.c 	if (!wil_cid_valid(wil, cid)) {
wil              1254 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "invalid cid %d for vring %d\n", cid, vri);
wil              1262 drivers/net/wireless/ath/wil6210/wmi.c 	sta = &wil->sta[cid];
wil              1271 drivers/net/wireless/ath/wil6210/wmi.c 		wil_addba_tx_request(wil, vri, agg_wsize);
wil              1277 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1281 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "BACK[%d] %s {%d} timeout %d AMSDU%s\n",
wil              1288 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "invalid ring id %d\n", evt->ringid);
wil              1298 drivers/net/wireless/ath/wil6210/wmi.c 	txdata = &wil->ring_tx_data[evt->ringid];
wil              1309 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1319 drivers/net/wireless/ath/wil6210/wmi.c 	wil_addba_rx_request(wil, vif->mid, cid, tid, evt->dialog_token,
wil              1327 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1343 drivers/net/wireless/ath/wil6210/wmi.c 	if (!wil_cid_valid(wil, cid)) {
wil              1344 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "DELBA: Invalid CID %d\n", cid);
wil              1348 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "DELBA MID %d CID %d TID %d from %s reason %d\n",
wil              1355 drivers/net/wireless/ath/wil6210/wmi.c 		for (i = 0; i < ARRAY_SIZE(wil->ring2cid_tid); i++) {
wil              1356 drivers/net/wireless/ath/wil6210/wmi.c 			if (wil->ring2cid_tid[i][0] == cid &&
wil              1357 drivers/net/wireless/ath/wil6210/wmi.c 			    wil->ring2cid_tid[i][1] == tid) {
wil              1359 drivers/net/wireless/ath/wil6210/wmi.c 					&wil->ring_tx_data[i];
wil              1361 drivers/net/wireless/ath/wil6210/wmi.c 				wil_dbg_wmi(wil, "DELBA Tx vring %d\n", i);
wil              1369 drivers/net/wireless/ath/wil6210/wmi.c 		if (i >= ARRAY_SIZE(wil->ring2cid_tid))
wil              1370 drivers/net/wireless/ath/wil6210/wmi.c 			wil_err(wil, "DELBA: unable to find Tx vring\n");
wil              1374 drivers/net/wireless/ath/wil6210/wmi.c 	sta = &wil->sta[cid];
wil              1380 drivers/net/wireless/ath/wil6210/wmi.c 	wil_tid_ampdu_rx_free(wil, r);
wil              1388 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1390 drivers/net/wireless/ath/wil6210/wmi.c 	struct wiphy *wiphy = wil_to_wiphy(wil);
wil              1407 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "sched scan result event too short, len %d\n",
wil              1414 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil,
wil              1422 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "sched scan result invalid frame, fc 0x%04x\n",
wil              1430 drivers/net/wireless/ath/wil6210/wmi.c 	if (test_bit(WMI_FW_CAPABILITY_RSSI_REPORTING, wil->fw_capabilities))
wil              1435 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "sched scan result: channel %d MCS %d RSSI %d\n",
wil              1437 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "len %d qid %d mid %d cid %d\n",
wil              1443 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "Frame on unsupported channel\n");
wil              1452 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_wmi(wil, "Added BSS %pM\n", rx_mgmt_frame->bssid);
wil              1455 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "cfg80211_inform_bss_frame() failed\n");
wil              1464 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1468 drivers/net/wireless/ath/wil6210/wmi.c 	if (cid < 0 || cid >= wil->max_assoc_sta) {
wil              1469 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "invalid cid %d\n", cid);
wil              1473 drivers/net/wireless/ath/wil6210/wmi.c 	sta = &wil->sta[cid];
wil              1480 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1482 drivers/net/wireless/ath/wil6210/wmi.c 	wil->fw_stats_global.stats = *global;
wil              1489 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1495 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "link stats wrong event size %zu\n", payload_size);
wil              1505 drivers/net/wireless/ath/wil6210/wmi.c 			wil_err(wil, "link stats payload ended unexpectedly, size %zu < %zu\n",
wil              1514 drivers/net/wireless/ath/wil6210/wmi.c 				wil_err(wil, "link stats invalid basic record size %zu < %zu\n",
wil              1535 drivers/net/wireless/ath/wil6210/wmi.c 				wil_err(wil, "link stats invalid global record size %zu < %zu\n",
wil              1540 drivers/net/wireless/ath/wil6210/wmi.c 			if (wil->fw_stats_global.ready) {
wil              1542 drivers/net/wireless/ath/wil6210/wmi.c 				wil->fw_stats_global.tsf = 0;
wil              1543 drivers/net/wireless/ath/wil6210/wmi.c 				wil->fw_stats_global.ready = 0;
wil              1549 drivers/net/wireless/ath/wil6210/wmi.c 				wil->fw_stats_global.tsf = tsf;
wil              1550 drivers/net/wireless/ath/wil6210/wmi.c 				wil->fw_stats_global.ready = 1;
wil              1567 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1572 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "stats event way too short %d\n", len);
wil              1577 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "stats event too short %d\n", len);
wil              1590 drivers/net/wireless/ath/wil6210/wmi.c static int wil_find_cid_ringid_sta(struct wil6210_priv *wil,
wil              1597 drivers/net/wireless/ath/wil6210/wmi.c 	int min_ring_id = wil_get_min_tx_ring_id(wil);
wil              1603 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "invalid interface type %d\n", vif->wdev.iftype);
wil              1612 drivers/net/wireless/ath/wil6210/wmi.c 		ring = &wil->ring_tx[i];
wil              1613 drivers/net/wireless/ath/wil6210/wmi.c 		txdata = &wil->ring_tx_data[i];
wil              1617 drivers/net/wireless/ath/wil6210/wmi.c 		lcid = wil->ring2cid_tid[i][0];
wil              1618 drivers/net/wireless/ath/wil6210/wmi.c 		if (lcid >= wil->max_assoc_sta) /* skip BCAST */
wil              1621 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_wmi(wil, "find sta -> ringid %d cid %d\n", i, lcid);
wil              1627 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "find sta cid while no rings active?\n");
wil              1635 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1648 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "FT: auth failed. status %d\n", data->status);
wil              1653 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "FT: auth event too short, len %d\n", len);
wil              1659 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil,
wil              1665 drivers/net/wireless/ath/wil6210/wmi.c 	if (!test_bit(wil_vif_ft_roam, wil->status)) {
wil              1666 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "FT: Not in roaming state\n");
wil              1671 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "FT: auth error. auth_transaction %d\n",
wil              1677 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "FT: auth error. auth_alg %d\n",
wil              1682 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "FT: Auth to %pM successfully\n", data->mac_addr);
wil              1687 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wil_find_cid_ringid_sta(wil, vif, &cid, &ringid);
wil              1689 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "No valid cid found\n");
wil              1695 drivers/net/wireless/ath/wil6210/wmi.c 		rc = wmi_del_cipher_key(vif, 0, wil->sta[cid].addr,
wil              1698 drivers/net/wireless/ath/wil6210/wmi.c 			wil_err(wil, "WMI_DELETE_CIPHER_KEY_CMD(PTK) failed\n");
wil              1701 drivers/net/wireless/ath/wil6210/wmi.c 		rc = wmi_del_cipher_key(vif, 0, wil->sta[cid].addr,
wil              1704 drivers/net/wireless/ath/wil6210/wmi.c 			wil_err(wil, "WMI_DELETE_CIPHER_KEY_CMD(GTK) failed\n");
wil              1724 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1726 drivers/net/wireless/ath/wil6210/wmi.c 	struct wiphy *wiphy = wil_to_wiphy(wil);
wil              1743 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "ft reassoc event too short, len %d\n", len);
wil              1747 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "Reasoc Status event: status=%d, aid=%d",
wil              1749 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "    mac_addr=%pM, beacon_ie_len=%d",
wil              1751 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "    reassoc_req_ie_len=%d, reassoc_resp_ie_len=%d",
wil              1759 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil,
wil              1767 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "ft reassoc failed. status %d\n", data->status);
wil              1772 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wil_find_cid_ringid_sta(wil, vif, &cid, &ringid);
wil              1774 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "No valid cid found\n");
wil              1779 drivers/net/wireless/ath/wil6210/wmi.c 	wil_info(wil, "FT: Roam %pM channel [%d] cid %d aid %d\n",
wil              1792 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "FT: reassoc resp ie len is too short, len %d\n",
wil              1802 drivers/net/wireless/ath/wil6210/wmi.c 	if (test_bit(wil_status_resetting, wil->status) ||
wil              1803 drivers/net/wireless/ath/wil6210/wmi.c 	    !test_bit(wil_status_fwready, wil->status)) {
wil              1804 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "FT: status_resetting, cancel reassoc event\n");
wil              1809 drivers/net/wireless/ath/wil6210/wmi.c 	mutex_lock(&wil->mutex);
wil              1812 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil,
wil              1816 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wil->txrx_ops.tx_ring_modify(vif, ringid, cid, 0);
wil              1818 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "modify TX for CID %d MID %d ring %d failed (%d)\n",
wil              1820 drivers/net/wireless/ath/wil6210/wmi.c 		mutex_unlock(&wil->mutex);
wil              1825 drivers/net/wireless/ath/wil6210/wmi.c 	wil->sta[cid].aid = data->aid;
wil              1826 drivers/net/wireless/ath/wil6210/wmi.c 	wil->sta[cid].stats.ft_roams++;
wil              1827 drivers/net/wireless/ath/wil6210/wmi.c 	ether_addr_copy(wil->sta[cid].addr, vif->bss->bssid);
wil              1828 drivers/net/wireless/ath/wil6210/wmi.c 	mutex_unlock(&wil->mutex);
wil              1856 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              1858 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "Ignore event 0x%04x len %d\n", id, len);
wil              1891 drivers/net/wireless/ath/wil6210/wmi.c void wmi_recv_cmd(struct wil6210_priv *wil)
wil              1895 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_mbox_ring *r = &wil->mbox_ctl.rx;
wil              1903 drivers/net/wireless/ath/wil6210/wmi.c 	if (!test_bit(wil_status_mbox_ready, wil->status)) {
wil              1904 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "Reset in progress. Cannot handle WMI event\n");
wil              1908 drivers/net/wireless/ath/wil6210/wmi.c 	if (test_bit(wil_status_suspended, wil->status)) {
wil              1909 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "suspended. cannot handle WMI event\n");
wil              1918 drivers/net/wireless/ath/wil6210/wmi.c 		r->head = wil_r(wil, RGF_MBOX +
wil              1923 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_wmi(wil, "Mbox head %08x tail %08x\n",
wil              1926 drivers/net/wireless/ath/wil6210/wmi.c 		wil_memcpy_fromio_32(&d_tail, wil->csr + HOSTADDR(r->tail),
wil              1929 drivers/net/wireless/ath/wil6210/wmi.c 			wil_err(wil, "Mbox evt not owned by FW?\n");
wil              1934 drivers/net/wireless/ath/wil6210/wmi.c 		if (0 != wmi_read_hdr(wil, d_tail.addr, &hdr)) {
wil              1935 drivers/net/wireless/ath/wil6210/wmi.c 			wil_err(wil, "Mbox evt at 0x%08x?\n",
wil              1940 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_wmi(wil, "Mbox evt %04x %04x %04x %02x\n",
wil              1945 drivers/net/wireless/ath/wil6210/wmi.c 		src = wmi_buffer(wil, d_tail.addr) +
wil              1957 drivers/net/wireless/ath/wil6210/wmi.c 		wil_w(wil, r->tail +
wil              1966 drivers/net/wireless/ath/wil6210/wmi.c 			if (test_bit(wil_status_resuming, wil->status)) {
wil              1969 drivers/net/wireless/ath/wil6210/wmi.c 						  wil->status);
wil              1971 drivers/net/wireless/ath/wil6210/wmi.c 					wil_err(wil,
wil              1975 drivers/net/wireless/ath/wil6210/wmi.c 			spin_lock_irqsave(&wil->wmi_ev_lock, flags);
wil              1976 drivers/net/wireless/ath/wil6210/wmi.c 			if (wil->reply_id && wil->reply_id == id &&
wil              1977 drivers/net/wireless/ath/wil6210/wmi.c 			    wil->reply_mid == mid) {
wil              1978 drivers/net/wireless/ath/wil6210/wmi.c 				if (wil->reply_buf) {
wil              1979 drivers/net/wireless/ath/wil6210/wmi.c 					memcpy(wil->reply_buf, wmi,
wil              1980 drivers/net/wireless/ath/wil6210/wmi.c 					       min(len, wil->reply_size));
wil              1984 drivers/net/wireless/ath/wil6210/wmi.c 					wil_dbg_wmi(wil,
wil              1986 drivers/net/wireless/ath/wil6210/wmi.c 					wil->suspend_resp_rcvd = true;
wil              1989 drivers/net/wireless/ath/wil6210/wmi.c 			spin_unlock_irqrestore(&wil->wmi_ev_lock, flags);
wil              1991 drivers/net/wireless/ath/wil6210/wmi.c 			wil_dbg_wmi(wil, "recv %s (0x%04x) MID %d @%d msec\n",
wil              2002 drivers/net/wireless/ath/wil6210/wmi.c 		wil_w(wil, RGF_MBOX +
wil              2006 drivers/net/wireless/ath/wil6210/wmi.c 			wil_dbg_wmi(wil, "recv_cmd: Complete WMI 0x%04x\n",
wil              2007 drivers/net/wireless/ath/wil6210/wmi.c 				    wil->reply_id);
wil              2010 drivers/net/wireless/ath/wil6210/wmi.c 			complete(&wil->wmi_call);
wil              2013 drivers/net/wireless/ath/wil6210/wmi.c 			spin_lock_irqsave(&wil->wmi_ev_lock, flags);
wil              2014 drivers/net/wireless/ath/wil6210/wmi.c 			list_add_tail(&evt->list, &wil->pending_wmi_ev);
wil              2015 drivers/net/wireless/ath/wil6210/wmi.c 			spin_unlock_irqrestore(&wil->wmi_ev_lock, flags);
wil              2016 drivers/net/wireless/ath/wil6210/wmi.c 			q = queue_work(wil->wmi_wq, &wil->wmi_event_worker);
wil              2017 drivers/net/wireless/ath/wil6210/wmi.c 			wil_dbg_wmi(wil, "queue_work -> %d\n", q);
wil              2021 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "recv_cmd: -> %d events queued, %d completed\n",
wil              2025 drivers/net/wireless/ath/wil6210/wmi.c int wmi_call(struct wil6210_priv *wil, u16 cmdid, u8 mid, void *buf, u16 len,
wil              2032 drivers/net/wireless/ath/wil6210/wmi.c 	mutex_lock(&wil->wmi_mutex);
wil              2034 drivers/net/wireless/ath/wil6210/wmi.c 	spin_lock_irqsave(&wil->wmi_ev_lock, flags);
wil              2035 drivers/net/wireless/ath/wil6210/wmi.c 	wil->reply_id = reply_id;
wil              2036 drivers/net/wireless/ath/wil6210/wmi.c 	wil->reply_mid = mid;
wil              2037 drivers/net/wireless/ath/wil6210/wmi.c 	wil->reply_buf = reply;
wil              2038 drivers/net/wireless/ath/wil6210/wmi.c 	wil->reply_size = reply_size;
wil              2039 drivers/net/wireless/ath/wil6210/wmi.c 	reinit_completion(&wil->wmi_call);
wil              2040 drivers/net/wireless/ath/wil6210/wmi.c 	spin_unlock_irqrestore(&wil->wmi_ev_lock, flags);
wil              2042 drivers/net/wireless/ath/wil6210/wmi.c 	rc = __wmi_send(wil, cmdid, mid, buf, len);
wil              2046 drivers/net/wireless/ath/wil6210/wmi.c 	remain = wait_for_completion_timeout(&wil->wmi_call,
wil              2049 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "wmi_call(0x%04x->0x%04x) timeout %d msec\n",
wil              2053 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_wmi(wil,
wil              2060 drivers/net/wireless/ath/wil6210/wmi.c 	spin_lock_irqsave(&wil->wmi_ev_lock, flags);
wil              2061 drivers/net/wireless/ath/wil6210/wmi.c 	wil->reply_id = 0;
wil              2062 drivers/net/wireless/ath/wil6210/wmi.c 	wil->reply_mid = U8_MAX;
wil              2063 drivers/net/wireless/ath/wil6210/wmi.c 	wil->reply_buf = NULL;
wil              2064 drivers/net/wireless/ath/wil6210/wmi.c 	wil->reply_size = 0;
wil              2065 drivers/net/wireless/ath/wil6210/wmi.c 	spin_unlock_irqrestore(&wil->wmi_ev_lock, flags);
wil              2067 drivers/net/wireless/ath/wil6210/wmi.c 	mutex_unlock(&wil->wmi_mutex);
wil              2072 drivers/net/wireless/ath/wil6210/wmi.c int wmi_echo(struct wil6210_priv *wil)
wil              2074 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              2079 drivers/net/wireless/ath/wil6210/wmi.c 	return wmi_call(wil, WMI_ECHO_CMDID, vif->mid, &cmd, sizeof(cmd),
wil              2084 drivers/net/wireless/ath/wil6210/wmi.c int wmi_set_mac_address(struct wil6210_priv *wil, void *addr)
wil              2086 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              2091 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "Set MAC %pM\n", addr);
wil              2093 drivers/net/wireless/ath/wil6210/wmi.c 	return wmi_send(wil, WMI_SET_MAC_ADDRESS_CMDID, vif->mid,
wil              2097 drivers/net/wireless/ath/wil6210/wmi.c int wmi_led_cfg(struct wil6210_priv *wil, bool enable)
wil              2099 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              2129 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "Invalid led id %d\n", led_id);
wil              2134 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil,
wil              2138 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_LED_CFG_CMDID, vif->mid, &cmd, sizeof(cmd),
wil              2145 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "led %d cfg failed with status %d\n",
wil              2154 drivers/net/wireless/ath/wil6210/wmi.c int wmi_rbufcap_cfg(struct wil6210_priv *wil, bool enable, u16 threshold)
wil              2156 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              2170 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_RBUFCAP_CFG_CMDID, vif->mid, &cmd, sizeof(cmd),
wil              2177 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "RBUFCAP_CFG failed. status %d\n",
wil              2188 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              2197 drivers/net/wireless/ath/wil6210/wmi.c 		.pcp_max_assoc_sta = wil->max_assoc_sta,
wil              2203 drivers/net/wireless/ath/wil6210/wmi.c 		.abft_len = wil->abft_len,
wil              2217 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "unexpected max_assoc_sta %d\n",
wil              2224 drivers/net/wireless/ath/wil6210/wmi.c 		      wil->fw_capabilities)) {
wil              2225 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "disable_ap_sme not supported by FW\n");
wil              2233 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_PCP_START_CMDID, vif->mid, &cmd, sizeof(cmd),
wil              2243 drivers/net/wireless/ath/wil6210/wmi.c 		wmi_led_cfg(wil, true);
wil              2250 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              2253 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_led_cfg(wil, false);
wil              2257 drivers/net/wireless/ath/wil6210/wmi.c 	return wmi_call(wil, WMI_PCP_STOP_CMDID, vif->mid, NULL, 0,
wil              2264 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              2274 drivers/net/wireless/ath/wil6210/wmi.c 	return wmi_send(wil, WMI_SET_SSID_CMDID, vif->mid, &cmd, sizeof(cmd));
wil              2279 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              2289 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_GET_SSID_CMDID, vif->mid, NULL, 0,
wil              2305 drivers/net/wireless/ath/wil6210/wmi.c int wmi_set_channel(struct wil6210_priv *wil, int channel)
wil              2307 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              2312 drivers/net/wireless/ath/wil6210/wmi.c 	return wmi_send(wil, WMI_SET_PCP_CHANNEL_CMDID, vif->mid,
wil              2316 drivers/net/wireless/ath/wil6210/wmi.c int wmi_get_channel(struct wil6210_priv *wil, int *channel)
wil              2318 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              2327 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_GET_PCP_CHANNEL_CMDID, vif->mid, NULL, 0,
wil              2343 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              2357 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "sending WMI_P2P_CFG_CMDID\n");
wil              2359 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_P2P_CFG_CMDID, vif->mid, &cmd, sizeof(cmd),
wil              2362 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "P2P_CFG failed. status %d\n", reply.evt.status);
wil              2371 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              2380 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "sending WMI_START_LISTEN_CMDID\n");
wil              2382 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_START_LISTEN_CMDID, vif->mid, NULL, 0,
wil              2385 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "device failed to start listen. status %d\n",
wil              2395 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              2404 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "sending WMI_START_SEARCH_CMDID\n");
wil              2406 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_START_SEARCH_CMDID, vif->mid, NULL, 0,
wil              2409 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "device failed to start search. status %d\n",
wil              2419 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              2422 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "sending WMI_DISCOVERY_STOP_CMDID\n");
wil              2424 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_DISCOVERY_STOP_CMDID, vif->mid, NULL, 0,
wil              2429 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "Failed to stop discovery\n");
wil              2437 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              2445 drivers/net/wireless/ath/wil6210/wmi.c 	return wmi_send(wil, WMI_DELETE_CIPHER_KEY_CMDID, vif->mid,
wil              2453 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              2474 drivers/net/wireless/ath/wil6210/wmi.c 	return wmi_send(wil, WMI_ADD_CIPHER_KEY_CMDID, vif->mid,
wil              2480 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              2510 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_send(wil, WMI_SET_APPIE_CMDID, vif->mid, cmd, len);
wil              2516 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "set_ie(%d %s) failed : %d\n", type, name, rc);
wil              2524 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              2534 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "wraparound. ie len %d\n", ie_len);
wil              2547 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_send(wil, WMI_UPDATE_FT_IES_CMDID, vif->mid, cmd, len);
wil              2552 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "update ft ies failed : %d\n", rc);
wil              2565 drivers/net/wireless/ath/wil6210/wmi.c int wmi_rxon(struct wil6210_priv *wil, bool on)
wil              2567 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              2576 drivers/net/wireless/ath/wil6210/wmi.c 	wil_info(wil, "(%s)\n", on ? "on" : "off");
wil              2579 drivers/net/wireless/ath/wil6210/wmi.c 		rc = wmi_call(wil, WMI_START_LISTEN_CMDID, vif->mid, NULL, 0,
wil              2586 drivers/net/wireless/ath/wil6210/wmi.c 		rc = wmi_call(wil, WMI_DISCOVERY_STOP_CMDID, vif->mid, NULL, 0,
wil              2594 drivers/net/wireless/ath/wil6210/wmi.c int wmi_rx_chain_add(struct wil6210_priv *wil, struct wil_ring *vring)
wil              2596 drivers/net/wireless/ath/wil6210/wmi.c 	struct net_device *ndev = wil->main_ndev;
wil              2603 drivers/net/wireless/ath/wil6210/wmi.c 				wil_mtu2macbuf(wil->rx_buf_len)),
wil              2621 drivers/net/wireless/ath/wil6210/wmi.c 		struct ieee80211_channel *ch = wil->monitor_chandef.chan;
wil              2629 drivers/net/wireless/ath/wil6210/wmi.c 			cpu_to_le32((wil->monitor_flags & MONITOR_FLAG_CONTROL)
wil              2644 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_CFG_RX_CHAIN_CMDID, vif->mid, &cmd, sizeof(cmd),
wil              2654 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_misc(wil, "Rx init: status %d tail 0x%08x\n",
wil              2660 drivers/net/wireless/ath/wil6210/wmi.c int wmi_get_temperature(struct wil6210_priv *wil, u32 *t_bb, u32 *t_rf)
wil              2662 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              2676 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_TEMP_SENSE_CMDID, vif->mid, &cmd, sizeof(cmd),
wil              2690 drivers/net/wireless/ath/wil6210/wmi.c int wmi_get_all_temperatures(struct wil6210_priv *wil,
wil              2694 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              2707 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "Invalid sense_all_evt value\n");
wil              2713 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_TEMP_SENSE_ALL_CMDID, vif->mid, &cmd,
wil              2720 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "Failed geting TEMP_SENSE_ALL\n");
wil              2731 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              2744 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "disconnect_sta: (%pM, reason %d)\n", mac, reason);
wil              2750 drivers/net/wireless/ath/wil6210/wmi.c 		rc = wmi_call(wil, WMI_DEL_STA_CMDID, vif->mid, &del_sta_cmd,
wil              2755 drivers/net/wireless/ath/wil6210/wmi.c 		rc = wmi_call(wil, WMI_DISCONNECT_STA_CMDID, vif->mid,
wil              2762 drivers/net/wireless/ath/wil6210/wmi.c 		wil_fw_error_recovery(wil);
wil              2765 drivers/net/wireless/ath/wil6210/wmi.c 	wil->sinfo_gen++;
wil              2770 drivers/net/wireless/ath/wil6210/wmi.c int wmi_addba(struct wil6210_priv *wil, u8 mid,
wil              2773 drivers/net/wireless/ath/wil6210/wmi.c 	u8 amsdu = wil->use_enhanced_dma_hw && wil->use_rx_hw_reordering &&
wil              2774 drivers/net/wireless/ath/wil6210/wmi.c 		test_bit(WMI_FW_CAPABILITY_AMSDU, wil->fw_capabilities) &&
wil              2775 drivers/net/wireless/ath/wil6210/wmi.c 		wil->amsdu_en;
wil              2783 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "addba: (ring %d size %d timeout %d amsdu %d)\n",
wil              2786 drivers/net/wireless/ath/wil6210/wmi.c 	return wmi_send(wil, WMI_RING_BA_EN_CMDID, mid, &cmd, sizeof(cmd));
wil              2789 drivers/net/wireless/ath/wil6210/wmi.c int wmi_delba_tx(struct wil6210_priv *wil, u8 mid, u8 ringid, u16 reason)
wil              2796 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "delba_tx: (ring %d reason %d)\n", ringid, reason);
wil              2798 drivers/net/wireless/ath/wil6210/wmi.c 	return wmi_send(wil, WMI_RING_BA_DIS_CMDID, mid, &cmd, sizeof(cmd));
wil              2801 drivers/net/wireless/ath/wil6210/wmi.c int wmi_delba_rx(struct wil6210_priv *wil, u8 mid, u8 cid, u8 tid, u16 reason)
wil              2815 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "delba_rx: (CID %d TID %d reason %d)\n", cid,
wil              2818 drivers/net/wireless/ath/wil6210/wmi.c 	return wmi_send(wil, WMI_RCP_DELBA_CMDID, mid, &cmd, sizeof(cmd));
wil              2821 drivers/net/wireless/ath/wil6210/wmi.c int wmi_addba_rx_resp(struct wil6210_priv *wil,
wil              2853 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil,
wil              2858 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_RCP_ADDBA_RESP_CMDID, mid, &cmd, sizeof(cmd),
wil              2865 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "ADDBA response failed with status %d\n",
wil              2873 drivers/net/wireless/ath/wil6210/wmi.c int wmi_addba_rx_resp_edma(struct wil6210_priv *wil, u8 mid, u8 cid, u8 tid,
wil              2901 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil,
wil              2906 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_RCP_ADDBA_RESP_EDMA_CMDID, mid, &cmd,
wil              2913 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "ADDBA response failed with status %d\n",
wil              2921 drivers/net/wireless/ath/wil6210/wmi.c int wmi_ps_dev_profile_cfg(struct wil6210_priv *wil,
wil              2924 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              2937 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "Setting ps dev profile %d\n", ps_profile);
wil              2939 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_PS_DEV_PROFILE_CFG_CMDID, vif->mid,
wil              2949 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "ps dev profile cfg failed with status %d\n",
wil              2957 drivers/net/wireless/ath/wil6210/wmi.c int wmi_set_mgmt_retry(struct wil6210_priv *wil, u8 retry_short)
wil              2959 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              2971 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "Setting mgmt retry short %d\n", retry_short);
wil              2973 drivers/net/wireless/ath/wil6210/wmi.c 	if (!test_bit(WMI_FW_CAPABILITY_MGMT_RETRY_LIMIT, wil->fw_capabilities))
wil              2976 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_SET_MGMT_RETRY_LIMIT_CMDID, vif->mid,
wil              2984 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "set mgmt retry limit failed with status %d\n",
wil              2992 drivers/net/wireless/ath/wil6210/wmi.c int wmi_get_mgmt_retry(struct wil6210_priv *wil, u8 *retry_short)
wil              2994 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              3001 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "getting mgmt retry short\n");
wil              3003 drivers/net/wireless/ath/wil6210/wmi.c 	if (!test_bit(WMI_FW_CAPABILITY_MGMT_RETRY_LIMIT, wil->fw_capabilities))
wil              3007 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_GET_MGMT_RETRY_LIMIT_CMDID, vif->mid, NULL, 0,
wil              3021 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              3024 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "sending WMI_ABORT_SCAN_CMDID\n");
wil              3026 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_send(wil, WMI_ABORT_SCAN_CMDID, vif->mid, NULL, 0);
wil              3028 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "Failed to abort scan (%d)\n", rc);
wil              3035 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              3041 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "new sta %pM, aid %d\n", mac, aid);
wil              3045 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_send(wil, WMI_NEW_STA_CMDID, vif->mid, &cmd, sizeof(cmd));
wil              3047 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "Failed to send new sta (%d)\n", rc);
wil              3052 drivers/net/wireless/ath/wil6210/wmi.c void wmi_event_flush(struct wil6210_priv *wil)
wil              3057 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "event_flush\n");
wil              3059 drivers/net/wireless/ath/wil6210/wmi.c 	spin_lock_irqsave(&wil->wmi_ev_lock, flags);
wil              3061 drivers/net/wireless/ath/wil6210/wmi.c 	list_for_each_entry_safe(evt, t, &wil->pending_wmi_ev, list) {
wil              3066 drivers/net/wireless/ath/wil6210/wmi.c 	spin_unlock_irqrestore(&wil->wmi_ev_lock, flags);
wil              3083 drivers/net/wireless/ath/wil6210/wmi.c int wmi_suspend(struct wil6210_priv *wil)
wil              3085 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              3088 drivers/net/wireless/ath/wil6210/wmi.c 		.wakeup_trigger = wil->wakeup_trigger,
wil              3099 drivers/net/wireless/ath/wil6210/wmi.c 	wil->suspend_resp_rcvd = false;
wil              3100 drivers/net/wireless/ath/wil6210/wmi.c 	wil->suspend_resp_comp = false;
wil              3102 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_TRAFFIC_SUSPEND_CMDID, vif->mid,
wil              3107 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "wmi_call for suspend req failed, rc=%d\n", rc);
wil              3110 drivers/net/wireless/ath/wil6210/wmi.c 			wil->suspend_stats.rejected_by_device++;
wil              3112 drivers/net/wireless/ath/wil6210/wmi.c 			wil->suspend_stats.rejected_by_host++;
wil              3116 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "waiting for suspend_response_completed\n");
wil              3118 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wait_event_interruptible_timeout(wil->wq,
wil              3119 drivers/net/wireless/ath/wil6210/wmi.c 					      wil->suspend_resp_comp,
wil              3122 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "TO waiting for suspend_response_completed\n");
wil              3123 drivers/net/wireless/ath/wil6210/wmi.c 		if (wil->suspend_resp_rcvd)
wil              3125 drivers/net/wireless/ath/wil6210/wmi.c 			wil->suspend_stats.rejected_by_host++;
wil              3127 drivers/net/wireless/ath/wil6210/wmi.c 			wil->suspend_stats.rejected_by_device++;
wil              3132 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "suspend_response_completed rcvd\n");
wil              3134 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_pm(wil, "device rejected the suspend, %s\n",
wil              3136 drivers/net/wireless/ath/wil6210/wmi.c 		wil->suspend_stats.rejected_by_device++;
wil              3141 drivers/net/wireless/ath/wil6210/wmi.c 	wil->suspend_resp_rcvd = false;
wil              3142 drivers/net/wireless/ath/wil6210/wmi.c 	wil->suspend_resp_comp = false;
wil              3172 drivers/net/wireless/ath/wil6210/wmi.c int wmi_resume(struct wil6210_priv *wil)
wil              3174 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              3186 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_TRAFFIC_RESUME_CMDID, vif->mid, NULL, 0,
wil              3193 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_pm(wil, "device resume %s, resume triggers:%s (0x%x)\n",
wil              3200 drivers/net/wireless/ath/wil6210/wmi.c int wmi_port_allocate(struct wil6210_priv *wil, u8 mid,
wil              3214 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_misc(wil, "port allocate, mid %d iftype %d, mac %pM\n",
wil              3233 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "unsupported iftype: %d\n", iftype);
wil              3237 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_PORT_ALLOCATE_CMDID, mid,
wil              3242 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "failed to allocate port, status %d\n", rc);
wil              3246 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "WMI_PORT_ALLOCATE returned status %d\n",
wil              3254 drivers/net/wireless/ath/wil6210/wmi.c int wmi_port_delete(struct wil6210_priv *wil, u8 mid)
wil              3267 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_misc(wil, "port delete, mid %d\n", mid);
wil              3269 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_PORT_DELETE_CMDID, mid,
wil              3274 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "failed to delete port, status %d\n", rc);
wil              3278 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "WMI_PORT_DELETE returned status %d\n",
wil              3301 drivers/net/wireless/ath/wil6210/wmi.c static void wmi_event_handle(struct wil6210_priv *wil,
wil              3314 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_wmi(wil, "Handle %s (0x%04x) (reply_id 0x%04x,%d)\n",
wil              3315 drivers/net/wireless/ath/wil6210/wmi.c 			    eventid2name(id), id, wil->reply_id,
wil              3316 drivers/net/wireless/ath/wil6210/wmi.c 			    wil->reply_mid);
wil              3320 drivers/net/wireless/ath/wil6210/wmi.c 		if (mid >= GET_MAX_VIFS(wil)) {
wil              3321 drivers/net/wireless/ath/wil6210/wmi.c 			wil_dbg_wmi(wil, "invalid mid %d, event skipped\n",
wil              3325 drivers/net/wireless/ath/wil6210/wmi.c 		vif = wil->vifs[mid];
wil              3327 drivers/net/wireless/ath/wil6210/wmi.c 			wil_dbg_wmi(wil, "event for empty VIF(%d), skipped\n",
wil              3333 drivers/net/wireless/ath/wil6210/wmi.c 		if (wil->reply_id && wil->reply_id == id &&
wil              3334 drivers/net/wireless/ath/wil6210/wmi.c 		    wil->reply_mid == mid) {
wil              3335 drivers/net/wireless/ath/wil6210/wmi.c 			if (wil->reply_buf) {
wil              3342 drivers/net/wireless/ath/wil6210/wmi.c 				wil_err(wil,
wil              3350 drivers/net/wireless/ath/wil6210/wmi.c 			wil_dbg_wmi(wil, "event_handle: Complete WMI 0x%04x\n",
wil              3352 drivers/net/wireless/ath/wil6210/wmi.c 			complete(&wil->wmi_call);
wil              3359 drivers/net/wireless/ath/wil6210/wmi.c 			wil_info(wil, "Unhandled event 0x%04x\n", id);
wil              3362 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "Unknown event type\n");
wil              3371 drivers/net/wireless/ath/wil6210/wmi.c static struct list_head *next_wmi_ev(struct wil6210_priv *wil)
wil              3376 drivers/net/wireless/ath/wil6210/wmi.c 	spin_lock_irqsave(&wil->wmi_ev_lock, flags);
wil              3378 drivers/net/wireless/ath/wil6210/wmi.c 	if (!list_empty(&wil->pending_wmi_ev)) {
wil              3379 drivers/net/wireless/ath/wil6210/wmi.c 		ret = wil->pending_wmi_ev.next;
wil              3383 drivers/net/wireless/ath/wil6210/wmi.c 	spin_unlock_irqrestore(&wil->wmi_ev_lock, flags);
wil              3393 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = container_of(work, struct wil6210_priv,
wil              3398 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "event_worker: Start\n");
wil              3399 drivers/net/wireless/ath/wil6210/wmi.c 	while ((lh = next_wmi_ev(wil)) != NULL) {
wil              3401 drivers/net/wireless/ath/wil6210/wmi.c 		wmi_event_handle(wil, &evt->event.hdr);
wil              3404 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "event_worker: Finished\n");
wil              3407 drivers/net/wireless/ath/wil6210/wmi.c bool wil_is_wmi_idle(struct wil6210_priv *wil)
wil              3410 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_mbox_ring *r = &wil->mbox_ctl.rx;
wil              3413 drivers/net/wireless/ath/wil6210/wmi.c 	spin_lock_irqsave(&wil->wmi_ev_lock, flags);
wil              3416 drivers/net/wireless/ath/wil6210/wmi.c 	if (!list_empty(&wil->pending_wmi_ev)) {
wil              3417 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_pm(wil, "Pending WMI events in queue\n");
wil              3422 drivers/net/wireless/ath/wil6210/wmi.c 	if (wil->reply_id) {
wil              3423 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_pm(wil, "Pending WMI call\n");
wil              3428 drivers/net/wireless/ath/wil6210/wmi.c 	r->head = wil_r(wil, RGF_MBOX +
wil              3431 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_pm(wil, "Pending WMI mbox events\n");
wil              3436 drivers/net/wireless/ath/wil6210/wmi.c 	spin_unlock_irqrestore(&wil->wmi_ev_lock, flags);
wil              3441 drivers/net/wireless/ath/wil6210/wmi.c wmi_sched_scan_set_ssids(struct wil6210_priv *wil,
wil              3450 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_wmi(wil, "too many match sets (%d), use first %d\n",
wil              3479 drivers/net/wireless/ath/wil6210/wmi.c wmi_sched_scan_set_channels(struct wil6210_priv *wil,
wil              3487 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_wmi(wil, "too many channels (%d), use first %d\n",
wil              3501 drivers/net/wireless/ath/wil6210/wmi.c wmi_sched_scan_set_plans(struct wil6210_priv *wil,
wil              3509 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_wmi(wil, "too many plans (%d), use first %d\n",
wil              3524 drivers/net/wireless/ath/wil6210/wmi.c int wmi_start_sched_scan(struct wil6210_priv *wil,
wil              3527 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              3540 drivers/net/wireless/ath/wil6210/wmi.c 	if (!test_bit(WMI_FW_CAPABILITY_PNO, wil->fw_capabilities))
wil              3547 drivers/net/wireless/ath/wil6210/wmi.c 	wmi_sched_scan_set_ssids(wil, &cmd, request->ssids, request->n_ssids,
wil              3549 drivers/net/wireless/ath/wil6210/wmi.c 	wmi_sched_scan_set_channels(wil, &cmd,
wil              3551 drivers/net/wireless/ath/wil6210/wmi.c 	wmi_sched_scan_set_plans(wil, &cmd,
wil              3554 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_START_SCHED_SCAN_CMDID, vif->mid,
wil              3562 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "start sched scan failed, result %d\n",
wil              3570 drivers/net/wireless/ath/wil6210/wmi.c int wmi_stop_sched_scan(struct wil6210_priv *wil)
wil              3572 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              3581 drivers/net/wireless/ath/wil6210/wmi.c 	if (!test_bit(WMI_FW_CAPABILITY_PNO, wil->fw_capabilities))
wil              3584 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_STOP_SCHED_SCAN_CMDID, vif->mid, NULL, 0,
wil              3591 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "stop sched scan failed, result %d\n",
wil              3602 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              3613 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_misc(wil, "mgmt_tx mid %d\n", vif->mid);
wil              3622 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "mgmt_tx invalid len %zu\n", len);
wil              3634 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_SW_TX_REQ_CMDID, vif->mid, cmd, total,
wil              3637 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_wmi(wil, "mgmt_tx failed with status %d\n",
wil              3651 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              3662 drivers/net/wireless/ath/wil6210/wmi.c 	wil_dbg_wmi(wil, "mgmt_tx_ext mid %d channel %d duration %d\n",
wil              3668 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "short frame. len %zu\n", len);
wil              3674 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "mgmt_tx_ext invalid len %zu\n", len);
wil              3688 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_SW_TX_REQ_EXT_CMDID, vif->mid, cmd, total,
wil              3691 drivers/net/wireless/ath/wil6210/wmi.c 		wil_dbg_wmi(wil, "mgmt_tx_ext failed with status %d\n",
wil              3701 drivers/net/wireless/ath/wil6210/wmi.c int wil_wmi_tx_sring_cfg(struct wil6210_priv *wil, int ring_id)
wil              3704 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
wil              3705 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil_status_ring *sring = &wil->srings[ring_id];
wil              3722 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_TX_STATUS_RING_ADD_CMDID, vif->mid, &cmd,
wil              3726 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "TX_STATUS_RING_ADD_CMD failed, rc %d\n", rc);
wil              3731 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "TX_STATUS_RING_ADD_CMD failed, status %d\n",
wil              3741 drivers/net/wireless/ath/wil6210/wmi.c int wil_wmi_cfg_def_rx_offload(struct wil6210_priv *wil, u16 max_rx_pl_per_desc)
wil              3743 drivers/net/wireless/ath/wil6210/wmi.c 	struct net_device *ndev = wil->main_ndev;
wil              3760 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_CFG_DEF_RX_OFFLOAD_CMDID, vif->mid, &cmd,
wil              3764 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "WMI_CFG_DEF_RX_OFFLOAD_CMD failed, rc %d\n", rc);
wil              3769 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "WMI_CFG_DEF_RX_OFFLOAD_CMD failed, status %d\n",
wil              3777 drivers/net/wireless/ath/wil6210/wmi.c int wil_wmi_rx_sring_add(struct wil6210_priv *wil, u16 ring_id)
wil              3779 drivers/net/wireless/ath/wil6210/wmi.c 	struct net_device *ndev = wil->main_ndev;
wil              3781 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil_status_ring *sring = &wil->srings[ring_id];
wil              3788 drivers/net/wireless/ath/wil6210/wmi.c 		.rx_msg_type = wil->use_compressed_rx_status ?
wil              3801 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_RX_STATUS_RING_ADD_CMDID, vif->mid, &cmd,
wil              3805 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "RX_STATUS_RING_ADD_CMD failed, rc %d\n", rc);
wil              3810 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "RX_STATUS_RING_ADD_CMD failed, status %d\n",
wil              3820 drivers/net/wireless/ath/wil6210/wmi.c int wil_wmi_rx_desc_ring_add(struct wil6210_priv *wil, int status_ring_id)
wil              3822 drivers/net/wireless/ath/wil6210/wmi.c 	struct net_device *ndev = wil->main_ndev;
wil              3824 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil_ring *ring = &wil->ring_rx;
wil              3843 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_RX_DESC_RING_ADD_CMDID, vif->mid, &cmd,
wil              3847 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "WMI_RX_DESC_RING_ADD_CMD failed, rc %d\n", rc);
wil              3852 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "WMI_RX_DESC_RING_ADD_CMD failed, status %d\n",
wil              3865 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              3866 drivers/net/wireless/ath/wil6210/wmi.c 	int sring_id = wil->tx_sring_idx; /* there is only one TX sring */
wil              3868 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil_ring *ring = &wil->ring_tx[ring_id];
wil              3869 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil_ring_tx_data *txdata = &wil->ring_tx_data[ring_id];
wil              3893 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_TX_DESC_RING_ADD_CMDID, vif->mid, &cmd,
wil              3897 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "WMI_TX_DESC_RING_ADD_CMD failed, rc %d\n", rc);
wil              3902 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "WMI_TX_DESC_RING_ADD_CMD failed, status %d\n",
wil              3918 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              3919 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil_ring *ring = &wil->ring_tx[ring_id];
wil              3927 drivers/net/wireless/ath/wil6210/wmi.c 		.status_ring_id = wil->tx_sring_idx,
wil              3936 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil_ring_tx_data *txdata = &wil->ring_tx_data[ring_id];
wil              3939 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_BCAST_DESC_RING_ADD_CMDID, vif->mid, &cmd,
wil              3943 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "WMI_BCAST_DESC_RING_ADD_CMD failed, rc %d\n", rc);
wil              3948 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "Broadcast Tx config failed, status %d\n",
wil              3964 drivers/net/wireless/ath/wil6210/wmi.c 	struct wil6210_priv *wil = vif_to_wil(vif);
wil              3979 drivers/net/wireless/ath/wil6210/wmi.c 	rc = wmi_call(wil, WMI_LINK_STATS_CMDID, vif->mid, &cmd, sizeof(cmd),
wil              3983 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "WMI_LINK_STATS_CMDID failed, rc %d\n", rc);
wil              3988 drivers/net/wireless/ath/wil6210/wmi.c 		wil_err(wil, "Link statistics config failed, status %d\n",