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

📄 ipw2200.h

📁 linux-2.6.15.6
💻 H
📖 第 1 页 / 共 4 页
字号:
#define IPW_ACTIVITY_LED              (1<<4)#define IPW_ASSOCIATED_LED            (1<<5)#define IPW_OFDM_LED                  (1<<6)#define IPW_RESET_REG_SW_RESET        (1<<7)#define IPW_RESET_REG_MASTER_DISABLED (1<<8)#define IPW_RESET_REG_STOP_MASTER     (1<<9)#define IPW_GATE_ODMA                 (1<<25)#define IPW_GATE_IDMA                 (1<<26)#define IPW_ARC_KESHET_CONFIG         (1<<27)#define IPW_GATE_ADMA                 (1<<29)#define IPW_CSR_CIS_UPPER_BOUND	0x00000200#define IPW_DOMAIN_0_END 0x1000#define CLX_MEM_BAR_SIZE 0x1000#define IPW_BASEBAND_CONTROL_STATUS	0X00200000#define IPW_BASEBAND_TX_FIFO_WRITE	0X00200004#define IPW_BASEBAND_RX_FIFO_READ	0X00200004#define IPW_BASEBAND_CONTROL_STORE	0X00200010#define IPW_INTERNAL_CMD_EVENT 	0X00300004#define IPW_BASEBAND_POWER_DOWN 0x00000001#define IPW_MEM_HALT_AND_RESET  0x003000e0/* defgroup bits_halt_reset MEM_HALT_AND_RESET register bits */#define IPW_BIT_HALT_RESET_ON	0x80000000#define IPW_BIT_HALT_RESET_OFF 	0x00000000#define CB_LAST_VALID     0x20000000#define CB_INT_ENABLED    0x40000000#define CB_VALID          0x80000000#define CB_SRC_LE         0x08000000#define CB_DEST_LE        0x04000000#define CB_SRC_AUTOINC    0x00800000#define CB_SRC_IO_GATED   0x00400000#define CB_DEST_AUTOINC   0x00080000#define CB_SRC_SIZE_LONG  0x00200000#define CB_DEST_SIZE_LONG 0x00020000/* DMA DEFINES */#define DMA_CONTROL_SMALL_CB_CONST_VALUE 0x00540000#define DMA_CB_STOP_AND_ABORT            0x00000C00#define DMA_CB_START                     0x00000100#define IPW_SHARED_SRAM_SIZE               0x00030000#define IPW_SHARED_SRAM_DMA_CONTROL        0x00027000#define CB_MAX_LENGTH                      0x1FFF#define IPW_HOST_EEPROM_DATA_SRAM_SIZE 0xA18#define IPW_EEPROM_IMAGE_SIZE          0x100/* DMA defs */#define IPW_DMA_I_CURRENT_CB  0x003000D0#define IPW_DMA_O_CURRENT_CB  0x003000D4#define IPW_DMA_I_DMA_CONTROL 0x003000A4#define IPW_DMA_I_CB_BASE     0x003000A0#define IPW_TX_CMD_QUEUE_BD_BASE        0x00000200#define IPW_TX_CMD_QUEUE_BD_SIZE        0x00000204#define IPW_TX_QUEUE_0_BD_BASE          0x00000208#define IPW_TX_QUEUE_0_BD_SIZE          (0x0000020C)#define IPW_TX_QUEUE_1_BD_BASE          0x00000210#define IPW_TX_QUEUE_1_BD_SIZE          0x00000214#define IPW_TX_QUEUE_2_BD_BASE          0x00000218#define IPW_TX_QUEUE_2_BD_SIZE          (0x0000021C)#define IPW_TX_QUEUE_3_BD_BASE          0x00000220#define IPW_TX_QUEUE_3_BD_SIZE          0x00000224#define IPW_RX_BD_BASE                  0x00000240#define IPW_RX_BD_SIZE                  0x00000244#define IPW_RFDS_TABLE_LOWER            0x00000500#define IPW_TX_CMD_QUEUE_READ_INDEX     0x00000280#define IPW_TX_QUEUE_0_READ_INDEX       0x00000284#define IPW_TX_QUEUE_1_READ_INDEX       0x00000288#define IPW_TX_QUEUE_2_READ_INDEX       (0x0000028C)#define IPW_TX_QUEUE_3_READ_INDEX       0x00000290#define IPW_RX_READ_INDEX               (0x000002A0)#define IPW_TX_CMD_QUEUE_WRITE_INDEX    (0x00000F80)#define IPW_TX_QUEUE_0_WRITE_INDEX      (0x00000F84)#define IPW_TX_QUEUE_1_WRITE_INDEX      (0x00000F88)#define IPW_TX_QUEUE_2_WRITE_INDEX      (0x00000F8C)#define IPW_TX_QUEUE_3_WRITE_INDEX      (0x00000F90)#define IPW_RX_WRITE_INDEX              (0x00000FA0)/* * EEPROM Related Definitions */#define IPW_EEPROM_DATA_SRAM_ADDRESS (IPW_SHARED_LOWER_BOUND + 0x814)#define IPW_EEPROM_DATA_SRAM_SIZE    (IPW_SHARED_LOWER_BOUND + 0x818)#define IPW_EEPROM_LOAD_DISABLE      (IPW_SHARED_LOWER_BOUND + 0x81C)#define IPW_EEPROM_DATA              (IPW_SHARED_LOWER_BOUND + 0x820)#define IPW_EEPROM_UPPER_ADDRESS     (IPW_SHARED_LOWER_BOUND + 0x9E0)#define IPW_STATION_TABLE_LOWER      (IPW_SHARED_LOWER_BOUND + 0xA0C)#define IPW_STATION_TABLE_UPPER      (IPW_SHARED_LOWER_BOUND + 0xB0C)#define IPW_REQUEST_ATIM             (IPW_SHARED_LOWER_BOUND + 0xB0C)#define IPW_ATIM_SENT                (IPW_SHARED_LOWER_BOUND + 0xB10)#define IPW_WHO_IS_AWAKE             (IPW_SHARED_LOWER_BOUND + 0xB14)#define IPW_DURING_ATIM_WINDOW       (IPW_SHARED_LOWER_BOUND + 0xB18)#define MSB                             1#define LSB                             0#define WORD_TO_BYTE(_word)             ((_word) * sizeof(u16))#define GET_EEPROM_ADDR(_wordoffset,_byteoffset) \    ( WORD_TO_BYTE(_wordoffset) + (_byteoffset) )/* EEPROM access by BYTE */#define EEPROM_PME_CAPABILITY   (GET_EEPROM_ADDR(0x09,MSB))	/* 1 byte   */#define EEPROM_MAC_ADDRESS      (GET_EEPROM_ADDR(0x21,LSB))	/* 6 byte   */#define EEPROM_VERSION          (GET_EEPROM_ADDR(0x24,MSB))	/* 1 byte   */#define EEPROM_NIC_TYPE         (GET_EEPROM_ADDR(0x25,LSB))	/* 1 byte   */#define EEPROM_SKU_CAPABILITY   (GET_EEPROM_ADDR(0x25,MSB))	/* 1 byte   */#define EEPROM_COUNTRY_CODE     (GET_EEPROM_ADDR(0x26,LSB))	/* 3 bytes  */#define EEPROM_IBSS_CHANNELS_BG (GET_EEPROM_ADDR(0x28,LSB))	/* 2 bytes  */#define EEPROM_IBSS_CHANNELS_A  (GET_EEPROM_ADDR(0x29,MSB))	/* 5 bytes  */#define EEPROM_BSS_CHANNELS_BG  (GET_EEPROM_ADDR(0x2c,LSB))	/* 2 bytes  */#define EEPROM_HW_VERSION       (GET_EEPROM_ADDR(0x72,LSB))	/* 2 bytes  *//* NIC type as found in the one byte EEPROM_NIC_TYPE  offset*/#define EEPROM_NIC_TYPE_0 0#define EEPROM_NIC_TYPE_1 1#define EEPROM_NIC_TYPE_2 2#define EEPROM_NIC_TYPE_3 3#define EEPROM_NIC_TYPE_4 4#define FW_MEM_REG_LOWER_BOUND          0x00300000#define FW_MEM_REG_EEPROM_ACCESS        (FW_MEM_REG_LOWER_BOUND + 0x40)#define IPW_EVENT_REG                   (FW_MEM_REG_LOWER_BOUND + 0x04)#define EEPROM_BIT_SK                   (1<<0)#define EEPROM_BIT_CS                   (1<<1)#define EEPROM_BIT_DI                   (1<<2)#define EEPROM_BIT_DO                   (1<<4)#define EEPROM_CMD_READ                 0x2/* Interrupts masks */#define IPW_INTA_NONE   0x00000000#define IPW_INTA_BIT_RX_TRANSFER                   0x00000002#define IPW_INTA_BIT_STATUS_CHANGE                 0x00000010#define IPW_INTA_BIT_BEACON_PERIOD_EXPIRED         0x00000020//Inta Bits for CF#define IPW_INTA_BIT_TX_CMD_QUEUE                  0x00000800#define IPW_INTA_BIT_TX_QUEUE_1                    0x00001000#define IPW_INTA_BIT_TX_QUEUE_2                    0x00002000#define IPW_INTA_BIT_TX_QUEUE_3                    0x00004000#define IPW_INTA_BIT_TX_QUEUE_4                    0x00008000#define IPW_INTA_BIT_SLAVE_MODE_HOST_CMD_DONE      0x00010000#define IPW_INTA_BIT_PREPARE_FOR_POWER_DOWN        0x00100000#define IPW_INTA_BIT_POWER_DOWN                    0x00200000#define IPW_INTA_BIT_FW_INITIALIZATION_DONE        0x01000000#define IPW_INTA_BIT_FW_CARD_DISABLE_PHY_OFF_DONE  0x02000000#define IPW_INTA_BIT_RF_KILL_DONE                  0x04000000#define IPW_INTA_BIT_FATAL_ERROR             0x40000000#define IPW_INTA_BIT_PARITY_ERROR            0x80000000/* Interrupts enabled at init time. */#define IPW_INTA_MASK_ALL                        \        (IPW_INTA_BIT_TX_QUEUE_1               | \	 IPW_INTA_BIT_TX_QUEUE_2               | \	 IPW_INTA_BIT_TX_QUEUE_3               | \	 IPW_INTA_BIT_TX_QUEUE_4               | \	 IPW_INTA_BIT_TX_CMD_QUEUE             | \	 IPW_INTA_BIT_RX_TRANSFER              | \	 IPW_INTA_BIT_FATAL_ERROR              | \	 IPW_INTA_BIT_PARITY_ERROR             | \	 IPW_INTA_BIT_STATUS_CHANGE            | \	 IPW_INTA_BIT_FW_INITIALIZATION_DONE   | \	 IPW_INTA_BIT_BEACON_PERIOD_EXPIRED    | \	 IPW_INTA_BIT_SLAVE_MODE_HOST_CMD_DONE | \	 IPW_INTA_BIT_PREPARE_FOR_POWER_DOWN   | \	 IPW_INTA_BIT_POWER_DOWN               | \         IPW_INTA_BIT_RF_KILL_DONE )/* FW event log definitions */#define EVENT_ELEM_SIZE     (3 * sizeof(u32))#define EVENT_START_OFFSET  (1 * sizeof(u32) + 2 * sizeof(u16))/* FW error log definitions */#define ERROR_ELEM_SIZE     (7 * sizeof(u32))#define ERROR_START_OFFSET  (1 * sizeof(u32))/* TX power level (dbm) */#define IPW_TX_POWER_MIN	-12#define IPW_TX_POWER_MAX	20#define IPW_TX_POWER_DEFAULT	IPW_TX_POWER_MAXenum {	IPW_FW_ERROR_OK = 0,	IPW_FW_ERROR_FAIL,	IPW_FW_ERROR_MEMORY_UNDERFLOW,	IPW_FW_ERROR_MEMORY_OVERFLOW,	IPW_FW_ERROR_BAD_PARAM,	IPW_FW_ERROR_BAD_CHECKSUM,	IPW_FW_ERROR_NMI_INTERRUPT,	IPW_FW_ERROR_BAD_DATABASE,	IPW_FW_ERROR_ALLOC_FAIL,	IPW_FW_ERROR_DMA_UNDERRUN,	IPW_FW_ERROR_DMA_STATUS,	IPW_FW_ERROR_DINO_ERROR,	IPW_FW_ERROR_EEPROM_ERROR,	IPW_FW_ERROR_SYSASSERT,	IPW_FW_ERROR_FATAL_ERROR};#define AUTH_OPEN       0#define AUTH_SHARED_KEY 1#define AUTH_IGNORE     3#define HC_ASSOCIATE      0#define HC_REASSOCIATE    1#define HC_DISASSOCIATE   2#define HC_IBSS_START     3#define HC_IBSS_RECONF    4#define HC_DISASSOC_QUIET 5#define HC_QOS_SUPPORT_ASSOC  0x01#define IPW_RATE_CAPABILITIES 1#define IPW_RATE_CONNECT      0/* * Rate values and masks */#define IPW_TX_RATE_1MB  0x0A#define IPW_TX_RATE_2MB  0x14#define IPW_TX_RATE_5MB  0x37#define IPW_TX_RATE_6MB  0x0D#define IPW_TX_RATE_9MB  0x0F#define IPW_TX_RATE_11MB 0x6E#define IPW_TX_RATE_12MB 0x05#define IPW_TX_RATE_18MB 0x07#define IPW_TX_RATE_24MB 0x09#define IPW_TX_RATE_36MB 0x0B#define IPW_TX_RATE_48MB 0x01#define IPW_TX_RATE_54MB 0x03#define IPW_ORD_TABLE_ID_MASK             0x0000FF00#define IPW_ORD_TABLE_VALUE_MASK          0x000000FF#define IPW_ORD_TABLE_0_MASK              0x0000F000#define IPW_ORD_TABLE_1_MASK              0x0000F100#define IPW_ORD_TABLE_2_MASK              0x0000F200#define IPW_ORD_TABLE_3_MASK              0x0000F300#define IPW_ORD_TABLE_4_MASK              0x0000F400#define IPW_ORD_TABLE_5_MASK              0x0000F500#define IPW_ORD_TABLE_6_MASK              0x0000F600#define IPW_ORD_TABLE_7_MASK              0x0000F700/* * Table 0 Entries (all entries are 32 bits) */enum {	IPW_ORD_STAT_TX_CURR_RATE = IPW_ORD_TABLE_0_MASK + 1,	IPW_ORD_STAT_FRAG_TRESHOLD,	IPW_ORD_STAT_RTS_THRESHOLD,	IPW_ORD_STAT_TX_HOST_REQUESTS,	IPW_ORD_STAT_TX_HOST_COMPLETE,	IPW_ORD_STAT_TX_DIR_DATA,	IPW_ORD_STAT_TX_DIR_DATA_B_1,	IPW_ORD_STAT_TX_DIR_DATA_B_2,	IPW_ORD_STAT_TX_DIR_DATA_B_5_5,	IPW_ORD_STAT_TX_DIR_DATA_B_11,	/* Hole */	IPW_ORD_STAT_TX_DIR_DATA_G_1 = IPW_ORD_TABLE_0_MASK + 19,	IPW_ORD_STAT_TX_DIR_DATA_G_2,	IPW_ORD_STAT_TX_DIR_DATA_G_5_5,	IPW_ORD_STAT_TX_DIR_DATA_G_6,	IPW_ORD_STAT_TX_DIR_DATA_G_9,	IPW_ORD_STAT_TX_DIR_DATA_G_11,	IPW_ORD_STAT_TX_DIR_DATA_G_12,	IPW_ORD_STAT_TX_DIR_DATA_G_18,	IPW_ORD_STAT_TX_DIR_DATA_G_24,	IPW_ORD_STAT_TX_DIR_DATA_G_36,	IPW_ORD_STAT_TX_DIR_DATA_G_48,	IPW_ORD_STAT_TX_DIR_DATA_G_54,	IPW_ORD_STAT_TX_NON_DIR_DATA,	IPW_ORD_STAT_TX_NON_DIR_DATA_B_1,	IPW_ORD_STAT_TX_NON_DIR_DATA_B_2,	IPW_ORD_STAT_TX_NON_DIR_DATA_B_5_5,	IPW_ORD_STAT_TX_NON_DIR_DATA_B_11,	/* Hole */	IPW_ORD_STAT_TX_NON_DIR_DATA_G_1 = IPW_ORD_TABLE_0_MASK + 44,	IPW_ORD_STAT_TX_NON_DIR_DATA_G_2,	IPW_ORD_STAT_TX_NON_DIR_DATA_G_5_5,	IPW_ORD_STAT_TX_NON_DIR_DATA_G_6,	IPW_ORD_STAT_TX_NON_DIR_DATA_G_9,	IPW_ORD_STAT_TX_NON_DIR_DATA_G_11,	IPW_ORD_STAT_TX_NON_DIR_DATA_G_12,	IPW_ORD_STAT_TX_NON_DIR_DATA_G_18,	IPW_ORD_STAT_TX_NON_DIR_DATA_G_24,	IPW_ORD_STAT_TX_NON_DIR_DATA_G_36,	IPW_ORD_STAT_TX_NON_DIR_DATA_G_48,	IPW_ORD_STAT_TX_NON_DIR_DATA_G_54,	IPW_ORD_STAT_TX_RETRY,	IPW_ORD_STAT_TX_FAILURE,	IPW_ORD_STAT_RX_ERR_CRC,	IPW_ORD_STAT_RX_ERR_ICV,	IPW_ORD_STAT_RX_NO_BUFFER,	IPW_ORD_STAT_FULL_SCANS,	IPW_ORD_STAT_PARTIAL_SCANS,	IPW_ORD_STAT_TGH_ABORTED_SCANS,	IPW_ORD_STAT_TX_TOTAL_BYTES,	IPW_ORD_STAT_CURR_RSSI_RAW,	IPW_ORD_STAT_RX_BEACON,	IPW_ORD_STAT_MISSED_BEACONS,	IPW_ORD_TABLE_0_LAST};#define IPW_RSSI_TO_DBM 112/* Table 1 Entries */enum {	IPW_ORD_TABLE_1_LAST = IPW_ORD_TABLE_1_MASK | 1,};/* * Table 2 Entries * * FW_VERSION:    16 byte string * FW_DATE:       16 byte string (only 14 bytes used) * UCODE_VERSION: 4 byte version code * UCODE_DATE:    5 bytes code code * ADDAPTER_MAC:  6 byte MAC address * RTC:           4 byte clock */enum {	IPW_ORD_STAT_FW_VERSION = IPW_ORD_TABLE_2_MASK | 1,	IPW_ORD_STAT_FW_DATE,	IPW_ORD_STAT_UCODE_VERSION,	IPW_ORD_STAT_UCODE_DATE,	IPW_ORD_STAT_ADAPTER_MAC,	IPW_ORD_STAT_RTC,	IPW_ORD_TABLE_2_LAST};/* Table 3 */enum {	IPW_ORD_STAT_TX_PACKET = IPW_ORD_TABLE_3_MASK | 0,	IPW_ORD_STAT_TX_PACKET_FAILURE,	IPW_ORD_STAT_TX_PACKET_SUCCESS,	IPW_ORD_STAT_TX_PACKET_ABORTED,	IPW_ORD_TABLE_3_LAST};/* Table 4 */enum {	IPW_ORD_TABLE_4_LAST = IPW_ORD_TABLE_4_MASK};/* Table 5 */enum {	IPW_ORD_STAT_AVAILABLE_AP_COUNT = IPW_ORD_TABLE_5_MASK,	IPW_ORD_STAT_AP_ASSNS,	IPW_ORD_STAT_ROAM,	IPW_ORD_STAT_ROAM_CAUSE_MISSED_BEACONS,	IPW_ORD_STAT_ROAM_CAUSE_UNASSOC,	IPW_ORD_STAT_ROAM_CAUSE_RSSI,	IPW_ORD_STAT_ROAM_CAUSE_LINK_QUALITY,	IPW_ORD_STAT_ROAM_CAUSE_AP_LOAD_BALANCE,	IPW_ORD_STAT_ROAM_CAUSE_AP_NO_TX,	IPW_ORD_STAT_LINK_UP,	IPW_ORD_STAT_LINK_DOWN,	IPW_ORD_ANTENNA_DIVERSITY,	IPW_ORD_CURR_FREQ,	IPW_ORD_TABLE_5_LAST};/* Table 6 */enum {	IPW_ORD_COUNTRY_CODE = IPW_ORD_TABLE_6_MASK,	IPW_ORD_CURR_BSSID,	IPW_ORD_CURR_SSID,	IPW_ORD_TABLE_6_LAST};/* Table 7 */enum {	IPW_ORD_STAT_PERCENT_MISSED_BEACONS = IPW_ORD_TABLE_7_MASK,	IPW_ORD_STAT_PERCENT_TX_RETRIES,	IPW_ORD_STAT_PERCENT_LINK_QUALITY,	IPW_ORD_STAT_CURR_RSSI_DBM,	IPW_ORD_TABLE_7_LAST};#define IPW_ERROR_LOG     (IPW_SHARED_LOWER_BOUND + 0x410)#define IPW_EVENT_LOG     (IPW_SHARED_LOWER_BOUND + 0x414)#define IPW_ORDINALS_TABLE_LOWER        (IPW_SHARED_LOWER_BOUND + 0x500)#define IPW_ORDINALS_TABLE_0            (IPW_SHARED_LOWER_BOUND + 0x180)#define IPW_ORDINALS_TABLE_1            (IPW_SHARED_LOWER_BOUND + 0x184)#define IPW_ORDINALS_TABLE_2            (IPW_SHARED_LOWER_BOUND + 0x188)#define IPW_MEM_FIXED_OVERRIDE          (IPW_SHARED_LOWER_BOUND + 0x41C)struct ipw_fixed_rate {	u16 tx_rates;	u16 reserved;} __attribute__ ((packed));#define IPW_INDIRECT_ADDR_MASK (~0x3ul)struct host_cmd {	u8 cmd;	u8 len;	u16 reserved;	u32 param[TFD_CMD_IMMEDIATE_PAYLOAD_LENGTH];} __attribute__ ((packed));struct ipw_cmd_log {	unsigned long jiffies;	int retcode;	struct host_cmd cmd;};#define CFG_BT_COEXISTENCE_MIN                  0x00#define CFG_BT_COEXISTENCE_DEFER                0x02#define CFG_BT_COEXISTENCE_KILL                 0x04#define CFG_BT_COEXISTENCE_WME_OVER_BT          0x08#define CFG_BT_COEXISTENCE_OOB                  0x10#define CFG_BT_COEXISTENCE_MAX                  0xFF#define CFG_BT_COEXISTENCE_DEF                  0x80	/* read Bt from EEPROM */#define CFG_CTS_TO_ITSELF_ENABLED_MIN	0x0#define CFG_CTS_TO_ITSELF_ENABLED_MAX	0x1#define CFG_CTS_TO_ITSELF_ENABLED_DEF	CFG_CTS_TO_ITSELF_ENABLED_MIN#define CFG_SYS_ANTENNA_BOTH                      0x000#define CFG_SYS_ANTENNA_A                         0x001#define CFG_SYS_ANTENNA_B                         0x003/* * The definitions below were lifted off the ipw2100 driver, which only * supports 'b' mode, so I'm sure these are not exactly correct. * * Somebody fix these!! */#define REG_MIN_CHANNEL             0#define REG_MAX_CHANNEL             14#define REG_CHANNEL_MASK            0x00003FFF#define IPW_IBSS_11B_DEFAULT_MASK   0x87ff#define IPW_MAX_CONFIG_RETRIES 10static inline u32 frame_hdr_len(struct ieee80211_hdr_4addr *hdr){	u32 retval;	u16 fc;	retval = sizeof(struct ieee80211_hdr_3addr);	fc = le16_to_cpu(hdr->frame_ctl);	/*	 * Function     ToDS    FromDS	 * IBSS         0       0	 * To AP        1       0	 * From AP      0       1	 * WDS (bridge) 1       1	 *	 * Only WDS frames use Address4 among them. --YZ	 */	if (!(fc & IEEE80211_FCTL_TODS) || !(fc & IEEE80211_FCTL_FROMDS))		retval -= ETH_ALEN;	return retval;}#endif				/* __ipw2200_h__ */

⌨️ 快捷键说明

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