1 /******************************************************************************
\r
3 * Copyright(c) 2013 Realtek Corporation. All rights reserved.
\r
5 * This program is free software; you can redistribute it and/or modify it
\r
6 * under the terms of version 2 of the GNU General Public License as
\r
7 * published by the Free Software Foundation.
\r
9 * This program is distributed in the hope that it will be useful, but WITHOUT
\r
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
\r
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
\r
14 * You should have received a copy of the GNU General Public License along with
\r
15 * this program; if not, write to the Free Software Foundation, Inc.,
\r
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
\r
19 ******************************************************************************/
\r
20 #ifndef __RTL8821A_XMIT_H__
\r
21 #define __RTL8821A_XMIT_H__
\r
23 #include <drv_types.h>
\r
25 typedef struct txdescriptor_8821a
\r
49 u32 pkt_offset:5; // unit: 8 bytes
\r
66 u32 ampdu_density:3;
\r
87 u32 ampdu_max_time:8;
\r
92 u32 data_ratefb_lmt:5;
\r
93 u32 rts_ratefb_lmt:4;
\r
98 u32 pcts_mask_idx:2;
\r
111 u32 txpwr_offset:3;
\r
126 u32 usb_txagg_num:8;
\r
134 u32 nextneadpage:8;
\r
138 u32 padding_len:11;
\r
141 u32 final_data_rate:8;
\r
142 }TXDESC_8821A, *PTXDESC_8821A;
\r
144 #ifdef CONFIG_SDIO_HCI
\r
145 s32 InitXmitPriv8821AS(PADAPTER padapter);
\r
146 void FreeXmitPriv8821AS(PADAPTER padapter);
\r
147 s32 XmitBufHandler8821AS(PADAPTER padapter);
\r
148 s32 MgntXmit8821AS(PADAPTER padapter, struct xmit_frame *pmgntframe);
\r
149 s32 HalXmitNoLock8821AS(PADAPTER padapter, struct xmit_frame *pxmitframe);
\r
150 s32 HalXmit8821AS(PADAPTER padapter, struct xmit_frame *pxmitframe);
\r
151 #ifndef CONFIG_SDIO_TX_TASKLET
\r
152 thread_return XmitThread8821AS(thread_context context);
\r
153 #endif // !CONFIG_SDIO_TX_TASKLET
\r
154 #endif // CONFIG_SDIO_HCI
\r
157 #ifdef CONFIG_USB_HCI
\r
158 s32 rtl8821au_init_xmit_priv(PADAPTER padapter);
\r
159 void rtl8821au_free_xmit_priv(PADAPTER padapter);
\r
160 s32 rtl8821au_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe);
\r
161 s32 rtl8821au_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe);
\r
162 s32 rtl8821au_hal_xmitframe_enqueue(PADAPTER padapter, struct xmit_frame *pxmitframe);
\r
163 s32 rtl8821au_xmit_buf_handler(PADAPTER padapter);
\r
164 void rtl8821au_xmit_tasklet(void *priv);
\r
165 s32 rtl8821au_xmitframe_complete(PADAPTER padapter, struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf);
\r
166 #endif // CONFIG_USB_HCI
\r
168 #ifdef CONFIG_PCI_HCI
\r
169 s32 rtl8821e_init_xmit_priv(PADAPTER padapter);
\r
170 void rtl8821e_free_xmit_priv(PADAPTER padapter);
\r
171 struct xmit_buf* rtl8821e_dequeue_xmitbuf(struct rtw_tx_ring *ring);
\r
172 void rtl8821e_xmitframe_resume(PADAPTER padapter);
\r
173 s32 rtl8821e_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe);
\r
174 s32 rtl8821e_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe);
\r
175 void rtl8821e_xmit_tasklet(void *priv);
\r
176 #endif // CONFIG_PCI_HCI
\r
179 #endif //__RTL8821_XMIT_H__
\r