⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zd1205.h

📁 zd1211b芯片的无线网卡的驱动,移植到s3c2410平台
💻 H
📖 第 1 页 / 共 3 页
字号:
	u8			ep4isIntOut;
	u8			cmd_end;
	u8			read_end;
	u16			wMaxPacketSize;
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))      
	unsigned int		flags;
	unsigned int		kevent_flags;
#else
	unsigned long		flags;
	unsigned long		kevent_flags;
#endif
	int 			release;			/* release number */
	int			total_rx_cnt;
	int			end;
	u32			usbTxCnt;
	u32			usbTxCompCnt;
	struct rx_list_elem **rx_struct_array;
	struct tasklet_struct zd1211_rx_tasklet;
	struct tasklet_struct zd1211_tx_tasklet;
	struct tasklet_struct rx_buff_tasklet;
        struct work_struct      scan_tout_event;

	struct work_struct	kevent;
	struct zdap_ioctl	zdreq;
	struct ifreq		ifreq;
	struct zydas_wlan_param	zd_wpa_req;
	int			ifcmd;
    
	//debug counter
	u32			regWaitRCompCnt;
	u32			regWaitWCompCnt;
	u32			regRWCompCnt;
	u32			regWaitRspCnt;
	u32			regRspCompCnt;
	u32			regUnCompCnt;
	u32			regRdSleepCnt;
#else
	struct pci_dev 		*pdev;	
#endif

	struct driver_stats	drv_stats;
#if ZDCONF_WE_STAT_SUPPORT == 1
	struct iw_statistics iwstats;
#elif !defined(ZDCONF_WE_STAT_SUPPORT)
	#error "Undefine ZDCONF_WE_STAT_SUPPORT"
#endif
	struct timer_list 	watchdog_timer;		/* watchdog timer id */
	struct timer_list 	tm_chal_id;
	struct timer_list	tm_scan_id;
	struct timer_list	tm_auth_id;
	struct timer_list	tm_asoc_id;
	struct timer_list	tm_hking_id;
	struct timer_list	tm_mgt_id;
#if ZDCONF_LP_SUPPORT == 1
    struct timer_list   tm_lp_poll_id;
