Lines Matching refs:tx_ppdu_info
1343 struct dp_mon_tx_ppdu_info *tx_ppdu_info; in ath12k_dp_mon_tx_get_ppdu_info() local
1346 tx_ppdu_info = pmon->tx_prot_ppdu_info; in ath12k_dp_mon_tx_get_ppdu_info()
1348 if (tx_ppdu_info && !tx_ppdu_info->is_used) in ath12k_dp_mon_tx_get_ppdu_info()
1349 return tx_ppdu_info; in ath12k_dp_mon_tx_get_ppdu_info()
1350 kfree(tx_ppdu_info); in ath12k_dp_mon_tx_get_ppdu_info()
1352 tx_ppdu_info = pmon->tx_data_ppdu_info; in ath12k_dp_mon_tx_get_ppdu_info()
1354 if (tx_ppdu_info && !tx_ppdu_info->is_used) in ath12k_dp_mon_tx_get_ppdu_info()
1355 return tx_ppdu_info; in ath12k_dp_mon_tx_get_ppdu_info()
1356 kfree(tx_ppdu_info); in ath12k_dp_mon_tx_get_ppdu_info()
1360 tx_ppdu_info = kzalloc(sizeof(*tx_ppdu_info), GFP_ATOMIC); in ath12k_dp_mon_tx_get_ppdu_info()
1361 if (!tx_ppdu_info) in ath12k_dp_mon_tx_get_ppdu_info()
1364 tx_ppdu_info->is_used = 0; in ath12k_dp_mon_tx_get_ppdu_info()
1365 tx_ppdu_info->ppdu_id = ppdu_id; in ath12k_dp_mon_tx_get_ppdu_info()
1368 pmon->tx_prot_ppdu_info = tx_ppdu_info; in ath12k_dp_mon_tx_get_ppdu_info()
1370 pmon->tx_data_ppdu_info = tx_ppdu_info; in ath12k_dp_mon_tx_get_ppdu_info()
1372 return tx_ppdu_info; in ath12k_dp_mon_tx_get_ppdu_info()
1434 ath12k_dp_mon_tx_gen_cts2self_frame(struct dp_mon_tx_ppdu_info *tx_ppdu_info) in ath12k_dp_mon_tx_gen_cts2self_frame() argument
1447 cts->duration = cpu_to_le16(tx_ppdu_info->rx_status.rx_duration); in ath12k_dp_mon_tx_gen_cts2self_frame()
1448 memcpy(cts->ra, tx_ppdu_info->rx_status.addr1, sizeof(cts->ra)); in ath12k_dp_mon_tx_gen_cts2self_frame()
1451 tx_ppdu_info->tx_mon_mpdu->head = skb; in ath12k_dp_mon_tx_gen_cts2self_frame()
1452 tx_ppdu_info->tx_mon_mpdu->tail = NULL; in ath12k_dp_mon_tx_gen_cts2self_frame()
1453 list_add_tail(&tx_ppdu_info->tx_mon_mpdu->list, in ath12k_dp_mon_tx_gen_cts2self_frame()
1454 &tx_ppdu_info->dp_tx_mon_mpdu_list); in ath12k_dp_mon_tx_gen_cts2self_frame()
1460 ath12k_dp_mon_tx_gen_rts_frame(struct dp_mon_tx_ppdu_info *tx_ppdu_info) in ath12k_dp_mon_tx_gen_rts_frame() argument
1473 rts->duration = cpu_to_le16(tx_ppdu_info->rx_status.rx_duration); in ath12k_dp_mon_tx_gen_rts_frame()
1474 memcpy(rts->ra, tx_ppdu_info->rx_status.addr1, sizeof(rts->ra)); in ath12k_dp_mon_tx_gen_rts_frame()
1475 memcpy(rts->ta, tx_ppdu_info->rx_status.addr2, sizeof(rts->ta)); in ath12k_dp_mon_tx_gen_rts_frame()
1478 tx_ppdu_info->tx_mon_mpdu->head = skb; in ath12k_dp_mon_tx_gen_rts_frame()
1479 tx_ppdu_info->tx_mon_mpdu->tail = NULL; in ath12k_dp_mon_tx_gen_rts_frame()
1480 list_add_tail(&tx_ppdu_info->tx_mon_mpdu->list, in ath12k_dp_mon_tx_gen_rts_frame()
1481 &tx_ppdu_info->dp_tx_mon_mpdu_list); in ath12k_dp_mon_tx_gen_rts_frame()
1487 ath12k_dp_mon_tx_gen_3addr_qos_null_frame(struct dp_mon_tx_ppdu_info *tx_ppdu_info) in ath12k_dp_mon_tx_gen_3addr_qos_null_frame() argument
1500 qhdr->duration_id = cpu_to_le16(tx_ppdu_info->rx_status.rx_duration); in ath12k_dp_mon_tx_gen_3addr_qos_null_frame()
1501 memcpy(qhdr->addr1, tx_ppdu_info->rx_status.addr1, ETH_ALEN); in ath12k_dp_mon_tx_gen_3addr_qos_null_frame()
1502 memcpy(qhdr->addr2, tx_ppdu_info->rx_status.addr2, ETH_ALEN); in ath12k_dp_mon_tx_gen_3addr_qos_null_frame()
1503 memcpy(qhdr->addr3, tx_ppdu_info->rx_status.addr3, ETH_ALEN); in ath12k_dp_mon_tx_gen_3addr_qos_null_frame()
1506 tx_ppdu_info->tx_mon_mpdu->head = skb; in ath12k_dp_mon_tx_gen_3addr_qos_null_frame()
1507 tx_ppdu_info->tx_mon_mpdu->tail = NULL; in ath12k_dp_mon_tx_gen_3addr_qos_null_frame()
1508 list_add_tail(&tx_ppdu_info->tx_mon_mpdu->list, in ath12k_dp_mon_tx_gen_3addr_qos_null_frame()
1509 &tx_ppdu_info->dp_tx_mon_mpdu_list); in ath12k_dp_mon_tx_gen_3addr_qos_null_frame()
1515 ath12k_dp_mon_tx_gen_4addr_qos_null_frame(struct dp_mon_tx_ppdu_info *tx_ppdu_info) in ath12k_dp_mon_tx_gen_4addr_qos_null_frame() argument
1528 qhdr->duration = cpu_to_le16(tx_ppdu_info->rx_status.rx_duration); in ath12k_dp_mon_tx_gen_4addr_qos_null_frame()
1529 memcpy(qhdr->addr1, tx_ppdu_info->rx_status.addr1, ETH_ALEN); in ath12k_dp_mon_tx_gen_4addr_qos_null_frame()
1530 memcpy(qhdr->addr2, tx_ppdu_info->rx_status.addr2, ETH_ALEN); in ath12k_dp_mon_tx_gen_4addr_qos_null_frame()
1531 memcpy(qhdr->addr3, tx_ppdu_info->rx_status.addr3, ETH_ALEN); in ath12k_dp_mon_tx_gen_4addr_qos_null_frame()
1532 memcpy(qhdr->addr4, tx_ppdu_info->rx_status.addr4, ETH_ALEN); in ath12k_dp_mon_tx_gen_4addr_qos_null_frame()
1535 tx_ppdu_info->tx_mon_mpdu->head = skb; in ath12k_dp_mon_tx_gen_4addr_qos_null_frame()
1536 tx_ppdu_info->tx_mon_mpdu->tail = NULL; in ath12k_dp_mon_tx_gen_4addr_qos_null_frame()
1537 list_add_tail(&tx_ppdu_info->tx_mon_mpdu->list, in ath12k_dp_mon_tx_gen_4addr_qos_null_frame()
1538 &tx_ppdu_info->dp_tx_mon_mpdu_list); in ath12k_dp_mon_tx_gen_4addr_qos_null_frame()
1544 ath12k_dp_mon_tx_gen_ack_frame(struct dp_mon_tx_ppdu_info *tx_ppdu_info) in ath12k_dp_mon_tx_gen_ack_frame() argument
1557 memcpy(fbmhdr->addr1, tx_ppdu_info->rx_status.addr1, ETH_ALEN); in ath12k_dp_mon_tx_gen_ack_frame()
1563 tx_ppdu_info->tx_mon_mpdu->head = skb; in ath12k_dp_mon_tx_gen_ack_frame()
1564 tx_ppdu_info->tx_mon_mpdu->tail = NULL; in ath12k_dp_mon_tx_gen_ack_frame()
1565 list_add_tail(&tx_ppdu_info->tx_mon_mpdu->list, in ath12k_dp_mon_tx_gen_ack_frame()
1566 &tx_ppdu_info->dp_tx_mon_mpdu_list); in ath12k_dp_mon_tx_gen_ack_frame()
1572 ath12k_dp_mon_tx_gen_prot_frame(struct dp_mon_tx_ppdu_info *tx_ppdu_info) in ath12k_dp_mon_tx_gen_prot_frame() argument
1576 switch (tx_ppdu_info->rx_status.medium_prot_type) { in ath12k_dp_mon_tx_gen_prot_frame()
1580 ret = ath12k_dp_mon_tx_gen_rts_frame(tx_ppdu_info); in ath12k_dp_mon_tx_gen_prot_frame()
1583 ret = ath12k_dp_mon_tx_gen_cts2self_frame(tx_ppdu_info); in ath12k_dp_mon_tx_gen_prot_frame()
1586 ret = ath12k_dp_mon_tx_gen_3addr_qos_null_frame(tx_ppdu_info); in ath12k_dp_mon_tx_gen_prot_frame()
1589 ret = ath12k_dp_mon_tx_gen_4addr_qos_null_frame(tx_ppdu_info); in ath12k_dp_mon_tx_gen_prot_frame()
1601 struct dp_mon_tx_ppdu_info *tx_ppdu_info; in ath12k_dp_mon_tx_parse_status_tlv() local
1605 tx_ppdu_info = ath12k_dp_mon_hal_tx_ppdu_info(pmon, tlv_tag); in ath12k_dp_mon_tx_parse_status_tlv()
1613 tx_ppdu_info->ppdu_id = __le32_to_cpu(tx_fes_setup->schedule_id); in ath12k_dp_mon_tx_parse_status_tlv()
1614 tx_ppdu_info->num_users = in ath12k_dp_mon_tx_parse_status_tlv()
1633 tx_ppdu_info->rx_status.ppdu_ts = (tst_15_0 | (tst_31_16 << 16)); in ath12k_dp_mon_tx_parse_status_tlv()
1651 tx_ppdu_info->rx_status.ppdu_id = in ath12k_dp_mon_tx_parse_status_tlv()
1653 tx_ppdu_info->rx_status.reception_type = in ath12k_dp_mon_tx_parse_status_tlv()
1655 tx_ppdu_info->rx_status.rx_duration = in ath12k_dp_mon_tx_parse_status_tlv()
1657 tx_ppdu_info->rx_status.mcs = in ath12k_dp_mon_tx_parse_status_tlv()
1659 tx_ppdu_info->rx_status.sgi = in ath12k_dp_mon_tx_parse_status_tlv()
1661 tx_ppdu_info->rx_status.is_stbc = in ath12k_dp_mon_tx_parse_status_tlv()
1663 tx_ppdu_info->rx_status.ldpc = in ath12k_dp_mon_tx_parse_status_tlv()
1665 tx_ppdu_info->rx_status.is_ampdu = in ath12k_dp_mon_tx_parse_status_tlv()
1667 tx_ppdu_info->rx_status.num_users = in ath12k_dp_mon_tx_parse_status_tlv()
1672 ath12k_dp_get_mac_addr(addr_32, addr_16, tx_ppdu_info->rx_status.addr1); in ath12k_dp_mon_tx_parse_status_tlv()
1676 ath12k_dp_get_mac_addr(addr_32, addr_16, tx_ppdu_info->rx_status.addr2); in ath12k_dp_mon_tx_parse_status_tlv()
1678 if (tx_ppdu_info->rx_status.reception_type == 0) in ath12k_dp_mon_tx_parse_status_tlv()
1679 ath12k_dp_mon_tx_gen_cts2self_frame(tx_ppdu_info); in ath12k_dp_mon_tx_parse_status_tlv()
1703 ath12k_dp_get_mac_addr(addr_32, addr_16, tx_ppdu_info->rx_status.addr1); in ath12k_dp_mon_tx_parse_status_tlv()
1710 ath12k_dp_get_mac_addr(addr_32, addr_16, tx_ppdu_info->rx_status.addr2); in ath12k_dp_mon_tx_parse_status_tlv()
1717 ath12k_dp_get_mac_addr(addr_32, addr_16, tx_ppdu_info->rx_status.addr3); in ath12k_dp_mon_tx_parse_status_tlv()
1724 ath12k_dp_get_mac_addr(addr_32, addr_16, tx_ppdu_info->rx_status.addr4); in ath12k_dp_mon_tx_parse_status_tlv()
1737 tx_ppdu_info->rx_status.frame_control = in ath12k_dp_mon_tx_parse_status_tlv()
1740 tx_ppdu_info->rx_status.fc_valid = true; in ath12k_dp_mon_tx_parse_status_tlv()
1750 tx_ppdu_info->rx_status.medium_prot_type = in ath12k_dp_mon_tx_parse_status_tlv()
1777 tx_ppdu_info->rx_status.rx_duration = end_timestamp - start_timestamp; in ath12k_dp_mon_tx_parse_status_tlv()
1779 ath12k_dp_mon_tx_gen_prot_frame(tx_ppdu_info); in ath12k_dp_mon_tx_parse_status_tlv()
1791 tx_ppdu_info->rx_status.ppdu_ts = in ath12k_dp_mon_tx_parse_status_tlv()
1796 tx_ppdu_info->rx_status.ppdu_ts |= ppdu_ts << 32; in ath12k_dp_mon_tx_parse_status_tlv()
1806 tx_ppdu_info->rx_status.rx_duration = in ath12k_dp_mon_tx_parse_status_tlv()
1813 ath12k_dp_mon_parse_he_sig_su(tlv_data, &tx_ppdu_info->rx_status); in ath12k_dp_mon_tx_parse_status_tlv()
1817 ath12k_dp_mon_parse_he_sig_mu(tlv_data, &tx_ppdu_info->rx_status); in ath12k_dp_mon_tx_parse_status_tlv()
1821 ath12k_dp_mon_parse_he_sig_b1_mu(tlv_data, &tx_ppdu_info->rx_status); in ath12k_dp_mon_tx_parse_status_tlv()
1825 ath12k_dp_mon_parse_he_sig_b2_mu(tlv_data, &tx_ppdu_info->rx_status); in ath12k_dp_mon_tx_parse_status_tlv()
1829 ath12k_dp_mon_parse_he_sig_b2_ofdma(tlv_data, &tx_ppdu_info->rx_status); in ath12k_dp_mon_tx_parse_status_tlv()
1833 ath12k_dp_mon_parse_vht_sig_a(tlv_data, &tx_ppdu_info->rx_status); in ath12k_dp_mon_tx_parse_status_tlv()
1837 ath12k_dp_mon_parse_l_sig_a(tlv_data, &tx_ppdu_info->rx_status); in ath12k_dp_mon_tx_parse_status_tlv()
1841 ath12k_dp_mon_parse_l_sig_b(tlv_data, &tx_ppdu_info->rx_status); in ath12k_dp_mon_tx_parse_status_tlv()
1857 ath12k_dp_get_mac_addr(addr_32, addr_16, tx_ppdu_info->rx_status.addr1); in ath12k_dp_mon_tx_parse_status_tlv()
1859 ath12k_dp_mon_tx_gen_ack_frame(tx_ppdu_info); in ath12k_dp_mon_tx_parse_status_tlv()
1872 tx_ppdu_info->rx_status.beamformed = in ath12k_dp_mon_tx_parse_status_tlv()
1875 tx_ppdu_info->rx_status.preamble_type = in ath12k_dp_mon_tx_parse_status_tlv()
1878 tx_ppdu_info->rx_status.mcs = in ath12k_dp_mon_tx_parse_status_tlv()
1881 tx_ppdu_info->rx_status.ltf_size = in ath12k_dp_mon_tx_parse_status_tlv()
1884 tx_ppdu_info->rx_status.nss = in ath12k_dp_mon_tx_parse_status_tlv()
1887 tx_ppdu_info->rx_status.chan_num = in ath12k_dp_mon_tx_parse_status_tlv()
1890 tx_ppdu_info->rx_status.bw = in ath12k_dp_mon_tx_parse_status_tlv()
1897 struct dp_mon_mpdu *mon_mpdu = tx_ppdu_info->tx_mon_mpdu; in ath12k_dp_mon_tx_parse_status_tlv()
1907 list_add_tail(&tx_ppdu_info->tx_mon_mpdu->list, in ath12k_dp_mon_tx_parse_status_tlv()
1908 &tx_ppdu_info->dp_tx_mon_mpdu_list); in ath12k_dp_mon_tx_parse_status_tlv()
1948 struct dp_mon_tx_ppdu_info *tx_ppdu_info) in ath12k_dp_mon_tx_process_ppdu_info() argument
1954 &tx_ppdu_info->dp_tx_mon_mpdu_list, list) { in ath12k_dp_mon_tx_process_ppdu_info()
1960 &tx_ppdu_info->rx_status, napi); in ath12k_dp_mon_tx_process_ppdu_info()