Lines Matching refs:pkt_stat
38 struct rtw_rx_pkt_stat *pkt_stat;
43 struct rtw_rx_pkt_stat *pkt_stat,
51 dm_info->curr_rx_rate = pkt_stat->rate;
56 switch (pkt_stat->rate) {
77 rtw_warn(rtwdev, "unknown pkt rate = %d\n", pkt_stat->rate);
93 cur_pkt_cnt->num_qry_pkt[pkt_stat->rate]++;
104 struct rtw_rx_pkt_stat *pkt_stat = iter_data->pkt_stat;
114 rtw_rx_phy_stat(rtwdev, pkt_stat, hdr);
121 ewma_rssi_add(&si->avg_rssi, pkt_stat->rssi);
125 struct rtw_rx_pkt_stat *pkt_stat,
130 if (pkt_stat->crc_err || pkt_stat->icv_err || !pkt_stat->phy_status ||
136 data.pkt_stat = pkt_stat;
142 static void rtw_set_rx_freq_by_pktstat(struct rtw_rx_pkt_stat *pkt_stat,
145 rx_status->freq = pkt_stat->freq;
146 rx_status->band = pkt_stat->band;
151 struct rtw_rx_pkt_stat *pkt_stat)
185 rtw_set_rx_freq_band(pkt_stat, channel);
186 rtw_set_rx_freq_by_pktstat(pkt_stat, rx_status);
191 struct rtw_rx_pkt_stat *pkt_stat,
203 rtw_set_rx_freq_by_pktstat(pkt_stat, rx_status);
204 if (pkt_stat->crc_err)
206 if (pkt_stat->decrypted)
209 if (pkt_stat->rate >= DESC_RATEVHT1SS_MCS0)
211 else if (pkt_stat->rate >= DESC_RATEMCS0)
215 pkt_stat->rate >= DESC_RATE6M &&
216 pkt_stat->rate <= DESC_RATE54M) {
217 rx_status->rate_idx = pkt_stat->rate - DESC_RATE6M;
219 pkt_stat->rate >= DESC_RATE1M &&
220 pkt_stat->rate <= DESC_RATE54M) {
221 rx_status->rate_idx = pkt_stat->rate - DESC_RATE1M;
222 } else if (pkt_stat->rate >= DESC_RATEMCS0) {
223 rtw_desc_to_mcsrate(pkt_stat->rate, &rx_status->rate_idx,
228 rx_status->mactime = pkt_stat->tsf_low;
230 if (pkt_stat->bw == RTW_CHANNEL_WIDTH_80)
232 else if (pkt_stat->bw == RTW_CHANNEL_WIDTH_40)
237 if (pkt_stat->phy_status) {
238 rx_status->signal = pkt_stat->signal_power;
241 rx_status->chain_signal[path] = pkt_stat->rx_power[path];
247 rtw_rx_addr_match(rtwdev, pkt_stat, hdr);
252 if (rtwdev->chip->id == RTW_CHIP_TYPE_8703B && pkt_stat->pkt_len == 0) {
259 struct rtw_rx_pkt_stat *pkt_stat,
272 memset(pkt_stat, 0, sizeof(*pkt_stat));
274 pkt_stat->pkt_len = le32_get_bits(rx_desc->w0, RTW_RX_DESC_W0_PKT_LEN);
275 pkt_stat->crc_err = le32_get_bits(rx_desc->w0, RTW_RX_DESC_W0_CRC32);
276 pkt_stat->icv_err = le32_get_bits(rx_desc->w0, RTW_RX_DESC_W0_ICV_ERR);
277 pkt_stat->drv_info_sz = le32_get_bits(rx_desc->w0,
280 pkt_stat->shift = le32_get_bits(rx_desc->w0, RTW_RX_DESC_W0_SHIFT);
281 pkt_stat->phy_status = le32_get_bits(rx_desc->w0, RTW_RX_DESC_W0_PHYST);
283 pkt_stat->decrypted = !swdec && enc_type != RX_DESC_ENC_NONE;
285 pkt_stat->cam_id = le32_get_bits(rx_desc->w1, RTW_RX_DESC_W1_MACID);
287 pkt_stat->is_c2h = le32_get_bits(rx_desc->w2, RTW_RX_DESC_W2_C2H);
288 pkt_stat->ppdu_cnt = le32_get_bits(rx_desc->w2, RTW_RX_DESC_W2_PPDU_CNT);
290 pkt_stat->rate = le32_get_bits(rx_desc->w3, RTW_RX_DESC_W3_RX_RATE);
292 pkt_stat->bw = le32_get_bits(rx_desc->w4, RTW_RX_DESC_W4_BW);
294 pkt_stat->tsf_low = le32_get_bits(rx_desc->w5, RTW_RX_DESC_W5_TSFL);
297 pkt_stat->drv_info_sz *= 8;
300 if (pkt_stat->is_c2h)
304 phy_status = rx_desc8 + desc_sz + pkt_stat->shift;
305 hdr = phy_status + pkt_stat->drv_info_sz;
307 phy_status = (u8 *)rx_desc8 + desc_sz + pkt_stat->shift;
308 hdr = (void *)(phy_status + pkt_stat->drv_info_sz);
310 pkt_stat->hdr = hdr;
312 if (pkt_stat->phy_status)
313 rtwdev->chip->ops->query_phy_status(rtwdev, phy_status, pkt_stat);
315 rtw_rx_fill_rx_status(rtwdev, pkt_stat, hdr, rx_status);