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

📄 b43legacy.h

📁 linux内核源码
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef B43legacy_H_#define B43legacy_H_#include <linux/hw_random.h>#include <linux/kernel.h>#include <linux/spinlock.h>#include <linux/interrupt.h>#include <linux/stringify.h>#include <linux/netdevice.h>#include <linux/pci.h>#include <asm/atomic.h>#include <linux/io.h>#include <linux/ssb/ssb.h>#include <linux/ssb/ssb_driver_chipcommon.h>#include <linux/wireless.h>#include <net/mac80211.h>#include "debugfs.h"#include "leds.h"#include "phy.h"#define B43legacy_IRQWAIT_MAX_RETRIES	100#define B43legacy_RX_MAX_SSI		60 /* best guess at max ssi *//* MMIO offsets */#define B43legacy_MMIO_DMA0_REASON	0x20#define B43legacy_MMIO_DMA0_IRQ_MASK	0x24#define B43legacy_MMIO_DMA1_REASON	0x28#define B43legacy_MMIO_DMA1_IRQ_MASK	0x2C#define B43legacy_MMIO_DMA2_REASON	0x30#define B43legacy_MMIO_DMA2_IRQ_MASK	0x34#define B43legacy_MMIO_DMA3_REASON	0x38#define B43legacy_MMIO_DMA3_IRQ_MASK	0x3C#define B43legacy_MMIO_DMA4_REASON	0x40#define B43legacy_MMIO_DMA4_IRQ_MASK	0x44#define B43legacy_MMIO_DMA5_REASON	0x48#define B43legacy_MMIO_DMA5_IRQ_MASK	0x4C#define B43legacy_MMIO_MACCTL		0x120#define B43legacy_MMIO_STATUS_BITFIELD	0x120#define B43legacy_MMIO_STATUS2_BITFIELD	0x124#define B43legacy_MMIO_GEN_IRQ_REASON	0x128#define B43legacy_MMIO_GEN_IRQ_MASK	0x12C#define B43legacy_MMIO_RAM_CONTROL	0x130#define B43legacy_MMIO_RAM_DATA		0x134#define B43legacy_MMIO_PS_STATUS		0x140#define B43legacy_MMIO_RADIO_HWENABLED_HI	0x158#define B43legacy_MMIO_SHM_CONTROL	0x160#define B43legacy_MMIO_SHM_DATA		0x164#define B43legacy_MMIO_SHM_DATA_UNALIGNED	0x166#define B43legacy_MMIO_XMITSTAT_0		0x170#define B43legacy_MMIO_XMITSTAT_1		0x174#define B43legacy_MMIO_REV3PLUS_TSF_LOW	0x180 /* core rev >= 3 only */#define B43legacy_MMIO_REV3PLUS_TSF_HIGH	0x184 /* core rev >= 3 only *//* 32-bit DMA */#define B43legacy_MMIO_DMA32_BASE0	0x200#define B43legacy_MMIO_DMA32_BASE1	0x220#define B43legacy_MMIO_DMA32_BASE2	0x240#define B43legacy_MMIO_DMA32_BASE3	0x260#define B43legacy_MMIO_DMA32_BASE4	0x280#define B43legacy_MMIO_DMA32_BASE5	0x2A0/* 64-bit DMA */#define B43legacy_MMIO_DMA64_BASE0	0x200#define B43legacy_MMIO_DMA64_BASE1	0x240#define B43legacy_MMIO_DMA64_BASE2	0x280#define B43legacy_MMIO_DMA64_BASE3	0x2C0#define B43legacy_MMIO_DMA64_BASE4	0x300#define B43legacy_MMIO_DMA64_BASE5	0x340/* PIO */#define B43legacy_MMIO_PIO1_BASE		0x300#define B43legacy_MMIO_PIO2_BASE		0x310#define B43legacy_MMIO_PIO3_BASE		0x320#define B43legacy_MMIO_PIO4_BASE		0x330#define B43legacy_MMIO_PHY_VER		0x3E0#define B43legacy_MMIO_PHY_RADIO		0x3E2#define B43legacy_MMIO_PHY0		0x3E6#define B43legacy_MMIO_ANTENNA		0x3E8#define B43legacy_MMIO_CHANNEL		0x3F0#define B43legacy_MMIO_CHANNEL_EXT	0x3F4#define B43legacy_MMIO_RADIO_CONTROL	0x3F6#define B43legacy_MMIO_RADIO_DATA_HIGH	0x3F8#define B43legacy_MMIO_RADIO_DATA_LOW	0x3FA#define B43legacy_MMIO_PHY_CONTROL	0x3FC#define B43legacy_MMIO_PHY_DATA		0x3FE#define B43legacy_MMIO_MACFILTER_CONTROL	0x420#define B43legacy_MMIO_MACFILTER_DATA	0x422#define B43legacy_MMIO_RCMTA_COUNT	0x43C /* Receive Match Transmitter Addr */#define B43legacy_MMIO_RADIO_HWENABLED_LO	0x49A#define B43legacy_MMIO_GPIO_CONTROL	0x49C#define B43legacy_MMIO_GPIO_MASK		0x49E#define B43legacy_MMIO_TSF_0		0x632 /* core rev < 3 only */#define B43legacy_MMIO_TSF_1		0x634 /* core rev < 3 only */#define B43legacy_MMIO_TSF_2		0x636 /* core rev < 3 only */#define B43legacy_MMIO_TSF_3		0x638 /* core rev < 3 only */#define B43legacy_MMIO_RNG		0x65A#define B43legacy_MMIO_POWERUP_DELAY	0x6A8/* SPROM boardflags_lo values */#define B43legacy_BFL_PACTRL		0x0002#define B43legacy_BFL_RSSI		0x0008#define B43legacy_BFL_EXTLNA		0x1000/* GPIO register offset, in both ChipCommon and PCI core. */#define B43legacy_GPIO_CONTROL		0x6c/* SHM Routing */#define	B43legacy_SHM_SHARED		0x0001#define	B43legacy_SHM_WIRELESS		0x0002#define	B43legacy_SHM_HW		0x0004#define	B43legacy_SHM_UCODE		0x0300/* SHM Routing modifiers */#define B43legacy_SHM_AUTOINC_R		0x0200 /* Read Auto-increment */#define B43legacy_SHM_AUTOINC_W		0x0100 /* Write Auto-increment */#define B43legacy_SHM_AUTOINC_RW	(B43legacy_SHM_AUTOINC_R | \					 B43legacy_SHM_AUTOINC_W)/* Misc SHM_SHARED offsets */#define B43legacy_SHM_SH_WLCOREREV	0x0016 /* 802.11 core revision */#define B43legacy_SHM_SH_HOSTFLO	0x005E /* Hostflags ucode opts (low) */#define B43legacy_SHM_SH_HOSTFHI	0x0060 /* Hostflags ucode opts (high) *//* SHM_SHARED crypto engine */#define B43legacy_SHM_SH_KEYIDXBLOCK	0x05D4 /* Key index/algorithm block *//* SHM_SHARED beacon variables */#define B43legacy_SHM_SH_BEACPHYCTL	0x0054 /* Beacon PHY TX control word *//* SHM_SHARED ACK/CTS control */#define B43legacy_SHM_SH_ACKCTSPHYCTL	0x0022 /* ACK/CTS PHY control word *//* SHM_SHARED probe response variables */#define B43legacy_SHM_SH_PRPHYCTL	0x0188 /* Probe Resp PHY TX control */#define B43legacy_SHM_SH_PRMAXTIME	0x0074 /* Probe Response max time *//* SHM_SHARED rate tables *//* SHM_SHARED microcode soft registers */#define B43legacy_SHM_SH_UCODEREV	0x0000 /* Microcode revision */#define B43legacy_SHM_SH_UCODEPATCH	0x0002 /* Microcode patchlevel */#define B43legacy_SHM_SH_UCODEDATE	0x0004 /* Microcode date */#define B43legacy_SHM_SH_UCODETIME	0x0006 /* Microcode time */#define B43legacy_UCODEFLAGS_OFFSET     0x005E/* Hardware Radio Enable masks */#define B43legacy_MMIO_RADIO_HWENABLED_HI_MASK (1 << 16)#define B43legacy_MMIO_RADIO_HWENABLED_LO_MASK (1 << 4)/* HostFlags. See b43legacy_hf_read/write() */#define B43legacy_HF_SYMW		0x00000002 /* G-PHY SYM workaround */#define B43legacy_HF_GDCW		0x00000020 /* G-PHY DV cancel filter */#define B43legacy_HF_OFDMPABOOST	0x00000040 /* Enable PA boost OFDM */#define B43legacy_HF_EDCF		0x00000100 /* on if WME/MAC suspended *//* MacFilter offsets. */#define B43legacy_MACFILTER_SELF	0x0000#define B43legacy_MACFILTER_BSSID	0x0003#define B43legacy_MACFILTER_MAC		0x0010/* PHYVersioning */#define B43legacy_PHYTYPE_B		0x01#define B43legacy_PHYTYPE_G		0x02/* PHYRegisters */#define B43legacy_PHY_G_LO_CONTROL	0x0810#define B43legacy_PHY_ILT_G_CTRL	0x0472#define B43legacy_PHY_ILT_G_DATA1	0x0473#define B43legacy_PHY_ILT_G_DATA2	0x0474#define B43legacy_PHY_G_PCTL		0x0029#define B43legacy_PHY_RADIO_BITFIELD	0x0401#define B43legacy_PHY_G_CRS		0x0429#define B43legacy_PHY_NRSSILT_CTRL	0x0803#define B43legacy_PHY_NRSSILT_DATA	0x0804/* RadioRegisters */#define B43legacy_RADIOCTL_ID		0x01/* MAC Control bitfield */#define B43legacy_MACCTL_IHR_ENABLED	0x00000400 /* IHR Region Enabled */#define B43legacy_MACCTL_INFRA		0x00020000 /* Infrastructure mode */#define B43legacy_MACCTL_AP		0x00040000 /* AccessPoint mode */#define B43legacy_MACCTL_BEACPROMISC	0x00100000 /* Beacon Promiscuous */#define B43legacy_MACCTL_KEEP_BADPLCP	0x00200000 /* Keep bad PLCP frames */#define B43legacy_MACCTL_KEEP_CTL	0x00400000 /* Keep control frames */#define B43legacy_MACCTL_KEEP_BAD	0x00800000 /* Keep bad frames (FCS) */#define B43legacy_MACCTL_PROMISC	0x01000000 /* Promiscuous mode */#define B43legacy_MACCTL_GMODE		0x80000000 /* G Mode *//* StatusBitField */#define B43legacy_SBF_MAC_ENABLED	0x00000001#define B43legacy_SBF_CORE_READY	0x00000004#define B43legacy_SBF_400		0x00000400 /*FIXME: fix name*/#define B43legacy_SBF_XFER_REG_BYTESWAP	0x00010000#define B43legacy_SBF_MODE_NOTADHOC	0x00020000#define B43legacy_SBF_MODE_AP		0x00040000#define B43legacy_SBF_RADIOREG_LOCK	0x00080000#define B43legacy_SBF_MODE_MONITOR	0x00400000#define B43legacy_SBF_MODE_PROMISC	0x01000000#define B43legacy_SBF_PS1		0x02000000#define B43legacy_SBF_PS2		0x04000000#define B43legacy_SBF_NO_SSID_BCAST	0x08000000#define B43legacy_SBF_TIME_UPDATE	0x10000000/* 802.11 core specific TM State Low flags */#define B43legacy_TMSLOW_GMODE		0x20000000 /* G Mode Enable */#define B43legacy_TMSLOW_PLLREFSEL	0x00200000 /* PLL Freq Ref Select */#define B43legacy_TMSLOW_MACPHYCLKEN	0x00100000 /* MAC PHY Clock Ctrl Enbl */#define B43legacy_TMSLOW_PHYRESET	0x00080000 /* PHY Reset */#define B43legacy_TMSLOW_PHYCLKEN	0x00040000 /* PHY Clock Enable *//* 802.11 core specific TM State High flags */#define B43legacy_TMSHIGH_FCLOCK	0x00040000 /* Fast Clock Available */#define B43legacy_TMSHIGH_GPHY		0x00010000 /* G-PHY avail (rev >= 5) */#define B43legacy_UCODEFLAG_AUTODIV       0x0001/* Generic-Interrupt reasons. */#define B43legacy_IRQ_MAC_SUSPENDED	0x00000001#define B43legacy_IRQ_BEACON		0x00000002#define B43legacy_IRQ_TBTT_INDI		0x00000004 /* Target Beacon Transmit Time */#define B43legacy_IRQ_BEACON_TX_OK	0x00000008#define B43legacy_IRQ_BEACON_CANCEL	0x00000010#define B43legacy_IRQ_ATIM_END		0x00000020#define B43legacy_IRQ_PMQ		0x00000040#define B43legacy_IRQ_PIO_WORKAROUND	0x00000100#define B43legacy_IRQ_MAC_TXERR		0x00000200#define B43legacy_IRQ_PHY_TXERR		0x00000800#define B43legacy_IRQ_PMEVENT		0x00001000#define B43legacy_IRQ_TIMER0		0x00002000#define B43legacy_IRQ_TIMER1		0x00004000#define B43legacy_IRQ_DMA		0x00008000#define B43legacy_IRQ_TXFIFO_FLUSH_OK	0x00010000#define B43legacy_IRQ_CCA_MEASURE_OK	0x00020000#define B43legacy_IRQ_NOISESAMPLE_OK	0x00040000#define B43legacy_IRQ_UCODE_DEBUG	0x08000000#define B43legacy_IRQ_RFKILL		0x10000000#define B43legacy_IRQ_TX_OK		0x20000000#define B43legacy_IRQ_PHY_G_CHANGED	0x40000000#define B43legacy_IRQ_TIMEOUT		0x80000000#define B43legacy_IRQ_ALL		0xFFFFFFFF#define B43legacy_IRQ_MASKTEMPLATE	(B43legacy_IRQ_MAC_SUSPENDED |	\					 B43legacy_IRQ_BEACON |		\					 B43legacy_IRQ_TBTT_INDI |	\					 B43legacy_IRQ_ATIM_END |	\					 B43legacy_IRQ_PMQ |		\					 B43legacy_IRQ_MAC_TXERR |	\					 B43legacy_IRQ_PHY_TXERR |	\					 B43legacy_IRQ_DMA |		\					 B43legacy_IRQ_TXFIFO_FLUSH_OK | \					 B43legacy_IRQ_NOISESAMPLE_OK | \					 B43legacy_IRQ_UCODE_DEBUG |	\					 B43legacy_IRQ_RFKILL |		\					 B43legacy_IRQ_TX_OK)/* Device specific rate values. * The actual values defined here are (rate_in_mbps * 2). * Some code depends on this. Don't change it. */#define B43legacy_CCK_RATE_1MB		2#define B43legacy_CCK_RATE_2MB		4#define B43legacy_CCK_RATE_5MB		11#define B43legacy_CCK_RATE_11MB		22#define B43legacy_OFDM_RATE_6MB		12#define B43legacy_OFDM_RATE_9MB		18#define B43legacy_OFDM_RATE_12MB	24#define B43legacy_OFDM_RATE_18MB	36#define B43legacy_OFDM_RATE_24MB	48#define B43legacy_OFDM_RATE_36MB	72#define B43legacy_OFDM_RATE_48MB	96#define B43legacy_OFDM_RATE_54MB	108/* Convert a b43legacy rate value to a rate in 100kbps */#define B43legacy_RATE_TO_100KBPS(rate)	(((rate) * 10) / 2)#define B43legacy_DEFAULT_SHORT_RETRY_LIMIT	7#define B43legacy_DEFAULT_LONG_RETRY_LIMIT	4/* Max size of a security key */#define B43legacy_SEC_KEYSIZE		16/* Security algorithms. */enum {	B43legacy_SEC_ALGO_NONE = 0, /* unencrypted, as of TX header. */	B43legacy_SEC_ALGO_WEP40,	B43legacy_SEC_ALGO_TKIP,	B43legacy_SEC_ALGO_AES,	B43legacy_SEC_ALGO_WEP104,	B43legacy_SEC_ALGO_AES_LEGACY,};/* Core Information Registers */#define B43legacy_CIR_BASE                0xf00#define B43legacy_CIR_SBTPSFLAG           (B43legacy_CIR_BASE + 0x18)#define B43legacy_CIR_SBIMSTATE           (B43legacy_CIR_BASE + 0x90)#define B43legacy_CIR_SBINTVEC            (B43legacy_CIR_BASE + 0x94)#define B43legacy_CIR_SBTMSTATELOW        (B43legacy_CIR_BASE + 0x98)#define B43legacy_CIR_SBTMSTATEHIGH       (B43legacy_CIR_BASE + 0x9c)#define B43legacy_CIR_SBIMCONFIGLOW       (B43legacy_CIR_BASE + 0xa8)#define B43legacy_CIR_SB_ID_HI            (B43legacy_CIR_BASE + 0xfc)/* sbtmstatehigh state flags */#define B43legacy_SBTMSTATEHIGH_SERROR		0x00000001#define B43legacy_SBTMSTATEHIGH_BUSY		0x00000004#define B43legacy_SBTMSTATEHIGH_TIMEOUT		0x00000020#define B43legacy_SBTMSTATEHIGH_G_PHY_AVAIL	0x00010000#define B43legacy_SBTMSTATEHIGH_COREFLAGS	0x1FFF0000#define B43legacy_SBTMSTATEHIGH_DMA64BIT	0x10000000#define B43legacy_SBTMSTATEHIGH_GATEDCLK	0x20000000#define B43legacy_SBTMSTATEHIGH_BISTFAILED	0x40000000#define B43legacy_SBTMSTATEHIGH_BISTCOMPLETE	0x80000000/* sbimstate flags */#define B43legacy_SBIMSTATE_IB_ERROR		0x20000#define B43legacy_SBIMSTATE_TIMEOUT		0x40000#define PFX		KBUILD_MODNAME ": "#ifdef assert# undef assert#endif#ifdef CONFIG_B43LEGACY_DEBUG# define B43legacy_WARN_ON(expr)					\	do {								\		if (unlikely((expr))) {					\			printk(KERN_INFO PFX "Test (%s) failed at:"	\					      " %s:%d:%s()\n",		\					      #expr, __FILE__,		\					      __LINE__, __FUNCTION__);	\		}							\	} while (0)# define B43legacy_BUG_ON(expr)						\	do {								\		if (unlikely((expr))) {					\			printk(KERN_INFO PFX "Test (%s) failed\n",	\					      #expr);			\			BUG_ON(expr);					\		}							\	} while (0)# define B43legacy_DEBUG	1#else# define B43legacy_WARN_ON(x)	do { /* nothing */ } while (0)# define B43legacy_BUG_ON(x)	do { /* nothing */ } while (0)# define B43legacy_DEBUG	0#endifstruct net_device;struct pci_dev;struct b43legacy_dmaring;struct b43legacy_pioqueue;/* The firmware file header */#define B43legacy_FW_TYPE_UCODE	'u'#define B43legacy_FW_TYPE_PCM	'p'#define B43legacy_FW_TYPE_IV	'i'struct b43legacy_fw_header {	/* File type */	u8 type;	/* File format version */	u8 ver;	u8 __padding[2];	/* Size of the data. For ucode and PCM this is in bytes.	 * For IV this is number-of-ivs. */	__be32 size;} __attribute__((__packed__));/* Initial Value file format */#define B43legacy_IV_OFFSET_MASK	0x7FFF#define B43legacy_IV_32BIT		0x8000struct b43legacy_iv {	__be16 offset_size;	union {		__be16 d16;		__be32 d32;	} data __attribute__((__packed__));} __attribute__((__packed__));#define B43legacy_PHYMODE(phytype)	(1 << (phytype))#define B43legacy_PHYMODE_B		B43legacy_PHYMODE	\					((B43legacy_PHYTYPE_B))#define B43legacy_PHYMODE_G		B43legacy_PHYMODE	\					((B43legacy_PHYTYPE_G))/* Value pair to measure the LocalOscillator. */struct b43legacy_lopair {	s8 low;	s8 high;	u8 used:1;};#define B43legacy_LO_COUNT	(14*4)struct b43legacy_phy {	/* Possible PHYMODEs on this PHY */	u8 possible_phymodes;	/* GMODE bit enabled in MACCTL? */	bool gmode;	/* Possible ieee80211 subsystem hwmodes for this PHY.	 * Which mode is selected, depends on thr GMODE enabled bit */#define B43legacy_MAX_PHYHWMODES	2	struct ieee80211_hw_mode hwmodes[B43legacy_MAX_PHYHWMODES];	/* Analog Type */	u8 analog;	/* B43legacy_PHYTYPE_ */	u8 type;	/* PHY revision number. */	u8 rev;	u16 antenna_diversity;	u16 savedpctlreg;	/* Radio versioning */	u16 radio_manuf;	/* Radio manufacturer */	u16 radio_ver;		/* Radio version */	u8 calibrated:1;	u8 radio_rev;		/* Radio revision */	bool locked;		/* Only used in b43legacy_phy_{un}lock() */	bool dyn_tssi_tbl;	/* tssi2dbm is kmalloc()ed. */

⌨️ 快捷键说明

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