#endif

	char			ifname[IFNAMSIZ];
	spinlock_t 		bd_lock;		/* board lock */
	spinlock_t 		bd_non_tx_lock;		/* Non transmit command lock  */
	spinlock_t		q_lock;
	spinlock_t		cs_lock;
	spinlock_t		conf_lock;
	int	                using_dac;
	struct tasklet_struct zd1205_tasklet;
	struct tasklet_struct zd1205_ps_tasklet;
	struct tasklet_struct zd1205_tx_tasklet;
	struct proc_dir_entry *proc_parent;
	struct list_head 	active_rx_list;		/* list of rx buffers */
	struct list_head 	rx_struct_pool;		/* pool of rx buffer struct headers */
	u16 			rfd_size;	
	u8			rev_id;			/* adapter PCI revision ID */
	u8	                sniffer_on;	
	int			skb_req;		/* number of skbs neede by the adapter */
	
	rwlock_t 		isolate_lock;

	int			driver_isolated;
	char			*cable_status;
	void			*regp;
	u8			macAdr[8];			
	u8			mcastAdr[8];		
	u32			intrMask;			
	zd1205_SwTcbQ_t 	*freeTxQ;
	zd1205_SwTcbQ_t 	*activeTxQ;
	u32  		        txCachedSize;
	u8			*txCached;
	u16			dtimCount;
	u8			numTcb;
	u16			numTbd;
	u8			numRfd;
	u8			numTbdPerTcb;
	u32			rxOffset;
	u32 			debugflag;
	card_Setting_t		cardSetting;
	u8			BSSID[8];
	u32			dbg_flag;
	
	//debug counter
	u32			bcnCnt;
	u32			dtimCnt;
	u32			txCmpCnt;
	u32			rxCnt;
	u32			retryFailCnt;
	u32			txCnt;
	u32			txIdleCnt;
	u32			rxIdleCnt;
	u32 			rxDupCnt;

	u32			DriverDiscardedFrmCauseByMulticastList;
	u32			DriverDiscardedFrmCauseByFrmCtrl;
	u32			DriverReceivedFrm;
	u32			DriverRxMgtFrmCnt;
	u32			ErrLongFrmCnt;
	u32			ErrShortFrmCnt;

	u32			ErrToHostFrmCnt;
	u32			ErrZeroLenFrmCnt;
	u32			ArFreeFailCnt;
	u32			ArSearchFailCnt;
	u32			ArAgedCnt;

	u32			DropFirstFragCnt;
	u32			rxNeedFragCnt;
	u32			rxCompFragCnt;
	u32			AllocSkbFailCnt;
	u32			txQueToUpCnt;
	u32			txQueSetCnt;
	u32			sleepCnt;
	u32			wakeupCnt;
	
	//HMAC counter
	u32			hwTotalRxFrm;
	u32			hwCRC32Cnt;
	u32			hwCRC16Cnt;
	u32			hwDecrypErr_UNI;
	u32			hwDecrypErr_Mul;
	u32			hwRxFIFOOverrun;
	u32			hwTotalTxFrm;
	u32			hwUnderrunCnt;

	u32			hwRetryCnt;
	u32			TxStartTime;
	u32			HMAC_TxTimeout;

	u8			bTraceSetPoint;
	u8			bEnableTxPwrCtrl;
	u8			TxOFDMCnt;          
	u8			TxOFDMType;
	u8			TxPwrCCK;
	u8			TxPwrOFDM;          // 6M - 36M
	u8			bFixedRate;
    u8          bContinueTx;
	u8			bDataTrafficLight;
	u8			NoBcnDetectedCnt;
	u8			LinkTimer;          
	u32			LinkLEDn;
	u32			LinkLED_OnDur;
	u32			LinkLED_OffDur;
	u32			DataLED;

	u16			AddrEntryTable;     
	u8			bAllowAccessRegister;
	U8			FlashType;
	u16			ReadRegCount;       
	u16			SetPoint;
	u8			dtim_notify_en;
	u8			config_next_bcn_en;

	u32			invalid_frame_good_crc;
	u8			bGkInstalled;
	u8			rxSignalQuality;

	u8			rxSignalStrength;
	u8			rxSignalQualityIndB;
	u8			rxSignalQuality1;
	u8			rxSignalQuality2;
	u16			EepSetPoint[14];
	u16              	SetPointOFDM[3][14];//JWEI 2003/12/31
	u32			RegionCode;
	u32			RF_Mode;
	u8			PA_Type;
	u8			MaxTxPwrSet;
	u8			MinTxPwrSet;
	u8			bss_index;
	bss_info_t 		BSSInfo[BSS_INFO_NUM];
	tuple_Cache_t 		cache;

	defrag_Array_t 		defragArray;
	rxInfo_t 		rxInfo;
	
	//added for STA
	atomic_t		DoNotSleep;
	u8			bSurpriseRemoved;
	u8			bAssoc;
	u8			PwrState;
	u8			SuggestionMode;
	u8			bPSMSupported;
	u8			bAPAlive;
	u8			BSS_Members;
	u8			Notification;
	u8			WorseSQThr;
	u8			bIBSS_Wakeup_Dest;
	u8			bFrmRxed1;
	u8			bAnyActivity;
	u8			NiceSQThr;
	u8               	NiceSQThr_OFDM;
	u8			bEnableSwAntennaDiv;
	u8			Ant_MonitorDur1;
	u8			Ant_MonitorDur2;
	u8			CR138Flag;
	u8   			MulticastAddr[194]; // the first byte is the number of multicast addresses
	u32			TotalTxDataFrmBytes;

	u32			TotalRxDataFrmBytes;
	u32			txMulticastFrm;
	u32			txMulticastOctets;
	u32			txUnicastFrm;
	u32			txUnicastOctets;
	u32			NormalBackoff;
	u32			UrgentBackoff;
	u32			LooseBackoff;
	u32			Acc_Num_OFDM;
	u32			Acc_SQ_OFDM;
	u32			Bcn_Acc_Num;
	u32			Bcn_Acc_SQ;
	u32			CheckForHangLoop;
	u16			SequenceNum;
	u16			iv16;
	u32			iv32;
	u32			Acc_Num;
	u32			Acc_SQ;
	u32			GroupHashP1;
	u32			GroupHashP2;
	u32			PSThreshhold;
	u8			rxDecryType;
	u32  			rx11bDataFrame;
	u32  			rxOFDMDataFrame;
	
