8723BU: Update 8723BU wifi driver to version v4.3.16_14189.20150519_BTCOEX2015119...
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8723bu / include / rtw_xmit.h
index 10bfb182a16f668fb224b1efb0968c62d2e7e569..c7938684a65d6e9f7b6bca3e8984393b288371d4 100755 (executable)
 
 // xmit extension buff defination
 #define MAX_XMIT_EXTBUF_SZ     (1536)
+
+#ifdef CONFIG_SINGLE_XMIT_BUF
+#define NR_XMIT_EXTBUFF        (1)
+#else
 #define NR_XMIT_EXTBUFF        (32)
+#endif
 
 #define MAX_CMDBUF_SZ  (5120)  //(4096)
 
@@ -151,14 +156,14 @@ do{\
 #endif
 #endif
 
-#if defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A)|| defined(CONFIG_RTL8723B)
+#if defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A)|| defined(CONFIG_RTL8723B) || defined(CONFIG_RTL8814A)
 #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
+       #else  //8192E USB or SDIO
                #define TXDESC_SIZE 40
        #endif
 //8192EE_TODO
@@ -340,6 +345,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)
@@ -564,10 +570,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
@@ -633,6 +635,8 @@ enum cmdbuf_type {
        CMDBUF_MAX
 };
 
+u8 rtw_get_hwseq_no(_adapter *padapter);
+
 struct xmit_priv       {
 
        _lock   lock;
@@ -744,7 +748,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
 
@@ -769,7 +773,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);