2011-09-03 19:14:04 +00:00
|
|
|
/******************************************************************************
|
|
|
|
*
|
|
|
|
* Copyright(c) 2007 - 2010 Realtek Corporation. All rights reserved.
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
|
|
* under the terms of version 2 of the GNU General Public License as
|
|
|
|
* published by the Free Software Foundation.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
|
|
* more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License along with
|
|
|
|
* this program; if not, write to the Free Software Foundation, Inc.,
|
|
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
|
|
|
|
*
|
|
|
|
* Modifications for inclusion into the Linux staging tree are
|
|
|
|
* Copyright(c) 2010 Larry Finger. All rights reserved.
|
|
|
|
*
|
|
|
|
* Contact information:
|
|
|
|
* WLAN FAE <wlanfae@realtek.com>
|
|
|
|
* Larry Finger <Larry.Finger@lwfinger.net>
|
|
|
|
*
|
|
|
|
******************************************************************************/
|
2010-08-20 15:15:30 +00:00
|
|
|
#ifndef _RTL8712_XMIT_H_
|
|
|
|
#define _RTL8712_XMIT_H_
|
|
|
|
|
|
|
|
#define HWXMIT_ENTRY 4
|
|
|
|
|
|
|
|
#define VO_QUEUE_INX 0
|
|
|
|
#define VI_QUEUE_INX 1
|
|
|
|
#define BE_QUEUE_INX 2
|
|
|
|
#define BK_QUEUE_INX 3
|
|
|
|
#define TS_QUEUE_INX 4
|
|
|
|
#define MGT_QUEUE_INX 5
|
|
|
|
#define BMC_QUEUE_INX 6
|
|
|
|
#define BCN_QUEUE_INX 7
|
|
|
|
|
|
|
|
#define HW_QUEUE_ENTRY 8
|
|
|
|
|
|
|
|
#define TXDESC_SIZE 32
|
|
|
|
#define TXDESC_OFFSET TXDESC_SIZE
|
|
|
|
|
|
|
|
#define NR_AMSDU_XMITFRAME 8
|
|
|
|
#define NR_TXAGG_XMITFRAME 8
|
|
|
|
|
|
|
|
#define MAX_AMSDU_XMITBUF_SZ 8704
|
|
|
|
#define MAX_TXAGG_XMITBUF_SZ 16384 /*16k*/
|
|
|
|
|
|
|
|
|
|
|
|
#define tx_cmd tx_desc
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
*defined for TX DESC Operation
|
|
|
|
*/
|
|
|
|
|
|
|
|
#define MAX_TID (15)
|
|
|
|
|
|
|
|
/*OFFSET 0*/
|
|
|
|
#define OFFSET_SZ (0)
|
|
|
|
#define OFFSET_SHT (16)
|
|
|
|
#define OWN BIT(31)
|
|
|
|
#define FSG BIT(27)
|
|
|
|
#define LSG BIT(26)
|
2011-09-03 19:14:21 +00:00
|
|
|
#define TYPE_SHT (24)
|
|
|
|
#define TYPE_MSK (0x03000000)
|
2010-08-20 15:15:30 +00:00
|
|
|
|
|
|
|
/*OFFSET 4*/
|
|
|
|
#define PKT_OFFSET_SZ (0)
|
|
|
|
#define QSEL_SHT (8)
|
|
|
|
#define HWPC BIT(31)
|
|
|
|
|
|
|
|
/*OFFSET 8*/
|
|
|
|
#define BMC BIT(7)
|
|
|
|
#define BK BIT(30)
|
|
|
|
#define AGG_EN BIT(29)
|
2011-09-03 19:14:21 +00:00
|
|
|
#define RTS_RC_SHT (16)
|
2010-08-20 15:15:30 +00:00
|
|
|
|
|
|
|
/*OFFSET 12*/
|
|
|
|
#define SEQ_SHT (16)
|
|
|
|
|
|
|
|
/*OFFSET 16*/
|
|
|
|
#define TXBW BIT(18)
|
|
|
|
|
|
|
|
/*OFFSET 20*/
|
|
|
|
#define DISFB BIT(15)
|
2011-09-03 19:14:21 +00:00
|
|
|
#define RSVD6_MSK (0x00E00000)
|
|
|
|
#define RSVD6_SHT (21)
|
2010-08-20 15:15:30 +00:00
|
|
|
|
2011-04-02 01:01:49 +00:00
|
|
|
struct tx_desc {
|
2010-08-20 15:15:30 +00:00
|
|
|
/*DWORD 0*/
|
2016-12-20 17:59:39 +00:00
|
|
|
__le32 txdw0;
|
|
|
|
__le32 txdw1;
|
|
|
|
__le32 txdw2;
|
|
|
|
__le32 txdw3;
|
|
|
|
__le32 txdw4;
|
|
|
|
__le32 txdw5;
|
|
|
|
__le32 txdw6;
|
|
|
|
__le32 txdw7;
|
2010-08-20 15:15:30 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
union txdesc {
|
|
|
|
struct tx_desc txdesc;
|
|
|
|
unsigned int value[TXDESC_SIZE>>2];
|
|
|
|
};
|
|
|
|
|
|
|
|
int r8712_xmitframe_complete(struct _adapter *padapter,
|
|
|
|
struct xmit_priv *pxmitpriv,
|
|
|
|
struct xmit_buf *pxmitbuf);
|
|
|
|
void r8712_do_queue_select(struct _adapter *padapter,
|
|
|
|
struct pkt_attrib *pattrib);
|
|
|
|
|
2011-09-03 19:14:22 +00:00
|
|
|
#ifdef CONFIG_R8712_TX_AGGR
|
|
|
|
u8 r8712_xmitframe_aggr_1st(struct xmit_buf *pxmitbuf,
|
|
|
|
struct xmit_frame *pxmitframe);
|
|
|
|
u8 r8712_dump_aggr_xframe(struct xmit_buf *pxmitbuf,
|
|
|
|
struct xmit_frame *pxmitframe);
|
|
|
|
#endif
|
|
|
|
|
2010-08-20 15:15:30 +00:00
|
|
|
#endif
|