OSDN Git Service

rtl8723au: Remove dead code associated with CONFIG_GSPI_HCI
[android-x86/external-modules-rtl8723au.git] / include / rtw_xmit.h
old mode 100755 (executable)
new mode 100644 (file)
index 574cacd..e9f9563
 #include <osdep_service.h>
 #include <drv_types.h>
 
-#if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)
-//#define MAX_XMITBUF_SZ (30720)//     (2048)
-#ifdef CONFIG_TX_AGGREGATION
-#define MAX_XMITBUF_SZ (20480) // 20k
-#else
-#define MAX_XMITBUF_SZ (12288)  //12k 1536*8
-#endif
-
-#if defined CONFIG_SDIO_HCI
-#define NR_XMITBUFF    (16)
-#endif
-#if defined(CONFIG_GSPI_HCI)
-#define NR_XMITBUFF    (128)
-#endif
-
-#elif defined (CONFIG_USB_HCI)
+#if defined (CONFIG_USB_HCI)
 
 #ifdef CONFIG_USB_TX_AGGREGATION
-#define MAX_XMITBUF_SZ 20480   // 20k
+#define MAX_XMITBUF_SZ (20480) // 20k
 #else
 #define MAX_XMITBUF_SZ (2048)
 #endif
 #else
 #define NR_XMITBUFF    (4)
 #endif //CONFIG_SINGLE_XMIT_BUF
-#elif defined (CONFIG_PCI_HCI)
-#define MAX_XMITBUF_SZ (1664)
-#define NR_XMITBUFF    (128)
 #endif
 
-#ifdef CONFIG_PCI_HCI
-#define XMITBUF_ALIGN_SZ 4
-#else
 #define XMITBUF_ALIGN_SZ 512
-#endif
 
 // xmit extension buff defination
 #define MAX_XMIT_EXTBUF_SZ     (1536)
 
 #define HW_QUEUE_ENTRY 8
 
