1 /******************************************************************************
3 * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of version 2 of the GNU General Public License as
7 * published by the Free Software Foundation.
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 * You should have received a copy of the GNU General Public License along with
15 * this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
19 ******************************************************************************/
20 #ifndef _RTL8192C_XMIT_H_
21 #define _RTL8192C_XMIT_H_
24 //defined for TX DESC Operation
39 #define PKT_OFFSET_SZ 0
42 #define Rate_ID_SHT 16
43 #define NAVUSEHDR BIT(20)
44 #define PKT_OFFSET_SHT 26
48 #define AGG_EN BIT(29)
55 #define HW_SEQ_EN BIT(7)
56 #define USERATE BIT(8)
57 #define DISDATAFB BIT(10)
58 #define DATA_SHORT BIT(24)
59 #define DATA_BW BIT(25)
65 // Queue Select Value in TxDesc
67 #define QSLT_BK 0x2//0x01
69 #define QSLT_VI 0x5//0x4
70 #define QSLT_VO 0x7//0x6
71 #define QSLT_BEACON 0x10
72 #define QSLT_HIGH 0x11
73 #define QSLT_MGNT 0x12
76 struct txrpt_ccx_8192c {
111 #define txrpt_ccx_qtime_8192c(txrpt_ccx) ((txrpt_ccx)->ccx_qtime0+((txrpt_ccx)->ccx_qtime1<<8))
113 #ifdef CONFIG_XMIT_ACK
114 void dump_txrpt_ccx_8192c(void *buf);
115 void handle_txrpt_ccx_8192c(_adapter *adapter, void *buf);
117 #define dump_txrpt_ccx_8192c(buf) do {} while(0)
118 #define handle_txrpt_ccx_8192c(adapter, buf) do {} while(0)
121 #ifdef CONFIG_USB_HCI
123 s32 rtl8192cu_init_xmit_priv(_adapter * padapter);
125 void rtl8192cu_free_xmit_priv(_adapter * padapter);
127 void rtl8192cu_cal_txdesc_chksum(struct tx_desc *ptxdesc);
129 s32 rtl8192cu_xmitframe_complete(_adapter *padapter, struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf);
131 s32 rtl8192cu_mgnt_xmit(_adapter *padapter, struct xmit_frame *pmgntframe);
133 s32 rtl8192cu_hal_xmit(_adapter *padapter, struct xmit_frame *pxmitframe);
135 s32 rtl8192cu_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe);
137 #ifdef CONFIG_HOSTAPD_MLME
138 s32 rtl8192cu_hostap_mgnt_xmit_entry(_adapter *padapter, _pkt *pkt);
143 #ifdef CONFIG_PCI_HCI
144 s32 rtl8192ce_init_xmit_priv(_adapter * padapter);
145 void rtl8192ce_free_xmit_priv(_adapter * padapter);
147 s32 rtl8192ce_enqueue_xmitbuf(struct rtw_tx_ring *ring, struct xmit_buf *pxmitbuf);
148 struct xmit_buf *rtl8192ce_dequeue_xmitbuf(struct rtw_tx_ring *ring);
150 void rtl8192ce_xmitframe_resume(_adapter *padapter);
152 s32 rtl8192ce_mgnt_xmit(_adapter *padapter, struct xmit_frame *pmgntframe);
154 s32 rtl8192ce_hal_xmit(_adapter *padapter, struct xmit_frame *pxmitframe);
156 s32 rtl8192ce_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe);
159 #ifdef CONFIG_HOSTAPD_MLME
160 s32 rtl8192ce_hostap_mgnt_xmit_entry(_adapter *padapter, _pkt *pkt);