Lines Matching refs:txdesc

189 						 struct txentry_desc *txdesc)  in rt2x00queue_create_tx_descriptor_seq()  argument
199 __set_bit(ENTRY_TXD_GENERATE_SEQ, &txdesc->flags); in rt2x00queue_create_tx_descriptor_seq()
209 __clear_bit(ENTRY_TXD_GENERATE_SEQ, &txdesc->flags); in rt2x00queue_create_tx_descriptor_seq()
226 if (test_bit(ENTRY_TXD_FIRST_FRAGMENT, &txdesc->flags)) in rt2x00queue_create_tx_descriptor_seq()
237 struct txentry_desc *txdesc, in rt2x00queue_create_tx_descriptor_plcp() argument
251 if (test_bit(ENTRY_TXD_FIRST_FRAGMENT, &txdesc->flags)) in rt2x00queue_create_tx_descriptor_plcp()
252 txdesc->u.plcp.ifs = IFS_BACKOFF; in rt2x00queue_create_tx_descriptor_plcp()
254 txdesc->u.plcp.ifs = IFS_SIFS; in rt2x00queue_create_tx_descriptor_plcp()
264 txdesc->u.plcp.signal = hwrate->plcp; in rt2x00queue_create_tx_descriptor_plcp()
265 txdesc->u.plcp.service = 0x04; in rt2x00queue_create_tx_descriptor_plcp()
268 txdesc->u.plcp.length_high = (data_length >> 6) & 0x3f; in rt2x00queue_create_tx_descriptor_plcp()
269 txdesc->u.plcp.length_low = data_length & 0x3f; in rt2x00queue_create_tx_descriptor_plcp()
284 txdesc->u.plcp.service |= 0x80; in rt2x00queue_create_tx_descriptor_plcp()
287 txdesc->u.plcp.length_high = (duration >> 8) & 0xff; in rt2x00queue_create_tx_descriptor_plcp()
288 txdesc->u.plcp.length_low = duration & 0xff; in rt2x00queue_create_tx_descriptor_plcp()
295 txdesc->u.plcp.signal |= 0x08; in rt2x00queue_create_tx_descriptor_plcp()
301 struct txentry_desc *txdesc, in rt2x00queue_create_tx_descriptor_ht() argument
311 txdesc->u.ht.mpdu_density = in rt2x00queue_create_tx_descriptor_ht()
315 txdesc->u.ht.wcid = sta_priv->wcid; in rt2x00queue_create_tx_descriptor_ht()
323 txdesc->u.ht.mcs = txrate->idx; in rt2x00queue_create_tx_descriptor_ht()
329 if (sta && txdesc->u.ht.mcs > 7 && in rt2x00queue_create_tx_descriptor_ht()
331 __set_bit(ENTRY_TXD_HT_MIMO_PS, &txdesc->flags); in rt2x00queue_create_tx_descriptor_ht()
333 txdesc->u.ht.mcs = rt2x00_get_rate_mcs(hwrate->mcs); in rt2x00queue_create_tx_descriptor_ht()
335 txdesc->u.ht.mcs |= 0x08; in rt2x00queue_create_tx_descriptor_ht()
340 txdesc->u.ht.txop = TXOP_SIFS; in rt2x00queue_create_tx_descriptor_ht()
342 txdesc->u.ht.txop = TXOP_BACKOFF; in rt2x00queue_create_tx_descriptor_ht()
348 txdesc->u.ht.ba_size = 7; /* FIXME: What value is needed? */ in rt2x00queue_create_tx_descriptor_ht()
354 txdesc->u.ht.stbc = 1; in rt2x00queue_create_tx_descriptor_ht()
362 __set_bit(ENTRY_TXD_HT_AMPDU, &txdesc->flags); in rt2x00queue_create_tx_descriptor_ht()
370 __set_bit(ENTRY_TXD_HT_BW_40, &txdesc->flags); in rt2x00queue_create_tx_descriptor_ht()
372 __set_bit(ENTRY_TXD_HT_SHORT_GI, &txdesc->flags); in rt2x00queue_create_tx_descriptor_ht()
385 txdesc->u.ht.txop = TXOP_BACKOFF; in rt2x00queue_create_tx_descriptor_ht()
387 txdesc->u.ht.txop = TXOP_SIFS; in rt2x00queue_create_tx_descriptor_ht()
389 txdesc->u.ht.txop = TXOP_HTTXOP; in rt2x00queue_create_tx_descriptor_ht()
394 struct txentry_desc *txdesc, in rt2x00queue_create_tx_descriptor() argument
403 memset(txdesc, 0, sizeof(*txdesc)); in rt2x00queue_create_tx_descriptor()
408 txdesc->length = skb->len; in rt2x00queue_create_tx_descriptor()
409 txdesc->header_length = ieee80211_get_hdrlen_from_skb(skb); in rt2x00queue_create_tx_descriptor()
415 __set_bit(ENTRY_TXD_ACK, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
422 __set_bit(ENTRY_TXD_BURST, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
424 __set_bit(ENTRY_TXD_RTS_FRAME, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
426 __set_bit(ENTRY_TXD_CTS_FRAME, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
435 txdesc->retry_limit = tx_info->control.rates[0].count - 1; in rt2x00queue_create_tx_descriptor()
436 if (txdesc->retry_limit >= rt2x00dev->long_retry) in rt2x00queue_create_tx_descriptor()
437 __set_bit(ENTRY_TXD_RETRY_MODE, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
443 __set_bit(ENTRY_TXD_BURST, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
444 __set_bit(ENTRY_TXD_MORE_FRAG, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
451 __set_bit(ENTRY_TXD_BURST, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
459 __set_bit(ENTRY_TXD_REQ_TIMESTAMP, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
462 !test_bit(ENTRY_TXD_RTS_FRAME, &txdesc->flags)) in rt2x00queue_create_tx_descriptor()
463 __set_bit(ENTRY_TXD_FIRST_FRAGMENT, &txdesc->flags); in rt2x00queue_create_tx_descriptor()
469 txdesc->rate_mode = RATE_MODE_HT_GREENFIELD; in rt2x00queue_create_tx_descriptor()
471 txdesc->rate_mode = RATE_MODE_HT_MIX; in rt2x00queue_create_tx_descriptor()
476 txdesc->rate_mode = RATE_MODE_OFDM; in rt2x00queue_create_tx_descriptor()
478 txdesc->rate_mode = RATE_MODE_CCK; in rt2x00queue_create_tx_descriptor()
484 rt2x00crypto_create_tx_descriptor(rt2x00dev, skb, txdesc); in rt2x00queue_create_tx_descriptor()
485 rt2x00queue_create_tx_descriptor_seq(rt2x00dev, skb, txdesc); in rt2x00queue_create_tx_descriptor()
488 rt2x00queue_create_tx_descriptor_ht(rt2x00dev, skb, txdesc, in rt2x00queue_create_tx_descriptor()
491 rt2x00queue_create_tx_descriptor_plcp(rt2x00dev, skb, txdesc, in rt2x00queue_create_tx_descriptor()
496 struct txentry_desc *txdesc) in rt2x00queue_write_tx_data() argument
524 rt2x00dev->ops->lib->write_tx_data(entry, txdesc); in rt2x00queue_write_tx_data()
537 struct txentry_desc *txdesc) in rt2x00queue_write_tx_descriptor() argument
541 queue->rt2x00dev->ops->lib->write_tx_desc(entry, txdesc); in rt2x00queue_write_tx_descriptor()
551 struct txentry_desc *txdesc) in rt2x00queue_kick_tx_queue() argument
563 !test_bit(ENTRY_TXD_BURST, &txdesc->flags)) in rt2x00queue_kick_tx_queue()
614 struct txentry_desc txdesc; in rt2x00queue_write_tx_frame() local
624 rt2x00queue_create_tx_descriptor(queue->rt2x00dev, skb, &txdesc, sta); in rt2x00queue_write_tx_frame()
647 if (test_bit(ENTRY_TXD_ENCRYPT, &txdesc.flags) && in rt2x00queue_write_tx_frame()
648 !test_bit(ENTRY_TXD_ENCRYPT_IV, &txdesc.flags)) { in rt2x00queue_write_tx_frame()
650 rt2x00crypto_tx_copy_iv(skb, &txdesc); in rt2x00queue_write_tx_frame()
652 rt2x00crypto_tx_remove_iv(skb, &txdesc); in rt2x00queue_write_tx_frame()
664 rt2x00queue_insert_l2pad(skb, txdesc.header_length); in rt2x00queue_write_tx_frame()
700 if (unlikely(rt2x00queue_write_tx_data(entry, &txdesc))) { in rt2x00queue_write_tx_frame()
715 rt2x00queue_write_tx_descriptor(entry, &txdesc); in rt2x00queue_write_tx_frame()
716 rt2x00queue_kick_tx_queue(queue, &txdesc); in rt2x00queue_write_tx_frame()
751 struct txentry_desc txdesc; in rt2x00queue_update_beacon() local
770 rt2x00queue_create_tx_descriptor(rt2x00dev, intf->beacon->skb, &txdesc, NULL); in rt2x00queue_update_beacon()
782 rt2x00dev->ops->lib->write_beacon(intf->beacon, &txdesc); in rt2x00queue_update_beacon()