#ifdef OFDM
	u8			bTxBurstEnable;
	int			TxBurstCount;
#endif

#ifdef HOST_IF_USB
	u32			USBCSRAddress;
	u8			bUSBDeveiceAttached;
	u8			bUSBDeveiceResetting;
	u8			bHandleNonRxTxRunning;
 	u32			REG_6e4_Add;
	u32 			Continue2Rx;
	u8			LastZDContinuousTxRate;
	u32			WaitLenInfoCnt;
	u32			CompLenInfoCnt;
	u32			NoMergedRxCnt;
	u8			bFlashable;
#endif

	u8			bDisableTx;
	u8			PHYSettingFlag;
	u8			PHYTestIndex;
	u8			PHYTestTimer;
	u8			PHYTestTimerCount;
	u8			PHYTestRssiBound;
	u8			PHYTestRssi;
	u8			PHYLowPower;
	u8			IPCFlag;
	u8			AdapterMaxRate;

	u8			PHYFreOFDMframe;
	u8			EnableTxPwrCtrl;

	u32			PHYTestTotal;
	u32			TrafficBound;
	u32			DriverRxFrmCnt;
	u64			rxDataPerSec;
	u64			txDataPerSec;

    U8          bContinueTxMode;
    U32         AllowRateArrayCount;

// counter
    U32         rxMulticastFrm;
    U32         rxMulticastOctets;
    U32         rxBroadcastFrm;
    U32         rxBroadcastOctets;
    U32         rxUnicastFrm;
    U32         rxUnicastOctets;
    U32         rxNeedFrag;
    U32         rxMgtFrm;
    U32         txFrmDrvMgt;

// debug counter
    U32         rxDiscardByNotPIBSS;
    U32         rxDiscardByAllocateBuf;

    U16         SetPointLevel;
    U8          bPseudoIBSSMode;


	
	u32			txUnCachedSize;
	dma_addr_t		txUnCachedPhys;
	void			*txUnCached;
	//Modified for Supplicant
        int			bDefaultIbssMacMode;
	u32	bOLBC;
	u32	nOLBC_CounterInSec;
	
};
typedef struct _ZDTYPE_UWTxGain
{
	U8      UWTxGainLevel;
	U32      UWTxGainValue;
} ZDTYPE_UWTxGain, *PZDTYPE_UWTxGain;

typedef struct zd1205_private	zd1205_private_t;


struct usb_eth_dev {
	char	*name;
	__u16	vendor;

	__u16	device;
	__u32	private; /* LSB is gpio reset value */
};

#define ZD_IOCTL_REG_READ			0x01
#define ZD_IOCTL_REG_WRITE			0x02
#define ZD_IOCTL_MEM_DUMP			0x03
#define ZD_IOCTL_RATE       			0x04
#define ZD_IOCTL_SNIFFER    			0x05
#define ZD_IOCTL_CAM_DUMP   			0x06
#define ZD_IOCTL_DUMP_PHY   			0x07
#define ZD_IOCTL_CARD_SETTING 			0x08
#define ZD_IOCTL_HASH_DUMP			0x09
#define ZD_IOCTL_RFD_DUMP			0x0A
#define ZD_IOCTL_MEM_READ			0x0B
#define ZD_IOCTL_MEM_WRITE			0x0C

//for STA
#define ZD_IOCTL_TX_RATE			0x0D
#define ZD_IOCTL_EEPROM				0x0E

//for debug purposes
#define ZD_IOCTL_BCN				0x10
#define ZD_IOCTL_REG_READ16			0x11
#define ZD_IOCTL_REG_WRITE16			0x12

//for CAM Test
#define	ZD_IOCTL_CAM_READ			0x13
#define ZD_IOCTL_CAM_WRITE			0x14
#define ZD_IOCTL_CAM_RESET			0x15
#define ZD_IOCTL_READ_PHY			0x16
#define ZD_IOCTL_WRITE_PHY			0x17
#define ZD_IOCTL_CONT_TX			0x18
#define ZD_IOCTL_SET_MIC_CNT_ENABLE 0x19
#define ZD_IOCTL_GET_MIC_CNT_ENABLE 0x1A
#define ZD_IOCTL_DEBUG_FLAG	        0x21
#define ZD_IOCTL_UW_PWR             0x29

#define	ZDAPIOCTL	SIOCDEVPRIVATE
#define ZDPRODUCTIOCTL          0x89FA


