brintos

brintos / linux-shallow public Read only

0
0
Text · 6.7 KiB · 5eaab6b Raw
293 lines · c
1/* SPDX-License-Identifier: GPL-2.0+ */2/*3 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.4 * All rights reserved.5 *6 * Purpose: MAC Data structure7 *8 * Author: Tevin Chen9 *10 * Date: Mar 17, 199711 *12 */13 14#ifndef __DEVICE_H__15#define __DEVICE_H__16 17#include <linux/module.h>18#include <linux/types.h>19#include <linux/pci.h>20#include <linux/etherdevice.h>21#include <linux/skbuff.h>22#include <linux/interrupt.h>23#include <linux/crc32.h>24#include <net/mac80211.h>25 26/* device specific */27 28#include "device_cfg.h"29#include "card.h"30#include "srom.h"31#include "desc.h"32#include "key.h"33#include "mac.h"34 35/*---------------------  Export Definitions -------------------------*/36 37#define RATE_1M		038#define RATE_2M		139#define RATE_5M		240#define RATE_11M	341#define RATE_6M		442#define RATE_9M		543#define RATE_12M	644#define RATE_18M	745#define RATE_24M	846#define RATE_36M	947#define RATE_48M	1048#define RATE_54M	1149#define MAX_RATE	1250 51#define AUTO_FB_NONE            052#define AUTO_FB_0               153#define AUTO_FB_1               254 55#define FB_RATE0                056#define FB_RATE1                157 58/* Antenna Mode */59#define ANT_A                   060#define ANT_B                   161#define ANT_DIVERSITY           262#define ANT_RXD_TXA             363#define ANT_RXD_TXB             464#define ANT_UNKNOWN             0xFF65 66#define BB_VGA_LEVEL            467#define BB_VGA_CHANGE_THRESHOLD 1668 69#define MAKE_BEACON_RESERVED	10  /* (us) */70 71/* BUILD OBJ mode */72 73#define	AVAIL_TD(p, q)	((p)->opts.tx_descs[(q)] - ((p)->iTDUsed[(q)]))74 75/* 0:11A 1:11B 2:11G */76#define BB_TYPE_11A    077#define BB_TYPE_11B    178#define BB_TYPE_11G    279 80/* 0:11a, 1:11b, 2:11gb (only CCK in BasicRate), 3:11ga (OFDM in BasicRate) */81#define PK_TYPE_11A     082#define PK_TYPE_11B     183#define PK_TYPE_11GB    284#define PK_TYPE_11GA    385 86#define OWNED_BY_HOST	087#define	OWNED_BY_NIC	188 89struct vnt_options {90	int rx_descs0;		/* Number of RX descriptors0 */91	int rx_descs1;		/* Number of RX descriptors1 */92	int tx_descs[2];	/* Number of TX descriptors 0, 1 */93	int int_works;		/* interrupt limits */94	int short_retry;95	int long_retry;96	int bbp_type;97	u32 flags;98};99 100struct vnt_private {101	struct pci_dev *pcid;102	/* mac80211 */103	struct ieee80211_hw *hw;104	struct ieee80211_vif *vif;105	unsigned long key_entry_inuse;106	u32 basic_rates;107	u16 current_aid;108	int mc_list_count;109	u8 mac_hw;110 111/* dma addr, rx/tx pool */112	dma_addr_t                  pool_dma;113	dma_addr_t                  rd0_pool_dma;114	dma_addr_t                  rd1_pool_dma;115 116	dma_addr_t                  td0_pool_dma;117	dma_addr_t                  td1_pool_dma;118 119	dma_addr_t                  tx_bufs_dma0;120	dma_addr_t                  tx_bufs_dma1;121	dma_addr_t                  tx_beacon_dma;122 123	unsigned char *tx0_bufs;124	unsigned char *tx1_bufs;125	unsigned char *tx_beacon_bufs;126 127	void __iomem                *port_offset;128	u32                         memaddr;129	u32                         ioaddr;130 131	spinlock_t                  lock;132 133	volatile int                iTDUsed[TYPE_MAXTD];134 135	struct vnt_tx_desc *apCurrTD[TYPE_MAXTD];136	struct vnt_tx_desc *tail_td[TYPE_MAXTD];137 138	struct vnt_tx_desc *ap_td0_rings;139	struct vnt_tx_desc *ap_td1_rings;140 141	struct vnt_rx_desc *aRD0Ring;142	struct vnt_rx_desc *aRD1Ring;143	struct vnt_rx_desc *pCurrRD[TYPE_MAXRD];144 145	struct vnt_options opts;146 147	u32                         flags;148 149	u32                         rx_buf_sz;150	u8 rx_rate;151 152	u32                         rx_bytes;153 154	/* Version control */155	unsigned char local_id;156	unsigned char rf_type;157 158	unsigned char max_pwr_level;159	unsigned char byZoneType;160	bool bZoneRegExist;161	unsigned char byOriginalZonetype;162 163	unsigned char abyCurrentNetAddr[ETH_ALEN]; __aligned(2)164	bool bLinkPass;          /* link status: OK or fail */165 166	unsigned int current_rssi;167	unsigned char byCurrSQ;168 169	unsigned long dwTxAntennaSel;170	unsigned long dwRxAntennaSel;171	unsigned char byAntennaCount;172	unsigned char byRxAntennaMode;173	unsigned char byTxAntennaMode;174	bool bTxRxAntInv;175 176	unsigned char *pbyTmpBuff;177	unsigned int	uSIFS;    /* Current SIFS */178	unsigned int	uDIFS;    /* Current DIFS */179	unsigned int	uEIFS;    /* Current EIFS */180	unsigned int	uSlot;    /* Current SlotTime */181	unsigned int	uCwMin;   /* Current CwMin */182	unsigned int	uCwMax;   /* CwMax is fixed on 1023. */183	/* PHY parameter */184	unsigned char sifs;185	unsigned char difs;186	unsigned char eifs;187	unsigned char slot;188	unsigned char cw_max_min;189 190	u8		byBBType; /* 0:11A, 1:11B, 2:11G */191	u8		packet_type; /*192				      * 0:11a,1:11b,2:11gb (only CCK193				      * in BasicRate), 3:11ga (OFDM in194				      * Basic Rate)195				      */196	unsigned short wBasicRate;197	unsigned char byACKRate;198	unsigned char byTopOFDMBasicRate;199	unsigned char byTopCCKBasicRate;200 201	unsigned char byMinChannel;202	unsigned char byMaxChannel;203 204	unsigned char preamble_type;205	unsigned char byShortPreamble;206 207	unsigned short wCurrentRate;208	unsigned char byShortRetryLimit;209	unsigned char byLongRetryLimit;210	enum nl80211_iftype op_mode;211	bool bBSSIDFilter;212	unsigned short wMaxTransmitMSDULifetime;213 214	bool bEncryptionEnable;215	bool bLongHeader;216	bool short_slot_time;217	bool bProtectMode;218	bool bNonERPPresent;219	bool bBarkerPreambleMd;220 221	bool bRadioControlOff;222	bool radio_off;223	bool bEnablePSMode;224	unsigned short wListenInterval;225	bool bPWBitOn;226 227	/* GPIO Radio Control */228	unsigned char byRadioCtl;229	unsigned char byGPIO;230	bool hw_radio_off;231	bool bPrvActive4RadioOFF;232	bool bGPIOBlockRead;233 234	/* Beacon related */235	unsigned short wSeqCounter;236	unsigned short wBCNBufLen;237	bool bBeaconBufReady;238	bool bBeaconSent;239	bool bIsBeaconBufReadySet;240	unsigned int	cbBeaconBufReadySetCnt;241	bool bFixRate;242	u16 current_ch;243 244	bool bAES;245 246	unsigned char byAutoFBCtrl;247 248	/* For Update BaseBand VGA Gain Offset */249	bool update_bbvga;250	unsigned int	uBBVGADiffCount;251	unsigned char bbvga_new;252	unsigned char bbvga_current;253	unsigned char bbvga[BB_VGA_LEVEL];254	long                    dbm_threshold[BB_VGA_LEVEL];255 256	unsigned char bb_pre_edrssi;257	unsigned char byBBPreEDIndex;258 259	unsigned long dwDiagRefCount;260 261	/* For FOE Tuning */262	unsigned char byFOETuning;263 264	/* For RF Power table */265	unsigned char byCCKPwr;266	unsigned char byOFDMPwrG;267	unsigned char cur_pwr;268	char	 byCurPwrdBm;269	unsigned char abyCCKPwrTbl[CB_MAX_CHANNEL_24G + 1];270	unsigned char abyOFDMPwrTbl[CB_MAX_CHANNEL + 1];271	char	abyCCKDefaultPwr[CB_MAX_CHANNEL_24G + 1];272	char	abyOFDMDefaultPwr[CB_MAX_CHANNEL + 1];273	char	abyRegPwr[CB_MAX_CHANNEL + 1];274	char	abyLocalPwr[CB_MAX_CHANNEL + 1];275 276	/* BaseBand Loopback Use */277	unsigned char byBBCR4d;278	unsigned char byBBCRc9;279	unsigned char byBBCR88;280	unsigned char byBBCR09;281 282	unsigned char abyEEPROM[EEP_MAX_CONTEXT_SIZE]; /* unsigned long alignment */283 284	unsigned short beacon_interval;285	u16 wake_up_count;286 287	struct work_struct interrupt_work;288 289	struct ieee80211_low_level_stats low_stats;290};291 292#endif293