Lines Matching refs:pxmitframe

175 static s32 update_txdesc(struct xmit_frame *pxmitframe, u8 *pmem, s32 sz, u8 bagg_pkt)
180 struct adapter *adapt = pxmitframe->padapter;
181 struct pkt_attrib *pattrib = &pxmitframe->attrib;
210 if ((pull) && (pxmitframe->pkt_offset > 0))
211 pxmitframe->pkt_offset = pxmitframe->pkt_offset - 1;
216 if (pxmitframe->pkt_offset > 0)
217 ptxdesc->txdw1 |= cpu_to_le32((pxmitframe->pkt_offset << 26) & 0x7c000000);
222 if ((pxmitframe->frame_tag & 0x0f) == DATA_FRAMETAG) {
250 if (pxmitframe->agg_num > 1)
251 ptxdesc->txdw5 |= cpu_to_le32((pxmitframe->agg_num << USB_TXAGG_NUM_SHT) & 0xFF000000);
282 } else if ((pxmitframe->frame_tag&0x0f) == MGNT_FRAMETAG) {
293 if (pxmitframe->ack_report)
307 } else if ((pxmitframe->frame_tag&0x0f) == TXAGG_FRAMETAG) {
308 DBG_88E("pxmitframe->frame_tag == TXAGG_FRAMETAG\n");
310 DBG_88E("pxmitframe->frame_tag = %d\n", pxmitframe->frame_tag);
343 _dbg_dump_tx_info(adapt, pxmitframe->frame_tag, ptxdesc);
348 static s32 rtw_dump_xframe(struct adapter *adapt, struct xmit_frame *pxmitframe)
355 struct xmit_buf *pxmitbuf = pxmitframe->pxmitbuf;
356 struct pkt_attrib *pattrib = &pxmitframe->attrib;
359 if ((pxmitframe->frame_tag == DATA_FRAMETAG) &&
360 (pxmitframe->attrib.ether_type != 0x0806) &&
361 (pxmitframe->attrib.ether_type != 0x888e) &&
362 (pxmitframe->attrib.ether_type != 0x88b4) &&
363 (pxmitframe->attrib.dhcp_pkt != 1))
364 rtw_issue_addbareq_cmd(adapt, pxmitframe);
365 mem_addr = pxmitframe->buf_addr;
383 pull = update_txdesc(pxmitframe, mem_addr, sz, false);
387 pxmitframe->buf_addr = mem_addr;
392 ff_hwaddr = rtw_get_ff_hwaddr(pxmitframe);
396 rtw_count_tx_stats(adapt, pxmitframe, sz);
405 rtw_free_xmitframe(pxmitpriv, pxmitframe);
413 static u32 xmitframe_need_length(struct xmit_frame *pxmitframe)
415 struct pkt_attrib *pattrib = &pxmitframe->attrib;
434 struct xmit_frame *pxmitframe = NULL;
466 rtw_free_xmitframe(pxmitpriv, pxmitframe);
468 pxmitframe = rtw_dequeue_xframe(pxmitpriv, pxmitpriv->hwxmits, pxmitpriv->hwxmit_entry);
469 if (pxmitframe == NULL) {
475 pxmitframe->pxmitbuf = pxmitbuf;
476 pxmitframe->buf_addr = pxmitbuf->pbuf;
477 pxmitbuf->priv_data = pxmitframe;
479 pxmitframe->agg_num = 1; /* alloc xmitframe should assign to 1. */
480 pxmitframe->pkt_offset = 1; /* first frame of aggregation, reserve offset */
482 rtw_xmitframe_coalesce(adapt, pxmitframe->pkt, pxmitframe);
485 rtw_os_xmit_complete(adapt, pxmitframe);
491 pfirstframe = pxmitframe;
537 pxmitframe = container_of(xmitframe_plist, struct xmit_frame, list);
540 pxmitframe->agg_num = 0; /* not first frame of aggregation */
541 pxmitframe->pkt_offset = 0; /* not first frame of aggregation, no need to reserve offset */
543 len = xmitframe_need_length(pxmitframe) + TXDESC_SIZE + (pxmitframe->pkt_offset*PACKET_OFFSET_SZ);
546 pxmitframe->agg_num = 1;
547 pxmitframe->pkt_offset = 1;
550 list_del_init(&pxmitframe->list);
554 pxmitframe->buf_addr = pxmitbuf->pbuf + pbuf;
556 rtw_xmitframe_coalesce(adapt, pxmitframe->pkt, pxmitframe);
558 rtw_os_xmit_complete(adapt, pxmitframe);
560 /* (len - TXDESC_SIZE) == pxmitframe->attrib.last_txcmdsz */
561 update_txdesc(pxmitframe, pxmitframe->buf_addr, pxmitframe->attrib.last_txcmdsz, true);
564 rtw_free_xmitframe(pxmitpriv, pxmitframe);
618 static s32 xmitframe_direct(struct adapter *adapt, struct xmit_frame *pxmitframe)
622 res = rtw_xmitframe_coalesce(adapt, pxmitframe->pkt, pxmitframe);
624 rtw_dump_xframe(adapt, pxmitframe);
635 static s32 pre_xmitframe(struct adapter *adapt, struct xmit_frame *pxmitframe)
640 struct pkt_attrib *pattrib = &pxmitframe->attrib;
657 pxmitframe->pxmitbuf = pxmitbuf;
658 pxmitframe->buf_addr = pxmitbuf->pbuf;
659 pxmitbuf->priv_data = pxmitframe;
661 if (xmitframe_direct(adapt, pxmitframe) != _SUCCESS) {
663 rtw_free_xmitframe(pxmitpriv, pxmitframe);
669 res = rtw_xmitframe_enqueue(adapt, pxmitframe);
674 rtw_free_xmitframe(pxmitpriv, pxmitframe);
695 s32 rtl8188eu_hal_xmit(struct adapter *adapt, struct xmit_frame *pxmitframe)
697 return pre_xmitframe(adapt, pxmitframe);