/**************************************************************************
**		Function Declarations
***************************************************************************
*/
void zd1205_sleep_reset(struct zd1205_private *macp);
void zd1205_sw_reset(struct zd1205_private *macp);
void zd1205_watchdog_cb(struct net_device *);
void zd1205_dump_data(char *info, u8 *data, u32 data_len);
void zd1205_init_card_setting(struct zd1205_private *macp);
void zd1205_load_card_setting(struct zd1205_private *macp, u8 bInit);
void zd1205_save_card_setting(struct zd1205_private *macp);
zd1205_SwTcb_t * zd1205_first_txq(struct zd1205_private *macp, zd1205_SwTcbQ_t *Q);
u32 zd_readl(u32 offset);
void zd_writel(u32 value, u32 offset);
void zd1205_disable_int(void);
void zd1205_enable_int(void);
void zd1205_lock(struct zd1205_private *macp);
void zd1205_unlock(struct zd1205_private *macp);
void zd1205_device_reset(struct zd1205_private *macp);
void zd1205_config_wep_keys(struct zd1205_private *macp);
struct sk_buff* zd1205_prepare_tx_data(struct zd1205_private *macp, u16 bodyLen);
void zd1205_tx_test(struct zd1205_private *macp, u16 size);
void zd1205_qlast_txq(struct zd1205_private *macp, zd1205_SwTcbQ_t *Q, zd1205_SwTcb_t *signal);
int zd1205_DestPowerSave(struct zd1205_private *macp, u8 *pDestAddr);
int zd1205_found1(struct pci_dev *pcid, const struct pci_device_id *ent);
void zd1205_remove1(struct pci_dev *pcid);
BOOLEAN a_OSC_get_cal_int( u8 ch, u32 rate, u8 *intValue, u8 *calValue);
void zd1205_tx_isr(struct zd1205_private *);
u32 zd1205_rx_isr(struct zd1205_private *macp);
void  zd1205_clear_structs(struct net_device *dev);
unsigned char zd1205_init(struct zd1205_private *);
int zd1205_open(struct net_device *);
int zd1205_close(struct net_device *);
int zd1205_change_mtu(struct net_device *, int);
int zd1205_set_mac(struct net_device *, void *);
void zd1205_set_multi(struct net_device *);
void zd1205_IncreaseTxPower(struct zd1205_private *macp, u8 TxPwrType);
void zd1205_DecreaseTxPower(struct zd1205_private *macp, u8 TxPwrType);
void iLED_ON(struct zd1205_private *macp, u32 LEDn);
void iLED_OFF(struct zd1205_private *macp, u32 LEDn);
void iLED_SWITCH(struct zd1205_private *macp, u32 LEDn);
void HKeepingCB(struct net_device *dev);
void zd1205_mgt_mon_cb(struct net_device *dev);
void zd1205_lp_poll_cb(struct net_device *dev);
int zd1205_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
int zd1205_xmit_frame(struct sk_buff *skb, struct net_device *dev);
struct net_device_stats *zd1205_get_stats(struct net_device *);
void hostap_michael_mic_failure(struct zd1205_private *macp, 
	struct hostap_ieee80211_hdr *hdr, int keyidx);
#ifndef HOST_IF_USB
    void zd1205_start_ru(struct zd1205_private *);
#else
    struct rx_list_elem *zd1205_start_ru(struct zd1205_private *);
#endif
void zd1205_process_wakeup(struct zd1205_private *macp);
void zd1205_connect_mon(struct zd1205_private *macp);

void zd1205_watchdog(struct zd1205_private *macp);
void zd1205_house_keeping(struct zd1205_private *macp);
void zd1211_set_multicast(struct zd1205_private *macp);
int zd1205_dis_connect(struct zd1205_private *macp);
void ChangeMacMode(u8 MAC_Mode, u8 Channel);
void zd1205_alloc_skbs(struct zd1205_private *macp);
BssInfo_t *zd1212_bssid_to_BssInfo(U8 *bssid);
#if ZDCONF_WE_STAT_SUPPORT == 1
	struct iw_statistics * zd1205_iw_getstats(struct net_device *dev);
#elif !defined(ZDCONF_WE_STAT_SUPPORT)
	#error "Undefine ZDCONF_WE_STAT_SUPPORT"
#endif
#endif	/* _ZD1205_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -