Lines Matching refs:td
23 struct mt76_testmode_data *td = &dev->test;
25 struct sk_buff *skb = td->tx_skb;
29 if (!skb || !td->tx_pending)
37 while (td->tx_pending > 0 && td->tx_queued - td->tx_done < 1000 &&
45 td->tx_pending--;
46 td->tx_queued++;
58 struct mt76_testmode_data *td = &dev->test;
67 if (td->tx_antenna_mask)
68 max_nss = min_t(u8, max_nss, hweight8(td->tx_antenna_mask));
70 skb = alloc_skb(td->tx_msdu_len, GFP_KERNEL);
74 dev_kfree_skb(td->tx_skb);
75 td->tx_skb = skb;
76 hdr = __skb_put_zero(skb, td->tx_msdu_len);
88 rate->idx = td->tx_rate_idx;
90 switch (td->tx_rate_mode) {
119 if (td->tx_rate_nss > max_nss)
122 ieee80211_rate_set_vht(rate, td->tx_rate_idx, td->tx_rate_nss);
129 if (td->tx_rate_sgi)
132 if (td->tx_rate_ldpc)
135 if (td->tx_rate_mode >= MT76_TM_TX_MODE_HT) {
160 struct mt76_testmode_data *td = &dev->test;
162 td->tx_queued = 0;
163 td->tx_done = 0;
164 td->tx_pending = td->tx_count;
171 struct mt76_testmode_data *td = &dev->test;
175 td->tx_pending = 0;
179 wait_event_timeout(dev->tx_wait, td->tx_done == td->tx_queued, 10 * HZ);
181 dev_kfree_skb(td->tx_skb);
182 td->tx_skb = NULL;
186 mt76_testmode_param_set(struct mt76_testmode_data *td, u16 idx)
188 td->param_set[idx / 32] |= BIT(idx % 32);
192 mt76_testmode_param_present(struct mt76_testmode_data *td, u16 idx)
194 return td->param_set[idx / 32] & BIT(idx % 32);
200 struct mt76_testmode_data *td = &dev->test;
202 if (td->tx_msdu_len > 0)
205 td->tx_msdu_len = 1024;
206 td->tx_count = 1;
207 td->tx_rate_mode = MT76_TM_TX_MODE_OFDM;
208 td->tx_rate_nss = 1;
247 struct mt76_testmode_data *td = &dev->test;
250 if (state == td->state && state == MT76_TM_STATE_OFF)
259 td->state != MT76_TM_STATE_IDLE) {
293 struct mt76_testmode_data *td = &dev->test;
313 memset(td, 0, sizeof(*td));
319 td->tx_count = nla_get_u32(tb[MT76_TM_ATTR_TX_COUNT]);
328 td->tx_msdu_len = val;
332 td->tx_rate_idx = nla_get_u8(tb[MT76_TM_ATTR_TX_RATE_IDX]);
334 if (mt76_tm_get_u8(tb[MT76_TM_ATTR_TX_RATE_MODE], &td->tx_rate_mode,
336 mt76_tm_get_u8(tb[MT76_TM_ATTR_TX_RATE_NSS], &td->tx_rate_nss,
338 mt76_tm_get_u8(tb[MT76_TM_ATTR_TX_RATE_SGI], &td->tx_rate_sgi, 0, 1) ||
339 mt76_tm_get_u8(tb[MT76_TM_ATTR_TX_RATE_LDPC], &td->tx_rate_ldpc, 0, 1) ||
340 mt76_tm_get_u8(tb[MT76_TM_ATTR_TX_ANTENNA], &td->tx_antenna_mask, 1,
343 &td->tx_power_control, 0, 1))
347 td->freq_offset = nla_get_u32(tb[MT76_TM_ATTR_FREQ_OFFSET]);
354 state = td->state;
364 idx >= ARRAY_SIZE(td->tx_power))
367 td->tx_power[idx++] = nla_get_u8(cur);
379 mt76_testmode_param_set(td, i);
395 struct mt76_testmode_data *td = &dev->test;
400 for (i = 0; i < ARRAY_SIZE(td->rx_stats.packets); i++) {
401 rx_packets += td->rx_stats.packets[i];
402 rx_fcs_error += td->rx_stats.fcs_error[i];
405 if (nla_put_u32(msg, MT76_TM_STATS_ATTR_TX_PENDING, td->tx_pending) ||
406 nla_put_u32(msg, MT76_TM_STATS_ATTR_TX_QUEUED, td->tx_queued) ||
407 nla_put_u32(msg, MT76_TM_STATS_ATTR_TX_DONE, td->tx_done) ||
425 struct mt76_testmode_data *td = &dev->test;
461 if (nla_put_u32(msg, MT76_TM_ATTR_STATE, td->state))
464 if (td->mtd_name &&
465 (nla_put_string(msg, MT76_TM_ATTR_MTD_PART, td->mtd_name) ||
466 nla_put_u32(msg, MT76_TM_ATTR_MTD_OFFSET, td->mtd_offset)))
469 if (nla_put_u32(msg, MT76_TM_ATTR_TX_COUNT, td->tx_count) ||
470 nla_put_u32(msg, MT76_TM_ATTR_TX_LENGTH, td->tx_msdu_len) ||
471 nla_put_u8(msg, MT76_TM_ATTR_TX_RATE_MODE, td->tx_rate_mode) ||
472 nla_put_u8(msg, MT76_TM_ATTR_TX_RATE_NSS, td->tx_rate_nss) ||
473 nla_put_u8(msg, MT76_TM_ATTR_TX_RATE_IDX, td->tx_rate_idx) ||
474 nla_put_u8(msg, MT76_TM_ATTR_TX_RATE_SGI, td->tx_rate_sgi) ||
475 nla_put_u8(msg, MT76_TM_ATTR_TX_RATE_LDPC, td->tx_rate_ldpc) ||
476 (mt76_testmode_param_present(td, MT76_TM_ATTR_TX_ANTENNA) &&
477 nla_put_u8(msg, MT76_TM_ATTR_TX_ANTENNA, td->tx_antenna_mask)) ||
478 (mt76_testmode_param_present(td, MT76_TM_ATTR_TX_POWER_CONTROL) &&
479 nla_put_u8(msg, MT76_TM_ATTR_TX_POWER_CONTROL, td->tx_power_control)) ||
480 (mt76_testmode_param_present(td, MT76_TM_ATTR_FREQ_OFFSET) &&
481 nla_put_u8(msg, MT76_TM_ATTR_FREQ_OFFSET, td->freq_offset)))
484 if (mt76_testmode_param_present(td, MT76_TM_ATTR_TX_POWER)) {
489 for (i = 0; i < ARRAY_SIZE(td->tx_power); i++)
490 if (nla_put_u8(msg, i, td->tx_power[i]))