-#ifdef CONFIG_PCI_HCI
-//#define TXDESC_NUM                                           64
-#define TXDESC_NUM                                             128
-#define TXDESC_NUM_BE_QUEUE                    128
-#endif
-
 #define WEP_IV(pattrib_iv, dot11txpn, keyidx)\
 do{\
        pattrib_iv[0] = dot11txpn._byte_.TSC0;\
@@ -137,23 +109,11 @@ do{\
 #endif
 
 
-#if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)
-#define TXDESC_OFFSET TXDESC_SIZE
-
-#endif
-
 #ifdef CONFIG_USB_HCI
 #define PACKET_OFFSET_SZ (8)
 #define TXDESC_OFFSET (TXDESC_SIZE + PACKET_OFFSET_SZ)
 #endif
 
-#ifdef CONFIG_PCI_HCI
-#define TXDESC_OFFSET 0
-#define TX_DESC_NEXT_DESC_OFFSET       40
-#endif
-
-
-
 struct tx_desc{
 
        //DWORD 0
@@ -172,27 +132,6 @@ struct tx_desc{
        unsigned int txdw6;
 
        unsigned int txdw7;
-#ifdef CONFIG_PCI_HCI
-       unsigned int txdw8;
-
-       unsigned int txdw9;
-
-       unsigned int txdw10;
-
-       unsigned int txdw11;
-
-       // 2008/05/15 MH Because PCIE HW memory R/W 4K limit. And now,  our descriptor
-       // size is 40 bytes. If you use more than 102 descriptor( 103*40>4096), HW will execute
-       // memoryR/W CRC error. And then all DMA fetch will fail. We must decrease descriptor
-       // number or enlarge descriptor size as 64 bytes.
-       unsigned int txdw12;
-
-       unsigned int txdw13;
-
-       unsigned int txdw14;
-
-       unsigned int txdw15;
-#endif
 };
 
 
@@ -201,25 +140,12 @@ union txdesc {
        unsigned int value[TXDESC_SIZE>>2];
 };
 
-#ifdef CONFIG_PCI_HCI
-#define PCI_MAX_TX_QUEUE_COUNT 8
-
-struct rtw_tx_ring {
-       struct tx_desc  *desc;
-       dma_addr_t              dma;
-       unsigned int            idx;
-       unsigned int            entries;
-       _queue                  queue;
-       u32                             qlen;
-};
-#endif
-
 struct hw_xmit {
-       //_lock xmit_lock;
+       //spinlock_t xmit_lock;
        //_list pending;
        _queue *sta_queue;
        //struct hw_txqueue *phwtxqueue;
-       //sint  txcmdcnt;
+       //int   txcmdcnt;
        int     accnt;
 };
 
@@ -305,6 +231,8 @@ enum {
        RTW_SCTX_DONE_TX_DESC_NA,
        RTW_SCTX_DONE_TX_DENY,
        RTW_SCTX_DONE_CCX_PKT_FAIL,
+       RTW_SCTX_DONE_DRV_STOP,
+       RTW_SCTX_DONE_DEV_REMOVE,
 };
 
 
@@ -343,20 +271,10 @@ struct xmit_buf
 
        u8 bpending[8];
 
-       sint last[8];
+       int last[8];
 
 #endif
 
-#if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)
-       u8 *phead;
-       u8 *pdata;
-       u8 *ptail;
-       u8 *pend;
-       u32 ff_hwaddr;
-       u8      pg_num;
-       u8      agg_num;
-#endif
-
 #if defined(DBG_XMIT_BUF )|| defined(DBG_XMIT_BUF_EXT)
        u8 no;
 #endif
@@ -380,22 +298,24 @@ struct xmit_frame
 
        struct xmit_buf *pxmitbuf;
 
-#if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)
-       u8      pg_num;
-       u8      agg_num;
-#endif
-
 #ifdef CONFIG_USB_HCI
 #ifdef CONFIG_USB_TX_AGGREGATION
        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
        u8 ack_report;
 #endif
 
+       u8 *alloc_addr; /* the actual address this xmitframe allocated */
+       u8 ext_tag; /* 0:data, 1:mgmt */
+
 };
 
 struct tx_servq {
@@ -407,9 +327,9 @@ struct tx_servq {
 
 struct sta_xmit_priv
 {
-       _lock   lock;
-       sint    option;
-       sint    apsd_setting;   //When bit mask is on, the associated edca queue supports APSD.
+       spinlock_t      lock;
+       int     option;
+       int     apsd_setting;   //When bit mask is on, the associated edca queue supports APSD.
 
 
        //struct tx_servq blk_q[MAX_NUMBLKS];
@@ -431,14 +351,14 @@ struct sta_xmit_priv
 
 
 struct hw_txqueue      {
-       volatile sint   head;
-       volatile sint   tail;
-       volatile sint   free_sz;        //in units of 64 bytes
-       volatile sint      free_cmdsz;
-       volatile sint    txsz[8];
+       volatile int    head;
+       volatile int    tail;
+       volatile int    free_sz;        //in units of 64 bytes
+       volatile int      free_cmdsz;
+       volatile int     txsz[8];
        uint    ff_hwaddr;
        uint    cmd_hwaddr;
-       sint    ac_tag;
+       int     ac_tag;
 };
 
 struct agg_pkt_info{
@@ -448,10 +368,10 @@ struct agg_pkt_info{
 
 struct xmit_priv       {
 
-       _lock   lock;
+       spinlock_t      lock;
 
-       _sema   xmit_sema;
-       _sema   terminate_xmitthread_sema;
+       struct semaphore        xmit_sema;
+       struct semaphore        terminate_xmitthread_sema;
 
        //_queue        blk_strms[MAX_NUMBLKS];
        _queue  be_pending;
@@ -466,11 +386,15 @@ struct    xmit_priv       {
        u8 *pallocated_frame_buf;
        u8 *pxmit_frame_buf;
        uint free_xmitframe_cnt;
+       _queue  free_xmit_queue;
 
        //uint mapping_addr;
        //uint pkt_sz;
 
-       _queue  free_xmit_queue;
+       u8 *xframe_ext_alloc_addr;
+       u8 *xframe_ext;
+       uint free_xframe_ext_cnt;
+       _queue free_xframe_ext_queue;
 
        //struct        hw_txqueue      be_txqueue;
        //struct        hw_txqueue      bk_txqueue;
@@ -499,7 +423,7 @@ struct      xmit_priv       {
        u8      wmm_para_seq[4];//sequence for wmm ac parameter strength from large to small. it's value is 0->vo, 1->vi, 2->be, 3->bk.
 
 #ifdef CONFIG_USB_HCI
-       _sema   tx_retevt;//all tx return event;
+       struct semaphore        tx_retevt;//all tx return event;
        u8              txirp_cnt;//
 
        struct tasklet_struct xmit_tasklet;
@@ -511,20 +435,6 @@ struct     xmit_priv       {
 
 #endif
 
-#ifdef CONFIG_PCI_HCI
-       // Tx
-       struct rtw_tx_ring      tx_ring[PCI_MAX_TX_QUEUE_COUNT];
-       int     txringcount[PCI_MAX_TX_QUEUE_COUNT];
-       u8      beaconDMAing;           //flag of indicating beacon is transmiting to HW by DMA
-       struct tasklet_struct xmit_tasklet;
-#endif
-
-#ifdef CONFIG_SDIO_HCI
-#ifdef CONFIG_SDIO_TX_TASKLET
-       struct tasklet_struct xmit_tasklet;
-#endif
-#endif
-
        _queue free_xmitbuf_queue;
        _queue pending_xmitbuf_queue;
        u8 *pallocated_xmitbuf;
@@ -539,11 +449,7 @@ struct     xmit_priv       {
        u16     nqos_ssn;
        #ifdef CONFIG_TX_EARLY_MODE
 
-       #ifdef CONFIG_SDIO_HCI
-       #define MAX_AGG_PKT_NUM 20
-       #else
        #define MAX_AGG_PKT_NUM 256 //Max tx ampdu coounts
-       #endif
 
        struct agg_pkt_info agg_pkt[MAX_AGG_PKT_NUM];
        #endif
@@ -553,7 +459,7 @@ struct      xmit_priv       {
        _mutex ack_tx_mutex;
        struct submit_ctx ack_tx_ops;
 #endif
-
+       spinlock_t lock_sctx;
 };
 
 extern struct xmit_buf *rtw_alloc_xmitbuf_ext(struct xmit_priv *pxmitpriv);
@@ -568,11 +474,13 @@ extern s32 rtw_make_wlanhdr(_adapter *padapter, u8 *hdr, struct pkt_attrib *patt
 extern s32 rtw_put_snap(u8 *data, u16 h_proto);
 
 extern struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv);
+struct xmit_frame *rtw_alloc_xmitframe_ext(struct xmit_priv *pxmitpriv);
+struct xmit_frame *rtw_alloc_xmitframe_once(struct xmit_priv *pxmitpriv);
 extern s32 rtw_free_xmitframe(struct xmit_priv *pxmitpriv, struct xmit_frame *pxmitframe);
 extern void rtw_free_xmitframe_queue(struct xmit_priv *pxmitpriv, _queue *pframequeue);
-struct tx_servq *rtw_get_sta_pending(_adapter *padapter, struct sta_info *psta, sint up, u8 *ac);
+struct tx_servq *rtw_get_sta_pending(_adapter *padapter, struct sta_info *psta, int up, u8 *ac);
 extern s32 rtw_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe);
-extern struct xmit_frame* rtw_dequeue_xframe(struct xmit_priv *pxmitpriv, struct hw_xmit *phwxmit_i, sint entry);
+extern struct xmit_frame* rtw_dequeue_xframe(struct xmit_priv *pxmitpriv, struct hw_xmit *phwxmit_i, int entry);
 
 extern s32 rtw_xmit_classifier(_adapter *padapter, struct xmit_frame *pxmitframe);
 extern u32 rtw_calculate_wlan_pkt_size_by_attribue(struct pkt_attrib *pattrib);
@@ -587,7 +495,7 @@ void _rtw_init_sta_xmit_priv(struct sta_xmit_priv *psta_xmitpriv);
 
 s32 rtw_txframes_pending(_adapter *padapter);
 s32 rtw_txframes_sta_ac_pending(_adapter *padapter, struct pkt_attrib *pattrib);
-void rtw_init_hwxmits(struct hw_xmit *phwxmit, sint entry);
+void rtw_init_hwxmits(struct hw_xmit *phwxmit, int entry);
 
 
 s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, _adapter *padapter);
@@ -601,7 +509,7 @@ void rtw_free_hwxmits(_adapter *padapter);
 s32 rtw_xmit(_adapter *padapter, _pkt **pkt);
 
 #if defined(CONFIG_AP_MODE) || defined(CONFIG_TDLS)
-sint xmitframe_enqueue_for_sleeping_sta(_adapter *padapter, struct xmit_frame *pxmitframe);
+int xmitframe_enqueue_for_sleeping_sta(_adapter *padapter, struct xmit_frame *pxmitframe);
 void stop_sta_xmit(_adapter *padapter, struct sta_info *psta);
 void wakeup_sta_to_xmit(_adapter *padapter, struct sta_info *psta);
 void xmit_delivery_enabled_frames(_adapter *padapter, struct sta_info *psta);
@@ -613,7 +521,7 @@ u8  qos_acm(u8 acm_mask, u8 priority);
 void   enqueue_pending_xmitbuf(struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf);
 struct xmit_buf*       dequeue_pending_xmitbuf(struct xmit_priv *pxmitpriv);
 struct xmit_buf*       dequeue_pending_xmitbuf_under_survey(struct xmit_priv *pxmitpriv);
-sint   check_pending_xmitbuf(struct xmit_priv *pxmitpriv);
+int    check_pending_xmitbuf(struct xmit_priv *pxmitpriv);
 thread_return  rtw_xmit_thread(thread_context context);
 #endif