Lines Matching refs:tlv
13 #include "wmi-tlv.h"
76 const struct wmi_tlv *tlv;
81 if (len < sizeof(*tlv)) {
83 "wmi tlv parse failure at byte %zd (%zu bytes left, %zu expected)\n",
84 ptr - begin, len, sizeof(*tlv));
88 tlv = ptr;
89 tlv_tag = __le16_to_cpu(tlv->tag);
90 tlv_len = __le16_to_cpu(tlv->len);
91 ptr += sizeof(*tlv);
92 len -= sizeof(*tlv);
96 "wmi tlv parse failure of tag %u at byte %zd (%zu bytes left, %u expected)\n",
105 "wmi tlv parse failure of tag %u at byte %zd (%u bytes is less than min length %zu)\n",
180 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
233 "wmi tlv stats peer addr %pMF rx rate code 0x%x bit rate %d kbps\n",
239 "wmi tlv stats tx rate code 0x%x bit rate %d kbps\n",
273 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
288 "wmi tlv peer stats info update peer vdev id %d peers %i more data %d\n",
296 ath10k_warn(ar, "failed to parse stats info tlv: %d\n", ret);
322 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
383 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
394 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv diag event len %d\n", len);
412 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
427 "wmi tlv p2p noa vdev_id %i descriptors %u\n",
446 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
463 "wmi tlv tx pause pause_id %u action %u vdev_map 0x%08x peer_id %u tid_map 0x%08x\n",
524 "wmi tlv rfkill state change gpio %d type %d radio_state %d\n",
565 ath10k_warn(ar, "tdls peer failed to parse tlv");
623 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv peer delete response\n");
656 "wmi tlv testmode consumed 0x%x\n", id);
817 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
849 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
925 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
957 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1007 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1042 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1073 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1189 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1221 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1326 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1342 "wmi tlv abi 0x%08x ?= 0x%08x, 0x%08x ?= 0x%08x, 0x%08x ?= 0x%08x, 0x%08x ?= 0x%08x, 0x%08x ?= 0x%08x\n",
1380 ath10k_warn(ar, "failed to parse mem_reqs tlv: %d\n", ret);
1398 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1445 ath10k_warn(ar, "failed to parse svc_avail tlv: %d\n", ret);
1509 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1531 "wmi tlv stats update pdev %i vdev %i peer %i bcnflt %i chan %i peer_extd %i\n",
1638 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1667 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1697 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1717 struct wmi_tlv *tlv;
1720 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
1724 tlv = (void *)skb->data;
1725 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PDEV_SUSPEND_CMD);
1726 tlv->len = __cpu_to_le16(sizeof(*cmd));
1727 cmd = (void *)tlv->value;
1730 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pdev suspend\n");
1738 struct wmi_tlv *tlv;
1741 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
1745 tlv = (void *)skb->data;
1746 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PDEV_RESUME_CMD);
1747 tlv->len = __cpu_to_le16(sizeof(*cmd));
1748 cmd = (void *)tlv->value;
1751 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pdev resume\n");
1762 struct wmi_tlv *tlv;
1765 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
1769 tlv = (void *)skb->data;
1770 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PDEV_SET_REGDOMAIN_CMD);
1771 tlv->len = __cpu_to_le16(sizeof(*cmd));
1772 cmd = (void *)tlv->value;
1779 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pdev set rd\n");
1793 struct wmi_tlv *tlv;
1796 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
1800 tlv = (void *)skb->data;
1801 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PDEV_SET_PARAM_CMD);
1802 tlv->len = __cpu_to_le16(sizeof(*cmd));
1803 cmd = (void *)tlv->value;
1807 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pdev set param %d value 0x%x\n",
1816 struct wmi_tlv *tlv;
1824 tlv = host_mem_chunks;
1825 tlv->tag = tlv_tag;
1826 tlv->len = tlv_len;
1827 chunk = (void *)tlv->value;
1840 "wmi-tlv chunk %d len %d, addr 0x%llx, id 0x%x\n",
1846 host_mem_chunks += sizeof(*tlv);
1854 struct wmi_tlv *tlv;
1862 (sizeof(struct host_memory_chunk_tlv) + sizeof(*tlv));
1863 len = (sizeof(*tlv) + sizeof(*cmd)) +
1864 (sizeof(*tlv) + sizeof(*cfg)) +
1865 (sizeof(*tlv) + chunks_len);
1873 tlv = ptr;
1874 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_INIT_CMD);
1875 tlv->len = __cpu_to_le16(sizeof(*cmd));
1876 cmd = (void *)tlv->value;
1877 ptr += sizeof(*tlv);
1880 tlv = ptr;
1881 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_RESOURCE_CONFIG);
1882 tlv->len = __cpu_to_le16(sizeof(*cfg));
1883 cfg = (void *)tlv->value;
1884 ptr += sizeof(*tlv);
1887 tlv = ptr;
1888 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
1889 tlv->len = __cpu_to_le16(chunks_len);
1890 chunks = (void *)tlv->value;
1892 ptr += sizeof(*tlv);
1967 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv init\n");
1976 struct wmi_tlv *tlv;
1993 len = (sizeof(*tlv) + sizeof(*cmd)) +
1994 sizeof(*tlv) + chan_len +
1995 sizeof(*tlv) + ssid_len +
1996 sizeof(*tlv) + bssid_len +
1997 sizeof(*tlv) + ie_len;
2004 tlv = ptr;
2005 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_START_SCAN_CMD);
2006 tlv->len = __cpu_to_le16(sizeof(*cmd));
2007 cmd = (void *)tlv->value;
2024 ptr += sizeof(*tlv);
2027 tlv = ptr;
2028 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_UINT32);
2029 tlv->len = __cpu_to_le16(chan_len);
2030 chans = (void *)tlv->value;
2034 ptr += sizeof(*tlv);
2037 tlv = ptr;
2038 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_FIXED_STRUCT);
2039 tlv->len = __cpu_to_le16(ssid_len);
2040 ssids = (void *)tlv->value;
2046 ptr += sizeof(*tlv);
2049 tlv = ptr;
2050 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_FIXED_STRUCT);
2051 tlv->len = __cpu_to_le16(bssid_len);
2052 addrs = (void *)tlv->value;
2056 ptr += sizeof(*tlv);
2059 tlv = ptr;
2060 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_BYTE);
2061 tlv->len = __cpu_to_le16(ie_len);
2062 memcpy(tlv->value, arg->ie, arg->ie_len);
2064 ptr += sizeof(*tlv);
2067 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv start scan\n");
2076 struct wmi_tlv *tlv;
2086 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2096 tlv = (void *)skb->data;
2097 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_STOP_SCAN_CMD);
2098 tlv->len = __cpu_to_le16(sizeof(*cmd));
2099 cmd = (void *)tlv->value;
2105 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv stop scan\n");
2139 struct wmi_tlv *tlv;
2142 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2146 tlv = (void *)skb->data;
2147 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_CREATE_CMD);
2148 tlv->len = __cpu_to_le16(sizeof(*cmd));
2149 cmd = (void *)tlv->value;
2155 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev create\n");
2163 struct wmi_tlv *tlv;
2166 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2170 tlv = (void *)skb->data;
2171 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_DELETE_CMD);
2172 tlv->len = __cpu_to_le16(sizeof(*cmd));
2173 cmd = (void *)tlv->value;
2176 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev delete\n");
2187 struct wmi_tlv *tlv;
2198 len = (sizeof(*tlv) + sizeof(*cmd)) +
2199 (sizeof(*tlv) + sizeof(*ch)) +
2200 (sizeof(*tlv) + 0);
2212 tlv = ptr;
2213 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_START_REQUEST_CMD);
2214 tlv->len = __cpu_to_le16(sizeof(*cmd));
2215 cmd = (void *)tlv->value;
2229 ptr += sizeof(*tlv);
2232 tlv = ptr;
2233 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_CHANNEL);
2234 tlv->len = __cpu_to_le16(sizeof(*ch));
2235 ch = (void *)tlv->value;
2238 ptr += sizeof(*tlv);
2241 tlv = ptr;
2242 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
2243 tlv->len = 0;
2249 ptr += sizeof(*tlv);
2252 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev start\n");
2260 struct wmi_tlv *tlv;
2263 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2267 tlv = (void *)skb->data;
2268 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_STOP_CMD);
2269 tlv->len = __cpu_to_le16(sizeof(*cmd));
2270 cmd = (void *)tlv->value;
2273 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev stop\n");
2283 struct wmi_tlv *tlv;
2286 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2290 tlv = (void *)skb->data;
2291 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_UP_CMD);
2292 tlv->len = __cpu_to_le16(sizeof(*cmd));
2293 cmd = (void *)tlv->value;
2298 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev up\n");
2306 struct wmi_tlv *tlv;
2309 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2313 tlv = (void *)skb->data;
2314 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_DOWN_CMD);
2315 tlv->len = __cpu_to_le16(sizeof(*cmd));
2316 cmd = (void *)tlv->value;
2319 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev down\n");
2328 struct wmi_tlv *tlv;
2331 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2335 tlv = (void *)skb->data;
2336 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_SET_PARAM_CMD);
2337 tlv->len = __cpu_to_le16(sizeof(*cmd));
2338 cmd = (void *)tlv->value;
2343 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev %d set param %d value 0x%x\n",
2353 struct wmi_tlv *tlv;
2365 len = sizeof(*tlv) + sizeof(*cmd) +
2366 sizeof(*tlv) + roundup(arg->key_len, sizeof(__le32));
2372 tlv = ptr;
2373 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_INSTALL_KEY_CMD);
2374 tlv->len = __cpu_to_le16(sizeof(*cmd));
2375 cmd = (void *)tlv->value;
2387 ptr += sizeof(*tlv);
2390 tlv = ptr;
2391 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_BYTE);
2392 tlv->len = __cpu_to_le16(roundup(arg->key_len, sizeof(__le32)));
2394 memcpy(tlv->value, arg->key_data, arg->key_len);
2396 ptr += sizeof(*tlv);
2399 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev install key\n");
2407 struct wmi_tlv *tlv;
2409 tlv = ptr;
2410 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_STA_UAPSD_AUTO_TRIG_PARAM);
2411 tlv->len = __cpu_to_le16(sizeof(*ac));
2412 ac = (void *)tlv->value;
2421 "wmi tlv vdev sta uapsd auto trigger ac %d prio %d svc int %d susp int %d delay int %d\n",
2425 return ptr + sizeof(*tlv) + sizeof(*ac);
2436 struct wmi_tlv *tlv;
2443 ac_tlv_len = num_ac * (sizeof(*tlv) + sizeof(*ac));
2444 len = sizeof(*tlv) + sizeof(*cmd) +
2445 sizeof(*tlv) + ac_tlv_len;
2451 tlv = ptr;
2452 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_STA_UAPSD_AUTO_TRIG_CMD);
2453 tlv->len = __cpu_to_le16(sizeof(*cmd));
2454 cmd = (void *)tlv->value;
2459 ptr += sizeof(*tlv);
2462 tlv = ptr;
2463 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
2464 tlv->len = __cpu_to_le16(ac_tlv_len);
2465 ac = (void *)tlv->value;
2467 ptr += sizeof(*tlv);
2471 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev sta uapsd auto trigger\n");
2479 struct wmi_tlv *tlv;
2481 tlv = ptr;
2482 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_WMM_PARAMS);
2483 tlv->len = __cpu_to_le16(sizeof(*wmm));
2484 wmm = (void *)tlv->value;
2487 return ptr + sizeof(*tlv) + sizeof(*wmm);
2495 struct wmi_tlv *tlv;
2500 len = sizeof(*tlv) + sizeof(*cmd);
2506 tlv = ptr;
2507 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_SET_WMM_PARAMS_CMD);
2508 tlv->len = __cpu_to_le16(sizeof(*cmd));
2509 cmd = (void *)tlv->value;
2517 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev wmm conf\n");
2528 struct wmi_tlv *tlv;
2532 len = sizeof(*tlv) + sizeof(*cmd) +
2533 sizeof(*tlv) + sizeof(*arp);
2539 tlv = ptr;
2540 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_STA_KEEPALIVE_CMD);
2541 tlv->len = __cpu_to_le16(sizeof(*cmd));
2542 cmd = (void *)tlv->value;
2548 ptr += sizeof(*tlv);
2551 tlv = ptr;
2552 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_STA_KEEPALVE_ARP_RESPONSE);
2553 tlv->len = __cpu_to_le16(sizeof(*arp));
2554 arp = (void *)tlv->value;
2560 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv sta keepalive vdev %d enabled %d method %d interval %d\n",
2571 struct wmi_tlv *tlv;
2574 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2578 tlv = (void *)skb->data;
2579 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PEER_CREATE_CMD);
2580 tlv->len = __cpu_to_le16(sizeof(*cmd));
2581 cmd = (void *)tlv->value;
2586 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv peer create\n");
2595 struct wmi_tlv *tlv;
2598 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2602 tlv = (void *)skb->data;
2603 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PEER_DELETE_CMD);
2604 tlv->len = __cpu_to_le16(sizeof(*cmd));
2605 cmd = (void *)tlv->value;
2609 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv peer delete\n");
2618 struct wmi_tlv *tlv;
2621 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2625 tlv = (void *)skb->data;
2626 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PEER_FLUSH_TIDS_CMD);
2627 tlv->len = __cpu_to_le16(sizeof(*cmd));
2628 cmd = (void *)tlv->value;
2633 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv peer flush\n");
2644 struct wmi_tlv *tlv;
2647 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2651 tlv = (void *)skb->data;
2652 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PEER_SET_PARAM_CMD);
2653 tlv->len = __cpu_to_le16(sizeof(*cmd));
2654 cmd = (void *)tlv->value;
2661 "wmi tlv vdev %d peer %pM set param %d value 0x%x\n",
2672 struct wmi_tlv *tlv;
2687 len = (sizeof(*tlv) + sizeof(*cmd)) +
2688 (sizeof(*tlv) + legacy_rate_len) +
2689 (sizeof(*tlv) + ht_rate_len) +
2690 (sizeof(*tlv) + sizeof(*vht_rate));
2696 tlv = ptr;
2697 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PEER_ASSOC_COMPLETE_CMD);
2698 tlv->len = __cpu_to_le16(sizeof(*cmd));
2699 cmd = (void *)tlv->value;
2718 ptr += sizeof(*tlv);
2721 tlv = ptr;
2722 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_BYTE);
2723 tlv->len = __cpu_to_le16(legacy_rate_len);
2724 memcpy(tlv->value, arg->peer_legacy_rates.rates,
2727 ptr += sizeof(*tlv);
2730 tlv = ptr;
2731 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_BYTE);
2732 tlv->len = __cpu_to_le16(ht_rate_len);
2733 memcpy(tlv->value, arg->peer_ht_rates.rates,
2736 ptr += sizeof(*tlv);
2739 tlv = ptr;
2740 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VHT_RATE_SET);
2741 tlv->len = __cpu_to_le16(sizeof(*vht_rate));
2742 vht_rate = (void *)tlv->value;
2749 ptr += sizeof(*tlv);
2752 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv peer assoc\n");
2761 struct wmi_tlv *tlv;
2764 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2768 tlv = (void *)skb->data;
2769 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_STA_POWERSAVE_MODE_CMD);
2770 tlv->len = __cpu_to_le16(sizeof(*cmd));
2771 cmd = (void *)tlv->value;
2775 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv set psmode\n");
2785 struct wmi_tlv *tlv;
2788 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2792 tlv = (void *)skb->data;
2793 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_STA_POWERSAVE_PARAM_CMD);
2794 tlv->len = __cpu_to_le16(sizeof(*cmd));
2795 cmd = (void *)tlv->value;
2800 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv set sta ps\n");
2809 struct wmi_tlv *tlv;
2815 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2819 tlv = (void *)skb->data;
2820 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_AP_PS_PEER_CMD);
2821 tlv->len = __cpu_to_le16(sizeof(*cmd));
2822 cmd = (void *)tlv->value;
2828 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv ap ps param\n");
2839 struct wmi_tlv *tlv;
2845 chans_len = arg->n_channels * (sizeof(*tlv) + sizeof(*ci));
2846 len = (sizeof(*tlv) + sizeof(*cmd)) +
2847 (sizeof(*tlv) + chans_len);
2854 tlv = ptr;
2855 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_SCAN_CHAN_LIST_CMD);
2856 tlv->len = __cpu_to_le16(sizeof(*cmd));
2857 cmd = (void *)tlv->value;
2860 ptr += sizeof(*tlv);
2863 tlv = ptr;
2864 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
2865 tlv->len = __cpu_to_le16(chans_len);
2866 chans = (void *)tlv->value;
2871 tlv = chans;
2872 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_CHANNEL);
2873 tlv->len = __cpu_to_le16(sizeof(*ci));
2874 ci = (void *)tlv->value;
2878 chans += sizeof(*tlv);
2882 ptr += sizeof(*tlv);
2885 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv scan chan list\n");
2893 struct wmi_tlv *tlv;
2896 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2900 tlv = (void *)skb->data;
2901 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_SCAN_PROB_REQ_OUI_CMD);
2902 tlv->len = __cpu_to_le16(sizeof(*cmd));
2903 cmd = (void *)tlv->value;
2906 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv scan prob req oui\n");
2918 struct wmi_tlv *tlv;
2923 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2930 tlv = (void *)skb->data;
2931 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_BCN_SEND_FROM_HOST_CMD);
2932 tlv->len = __cpu_to_le16(sizeof(*cmd));
2933 cmd = (void *)tlv->value;
2947 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv beacon dma\n");
2957 struct wmi_tlv *tlv;
2962 len = (sizeof(*tlv) + sizeof(*cmd)) +
2963 (4 * (sizeof(*tlv) + sizeof(*wmm)));
2970 tlv = ptr;
2971 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PDEV_SET_WMM_PARAMS_CMD);
2972 tlv->len = __cpu_to_le16(sizeof(*cmd));
2973 cmd = (void *)tlv->value;
2977 ptr += sizeof(*tlv);
2985 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pdev set wmm\n");
2993 struct wmi_tlv *tlv;
2996 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
3000 tlv = (void *)skb->data;
3001 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_REQUEST_STATS_CMD);
3002 tlv->len = __cpu_to_le16(sizeof(*cmd));
3003 cmd = (void *)tlv->value;
3006 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv request stats\n");
3018 struct wmi_tlv *tlv;
3021 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
3025 tlv = (void *)skb->data;
3026 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_REQUEST_PEER_STATS_INFO_CMD);
3027 tlv->len = __cpu_to_le16(sizeof(*cmd));
3028 cmd = (void *)tlv->value;
3036 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv request peer stats info\n");
3085 struct wmi_tlv *tlv;
3103 len = sizeof(*cmd) + 2 * sizeof(*tlv);
3129 tlv = ptr;
3130 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_MGMT_TX_CMD);
3131 tlv->len = __cpu_to_le16(sizeof(*cmd));
3132 cmd = (void *)tlv->value;
3140 ptr += sizeof(*tlv);
3143 tlv = ptr;
3144 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_BYTE);
3145 tlv->len = __cpu_to_le16(buf_len);
3147 ptr += sizeof(*tlv);
3163 struct wmi_tlv *tlv;
3166 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
3170 tlv = (void *)skb->data;
3171 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_FORCE_FW_HANG_CMD);
3172 tlv->len = __cpu_to_le16(sizeof(*cmd));
3173 cmd = (void *)tlv->value;
3177 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv force fw hang\n");
3186 struct wmi_tlv *tlv;
3203 len = sizeof(*tlv) + sizeof(*cmd) + sizeof(*tlv) + bmap_len;
3210 tlv = ptr;
3211 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_DEBUG_LOG_CONFIG_CMD);
3212 tlv->len = __cpu_to_le16(sizeof(*cmd));
3213 cmd = (void *)tlv->value;
3217 ptr += sizeof(*tlv);
3220 tlv = ptr;
3221 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_UINT32);
3222 tlv->len = __cpu_to_le16(bmap_len);
3226 ptr += sizeof(*tlv);
3229 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv dbglog value 0x%08x\n", value);
3237 struct wmi_tlv *tlv;
3242 len = sizeof(*tlv) + sizeof(*cmd);
3248 tlv = ptr;
3249 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PDEV_PKTLOG_ENABLE_CMD);
3250 tlv->len = __cpu_to_le16(sizeof(*cmd));
3251 cmd = (void *)tlv->value;
3254 ptr += sizeof(*tlv);
3257 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pktlog enable filter 0x%08x\n",
3266 struct wmi_tlv *tlv;
3269 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
3273 tlv = (void *)skb->data;
3274 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PDEV_GET_TEMPERATURE_CMD);
3275 tlv->len = __cpu_to_le16(sizeof(*cmd));
3276 cmd = (void *)tlv->value;
3277 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi pdev get temperature tlv\n");
3285 struct wmi_tlv *tlv;
3290 len = sizeof(*tlv) + sizeof(*cmd);
3296 tlv = ptr;
3297 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PDEV_PKTLOG_DISABLE_CMD);
3298 tlv->len = __cpu_to_le16(sizeof(*cmd));
3299 cmd = (void *)tlv->value;
3301 ptr += sizeof(*tlv);
3304 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pktlog disable\n");
3316 struct wmi_tlv *tlv;
3324 len = sizeof(*tlv) + sizeof(*cmd) +
3325 sizeof(*tlv) + sizeof(*info) + prb_ies_len +
3326 sizeof(*tlv) + roundup(bcn->len, 4);
3332 tlv = ptr;
3333 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_BCN_TMPL_CMD);
3334 tlv->len = __cpu_to_le16(sizeof(*cmd));
3335 cmd = (void *)tlv->value;
3340 ptr += sizeof(*tlv);
3348 tlv = ptr;
3349 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_BCN_PRB_INFO);
3350 tlv->len = __cpu_to_le16(sizeof(*info) + prb_ies_len);
3351 info = (void *)tlv->value;
3356 ptr += sizeof(*tlv);
3360 tlv = ptr;
3361 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_BYTE);
3362 tlv->len = __cpu_to_le16(roundup(bcn->len, 4));
3363 memcpy(tlv->value, bcn->data, bcn->len);
3367 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv bcn tmpl vdev_id %i\n",
3378 struct wmi_tlv *tlv;
3383 len = sizeof(*tlv) + sizeof(*cmd) +
3384 sizeof(*tlv) + sizeof(*info) +
3385 sizeof(*tlv) + roundup(prb->len, 4);
3391 tlv = ptr;
3392 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PRB_TMPL_CMD);
3393 tlv->len = __cpu_to_le16(sizeof(*cmd));
3394 cmd = (void *)tlv->value;
3398 ptr += sizeof(*tlv);
3401 tlv = ptr;
3402 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_BCN_PRB_INFO);
3403 tlv->len = __cpu_to_le16(sizeof(*info));
3404 info = (void *)tlv->value;
3408 ptr += sizeof(*tlv);
3411 tlv = ptr;
3412 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_BYTE);
3413 tlv->len = __cpu_to_le16(roundup(prb->len, 4));
3414 memcpy(tlv->value, prb->data, prb->len);
3416 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv prb tmpl vdev_id %i\n",
3426 struct wmi_tlv *tlv;
3431 len = sizeof(*tlv) + sizeof(*cmd) +
3432 sizeof(*tlv) + roundup(p2p_ie[1] + 2, 4);
3438 tlv = ptr;
3439 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_P2P_GO_SET_BEACON_IE);
3440 tlv->len = __cpu_to_le16(sizeof(*cmd));
3441 cmd = (void *)tlv->value;
3445 ptr += sizeof(*tlv);
3448 tlv = ptr;
3449 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_BYTE);
3450 tlv->len = __cpu_to_le16(roundup(p2p_ie[1] + 2, 4));
3451 memcpy(tlv->value, p2p_ie, p2p_ie[1] + 2);
3453 ptr += sizeof(*tlv);
3456 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv p2p go bcn ie for vdev %i\n",
3466 struct wmi_tlv *tlv;
3484 len = sizeof(*tlv) + sizeof(*cmd);
3490 tlv = ptr;
3491 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_TDLS_SET_STATE_CMD);
3492 tlv->len = __cpu_to_le16(sizeof(*cmd));
3494 cmd = (void *)tlv->value;
3509 ptr += sizeof(*tlv);
3512 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv update fw tdls state %d for vdev %i\n",
3544 struct wmi_tlv *tlv;
3551 len = sizeof(*tlv) + sizeof(*cmd) +
3552 sizeof(*tlv) + sizeof(*peer_cap) +
3553 sizeof(*tlv) + cap->peer_chan_len * sizeof(*chan);
3560 tlv = ptr;
3561 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_TDLS_PEER_UPDATE_CMD);
3562 tlv->len = __cpu_to_le16(sizeof(*cmd));
3564 cmd = (void *)tlv->value;
3569 ptr += sizeof(*tlv);
3572 tlv = ptr;
3573 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_TDLS_PEER_CAPABILITIES);
3574 tlv->len = __cpu_to_le16(sizeof(*peer_cap));
3575 peer_cap = (void *)tlv->value;
3593 ptr += sizeof(*tlv);
3596 tlv = ptr;
3597 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
3598 tlv->len = __cpu_to_le16(cap->peer_chan_len * sizeof(*chan));
3600 ptr += sizeof(*tlv);
3603 tlv = ptr;
3604 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_CHANNEL);
3605 tlv->len = __cpu_to_le16(sizeof(*chan));
3606 chan = (void *)tlv->value;
3609 ptr += sizeof(*tlv);
3614 "wmi tlv tdls peer update vdev %i state %d n_chans %u\n",
3625 struct wmi_tlv *tlv;
3628 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
3632 tlv = (void *)skb->data;
3633 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PDEV_SET_QUIET_CMD);
3634 tlv->len = __cpu_to_le16(sizeof(*cmd));
3635 cmd = (void *)tlv->value;
3645 "wmi tlv quiet param: period %u duration %u enabled %d\n",
3654 struct wmi_tlv *tlv;
3658 len = sizeof(*tlv) + sizeof(*cmd);
3663 tlv = (struct wmi_tlv *)skb->data;
3664 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_WOW_ENABLE_CMD);
3665 tlv->len = __cpu_to_le16(sizeof(*cmd));
3666 cmd = (void *)tlv->value;
3672 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv wow enable\n");
3683 struct wmi_tlv *tlv;
3687 len = sizeof(*tlv) + sizeof(*cmd);
3692 tlv = (struct wmi_tlv *)skb->data;
3693 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_WOW_ADD_DEL_EVT_CMD);
3694 tlv->len = __cpu_to_le16(sizeof(*cmd));
3695 cmd = (void *)tlv->value;
3701 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv wow add wakeup event %s enable %d vdev_id %d\n",
3710 struct wmi_tlv *tlv;
3714 len = sizeof(*tlv) + sizeof(*cmd);
3719 tlv = (struct wmi_tlv *)skb->data;
3720 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_WOW_HOSTWAKEUP_FROM_SLEEP_CMD);
3721 tlv->len = __cpu_to_le16(sizeof(*cmd));
3722 cmd = (void *)tlv->value;
3724 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv wow host wakeup ind\n");
3736 struct wmi_tlv *tlv;
3741 len = sizeof(*tlv) + sizeof(*cmd) +
3742 sizeof(*tlv) + /* array struct */
3743 sizeof(*tlv) + sizeof(*bitmap) + /* bitmap */
3744 sizeof(*tlv) + /* empty ipv4 sync */
3745 sizeof(*tlv) + /* empty ipv6 sync */
3746 sizeof(*tlv) + /* empty magic */
3747 sizeof(*tlv) + /* empty info timeout */
3748 sizeof(*tlv) + sizeof(u32); /* ratelimit interval */
3756 tlv = ptr;
3757 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_WOW_ADD_PATTERN_CMD);
3758 tlv->len = __cpu_to_le16(sizeof(*cmd));
3759 cmd = (void *)tlv->value;
3765 ptr += sizeof(*tlv);
3769 tlv = ptr;
3770 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
3771 tlv->len = __cpu_to_le16(sizeof(*tlv) + sizeof(*bitmap));
3773 ptr += sizeof(*tlv);
3775 tlv = ptr;
3776 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_WOW_BITMAP_PATTERN_T);
3777 tlv->len = __cpu_to_le16(sizeof(*bitmap));
3778 bitmap = (void *)tlv->value;
3787 ptr += sizeof(*tlv);
3791 tlv = ptr;
3792 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
3793 tlv->len = __cpu_to_le16(0);
3795 ptr += sizeof(*tlv);
3798 tlv = ptr;
3799 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
3800 tlv->len = __cpu_to_le16(0);
3802 ptr += sizeof(*tlv);
3805 tlv = ptr;
3806 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
3807 tlv->len = __cpu_to_le16(0);
3809 ptr += sizeof(*tlv);
3812 tlv = ptr;
3813 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_UINT32);
3814 tlv->len = __cpu_to_le16(0);
3816 ptr += sizeof(*tlv);
3819 tlv = ptr;
3820 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_UINT32);
3821 tlv->len = __cpu_to_le16(sizeof(u32));
3823 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv wow add pattern vdev_id %d pattern_id %d, pattern_offset %d\n",
3833 struct wmi_tlv *tlv;
3837 len = sizeof(*tlv) + sizeof(*cmd);
3842 tlv = (struct wmi_tlv *)skb->data;
3843 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_WOW_DEL_PATTERN_CMD);
3844 tlv->len = __cpu_to_le16(sizeof(*cmd));
3845 cmd = (void *)tlv->value;
3851 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv wow del pattern vdev_id %d pattern_id %d\n",
3864 struct wmi_tlv *tlv;
3872 len = sizeof(*tlv) + sizeof(*cmd) +
3873 sizeof(*tlv) +
3877 sizeof(*tlv);
3890 tlv = ptr;
3891 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_NLO_CONFIG_CMD);
3892 tlv->len = __cpu_to_le16(sizeof(*cmd));
3893 cmd = (void *)tlv->value;
3919 ptr += sizeof(*tlv);
3928 tlv = ptr;
3929 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
3930 tlv->len = __cpu_to_le16(tlv_len);
3932 ptr += sizeof(*tlv);
3935 tlv = (struct wmi_tlv *)(&nlo_list[i].tlv_header);
3936 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_BYTE);
3937 tlv->len = __cpu_to_le16(sizeof(struct nlo_configured_parameters) -
3938 sizeof(*tlv));
3967 tlv = ptr;
3968 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_UINT32);
3969 tlv->len = __cpu_to_le16(__le32_to_cpu(cmd->num_of_channels) *
3971 ptr += sizeof(*tlv);
3977 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv start pno config vdev_id %d\n",
3988 struct wmi_tlv *tlv;
3993 len = sizeof(*tlv) + sizeof(*cmd) +
3994 sizeof(*tlv) +
3998 sizeof(*tlv);
4005 tlv = ptr;
4006 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_NLO_CONFIG_CMD);
4007 tlv->len = __cpu_to_le16(sizeof(*cmd));
4008 cmd = (void *)tlv->value;
4013 ptr += sizeof(*tlv);
4017 tlv = ptr;
4018 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
4019 tlv->len = __cpu_to_le16(0);
4021 ptr += sizeof(*tlv);
4024 tlv = ptr;
4025 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_UINT32);
4026 tlv->len = __cpu_to_le16(0);
4028 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv stop pno config vdev_id %d\n", vdev_id);
4046 struct wmi_tlv *tlv;
4051 len = sizeof(*tlv) + sizeof(*cmd);
4057 tlv = ptr;
4058 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_RESMGR_ADAPTIVE_OCS_CMD);
4059 tlv->len = __cpu_to_le16(sizeof(*cmd));
4060 cmd = (void *)tlv->value;
4063 ptr += sizeof(*tlv);
4066 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv adaptive qcs %d\n", enable);
4074 struct wmi_tlv *tlv;
4079 len = sizeof(*tlv) + sizeof(*cmd);
4085 tlv = ptr;
4086 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_ECHO_CMD);
4087 tlv->len = __cpu_to_le16(sizeof(*cmd));
4088 cmd = (void *)tlv->value;
4091 ptr += sizeof(*tlv);
4094 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv echo value 0x%08x\n", value);
4104 struct wmi_tlv *tlv;
4108 len = sizeof(*tlv) + sizeof(*cmd);
4114 tlv = ptr;
4115 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_SPECTRAL_CONFIGURE_CMD);
4116 tlv->len = __cpu_to_le16(sizeof(*cmd));
4117 cmd = (void *)tlv->value;
4147 struct wmi_tlv *tlv;
4151 len = sizeof(*tlv) + sizeof(*cmd);
4157 tlv = ptr;
4158 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_SPECTRAL_ENABLE_CMD);
4159 tlv->len = __cpu_to_le16(sizeof(*cmd));
4160 cmd = (void *)tlv->value;