Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /******************************************************************************
0003  *
0004  * Copyright(c) 2007 - 2010 Realtek Corporation. All rights reserved.
0005  *
0006  * Modifications for inclusion into the Linux staging tree are
0007  * Copyright(c) 2010 Larry Finger. All rights reserved.
0008  *
0009  * Contact information:
0010  * WLAN FAE <wlanfae@realtek.com>
0011  * Larry Finger <Larry.Finger@lwfinger.net>
0012  *
0013  ******************************************************************************/
0014 #ifndef _RTL8712_XMIT_H_
0015 #define _RTL8712_XMIT_H_
0016 
0017 #define HWXMIT_ENTRY    4
0018 
0019 #define VO_QUEUE_INX    0
0020 #define VI_QUEUE_INX    1
0021 #define BE_QUEUE_INX    2
0022 #define BK_QUEUE_INX    3
0023 #define TS_QUEUE_INX    4
0024 #define MGT_QUEUE_INX   5
0025 #define BMC_QUEUE_INX   6
0026 #define BCN_QUEUE_INX   7
0027 
0028 #define HW_QUEUE_ENTRY  8
0029 
0030 #define TXDESC_SIZE 32
0031 #define TXDESC_OFFSET TXDESC_SIZE
0032 
0033 #define NR_AMSDU_XMITFRAME 8
0034 #define NR_TXAGG_XMITFRAME 8
0035 
0036 #define MAX_AMSDU_XMITBUF_SZ 8704
0037 #define MAX_TXAGG_XMITBUF_SZ 16384 /*16k*/
0038 
0039 #define tx_cmd tx_desc
0040 
0041 /*
0042  *defined for TX DESC Operation
0043  */
0044 
0045 #define MAX_TID (15)
0046 
0047 /*OFFSET 0*/
0048 #define OFFSET_SZ (0)
0049 #define OFFSET_SHT (16)
0050 #define OWN BIT(31)
0051 #define FSG BIT(27)
0052 #define LSG BIT(26)
0053 #define TYPE_SHT (24)
0054 #define TYPE_MSK (0x03000000)
0055 
0056 /*OFFSET 4*/
0057 #define PKT_OFFSET_SZ (0)
0058 #define QSEL_SHT (8)
0059 #define HWPC BIT(31)
0060 
0061 /*OFFSET 8*/
0062 #define BMC BIT(7)
0063 #define BK BIT(30)
0064 #define AGG_EN BIT(29)
0065 #define RTS_RC_SHT (16)
0066 
0067 /*OFFSET 12*/
0068 #define SEQ_SHT (16)
0069 
0070 /*OFFSET 16*/
0071 #define TXBW BIT(18)
0072 
0073 /*OFFSET 20*/
0074 #define DISFB BIT(15)
0075 #define RSVD6_MSK (0x00E00000)
0076 #define RSVD6_SHT (21)
0077 
0078 struct tx_desc {
0079     /*DWORD 0*/
0080     __le32 txdw0;
0081     __le32 txdw1;
0082     __le32 txdw2;
0083     __le32 txdw3;
0084     __le32 txdw4;
0085     __le32 txdw5;
0086     __le32 txdw6;
0087     __le32 txdw7;
0088 };
0089 
0090 union txdesc {
0091     struct tx_desc txdesc;
0092     unsigned int value[TXDESC_SIZE >> 2];
0093 };
0094 
0095 int r8712_xmitframe_complete(struct _adapter *padapter,
0096                  struct xmit_priv *pxmitpriv,
0097                  struct xmit_buf *pxmitbuf);
0098 void r8712_do_queue_select(struct _adapter *padapter,
0099                struct pkt_attrib *pattrib);
0100 
0101 #ifdef CONFIG_R8712_TX_AGGR
0102 void r8712_xmitframe_aggr_1st(struct xmit_buf *pxmitbuf,
0103                   struct xmit_frame *pxmitframe);
0104 void r8712_dump_aggr_xframe(struct xmit_buf *pxmitbuf,
0105                 struct xmit_frame *pxmitframe);
0106 #endif
0107 
0108 #endif