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 %hhu at byte %zd (%zu bytes left, %hhu expected)\n",
105 "wmi tlv parse failure of tag %hhu at byte %zd (%hhu 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 %hhu\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");
616 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv peer delete response\n");
649 "wmi tlv testmode consumed 0x%x\n", id);
810 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
842 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
914 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
946 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
996 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1031 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1062 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1178 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1210 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1315 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1331 "wmi tlv abi 0x%08x ?= 0x%08x, 0x%08x ?= 0x%08x, 0x%08x ?= 0x%08x, 0x%08x ?= 0x%08x, 0x%08x ?= 0x%08x\n",
1369 ath10k_warn(ar, "failed to parse mem_reqs tlv: %d\n", ret);
1387 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1434 ath10k_warn(ar, "failed to parse svc_avail tlv: %d\n", ret);
1498 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1520 "wmi tlv stats update pdev %i vdev %i peer %i bcnflt %i chan %i peer_extd %i\n",
1627 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1656 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1686 ath10k_warn(ar, "failed to parse tlv: %d\n", ret);
1706 struct wmi_tlv *tlv;
1709 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
1713 tlv = (void *)skb->data;
1714 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PDEV_SUSPEND_CMD);
1715 tlv->len = __cpu_to_le16(sizeof(*cmd));
1716 cmd = (void *)tlv->value;
1719 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pdev suspend\n");
1727 struct wmi_tlv *tlv;
1730 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
1734 tlv = (void *)skb->data;
1735 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PDEV_RESUME_CMD);
1736 tlv->len = __cpu_to_le16(sizeof(*cmd));
1737 cmd = (void *)tlv->value;
1740 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pdev resume\n");
1751 struct wmi_tlv *tlv;
1754 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
1758 tlv = (void *)skb->data;
1759 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PDEV_SET_REGDOMAIN_CMD);
1760 tlv->len = __cpu_to_le16(sizeof(*cmd));
1761 cmd = (void *)tlv->value;
1768 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pdev set rd\n");
1782 struct wmi_tlv *tlv;
1785 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
1789 tlv = (void *)skb->data;
1790 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PDEV_SET_PARAM_CMD);
1791 tlv->len = __cpu_to_le16(sizeof(*cmd));
1792 cmd = (void *)tlv->value;
1796 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pdev set param %d value 0x%x\n",
1805 struct wmi_tlv *tlv;
1813 tlv = host_mem_chunks;
1814 tlv->tag = tlv_tag;
1815 tlv->len = tlv_len;
1816 chunk = (void *)tlv->value;
1829 "wmi-tlv chunk %d len %d, addr 0x%llx, id 0x%x\n",
1835 host_mem_chunks += sizeof(*tlv);
1843 struct wmi_tlv *tlv;
1851 (sizeof(struct host_memory_chunk_tlv) + sizeof(*tlv));
1852 len = (sizeof(*tlv) + sizeof(*cmd)) +
1853 (sizeof(*tlv) + sizeof(*cfg)) +
1854 (sizeof(*tlv) + chunks_len);
1862 tlv = ptr;
1863 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_INIT_CMD);
1864 tlv->len = __cpu_to_le16(sizeof(*cmd));
1865 cmd = (void *)tlv->value;
1866 ptr += sizeof(*tlv);
1869 tlv = ptr;
1870 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_RESOURCE_CONFIG);
1871 tlv->len = __cpu_to_le16(sizeof(*cfg));
1872 cfg = (void *)tlv->value;
1873 ptr += sizeof(*tlv);
1876 tlv = ptr;
1877 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
1878 tlv->len = __cpu_to_le16(chunks_len);
1879 chunks = (void *)tlv->value;
1881 ptr += sizeof(*tlv);
1956 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv init\n");
1965 struct wmi_tlv *tlv;
1982 len = (sizeof(*tlv) + sizeof(*cmd)) +
1983 sizeof(*tlv) + chan_len +
1984 sizeof(*tlv) + ssid_len +
1985 sizeof(*tlv) + bssid_len +
1986 sizeof(*tlv) + ie_len;
1993 tlv = ptr;
1994 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_START_SCAN_CMD);
1995 tlv->len = __cpu_to_le16(sizeof(*cmd));
1996 cmd = (void *)tlv->value;
2013 ptr += sizeof(*tlv);
2016 tlv = ptr;
2017 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_UINT32);
2018 tlv->len = __cpu_to_le16(chan_len);
2019 chans = (void *)tlv->value;
2023 ptr += sizeof(*tlv);
2026 tlv = ptr;
2027 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_FIXED_STRUCT);
2028 tlv->len = __cpu_to_le16(ssid_len);
2029 ssids = (void *)tlv->value;
2035 ptr += sizeof(*tlv);
2038 tlv = ptr;
2039 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_FIXED_STRUCT);
2040 tlv->len = __cpu_to_le16(bssid_len);
2041 addrs = (void *)tlv->value;
2045 ptr += sizeof(*tlv);
2048 tlv = ptr;
2049 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_BYTE);
2050 tlv->len = __cpu_to_le16(ie_len);
2051 memcpy(tlv->value, arg->ie, arg->ie_len);
2053 ptr += sizeof(*tlv);
2056 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv start scan\n");
2065 struct wmi_tlv *tlv;
2075 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2085 tlv = (void *)skb->data;
2086 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_STOP_SCAN_CMD);
2087 tlv->len = __cpu_to_le16(sizeof(*cmd));
2088 cmd = (void *)tlv->value;
2094 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv stop scan\n");
2128 struct wmi_tlv *tlv;
2131 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2135 tlv = (void *)skb->data;
2136 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_CREATE_CMD);
2137 tlv->len = __cpu_to_le16(sizeof(*cmd));
2138 cmd = (void *)tlv->value;
2144 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev create\n");
2152 struct wmi_tlv *tlv;
2155 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2159 tlv = (void *)skb->data;
2160 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_DELETE_CMD);
2161 tlv->len = __cpu_to_le16(sizeof(*cmd));
2162 cmd = (void *)tlv->value;
2165 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev delete\n");
2176 struct wmi_tlv *tlv;
2187 len = (sizeof(*tlv) + sizeof(*cmd)) +
2188 (sizeof(*tlv) + sizeof(*ch)) +
2189 (sizeof(*tlv) + 0);
2201 tlv = ptr;
2202 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_START_REQUEST_CMD);
2203 tlv->len = __cpu_to_le16(sizeof(*cmd));
2204 cmd = (void *)tlv->value;
2218 ptr += sizeof(*tlv);
2221 tlv = ptr;
2222 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_CHANNEL);
2223 tlv->len = __cpu_to_le16(sizeof(*ch));
2224 ch = (void *)tlv->value;
2227 ptr += sizeof(*tlv);
2230 tlv = ptr;
2231 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
2232 tlv->len = 0;
2238 ptr += sizeof(*tlv);
2241 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev start\n");
2249 struct wmi_tlv *tlv;
2252 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2256 tlv = (void *)skb->data;
2257 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_STOP_CMD);
2258 tlv->len = __cpu_to_le16(sizeof(*cmd));
2259 cmd = (void *)tlv->value;
2262 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev stop\n");
2272 struct wmi_tlv *tlv;
2275 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2279 tlv = (void *)skb->data;
2280 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_UP_CMD);
2281 tlv->len = __cpu_to_le16(sizeof(*cmd));
2282 cmd = (void *)tlv->value;
2287 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev up\n");
2295 struct wmi_tlv *tlv;
2298 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2302 tlv = (void *)skb->data;
2303 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_DOWN_CMD);
2304 tlv->len = __cpu_to_le16(sizeof(*cmd));
2305 cmd = (void *)tlv->value;
2308 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev down\n");
2317 struct wmi_tlv *tlv;
2320 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2324 tlv = (void *)skb->data;
2325 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_SET_PARAM_CMD);
2326 tlv->len = __cpu_to_le16(sizeof(*cmd));
2327 cmd = (void *)tlv->value;
2332 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev %d set param %d value 0x%x\n",
2342 struct wmi_tlv *tlv;
2354 len = sizeof(*tlv) + sizeof(*cmd) +
2355 sizeof(*tlv) + roundup(arg->key_len, sizeof(__le32));
2361 tlv = ptr;
2362 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_INSTALL_KEY_CMD);
2363 tlv->len = __cpu_to_le16(sizeof(*cmd));
2364 cmd = (void *)tlv->value;
2376 ptr += sizeof(*tlv);
2379 tlv = ptr;
2380 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_BYTE);
2381 tlv->len = __cpu_to_le16(roundup(arg->key_len, sizeof(__le32)));
2383 memcpy(tlv->value, arg->key_data, arg->key_len);
2385 ptr += sizeof(*tlv);
2388 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev install key\n");
2396 struct wmi_tlv *tlv;
2398 tlv = ptr;
2399 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_STA_UAPSD_AUTO_TRIG_PARAM);
2400 tlv->len = __cpu_to_le16(sizeof(*ac));
2401 ac = (void *)tlv->value;
2410 "wmi tlv vdev sta uapsd auto trigger ac %d prio %d svc int %d susp int %d delay int %d\n",
2414 return ptr + sizeof(*tlv) + sizeof(*ac);
2425 struct wmi_tlv *tlv;
2432 ac_tlv_len = num_ac * (sizeof(*tlv) + sizeof(*ac));
2433 len = sizeof(*tlv) + sizeof(*cmd) +
2434 sizeof(*tlv) + ac_tlv_len;
2440 tlv = ptr;
2441 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_STA_UAPSD_AUTO_TRIG_CMD);
2442 tlv->len = __cpu_to_le16(sizeof(*cmd));
2443 cmd = (void *)tlv->value;
2448 ptr += sizeof(*tlv);
2451 tlv = ptr;
2452 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
2453 tlv->len = __cpu_to_le16(ac_tlv_len);
2454 ac = (void *)tlv->value;
2456 ptr += sizeof(*tlv);
2460 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev sta uapsd auto trigger\n");
2468 struct wmi_tlv *tlv;
2470 tlv = ptr;
2471 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_WMM_PARAMS);
2472 tlv->len = __cpu_to_le16(sizeof(*wmm));
2473 wmm = (void *)tlv->value;
2476 return ptr + sizeof(*tlv) + sizeof(*wmm);
2484 struct wmi_tlv *tlv;
2489 len = sizeof(*tlv) + sizeof(*cmd);
2495 tlv = ptr;
2496 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_SET_WMM_PARAMS_CMD);
2497 tlv->len = __cpu_to_le16(sizeof(*cmd));
2498 cmd = (void *)tlv->value;
2506 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev wmm conf\n");
2517 struct wmi_tlv *tlv;
2521 len = sizeof(*tlv) + sizeof(*cmd) +
2522 sizeof(*tlv) + sizeof(*arp);
2528 tlv = ptr;
2529 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_STA_KEEPALIVE_CMD);
2530 tlv->len = __cpu_to_le16(sizeof(*cmd));
2531 cmd = (void *)tlv->value;
2537 ptr += sizeof(*tlv);
2540 tlv = ptr;
2541 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_STA_KEEPALVE_ARP_RESPONSE);
2542 tlv->len = __cpu_to_le16(sizeof(*arp));
2543 arp = (void *)tlv->value;
2549 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv sta keepalive vdev %d enabled %d method %d interval %d\n",
2560 struct wmi_tlv *tlv;
2563 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2567 tlv = (void *)skb->data;
2568 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PEER_CREATE_CMD);
2569 tlv->len = __cpu_to_le16(sizeof(*cmd));
2570 cmd = (void *)tlv->value;
2575 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv peer create\n");
2584 struct wmi_tlv *tlv;
2587 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2591 tlv = (void *)skb->data;
2592 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PEER_DELETE_CMD);
2593 tlv->len = __cpu_to_le16(sizeof(*cmd));
2594 cmd = (void *)tlv->value;
2598 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv peer delete\n");
2607 struct wmi_tlv *tlv;
2610 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2614 tlv = (void *)skb->data;
2615 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PEER_FLUSH_TIDS_CMD);
2616 tlv->len = __cpu_to_le16(sizeof(*cmd));
2617 cmd = (void *)tlv->value;
2622 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv peer flush\n");
2633 struct wmi_tlv *tlv;
2636 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2640 tlv = (void *)skb->data;
2641 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PEER_SET_PARAM_CMD);
2642 tlv->len = __cpu_to_le16(sizeof(*cmd));
2643 cmd = (void *)tlv->value;
2650 "wmi tlv vdev %d peer %pM set param %d value 0x%x\n",
2661 struct wmi_tlv *tlv;
2676 len = (sizeof(*tlv) + sizeof(*cmd)) +
2677 (sizeof(*tlv) + legacy_rate_len) +
2678 (sizeof(*tlv) + ht_rate_len) +
2679 (sizeof(*tlv) + sizeof(*vht_rate));
2685 tlv = ptr;
2686 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PEER_ASSOC_COMPLETE_CMD);
2687 tlv->len = __cpu_to_le16(sizeof(*cmd));
2688 cmd = (void *)tlv->value;
2707 ptr += sizeof(*tlv);
2710 tlv = ptr;
2711 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_BYTE);
2712 tlv->len = __cpu_to_le16(legacy_rate_len);
2713 memcpy(tlv->value, arg->peer_legacy_rates.rates,
2716 ptr += sizeof(*tlv);
2719 tlv = ptr;
2720 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_BYTE);
2721 tlv->len = __cpu_to_le16(ht_rate_len);
2722 memcpy(tlv->value, arg->peer_ht_rates.rates,
2725 ptr += sizeof(*tlv);
2728 tlv = ptr;
2729 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VHT_RATE_SET);
2730 tlv->len = __cpu_to_le16(sizeof(*vht_rate));
2731 vht_rate = (void *)tlv->value;
2738 ptr += sizeof(*tlv);
2741 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv peer assoc\n");
2750 struct wmi_tlv *tlv;
2753 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2757 tlv = (void *)skb->data;
2758 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_STA_POWERSAVE_MODE_CMD);
2759 tlv->len = __cpu_to_le16(sizeof(*cmd));
2760 cmd = (void *)tlv->value;
2764 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv set psmode\n");
2774 struct wmi_tlv *tlv;
2777 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2781 tlv = (void *)skb->data;
2782 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_STA_POWERSAVE_PARAM_CMD);
2783 tlv->len = __cpu_to_le16(sizeof(*cmd));
2784 cmd = (void *)tlv->value;
2789 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv set sta ps\n");
2798 struct wmi_tlv *tlv;
2804 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2808 tlv = (void *)skb->data;
2809 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_AP_PS_PEER_CMD);
2810 tlv->len = __cpu_to_le16(sizeof(*cmd));
2811 cmd = (void *)tlv->value;
2817 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv ap ps param\n");
2828 struct wmi_tlv *tlv;
2834 chans_len = arg->n_channels * (sizeof(*tlv) + sizeof(*ci));
2835 len = (sizeof(*tlv) + sizeof(*cmd)) +
2836 (sizeof(*tlv) + chans_len);
2843 tlv = ptr;
2844 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_SCAN_CHAN_LIST_CMD);
2845 tlv->len = __cpu_to_le16(sizeof(*cmd));
2846 cmd = (void *)tlv->value;
2849 ptr += sizeof(*tlv);
2852 tlv = ptr;
2853 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
2854 tlv->len = __cpu_to_le16(chans_len);
2855 chans = (void *)tlv->value;
2860 tlv = chans;
2861 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_CHANNEL);
2862 tlv->len = __cpu_to_le16(sizeof(*ci));
2863 ci = (void *)tlv->value;
2867 chans += sizeof(*tlv);
2871 ptr += sizeof(*tlv);
2874 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv scan chan list\n");
2882 struct wmi_tlv *tlv;
2885 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2889 tlv = (void *)skb->data;
2890 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_SCAN_PROB_REQ_OUI_CMD);
2891 tlv->len = __cpu_to_le16(sizeof(*cmd));
2892 cmd = (void *)tlv->value;
2895 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv scan prob req oui\n");
2907 struct wmi_tlv *tlv;
2912 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2919 tlv = (void *)skb->data;
2920 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_BCN_SEND_FROM_HOST_CMD);
2921 tlv->len = __cpu_to_le16(sizeof(*cmd));
2922 cmd = (void *)tlv->value;
2936 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv beacon dma\n");
2946 struct wmi_tlv *tlv;
2951 len = (sizeof(*tlv) + sizeof(*cmd)) +
2952 (4 * (sizeof(*tlv) + sizeof(*wmm)));
2959 tlv = ptr;
2960 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PDEV_SET_WMM_PARAMS_CMD);
2961 tlv->len = __cpu_to_le16(sizeof(*cmd));
2962 cmd = (void *)tlv->value;
2966 ptr += sizeof(*tlv);
2974 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pdev set wmm\n");
2982 struct wmi_tlv *tlv;
2985 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
2989 tlv = (void *)skb->data;
2990 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_REQUEST_STATS_CMD);
2991 tlv->len = __cpu_to_le16(sizeof(*cmd));
2992 cmd = (void *)tlv->value;
2995 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv request stats\n");
3007 struct wmi_tlv *tlv;
3010 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
3014 tlv = (void *)skb->data;
3015 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_REQUEST_PEER_STATS_INFO_CMD);
3016 tlv->len = __cpu_to_le16(sizeof(*cmd));
3017 cmd = (void *)tlv->value;
3025 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv request peer stats info\n");
3074 struct wmi_tlv *tlv;
3092 len = sizeof(*cmd) + 2 * sizeof(*tlv);
3118 tlv = ptr;
3119 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_MGMT_TX_CMD);
3120 tlv->len = __cpu_to_le16(sizeof(*cmd));
3121 cmd = (void *)tlv->value;
3129 ptr += sizeof(*tlv);
3132 tlv = ptr;
3133 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_BYTE);
3134 tlv->len = __cpu_to_le16(buf_len);
3136 ptr += sizeof(*tlv);
3152 struct wmi_tlv *tlv;
3155 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
3159 tlv = (void *)skb->data;
3160 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_FORCE_FW_HANG_CMD);
3161 tlv->len = __cpu_to_le16(sizeof(*cmd));
3162 cmd = (void *)tlv->value;
3166 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv force fw hang\n");
3175 struct wmi_tlv *tlv;
3192 len = sizeof(*tlv) + sizeof(*cmd) + sizeof(*tlv) + bmap_len;
3199 tlv = ptr;
3200 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_DEBUG_LOG_CONFIG_CMD);
3201 tlv->len = __cpu_to_le16(sizeof(*cmd));
3202 cmd = (void *)tlv->value;
3206 ptr += sizeof(*tlv);
3209 tlv = ptr;
3210 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_UINT32);
3211 tlv->len = __cpu_to_le16(bmap_len);
3215 ptr += sizeof(*tlv);
3218 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv dbglog value 0x%08x\n", value);
3226 struct wmi_tlv *tlv;
3231 len = sizeof(*tlv) + sizeof(*cmd);
3237 tlv = ptr;
3238 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PDEV_PKTLOG_ENABLE_CMD);
3239 tlv->len = __cpu_to_le16(sizeof(*cmd));
3240 cmd = (void *)tlv->value;
3243 ptr += sizeof(*tlv);
3246 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pktlog enable filter 0x%08x\n",
3255 struct wmi_tlv *tlv;
3258 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
3262 tlv = (void *)skb->data;
3263 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PDEV_GET_TEMPERATURE_CMD);
3264 tlv->len = __cpu_to_le16(sizeof(*cmd));
3265 cmd = (void *)tlv->value;
3266 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi pdev get temperature tlv\n");
3274 struct wmi_tlv *tlv;
3279 len = sizeof(*tlv) + sizeof(*cmd);
3285 tlv = ptr;
3286 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PDEV_PKTLOG_DISABLE_CMD);
3287 tlv->len = __cpu_to_le16(sizeof(*cmd));
3288 cmd = (void *)tlv->value;
3290 ptr += sizeof(*tlv);
3293 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pktlog disable\n");
3305 struct wmi_tlv *tlv;
3313 len = sizeof(*tlv) + sizeof(*cmd) +
3314 sizeof(*tlv) + sizeof(*info) + prb_ies_len +
3315 sizeof(*tlv) + roundup(bcn->len, 4);
3321 tlv = ptr;
3322 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_BCN_TMPL_CMD);
3323 tlv->len = __cpu_to_le16(sizeof(*cmd));
3324 cmd = (void *)tlv->value;
3329 ptr += sizeof(*tlv);
3337 tlv = ptr;
3338 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_BCN_PRB_INFO);
3339 tlv->len = __cpu_to_le16(sizeof(*info) + prb_ies_len);
3340 info = (void *)tlv->value;
3345 ptr += sizeof(*tlv);
3349 tlv = ptr;
3350 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_BYTE);
3351 tlv->len = __cpu_to_le16(roundup(bcn->len, 4));
3352 memcpy(tlv->value, bcn->data, bcn->len);
3356 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv bcn tmpl vdev_id %i\n",
3367 struct wmi_tlv *tlv;
3372 len = sizeof(*tlv) + sizeof(*cmd) +
3373 sizeof(*tlv) + sizeof(*info) +
3374 sizeof(*tlv) + roundup(prb->len, 4);
3380 tlv = ptr;
3381 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PRB_TMPL_CMD);
3382 tlv->len = __cpu_to_le16(sizeof(*cmd));
3383 cmd = (void *)tlv->value;
3387 ptr += sizeof(*tlv);
3390 tlv = ptr;
3391 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_BCN_PRB_INFO);
3392 tlv->len = __cpu_to_le16(sizeof(*info));
3393 info = (void *)tlv->value;
3397 ptr += sizeof(*tlv);
3400 tlv = ptr;
3401 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_BYTE);
3402 tlv->len = __cpu_to_le16(roundup(prb->len, 4));
3403 memcpy(tlv->value, prb->data, prb->len);
3405 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv prb tmpl vdev_id %i\n",
3415 struct wmi_tlv *tlv;
3420 len = sizeof(*tlv) + sizeof(*cmd) +
3421 sizeof(*tlv) + roundup(p2p_ie[1] + 2, 4);
3427 tlv = ptr;
3428 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_P2P_GO_SET_BEACON_IE);
3429 tlv->len = __cpu_to_le16(sizeof(*cmd));
3430 cmd = (void *)tlv->value;
3434 ptr += sizeof(*tlv);
3437 tlv = ptr;
3438 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_BYTE);
3439 tlv->len = __cpu_to_le16(roundup(p2p_ie[1] + 2, 4));
3440 memcpy(tlv->value, p2p_ie, p2p_ie[1] + 2);
3442 ptr += sizeof(*tlv);
3445 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv p2p go bcn ie for vdev %i\n",
3455 struct wmi_tlv *tlv;
3473 len = sizeof(*tlv) + sizeof(*cmd);
3479 tlv = ptr;
3480 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_TDLS_SET_STATE_CMD);
3481 tlv->len = __cpu_to_le16(sizeof(*cmd));
3483 cmd = (void *)tlv->value;
3498 ptr += sizeof(*tlv);
3501 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv update fw tdls state %d for vdev %i\n",
3533 struct wmi_tlv *tlv;
3540 len = sizeof(*tlv) + sizeof(*cmd) +
3541 sizeof(*tlv) + sizeof(*peer_cap) +
3542 sizeof(*tlv) + cap->peer_chan_len * sizeof(*chan);
3549 tlv = ptr;
3550 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_TDLS_PEER_UPDATE_CMD);
3551 tlv->len = __cpu_to_le16(sizeof(*cmd));
3553 cmd = (void *)tlv->value;
3558 ptr += sizeof(*tlv);
3561 tlv = ptr;
3562 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_TDLS_PEER_CAPABILITIES);
3563 tlv->len = __cpu_to_le16(sizeof(*peer_cap));
3564 peer_cap = (void *)tlv->value;
3582 ptr += sizeof(*tlv);
3585 tlv = ptr;
3586 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
3587 tlv->len = __cpu_to_le16(cap->peer_chan_len * sizeof(*chan));
3589 ptr += sizeof(*tlv);
3592 tlv = ptr;
3593 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_CHANNEL);
3594 tlv->len = __cpu_to_le16(sizeof(*chan));
3595 chan = (void *)tlv->value;
3598 ptr += sizeof(*tlv);
3603 "wmi tlv tdls peer update vdev %i state %d n_chans %u\n",
3614 struct wmi_tlv *tlv;
3617 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd));
3621 tlv = (void *)skb->data;
3622 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_PDEV_SET_QUIET_CMD);
3623 tlv->len = __cpu_to_le16(sizeof(*cmd));
3624 cmd = (void *)tlv->value;
3634 "wmi tlv quiet param: period %u duration %u enabled %d\n",
3643 struct wmi_tlv *tlv;
3647 len = sizeof(*tlv) + sizeof(*cmd);
3652 tlv = (struct wmi_tlv *)skb->data;
3653 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_WOW_ENABLE_CMD);
3654 tlv->len = __cpu_to_le16(sizeof(*cmd));
3655 cmd = (void *)tlv->value;
3661 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv wow enable\n");
3672 struct wmi_tlv *tlv;
3676 len = sizeof(*tlv) + sizeof(*cmd);
3681 tlv = (struct wmi_tlv *)skb->data;
3682 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_WOW_ADD_DEL_EVT_CMD);
3683 tlv->len = __cpu_to_le16(sizeof(*cmd));
3684 cmd = (void *)tlv->value;
3690 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv wow add wakeup event %s enable %d vdev_id %d\n",
3699 struct wmi_tlv *tlv;
3703 len = sizeof(*tlv) + sizeof(*cmd);
3708 tlv = (struct wmi_tlv *)skb->data;
3709 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_WOW_HOSTWAKEUP_FROM_SLEEP_CMD);
3710 tlv->len = __cpu_to_le16(sizeof(*cmd));
3711 cmd = (void *)tlv->value;
3713 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv wow host wakeup ind\n");
3725 struct wmi_tlv *tlv;
3730 len = sizeof(*tlv) + sizeof(*cmd) +
3731 sizeof(*tlv) + /* array struct */
3732 sizeof(*tlv) + sizeof(*bitmap) + /* bitmap */
3733 sizeof(*tlv) + /* empty ipv4 sync */
3734 sizeof(*tlv) + /* empty ipv6 sync */
3735 sizeof(*tlv) + /* empty magic */
3736 sizeof(*tlv) + /* empty info timeout */
3737 sizeof(*tlv) + sizeof(u32); /* ratelimit interval */
3745 tlv = ptr;
3746 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_WOW_ADD_PATTERN_CMD);
3747 tlv->len = __cpu_to_le16(sizeof(*cmd));
3748 cmd = (void *)tlv->value;
3754 ptr += sizeof(*tlv);
3758 tlv = ptr;
3759 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
3760 tlv->len = __cpu_to_le16(sizeof(*tlv) + sizeof(*bitmap));
3762 ptr += sizeof(*tlv);
3764 tlv = ptr;
3765 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_WOW_BITMAP_PATTERN_T);
3766 tlv->len = __cpu_to_le16(sizeof(*bitmap));
3767 bitmap = (void *)tlv->value;
3776 ptr += sizeof(*tlv);
3780 tlv = ptr;
3781 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
3782 tlv->len = __cpu_to_le16(0);
3784 ptr += sizeof(*tlv);
3787 tlv = ptr;
3788 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
3789 tlv->len = __cpu_to_le16(0);
3791 ptr += sizeof(*tlv);
3794 tlv = ptr;
3795 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
3796 tlv->len = __cpu_to_le16(0);
3798 ptr += sizeof(*tlv);
3801 tlv = ptr;
3802 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_UINT32);
3803 tlv->len = __cpu_to_le16(0);
3805 ptr += sizeof(*tlv);
3808 tlv = ptr;
3809 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_UINT32);
3810 tlv->len = __cpu_to_le16(sizeof(u32));
3812 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv wow add pattern vdev_id %d pattern_id %d, pattern_offset %d\n",
3822 struct wmi_tlv *tlv;
3826 len = sizeof(*tlv) + sizeof(*cmd);
3831 tlv = (struct wmi_tlv *)skb->data;
3832 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_WOW_DEL_PATTERN_CMD);
3833 tlv->len = __cpu_to_le16(sizeof(*cmd));
3834 cmd = (void *)tlv->value;
3840 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv wow del pattern vdev_id %d pattern_id %d\n",
3853 struct wmi_tlv *tlv;
3861 len = sizeof(*tlv) + sizeof(*cmd) +
3862 sizeof(*tlv) +
3866 sizeof(*tlv);
3879 tlv = ptr;
3880 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_NLO_CONFIG_CMD);
3881 tlv->len = __cpu_to_le16(sizeof(*cmd));
3882 cmd = (void *)tlv->value;
3908 ptr += sizeof(*tlv);
3917 tlv = ptr;
3918 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
3919 tlv->len = __cpu_to_le16(tlv_len);
3921 ptr += sizeof(*tlv);
3924 tlv = (struct wmi_tlv *)(&nlo_list[i].tlv_header);
3925 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_BYTE);
3926 tlv->len = __cpu_to_le16(sizeof(struct nlo_configured_parameters) -
3927 sizeof(*tlv));
3956 tlv = ptr;
3957 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_UINT32);
3958 tlv->len = __cpu_to_le16(__le32_to_cpu(cmd->num_of_channels) *
3960 ptr += sizeof(*tlv);
3966 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv start pno config vdev_id %d\n",
3977 struct wmi_tlv *tlv;
3982 len = sizeof(*tlv) + sizeof(*cmd) +
3983 sizeof(*tlv) +
3987 sizeof(*tlv);
3994 tlv = ptr;
3995 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_NLO_CONFIG_CMD);
3996 tlv->len = __cpu_to_le16(sizeof(*cmd));
3997 cmd = (void *)tlv->value;
4002 ptr += sizeof(*tlv);
4006 tlv = ptr;
4007 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
4008 tlv->len = __cpu_to_le16(0);
4010 ptr += sizeof(*tlv);
4013 tlv = ptr;
4014 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_UINT32);
4015 tlv->len = __cpu_to_le16(0);
4017 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv stop pno config vdev_id %d\n", vdev_id);
4035 struct wmi_tlv *tlv;
4040 len = sizeof(*tlv) + sizeof(*cmd);
4046 tlv = ptr;
4047 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_RESMGR_ADAPTIVE_OCS_CMD);
4048 tlv->len = __cpu_to_le16(sizeof(*cmd));
4049 cmd = (void *)tlv->value;
4052 ptr += sizeof(*tlv);
4055 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv adaptive qcs %d\n", enable);
4063 struct wmi_tlv *tlv;
4068 len = sizeof(*tlv) + sizeof(*cmd);
4074 tlv = ptr;
4075 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_ECHO_CMD);
4076 tlv->len = __cpu_to_le16(sizeof(*cmd));
4077 cmd = (void *)tlv->value;
4080 ptr += sizeof(*tlv);
4083 ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv echo value 0x%08x\n", value);
4093 struct wmi_tlv *tlv;
4097 len = sizeof(*tlv) + sizeof(*cmd);
4103 tlv = ptr;
4104 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_SPECTRAL_CONFIGURE_CMD);
4105 tlv->len = __cpu_to_le16(sizeof(*cmd));
4106 cmd = (void *)tlv->value;
4136 struct wmi_tlv *tlv;
4140 len = sizeof(*tlv) + sizeof(*cmd);
4146 tlv = ptr;
4147 tlv->tag = __cpu_to_le16(WMI_TLV_TAG_STRUCT_VDEV_SPECTRAL_ENABLE_CMD);
4148 tlv->len = __cpu_to_le16(sizeof(*cmd));
4149 cmd = (void *)tlv->value;