Lines Matching refs:ppdu_info
836 ath11k_hal_rx_populate_mu_user_info(void *rx_tlv, struct hal_rx_mon_ppdu_info *ppdu_info, in ath11k_hal_rx_populate_mu_user_info() argument
839 rx_user_status->ast_index = ppdu_info->ast_index; in ath11k_hal_rx_populate_mu_user_info()
840 rx_user_status->tid = ppdu_info->tid; in ath11k_hal_rx_populate_mu_user_info()
842 ppdu_info->tcp_msdu_count; in ath11k_hal_rx_populate_mu_user_info()
844 ppdu_info->udp_msdu_count; in ath11k_hal_rx_populate_mu_user_info()
846 ppdu_info->other_msdu_count; in ath11k_hal_rx_populate_mu_user_info()
847 rx_user_status->frame_control = ppdu_info->frame_control; in ath11k_hal_rx_populate_mu_user_info()
849 ppdu_info->frame_control_info_valid; in ath11k_hal_rx_populate_mu_user_info()
851 ppdu_info->data_sequence_control_info_valid; in ath11k_hal_rx_populate_mu_user_info()
853 ppdu_info->first_data_seq_ctrl; in ath11k_hal_rx_populate_mu_user_info()
854 rx_user_status->preamble_type = ppdu_info->preamble_type; in ath11k_hal_rx_populate_mu_user_info()
855 rx_user_status->ht_flags = ppdu_info->ht_flags; in ath11k_hal_rx_populate_mu_user_info()
856 rx_user_status->vht_flags = ppdu_info->vht_flags; in ath11k_hal_rx_populate_mu_user_info()
857 rx_user_status->he_flags = ppdu_info->he_flags; in ath11k_hal_rx_populate_mu_user_info()
858 rx_user_status->rs_flags = ppdu_info->rs_flags; in ath11k_hal_rx_populate_mu_user_info()
861 ppdu_info->num_mpdu_fcs_ok; in ath11k_hal_rx_populate_mu_user_info()
863 ppdu_info->num_mpdu_fcs_err; in ath11k_hal_rx_populate_mu_user_info()
865 ath11k_hal_rx_populate_byte_count(rx_tlv, ppdu_info, rx_user_status); in ath11k_hal_rx_populate_mu_user_info()
870 struct hal_rx_mon_ppdu_info *ppdu_info, in ath11k_hal_rx_parse_mon_status_tlv() argument
882 ppdu_info->ppdu_id = in ath11k_hal_rx_parse_mon_status_tlv()
885 ppdu_info->chan_num = __le32_to_cpu(ppdu_start->chan_num); in ath11k_hal_rx_parse_mon_status_tlv()
886 ppdu_info->ppdu_ts = __le32_to_cpu(ppdu_start->ppdu_start_ts); in ath11k_hal_rx_parse_mon_status_tlv()
896 ppdu_info->ast_index = in ath11k_hal_rx_parse_mon_status_tlv()
899 ppdu_info->tid = in ath11k_hal_rx_parse_mon_status_tlv()
902 ppdu_info->tcp_msdu_count = in ath11k_hal_rx_parse_mon_status_tlv()
905 ppdu_info->udp_msdu_count = in ath11k_hal_rx_parse_mon_status_tlv()
908 ppdu_info->other_msdu_count = in ath11k_hal_rx_parse_mon_status_tlv()
911 ppdu_info->tcp_ack_msdu_count = in ath11k_hal_rx_parse_mon_status_tlv()
914 ppdu_info->preamble_type = in ath11k_hal_rx_parse_mon_status_tlv()
916 ppdu_info->num_mpdu_fcs_ok = in ath11k_hal_rx_parse_mon_status_tlv()
919 ppdu_info->num_mpdu_fcs_err = in ath11k_hal_rx_parse_mon_status_tlv()
922 switch (ppdu_info->preamble_type) { in ath11k_hal_rx_parse_mon_status_tlv()
924 ppdu_info->ht_flags = 1; in ath11k_hal_rx_parse_mon_status_tlv()
927 ppdu_info->vht_flags = 1; in ath11k_hal_rx_parse_mon_status_tlv()
930 ppdu_info->he_flags = 1; in ath11k_hal_rx_parse_mon_status_tlv()
938 &ppdu_info->userstats; in ath11k_hal_rx_parse_mon_status_tlv()
941 ath11k_hal_rx_populate_mu_user_info(tlv_data, ppdu_info, in ath11k_hal_rx_parse_mon_status_tlv()
944 ppdu_info->userstats.mpdu_fcs_ok_bitmap[0] = in ath11k_hal_rx_parse_mon_status_tlv()
946 ppdu_info->userstats.mpdu_fcs_ok_bitmap[1] = in ath11k_hal_rx_parse_mon_status_tlv()
954 ppdu_info->userstats.mpdu_fcs_ok_bitmap[2] = eu_stats->info1; in ath11k_hal_rx_parse_mon_status_tlv()
955 ppdu_info->userstats.mpdu_fcs_ok_bitmap[3] = eu_stats->info2; in ath11k_hal_rx_parse_mon_status_tlv()
956 ppdu_info->userstats.mpdu_fcs_ok_bitmap[4] = eu_stats->info3; in ath11k_hal_rx_parse_mon_status_tlv()
957 ppdu_info->userstats.mpdu_fcs_ok_bitmap[5] = eu_stats->info4; in ath11k_hal_rx_parse_mon_status_tlv()
958 ppdu_info->userstats.mpdu_fcs_ok_bitmap[6] = eu_stats->info5; in ath11k_hal_rx_parse_mon_status_tlv()
959 ppdu_info->userstats.mpdu_fcs_ok_bitmap[7] = eu_stats->info6; in ath11k_hal_rx_parse_mon_status_tlv()
969 ppdu_info->mcs = FIELD_GET(HAL_RX_HT_SIG_INFO_INFO0_MCS, info0); in ath11k_hal_rx_parse_mon_status_tlv()
970 ppdu_info->bw = FIELD_GET(HAL_RX_HT_SIG_INFO_INFO0_BW, info0); in ath11k_hal_rx_parse_mon_status_tlv()
971 ppdu_info->is_stbc = FIELD_GET(HAL_RX_HT_SIG_INFO_INFO1_STBC, in ath11k_hal_rx_parse_mon_status_tlv()
973 ppdu_info->ldpc = FIELD_GET(HAL_RX_HT_SIG_INFO_INFO1_FEC_CODING, info1); in ath11k_hal_rx_parse_mon_status_tlv()
974 ppdu_info->gi = info1 & HAL_RX_HT_SIG_INFO_INFO1_GI; in ath11k_hal_rx_parse_mon_status_tlv()
976 switch (ppdu_info->mcs) { in ath11k_hal_rx_parse_mon_status_tlv()
978 ppdu_info->nss = 1; in ath11k_hal_rx_parse_mon_status_tlv()
981 ppdu_info->nss = 2; in ath11k_hal_rx_parse_mon_status_tlv()
984 ppdu_info->nss = 3; in ath11k_hal_rx_parse_mon_status_tlv()
987 ppdu_info->nss = 4; in ath11k_hal_rx_parse_mon_status_tlv()
991 if (ppdu_info->nss > 1) in ath11k_hal_rx_parse_mon_status_tlv()
992 ppdu_info->mcs = ppdu_info->mcs % 8; in ath11k_hal_rx_parse_mon_status_tlv()
994 ppdu_info->reception_type = HAL_RX_RECEPTION_TYPE_SU; in ath11k_hal_rx_parse_mon_status_tlv()
1001 ppdu_info->rate = FIELD_GET(HAL_RX_LSIG_B_INFO_INFO0_RATE, in ath11k_hal_rx_parse_mon_status_tlv()
1003 ppdu_info->reception_type = HAL_RX_RECEPTION_TYPE_SU; in ath11k_hal_rx_parse_mon_status_tlv()
1010 ppdu_info->rate = FIELD_GET(HAL_RX_LSIG_A_INFO_INFO0_RATE, in ath11k_hal_rx_parse_mon_status_tlv()
1012 ppdu_info->reception_type = HAL_RX_RECEPTION_TYPE_SU; in ath11k_hal_rx_parse_mon_status_tlv()
1025 ppdu_info->ldpc = FIELD_GET(HAL_RX_VHT_SIG_A_INFO_INFO1_SU_MU_CODING, in ath11k_hal_rx_parse_mon_status_tlv()
1027 ppdu_info->mcs = FIELD_GET(HAL_RX_VHT_SIG_A_INFO_INFO1_MCS, in ath11k_hal_rx_parse_mon_status_tlv()
1033 ppdu_info->gi = HAL_RX_GI_0_8_US; in ath11k_hal_rx_parse_mon_status_tlv()
1037 ppdu_info->gi = HAL_RX_GI_0_4_US; in ath11k_hal_rx_parse_mon_status_tlv()
1041 ppdu_info->is_stbc = info0 & HAL_RX_VHT_SIG_A_INFO_INFO0_STBC; in ath11k_hal_rx_parse_mon_status_tlv()
1043 if (ppdu_info->is_stbc && nsts > 0) in ath11k_hal_rx_parse_mon_status_tlv()
1046 ppdu_info->nss = (nsts & VHT_SIG_SU_NSS_MASK) + 1; in ath11k_hal_rx_parse_mon_status_tlv()
1047 ppdu_info->bw = FIELD_GET(HAL_RX_VHT_SIG_A_INFO_INFO0_BW, in ath11k_hal_rx_parse_mon_status_tlv()
1049 ppdu_info->beamformed = info1 & in ath11k_hal_rx_parse_mon_status_tlv()
1054 ppdu_info->reception_type = HAL_RX_RECEPTION_TYPE_SU; in ath11k_hal_rx_parse_mon_status_tlv()
1056 ppdu_info->reception_type = in ath11k_hal_rx_parse_mon_status_tlv()
1058 ppdu_info->vht_flag_values5 = group_id; in ath11k_hal_rx_parse_mon_status_tlv()
1059 ppdu_info->vht_flag_values3[0] = (((ppdu_info->mcs) << 4) | in ath11k_hal_rx_parse_mon_status_tlv()
1060 ppdu_info->nss); in ath11k_hal_rx_parse_mon_status_tlv()
1061 ppdu_info->vht_flag_values2 = ppdu_info->bw; in ath11k_hal_rx_parse_mon_status_tlv()
1062 ppdu_info->vht_flag_values4 = in ath11k_hal_rx_parse_mon_status_tlv()
1070 ppdu_info->he_flags = 1; in ath11k_hal_rx_parse_mon_status_tlv()
1077 ppdu_info->he_data1 = IEEE80211_RADIOTAP_HE_DATA1_FORMAT_TRIG; in ath11k_hal_rx_parse_mon_status_tlv()
1079 ppdu_info->he_data1 = IEEE80211_RADIOTAP_HE_DATA1_FORMAT_SU; in ath11k_hal_rx_parse_mon_status_tlv()
1081 ppdu_info->he_data1 |= in ath11k_hal_rx_parse_mon_status_tlv()
1093 ppdu_info->he_data2 |= in ath11k_hal_rx_parse_mon_status_tlv()
1103 ppdu_info->he_data3 = in ath11k_hal_rx_parse_mon_status_tlv()
1106 ppdu_info->he_data3 |= in ath11k_hal_rx_parse_mon_status_tlv()
1109 ppdu_info->he_data3 |= in ath11k_hal_rx_parse_mon_status_tlv()
1112 ppdu_info->mcs = value; in ath11k_hal_rx_parse_mon_status_tlv()
1113 ppdu_info->he_data3 |= in ath11k_hal_rx_parse_mon_status_tlv()
1117 ppdu_info->dcm = he_dcm; in ath11k_hal_rx_parse_mon_status_tlv()
1118 ppdu_info->he_data3 |= in ath11k_hal_rx_parse_mon_status_tlv()
1121 ppdu_info->ldpc = (value == HAL_RX_SU_MU_CODING_LDPC) ? 1 : 0; in ath11k_hal_rx_parse_mon_status_tlv()
1122 ppdu_info->he_data3 |= in ath11k_hal_rx_parse_mon_status_tlv()
1125 ppdu_info->he_data3 |= in ath11k_hal_rx_parse_mon_status_tlv()
1128 ppdu_info->is_stbc = he_stbc; in ath11k_hal_rx_parse_mon_status_tlv()
1129 ppdu_info->he_data3 |= in ath11k_hal_rx_parse_mon_status_tlv()
1134 ppdu_info->he_data4 = in ath11k_hal_rx_parse_mon_status_tlv()
1139 ppdu_info->bw = value; in ath11k_hal_rx_parse_mon_status_tlv()
1140 ppdu_info->he_data5 = in ath11k_hal_rx_parse_mon_status_tlv()
1166 ppdu_info->gi = he_gi; in ath11k_hal_rx_parse_mon_status_tlv()
1168 ppdu_info->he_data5 |= FIELD_PREP(IEEE80211_RADIOTAP_HE_DATA5_GI, he_gi); in ath11k_hal_rx_parse_mon_status_tlv()
1169 ppdu_info->ltf_size = he_ltf; in ath11k_hal_rx_parse_mon_status_tlv()
1170 ppdu_info->he_data5 |= in ath11k_hal_rx_parse_mon_status_tlv()
1175 ppdu_info->he_data5 |= in ath11k_hal_rx_parse_mon_status_tlv()
1179 ppdu_info->he_data5 |= in ath11k_hal_rx_parse_mon_status_tlv()
1183 ppdu_info->beamformed = value; in ath11k_hal_rx_parse_mon_status_tlv()
1184 ppdu_info->he_data5 |= in ath11k_hal_rx_parse_mon_status_tlv()
1187 ppdu_info->he_data5 |= in ath11k_hal_rx_parse_mon_status_tlv()
1193 ppdu_info->nss = value; in ath11k_hal_rx_parse_mon_status_tlv()
1194 ppdu_info->he_data6 = in ath11k_hal_rx_parse_mon_status_tlv()
1197 ppdu_info->he_data6 |= in ath11k_hal_rx_parse_mon_status_tlv()
1200 ppdu_info->he_data6 |= in ath11k_hal_rx_parse_mon_status_tlv()
1203 ppdu_info->reception_type = HAL_RX_RECEPTION_TYPE_SU; in ath11k_hal_rx_parse_mon_status_tlv()
1213 ppdu_info->he_mu_flags = 1; in ath11k_hal_rx_parse_mon_status_tlv()
1215 ppdu_info->he_data1 = IEEE80211_RADIOTAP_HE_DATA1_FORMAT_MU; in ath11k_hal_rx_parse_mon_status_tlv()
1216 ppdu_info->he_data1 |= in ath11k_hal_rx_parse_mon_status_tlv()
1224 ppdu_info->he_data2 = in ath11k_hal_rx_parse_mon_status_tlv()
1234 ppdu_info->he_data3 = in ath11k_hal_rx_parse_mon_status_tlv()
1238 ppdu_info->he_data3 |= in ath11k_hal_rx_parse_mon_status_tlv()
1242 ppdu_info->he_data3 |= in ath11k_hal_rx_parse_mon_status_tlv()
1247 ppdu_info->he_data3 |= in ath11k_hal_rx_parse_mon_status_tlv()
1252 ppdu_info->he_data4 = in ath11k_hal_rx_parse_mon_status_tlv()
1257 ppdu_info->bw = value; in ath11k_hal_rx_parse_mon_status_tlv()
1258 ppdu_info->he_data5 = in ath11k_hal_rx_parse_mon_status_tlv()
1280 ppdu_info->gi = he_gi; in ath11k_hal_rx_parse_mon_status_tlv()
1282 ppdu_info->he_data5 |= FIELD_PREP(IEEE80211_RADIOTAP_HE_DATA5_GI, he_gi); in ath11k_hal_rx_parse_mon_status_tlv()
1283 ppdu_info->ltf_size = he_ltf; in ath11k_hal_rx_parse_mon_status_tlv()
1284 ppdu_info->he_data5 |= in ath11k_hal_rx_parse_mon_status_tlv()
1289 ppdu_info->he_data5 |= in ath11k_hal_rx_parse_mon_status_tlv()
1294 ppdu_info->he_data5 |= in ath11k_hal_rx_parse_mon_status_tlv()
1299 ppdu_info->he_data5 |= in ath11k_hal_rx_parse_mon_status_tlv()
1305 ppdu_info->he_data6 |= in ath11k_hal_rx_parse_mon_status_tlv()
1309 ppdu_info->he_data6 |= in ath11k_hal_rx_parse_mon_status_tlv()
1314 ppdu_info->he_flags1 = in ath11k_hal_rx_parse_mon_status_tlv()
1322 ppdu_info->he_flags1 |= in ath11k_hal_rx_parse_mon_status_tlv()
1326 ppdu_info->he_flags1 |= in ath11k_hal_rx_parse_mon_status_tlv()
1331 ppdu_info->he_flags2 = in ath11k_hal_rx_parse_mon_status_tlv()
1335 ppdu_info->he_flags2 |= in ath11k_hal_rx_parse_mon_status_tlv()
1339 ppdu_info->he_flags2 |= in ath11k_hal_rx_parse_mon_status_tlv()
1343 ppdu_info->he_flags2 |= in ath11k_hal_rx_parse_mon_status_tlv()
1347 ppdu_info->is_stbc = info1 & in ath11k_hal_rx_parse_mon_status_tlv()
1349 ppdu_info->reception_type = HAL_RX_RECEPTION_TYPE_MU_MIMO; in ath11k_hal_rx_parse_mon_status_tlv()
1361 ppdu_info->ru_alloc = in ath11k_hal_rx_parse_mon_status_tlv()
1363 ppdu_info->he_RU[0] = ru_tones; in ath11k_hal_rx_parse_mon_status_tlv()
1364 ppdu_info->reception_type = HAL_RX_RECEPTION_TYPE_MU_MIMO; in ath11k_hal_rx_parse_mon_status_tlv()
1373 ppdu_info->he_data1 |= IEEE80211_RADIOTAP_HE_DATA1_DATA_MCS_KNOWN | in ath11k_hal_rx_parse_mon_status_tlv()
1376 ppdu_info->mcs = in ath11k_hal_rx_parse_mon_status_tlv()
1378 ppdu_info->he_data3 |= in ath11k_hal_rx_parse_mon_status_tlv()
1379 FIELD_PREP(IEEE80211_RADIOTAP_HE_DATA3_DATA_MCS, ppdu_info->mcs); in ath11k_hal_rx_parse_mon_status_tlv()
1382 ppdu_info->ldpc = value; in ath11k_hal_rx_parse_mon_status_tlv()
1383 ppdu_info->he_data3 |= in ath11k_hal_rx_parse_mon_status_tlv()
1387 ppdu_info->he_data4 |= in ath11k_hal_rx_parse_mon_status_tlv()
1390 ppdu_info->nss = in ath11k_hal_rx_parse_mon_status_tlv()
1400 ppdu_info->he_data1 |= in ath11k_hal_rx_parse_mon_status_tlv()
1406 ppdu_info->he_data2 |= IEEE80211_RADIOTAP_HE_DATA2_TXBF_KNOWN; in ath11k_hal_rx_parse_mon_status_tlv()
1408 ppdu_info->mcs = in ath11k_hal_rx_parse_mon_status_tlv()
1411 ppdu_info->he_data3 |= in ath11k_hal_rx_parse_mon_status_tlv()
1412 FIELD_PREP(IEEE80211_RADIOTAP_HE_DATA3_DATA_MCS, ppdu_info->mcs); in ath11k_hal_rx_parse_mon_status_tlv()
1416 ppdu_info->he_data3 |= in ath11k_hal_rx_parse_mon_status_tlv()
1420 ppdu_info->ldpc = value; in ath11k_hal_rx_parse_mon_status_tlv()
1421 ppdu_info->he_data3 |= in ath11k_hal_rx_parse_mon_status_tlv()
1426 ppdu_info->he_data4 |= in ath11k_hal_rx_parse_mon_status_tlv()
1429 ppdu_info->nss = in ath11k_hal_rx_parse_mon_status_tlv()
1432 ppdu_info->beamformed = in ath11k_hal_rx_parse_mon_status_tlv()
1434 ppdu_info->reception_type = HAL_RX_RECEPTION_TYPE_MU_OFDMA; in ath11k_hal_rx_parse_mon_status_tlv()
1448 ppdu_info->rssi_comb = in ath11k_hal_rx_parse_mon_status_tlv()
1454 ppdu_info->rssi_chain_pri20[i] = in ath11k_hal_rx_parse_mon_status_tlv()
1466 ppdu_info->peer_id = peer_id; in ath11k_hal_rx_parse_mon_status_tlv()
1472 ppdu_info->rx_duration = in ath11k_hal_rx_parse_mon_status_tlv()
1475 ppdu_info->tsft = __le32_to_cpu(ppdu_rx_duration->rsvd0[1]); in ath11k_hal_rx_parse_mon_status_tlv()
1476 ppdu_info->tsft = (ppdu_info->tsft << 32) | in ath11k_hal_rx_parse_mon_status_tlv()
1494 struct hal_rx_mon_ppdu_info *ppdu_info, in ath11k_hal_rx_parse_mon_status() argument
1519 hal_status = ath11k_hal_rx_parse_mon_status_tlv(ab, ppdu_info, in ath11k_hal_rx_parse_mon_status()