Updated to 4.4.1

This commit is contained in:
CGarces
2017-05-11 20:47:23 +02:00
parent 9dde4572b4
commit 3d6c7de21a
396 changed files with 174471 additions and 106990 deletions

View File

@@ -40,7 +40,7 @@
#elif defined (CONFIG_USB_HCI)
#ifdef CONFIG_USB_TX_AGGREGATION
#if defined(CONFIG_PLATFORM_ARM_SUNxI) || defined(CONFIG_PLATFORM_ARM_SUN6I) || defined(CONFIG_PLATFORM_ARM_SUN7I) || defined(CONFIG_PLATFORM_ARM_SUN8I)
#if defined(CONFIG_PLATFORM_ARM_SUNxI) || defined(CONFIG_PLATFORM_ARM_SUN6I) || defined(CONFIG_PLATFORM_ARM_SUN7I) || defined(CONFIG_PLATFORM_ARM_SUN8I) || defined(CONFIG_PLATFORM_ARM_SUN50IW1P1)
#define MAX_XMITBUF_SZ (12288) //12k 1536*8
#elif defined (CONFIG_PLATFORM_MSTAR)
#define MAX_XMITBUF_SZ 7680 // 7.5k
@@ -84,7 +84,11 @@
#define NR_XMIT_EXTBUFF (32)
#endif
#ifdef CONFIG_RTL8812A
#define MAX_CMDBUF_SZ (512*14)
#else
#define MAX_CMDBUF_SZ (5120) //(4096)
#endif
#define MAX_NUMBLKS (1)
@@ -151,24 +155,17 @@ do{\
// 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.
#if defined(CONFIG_RTL8192E)
#define TX_BUFFER_SEG_NUM 1 /* 0:2 seg, 1: 4 seg, 2: 8 seg. */
#elif defined(CONFIG_RTL8814A)
#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)
#if defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A) || defined(CONFIG_RTL8723B) || defined(CONFIG_RTL8192E) || defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8703B) || defined(CONFIG_RTL8188F)
#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
#define TXDESC_SIZE 32 /* old IC (ex: 8188E) */
#endif
#ifdef CONFIG_TX_EARLY_MODE
@@ -190,13 +187,18 @@ 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
#if defined(CONFIG_RTL8192E) || defined(CONFIG_RTL8814A)
/* this section is defined for buffer descriptor ring architecture */
#define TX_WIFI_INFO_SIZE (TXDESC_SIZE) /* it may add 802.11 hdr or others... */
/* tx desc and payload are in the same buf */
#define TXDESC_OFFSET (TX_WIFI_INFO_SIZE)
#else
#define TXDESC_OFFSET 0
#endif
/* tx desc and payload are NOT in the same buf */
#define TXDESC_OFFSET (0)
/* 8188ee/8723be/8812ae/8821ae has extra PCI DMA info in tx desc */
#define TX_DESC_NEXT_DESC_OFFSET (TXDESC_SIZE + 8)
#endif //CONFIG_PCI_HCI
#endif
#endif /* CONFIG_PCI_HCI */
enum TXDESC_SC{
SC_DONT_CARE = 0x00,
@@ -207,11 +209,11 @@ enum TXDESC_SC{
#ifdef CONFIG_PCI_HCI
#define TXDESC_64_BYTES
#elif defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A) || defined(CONFIG_RTL8723B)
#elif defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A) || defined(CONFIG_RTL8723B) || defined(CONFIG_RTL8188F)
#define TXDESC_40_BYTES
#endif
#if defined(CONFIG_RTL8192E) && defined(CONFIG_PCI_HCI) //8192ee
#if (defined(CONFIG_RTL8192E) || defined(CONFIG_RTL8814A)) && defined(CONFIG_PCI_HCI) /* 8192ee or 8814ae */
//8192EE_TODO
struct tx_desc
{
@@ -345,6 +347,7 @@ struct pkt_attrib
u8 dhcp_pkt;
u16 ether_type;
u16 seqnum;
u8 hw_ssn_sel; //for HW_SEQ0,1,2,3
u16 pkt_hdrlen; //the original 802.3 pkt header len
u16 hdrlen; //the WLAN Header Len
u32 pktlen; //the original 802.3 pkt raw_data len (not include ether_hdr data)
@@ -399,28 +402,18 @@ struct pkt_attrib
u8 direct_link;
struct sta_info *ptdls_sta;
#endif //CONFIG_TDLS
u8 key_type;
u8 icmp_pkt;
#ifdef CONFIG_BEAMFORMING
u16 txbf_p_aid;/*beamforming Partial_AID*/
u16 txbf_g_id;/*beamforming Group ID*/
#endif
};
#endif
#ifdef PLATFORM_FREEBSD
#define ETH_ALEN 6 /* Octets in one ethernet addr */
#define ETH_HLEN 14 /* Total octets in header. */
#define ETH_P_IP 0x0800 /* Internet Protocol packet */
/*struct rtw_ieee80211_hdr {
uint16_t frame_control;
uint16_t duration_id;
u8 addr1[6];
u8 addr2[6];
u8 addr3[6];
uint16_t seq_ctrl;
u8 addr4[6];
} ;*/
#endif //PLATFORM_FREEBSD
#define WLANHDR_OFFSET 64
#define NULL_FRAMETAG (0x0)
@@ -442,6 +435,8 @@ enum {
XMITBUF_CMD = 2,
};
bool rtw_xmit_ac_blocked(_adapter *adapter);
struct submit_ctx{
u32 submit_time; /* */
u32 timeout_ms; /* <0: not synchronous, 0: wait forever, >0: up to ms waiting */
@@ -569,10 +564,6 @@ struct xmit_frame
u8 agg_num;
#endif
s8 pkt_offset;
#ifdef CONFIG_RTL8192D
u8 EMPktNum;
u16 EMPktLen[5];//The max value by HW
#endif
#endif
#ifdef CONFIG_XMIT_ACK
@@ -638,6 +629,8 @@ enum cmdbuf_type {
CMDBUF_MAX
};
u8 rtw_get_hwseq_no(_adapter *padapter);
struct xmit_priv {
_lock lock;
@@ -749,7 +742,7 @@ struct xmit_priv {
uint free_xmit_extbuf_cnt;
struct xmit_buf pcmd_xmitbuf[CMDBUF_MAX];
u8 hw_ssn_seq_no;//mapping to REG_HW_SEQ 0,1,2,3
u16 nqos_ssn;
#ifdef CONFIG_TX_EARLY_MODE
@@ -774,7 +767,13 @@ struct xmit_priv {
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)
#if defined(CONFIG_RTL8192E) && defined(CONFIG_PCI_HCI)
extern struct xmit_frame *__rtw_alloc_cmdxmitframe_8192ee(struct xmit_priv *pxmitpriv,
enum cmdbuf_type buf_type);
#define rtw_alloc_bcnxmitframe(p) __rtw_alloc_cmdxmitframe_8192ee(p, CMDBUF_BEACON)
#else
#define rtw_alloc_bcnxmitframe(p) __rtw_alloc_cmdxmitframe(p, CMDBUF_BEACON)
#endif
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);
@@ -826,6 +825,7 @@ void _rtw_free_xmit_priv (struct xmit_priv *pxmitpriv);
void rtw_alloc_hwxmits(_adapter *padapter);
void rtw_free_hwxmits(_adapter *padapter);
s32 rtw_monitor_xmit_entry(struct sk_buff *skb, struct net_device *ndev);
s32 rtw_xmit(_adapter *padapter, _pkt **pkt);
bool xmitframe_hiq_filter(struct xmit_frame *xmitframe);