1 /******************************************************************************
3 * Copyright(c) 2013 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 __RTL8821A_XMIT_H__
21 #define __RTL8821A_XMIT_H__
23 #include <drv_types.h>
25 typedef struct txdescriptor_8821a {
48 u32 pkt_offset:5; /* unit: 8 bytes */
91 u32 data_ratefb_lmt:5;
140 u32 final_data_rate:8;
141 } TXDESC_8821A, *PTXDESC_8821A;
143 #ifdef CONFIG_SDIO_HCI
144 s32 InitXmitPriv8821AS(PADAPTER padapter);
145 void FreeXmitPriv8821AS(PADAPTER padapter);
146 s32 XmitBufHandler8821AS(PADAPTER padapter);
147 s32 MgntXmit8821AS(PADAPTER padapter, struct xmit_frame *pmgntframe);
148 s32 HalXmitNoLock8821AS(PADAPTER padapter, struct xmit_frame *pxmitframe);
149 s32 HalXmit8821AS(PADAPTER padapter, struct xmit_frame *pxmitframe);
150 #ifndef CONFIG_SDIO_TX_TASKLET
151 thread_return XmitThread8821AS(thread_context context);
152 #endif /* !CONFIG_SDIO_TX_TASKLET */
153 #endif /* CONFIG_SDIO_HCI */
156 #ifdef CONFIG_USB_HCI
157 s32 rtl8821au_init_xmit_priv(PADAPTER padapter);
158 void rtl8821au_free_xmit_priv(PADAPTER padapter);
159 s32 rtl8821au_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe);
160 s32 rtl8821au_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe);
161 s32 rtl8821au_hal_xmitframe_enqueue(PADAPTER padapter, struct xmit_frame *pxmitframe);
162 s32 rtl8821au_xmit_buf_handler(PADAPTER padapter);
163 void rtl8821au_xmit_tasklet(void *priv);
164 s32 rtl8821au_xmitframe_complete(PADAPTER padapter, struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf);
165 #endif /* CONFIG_USB_HCI */
167 #ifdef CONFIG_PCI_HCI
168 s32 rtl8821e_init_xmit_priv(PADAPTER padapter);
169 void rtl8821e_free_xmit_priv(PADAPTER padapter);
170 struct xmit_buf *rtl8821e_dequeue_xmitbuf(struct rtw_tx_ring *ring);
171 void rtl8821e_xmitframe_resume(PADAPTER padapter);
172 s32 rtl8821e_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe);
173 s32 rtl8821e_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe);
174 void rtl8821e_xmit_tasklet(void *priv);
175 #endif /* CONFIG_PCI_HCI */
178 #endif /* __RTL8821_XMIT_H__ */