linux/drivers/staging/rtl8712/rtl8712_xmit.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/******************************************************************************
   3 *
   4 * Copyright(c) 2007 - 2010 Realtek Corporation. All rights reserved.
   5 *
   6 * Modifications for inclusion into the Linux staging tree are
   7 * Copyright(c) 2010 Larry Finger. All rights reserved.
   8 *
   9 * Contact information:
  10 * WLAN FAE <wlanfae@realtek.com>
  11 * Larry Finger <Larry.Finger@lwfinger.net>
  12 *
  13 ******************************************************************************/
  14#ifndef _RTL8712_XMIT_H_
  15#define _RTL8712_XMIT_H_
  16
  17#define HWXMIT_ENTRY    4
  18
  19#define VO_QUEUE_INX    0
  20#define VI_QUEUE_INX    1
  21#define BE_QUEUE_INX    2
  22#define BK_QUEUE_INX    3
  23#define TS_QUEUE_INX    4
  24#define MGT_QUEUE_INX   5
  25#define BMC_QUEUE_INX   6
  26#define BCN_QUEUE_INX   7
  27
  28#define HW_QUEUE_ENTRY  8
  29
  30#define TXDESC_SIZE 32
  31#define TXDESC_OFFSET TXDESC_SIZE
  32
  33#define NR_AMSDU_XMITFRAME 8
  34#define NR_TXAGG_XMITFRAME 8
  35
  36#define MAX_AMSDU_XMITBUF_SZ 8704
  37#define MAX_TXAGG_XMITBUF_SZ 16384 /*16k*/
  38
  39#define tx_cmd tx_desc
  40
  41/*
  42 *defined for TX DESC Operation
  43 */
  44
  45#define MAX_TID (15)
  46
  47/*OFFSET 0*/
  48#define OFFSET_SZ (0)
  49#define OFFSET_SHT (16)
  50#define OWN     BIT(31)
  51#define FSG     BIT(27)
  52#define LSG     BIT(26)
  53#define TYPE_SHT (24)
  54#define TYPE_MSK (0x03000000)
  55
  56/*OFFSET 4*/
  57#define PKT_OFFSET_SZ (0)
  58#define QSEL_SHT (8)
  59#define HWPC BIT(31)
  60
  61/*OFFSET 8*/
  62#define BMC BIT(7)
  63#define BK BIT(30)
  64#define AGG_EN BIT(29)
  65#define RTS_RC_SHT (16)
  66
  67/*OFFSET 12*/
  68#define SEQ_SHT (16)
  69
  70/*OFFSET 16*/
  71#define TXBW BIT(18)
  72
  73/*OFFSET 20*/
  74#define DISFB BIT(15)
  75#define RSVD6_MSK (0x00E00000)
  76#define RSVD6_SHT (21)
  77
  78struct tx_desc {
  79        /*DWORD 0*/
  80        __le32 txdw0;
  81        __le32 txdw1;
  82        __le32 txdw2;
  83        __le32 txdw3;
  84        __le32 txdw4;
  85        __le32 txdw5;
  86        __le32 txdw6;
  87        __le32 txdw7;
  88};
  89
  90union txdesc {
  91        struct tx_desc txdesc;
  92        unsigned int value[TXDESC_SIZE >> 2];
  93};
  94
  95int r8712_xmitframe_complete(struct _adapter *padapter,
  96                             struct xmit_priv *pxmitpriv,
  97                             struct xmit_buf *pxmitbuf);
  98void r8712_do_queue_select(struct _adapter *padapter,
  99                           struct pkt_attrib *pattrib);
 100
 101#ifdef CONFIG_R8712_TX_AGGR
 102void r8712_xmitframe_aggr_1st(struct xmit_buf *pxmitbuf,
 103                              struct xmit_frame *pxmitframe);
 104void r8712_dump_aggr_xframe(struct xmit_buf *pxmitbuf,
 105                            struct xmit_frame *pxmitframe);
 106#endif
 107
 108#endif
 109