Lines Matching refs:entry
119 static inline bool rt2800usb_entry_txstatus_timeout(struct queue_entry *entry) in rt2800usb_entry_txstatus_timeout() argument
123 if (!test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags)) in rt2800usb_entry_txstatus_timeout()
126 tout = time_after(jiffies, entry->last_action + msecs_to_jiffies(100)); in rt2800usb_entry_txstatus_timeout()
128 rt2x00_dbg(entry->queue->rt2x00dev, in rt2800usb_entry_txstatus_timeout()
130 entry->entry_idx, entry->queue->qid); in rt2800usb_entry_txstatus_timeout()
138 struct queue_entry *entry; in rt2800usb_txstatus_timeout() local
141 entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE); in rt2800usb_txstatus_timeout()
142 if (rt2800usb_entry_txstatus_timeout(entry)) in rt2800usb_txstatus_timeout()
211 static void rt2800usb_tx_dma_done(struct queue_entry *entry) in rt2800usb_tx_dma_done() argument
213 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; in rt2800usb_tx_dma_done()
485 static __le32 *rt2800usb_get_txwi(struct queue_entry *entry) in rt2800usb_get_txwi() argument
487 if (entry->queue->qid == QID_BEACON) in rt2800usb_get_txwi()
488 return (__le32 *) (entry->skb->data); in rt2800usb_get_txwi()
490 return (__le32 *) (entry->skb->data + TXINFO_DESC_SIZE); in rt2800usb_get_txwi()
493 static void rt2800usb_write_tx_desc(struct queue_entry *entry, in rt2800usb_write_tx_desc() argument
496 struct skb_frame_desc *skbdesc = get_skb_frame_desc(entry->skb); in rt2800usb_write_tx_desc()
497 __le32 *txi = (__le32 *) entry->skb->data; in rt2800usb_write_tx_desc()
511 roundup(entry->skb->len, 4) - TXINFO_DESC_SIZE); in rt2800usb_write_tx_desc()
526 skbdesc->desc_len = TXINFO_DESC_SIZE + entry->queue->winfo_size; in rt2800usb_write_tx_desc()
532 static int rt2800usb_get_tx_data_len(struct queue_entry *entry) in rt2800usb_get_tx_data_len() argument
542 return roundup(entry->skb->len, 4) + 4; in rt2800usb_get_tx_data_len()
549 rt2800usb_txdone_entry_check(struct queue_entry *entry, u32 reg) in rt2800usb_txdone_entry_check() argument
561 if (test_bit(ENTRY_DATA_IO_FAILED, &entry->flags)) in rt2800usb_txdone_entry_check()
573 txwi = rt2800usb_get_txwi(entry); in rt2800usb_txdone_entry_check()
581 rt2x00_dbg(entry->queue->rt2x00dev, in rt2800usb_txdone_entry_check()
583 entry->queue->qid, entry->entry_idx); in rt2800usb_txdone_entry_check()
593 struct queue_entry *entry; in rt2800usb_txdone() local
612 entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE); in rt2800usb_txdone()
614 if (unlikely(test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags) || in rt2800usb_txdone()
615 !test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags))) { in rt2800usb_txdone()
617 entry->entry_idx, qid); in rt2800usb_txdone()
621 done_status = rt2800usb_txdone_entry_check(entry, reg); in rt2800usb_txdone()
623 rt2800_txdone_entry(entry, reg, rt2800usb_get_txwi(entry)); in rt2800usb_txdone()
625 rt2x00lib_txdone_noinfo(entry, done_status); in rt2800usb_txdone()
632 struct queue_entry *entry; in rt2800usb_txdone_nostatus() local
643 entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE); in rt2800usb_txdone_nostatus()
645 if (test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags) || in rt2800usb_txdone_nostatus()
646 !test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags)) in rt2800usb_txdone_nostatus()
649 if (test_bit(ENTRY_DATA_IO_FAILED, &entry->flags)) in rt2800usb_txdone_nostatus()
650 rt2x00lib_txdone_noinfo(entry, TXDONE_FAILURE); in rt2800usb_txdone_nostatus()
651 else if (rt2800usb_entry_txstatus_timeout(entry)) in rt2800usb_txdone_nostatus()
652 rt2x00lib_txdone_noinfo(entry, TXDONE_UNKNOWN); in rt2800usb_txdone_nostatus()
684 static void rt2800usb_fill_rxdone(struct queue_entry *entry, in rt2800usb_fill_rxdone() argument
687 struct skb_frame_desc *skbdesc = get_skb_frame_desc(entry->skb); in rt2800usb_fill_rxdone()
688 __le32 *rxi = (__le32 *)entry->skb->data; in rt2800usb_fill_rxdone()
710 skb_pull(entry->skb, RXINFO_DESC_SIZE); in rt2800usb_fill_rxdone()
717 rx_pkt_len > entry->queue->data_size)) { in rt2800usb_fill_rxdone()
718 rt2x00_err(entry->queue->rt2x00dev, in rt2800usb_fill_rxdone()
723 rxd = (__le32 *)(entry->skb->data + rx_pkt_len); in rt2800usb_fill_rxdone()
765 skb_trim(entry->skb, rx_pkt_len); in rt2800usb_fill_rxdone()
770 rt2800_process_rxwi(entry, rxdesc); in rt2800usb_fill_rxdone()