Updated to v4.3.8_12406.20140929

This commit is contained in:
CGarces
2017-05-11 20:35:20 +02:00
parent 1387cf623d
commit 9dde4572b4
229 changed files with 35553 additions and 24316 deletions

View File

@@ -77,9 +77,14 @@
// xmit extension buff defination
#define MAX_XMIT_EXTBUF_SZ (1536)
#define NR_XMIT_EXTBUFF (32)
#define MAX_CMDBUF_SZ (4096)
#ifdef CONFIG_SINGLE_XMIT_BUF
#define NR_XMIT_EXTBUFF (1)
#else
#define NR_XMIT_EXTBUFF (32)
#endif
#define MAX_CMDBUF_SZ (5120) //(4096)
#define MAX_NUMBLKS (1)
@@ -144,8 +149,24 @@ do{\
#define HWXMIT_ENTRY 4
#if defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A)|| defined(CONFIG_RTL8192E) || defined(CONFIG_RTL8723B)
// For Buffer Descriptor ring architecture
#ifdef BUF_DESC_ARCH
#if defined (CONFIG_RTL8192E)
#define TX_BUFFER_SEG_NUM 1 // 0:2 seg, 1: 4 seg, 2: 8 seg.
#endif
#endif
#if defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A)|| defined(CONFIG_RTL8723B)
#define TXDESC_SIZE 40
//8192EE_TODO
#elif defined (CONFIG_RTL8192E) // this section is defined for buffer descriptor ring architecture
#ifdef CONFIG_PCI_HCI
#define TXDESC_SIZE ((TX_BUFFER_SEG_NUM ==0)?16: ((TX_BUFFER_SEG_NUM ==1)? 32:64) )
#define TX_WIFI_INFO_SIZE 40
#else //USB or SDIO
#define TXDESC_SIZE 40
#endif
//8192EE_TODO
#else
#define TXDESC_SIZE 32
#endif
@@ -169,9 +190,13 @@ do{\
#endif
#ifdef CONFIG_PCI_HCI
#if defined(CONFIG_RTL8192E) // this section is defined for buffer descriptor ring architecture
#define TXDESC_OFFSET TX_WIFI_INFO_SIZE
#else
#define TXDESC_OFFSET 0
#endif
#define TX_DESC_NEXT_DESC_OFFSET (TXDESC_SIZE + 8)
#endif
#endif //CONFIG_PCI_HCI
enum TXDESC_SC{
SC_DONT_CARE = 0x00,
@@ -186,6 +211,20 @@ enum TXDESC_SC{
#define TXDESC_40_BYTES
#endif
#if defined(CONFIG_RTL8192E) && defined(CONFIG_PCI_HCI) //8192ee
//8192EE_TODO
struct tx_desc
{
unsigned int txdw0;
unsigned int txdw1;
unsigned int txdw2;
unsigned int txdw3;
unsigned int txdw4;
unsigned int txdw5;
unsigned int txdw6;
unsigned int txdw7;
};
#else
struct tx_desc
{
unsigned int txdw0;
@@ -216,7 +255,7 @@ struct tx_desc
unsigned int txdw15;
#endif
};
#endif
union txdesc {
struct tx_desc txdesc;
@@ -227,12 +266,13 @@ union txdesc {
#define PCI_MAX_TX_QUEUE_COUNT 8
struct rtw_tx_ring {
unsigned char qid;
struct tx_desc *desc;
dma_addr_t dma;
unsigned int idx;
unsigned int entries;
_queue queue;
u32 qlen;
dma_addr_t dma;
unsigned int idx;
unsigned int entries;
_queue queue;
u32 qlen;
};
#endif
@@ -331,6 +371,7 @@ struct pkt_attrib
u8 ch_offset;//PRIME_CHNL_OFFSET
u8 sgi;//short GI
u8 ampdu_en;//tx ampdu enable
u8 ampdu_spacing; //ampdu_min_spacing for peer sta's rx
u8 mdata;//more data bit
u8 pctrl;//per packet txdesc control enable
u8 triggered;//for ap mode handling Power Saving sta
@@ -491,6 +532,10 @@ struct xmit_buf
#endif
#endif
#ifdef CONFIG_PCI_HCI
struct tx_desc *desc;
#endif
#if defined(DBG_XMIT_BUF )|| defined(DBG_XMIT_BUF_EXT)
u8 no;
#endif
@@ -587,6 +632,12 @@ struct agg_pkt_info{
u16 pkt_len;
};
enum cmdbuf_type {
CMDBUF_BEACON = 0x00,
CMDBUF_RSVD,
CMDBUF_MAX
};
struct xmit_priv {
_lock lock;
@@ -674,7 +725,7 @@ struct xmit_priv {
#endif
#endif
#ifdef CONFIG_SDIO_HCI
#if defined (CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)
#ifdef CONFIG_SDIO_TX_TASKLET
#ifdef PLATFORM_LINUX
struct tasklet_struct xmit_tasklet;
@@ -697,7 +748,7 @@ struct xmit_priv {
u8 *pxmit_extbuf;
uint free_xmit_extbuf_cnt;
struct xmit_buf pcmd_xmitbuf;
struct xmit_buf pcmd_xmitbuf[CMDBUF_MAX];
u16 nqos_ssn;
#ifdef CONFIG_TX_EARLY_MODE
@@ -720,9 +771,10 @@ struct xmit_priv {
_lock lock_sctx;
};
extern struct xmit_frame *rtw_alloc_cmdxmitframe(struct xmit_priv *pxmitpriv);
extern struct xmit_buf *rtw_alloc_cmd_xmitbuf(struct xmit_priv *pxmitpriv);
extern s32 rtw_free_cmd_xmitbuf(struct xmit_priv *pxmitpriv);
extern struct xmit_frame *__rtw_alloc_cmdxmitframe(struct xmit_priv *pxmitpriv,
enum cmdbuf_type buf_type);
#define rtw_alloc_cmdxmitframe(p) __rtw_alloc_cmdxmitframe(p, CMDBUF_RSVD)
#define rtw_alloc_bcnxmitframe(p) __rtw_alloc_cmdxmitframe(p, CMDBUF_BEACON)
extern struct xmit_buf *rtw_alloc_xmitbuf_ext(struct xmit_priv *pxmitpriv);
extern s32 rtw_free_xmitbuf_ext(struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf);
@@ -733,7 +785,7 @@ extern s32 rtw_free_xmitbuf(struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitb
void rtw_count_tx_stats(_adapter *padapter, struct xmit_frame *pxmitframe, int sz);
extern void rtw_update_protection(_adapter *padapter, u8 *ie, uint ie_len);
static s32 update_attrib_sec_info(_adapter *padapter, struct pkt_attrib *pattrib, struct sta_info *psta);
static void update_attrib_phy_info(struct pkt_attrib *pattrib, struct sta_info *psta);
static void update_attrib_phy_info(_adapter *padapter, struct pkt_attrib *pattrib, struct sta_info *psta);
extern s32 rtw_make_wlanhdr(_adapter *padapter, u8 *hdr, struct pkt_attrib *pattrib);
extern s32 rtw_put_snap(u8 *data, u16 h_proto);
@@ -776,7 +828,7 @@ void rtw_free_hwxmits(_adapter *padapter);
s32 rtw_xmit(_adapter *padapter, _pkt **pkt);
bool xmitframe_hiq_filter(struct xmit_frame *xmitframe);
#if defined(CONFIG_AP_MODE) || defined(CONFIG_TDLS)
sint xmitframe_enqueue_for_sleeping_sta(_adapter *padapter, struct xmit_frame *pxmitframe);
void stop_sta_xmit(_adapter *padapter, struct sta_info *psta);