Lines Matching refs:txdesc
188 struct txentry_desc *txdesc) in rt2x00queue_create_tx_descriptor_seq() argument
198 __set_bit(ENTRY_TXD_GENERATE_SEQ, &txdesc->flags); in rt2x00queue_create_tx_descriptor_seq()
208 __clear_bit(ENTRY_TXD_GENERATE_SEQ, &txdesc->flags); in rt2x00queue_create_tx_descriptor_seq()
225 if (test_bit(ENTRY_TXD_FIRST_FRAGMENT, &txdesc->flags)) in rt2x00queue_create_tx_descriptor_seq()
236 struct txentry_desc *txdesc, in rt2x00queue_create_tx_descriptor_plcp() argument
250 if (test_bit(ENTRY_TXD_FIRST_FRAGMENT, &txdesc->flags)) in rt2x00queue_create_tx_descriptor_plcp()
251 txdesc->u.plcp.ifs = IFS_BACKOFF; in rt2x00queue_create_tx_descriptor_plcp()
253 txdesc->u.plcp.ifs = IFS_SIFS; in rt2x00queue_create_tx_descriptor_plcp()
263 txdesc->u.plcp.signal = hwrate->plcp; in rt2x00queue_create_tx_descriptor_plcp()
264 txdesc->u.plcp.service = 0x04; in rt2x00queue_create_tx_descriptor_plcp()
267 txdesc->u.plcp.length_high = (data_length >> 6) & 0x3f; in rt2x00queue_create_tx_descriptor_plcp()
268 txdesc->u.plcp.length_low = data_length & 0x3f; in rt2x00queue_create_tx_descriptor_plcp()
283 txdesc->u.plcp.service |= 0x80; in rt2x00queue_create_tx_descriptor_plcp()
286 txdesc->u.plcp.length_high = (duration >> 8) & 0xff; in rt2x00queue_create_tx_descriptor_plcp()
287 txdesc->u.plcp.length_low = duration & 0xff; in rt2x00queue_create_tx_descriptor_plcp()
294 txdesc->u.plcp.signal |= 0x08; in rt2x00queue_create_tx_descriptor_plcp()
300 struct txentry_desc *txdesc, in rt2x00queue_create_tx_descriptor_ht() argument
312 txdesc->u.ht.wcid = sta_priv->wcid; in rt2x00queue_create_tx_descriptor_ht()
321 txdesc->u.ht.mcs = txrate->idx; in rt2x00queue_create_tx_descriptor_ht()
327 if (sta && txdesc->u.ht.mcs > 7 && in rt2x00queue_create_tx_descriptor_ht()
329 __set_bit(ENTRY_TXD_HT_MIMO_PS, &txdesc->flags); in rt2x00queue_create_tx_descriptor_ht()
331 txdesc->u.ht.mcs = rt2x00_get_rate_mcs(hwrate->mcs); in rt2x00queue_create_tx_descriptor_ht()
333 txdesc->u.ht.mcs |= 0x08; in rt2x00queue_create_tx_descriptor_ht()
338 txdesc->u.ht.txop = TXOP_SIFS; in rt2x00queue_create_tx_descriptor_ht()
340 txdesc->u.ht.txop = TXOP_BACKOFF; in rt2x00queue_create_tx_descriptor_ht()
350 txdesc->u.ht.stbc = 1; in rt2x00queue_create_tx_descriptor_ht()
358 __set_bit(ENTRY_TXD_HT_AMPDU, &txdesc->flags); in rt2x00queue_create_tx_descriptor_ht()
359 txdesc->u.ht.mpdu_density = density; in rt2x00queue_create_tx_descriptor_ht()
360 txdesc->u.ht.ba_size = 7; /* FIXME: What value is needed? */ in rt2x00queue_create_tx_descriptor_ht()
369 __set_bit(ENTRY_TXD_HT_BW_40, &txdesc->flags); in rt2x00queue_create_tx_descriptor_ht()
371 __set_bit(ENTRY_TXD_HT_SHORT_GI, &txdesc->flags); in rt2x00queue_create_tx_descriptor_ht()
384 txdesc->u.ht.txop = TXOP_BACKOFF; in rt2x00queue_create_tx_descriptor_ht()
386 txdesc->u.ht.txop = TXOP_SIFS; in rt2x00queue_create_tx_descriptor_ht()
388 txdesc->u.ht.txop = TXOP_HTTXOP; in rt2x00queue_create_tx_descriptor_ht()
393 struct txentry_desc *txdesc, in rt2x00queue_create_tx_descriptor() argument
402 memset(txdesc, 0, sizeof(*txdesc)); in rt2x00queue_create_tx_descriptor()
407 txdesc->length = skb->len; in rt2x00queue_create_tx_descriptor()
408 txdesc->header_length = ieee80211_get_hdrlen_from_skb(skb); in rt2x00queue_create_tx_descriptor()
414 __set_bit(ENTRY_TXD_ACK, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
421 __set_bit(ENTRY_TXD_BURST, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
423 __set_bit(ENTRY_TXD_RTS_FRAME, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
425 __set_bit(ENTRY_TXD_CTS_FRAME, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
434 txdesc->retry_limit = tx_info->control.rates[0].count - 1; in rt2x00queue_create_tx_descriptor()
435 if (txdesc->retry_limit >= rt2x00dev->long_retry) in rt2x00queue_create_tx_descriptor()
436 __set_bit(ENTRY_TXD_RETRY_MODE, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
442 __set_bit(ENTRY_TXD_BURST, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
443 __set_bit(ENTRY_TXD_MORE_FRAG, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
450 __set_bit(ENTRY_TXD_BURST, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
458 __set_bit(ENTRY_TXD_REQ_TIMESTAMP, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
461 !test_bit(ENTRY_TXD_RTS_FRAME, &txdesc->flags)) in rt2x00queue_create_tx_descriptor()
462 __set_bit(ENTRY_TXD_FIRST_FRAGMENT, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
468 txdesc->rate_mode = RATE_MODE_HT_GREENFIELD; in rt2x00queue_create_tx_descriptor()
470 txdesc->rate_mode = RATE_MODE_HT_MIX; in rt2x00queue_create_tx_descriptor()
475 txdesc->rate_mode = RATE_MODE_OFDM; in rt2x00queue_create_tx_descriptor()
477 txdesc->rate_mode = RATE_MODE_CCK; in rt2x00queue_create_tx_descriptor()
483 rt2x00crypto_create_tx_descriptor(rt2x00dev, skb, txdesc); in rt2x00queue_create_tx_descriptor()
484 rt2x00queue_create_tx_descriptor_seq(rt2x00dev, skb, txdesc); in rt2x00queue_create_tx_descriptor()
487 rt2x00queue_create_tx_descriptor_ht(rt2x00dev, skb, txdesc, in rt2x00queue_create_tx_descriptor()
490 rt2x00queue_create_tx_descriptor_plcp(rt2x00dev, skb, txdesc, in rt2x00queue_create_tx_descriptor()
495 struct txentry_desc *txdesc) in rt2x00queue_write_tx_data() argument
523 rt2x00dev->ops->lib->write_tx_data(entry, txdesc); in rt2x00queue_write_tx_data()
536 struct txentry_desc *txdesc) in rt2x00queue_write_tx_descriptor() argument
540 queue->rt2x00dev->ops->lib->write_tx_desc(entry, txdesc); in rt2x00queue_write_tx_descriptor()
550 struct txentry_desc *txdesc) in rt2x00queue_kick_tx_queue() argument
562 !test_bit(ENTRY_TXD_BURST, &txdesc->flags)) in rt2x00queue_kick_tx_queue()
613 struct txentry_desc txdesc; in rt2x00queue_write_tx_frame() local
623 rt2x00queue_create_tx_descriptor(queue->rt2x00dev, skb, &txdesc, sta); in rt2x00queue_write_tx_frame()
646 if (test_bit(ENTRY_TXD_ENCRYPT, &txdesc.flags) && in rt2x00queue_write_tx_frame()
647 !test_bit(ENTRY_TXD_ENCRYPT_IV, &txdesc.flags)) { in rt2x00queue_write_tx_frame()
649 rt2x00crypto_tx_copy_iv(skb, &txdesc); in rt2x00queue_write_tx_frame()
651 rt2x00crypto_tx_remove_iv(skb, &txdesc); in rt2x00queue_write_tx_frame()
663 rt2x00queue_insert_l2pad(skb, txdesc.header_length); in rt2x00queue_write_tx_frame()
698 if (unlikely(rt2x00queue_write_tx_data(entry, &txdesc))) { in rt2x00queue_write_tx_frame()
713 rt2x00queue_write_tx_descriptor(entry, &txdesc); in rt2x00queue_write_tx_frame()
714 rt2x00queue_kick_tx_queue(queue, &txdesc); in rt2x00queue_write_tx_frame()
757 struct txentry_desc txdesc; in rt2x00queue_update_beacon() local
776 rt2x00queue_create_tx_descriptor(rt2x00dev, intf->beacon->skb, &txdesc, NULL); in rt2x00queue_update_beacon()
787 rt2x00dev->ops->lib->write_beacon(intf->beacon, &txdesc); in rt2x00queue_update_beacon()