diff options
author | Wey-Yi Guy <wey-yi.w.guy@intel.com> | 2010-11-10 16:32:59 -0500 |
---|---|---|
committer | Wey-Yi Guy <wey-yi.w.guy@intel.com> | 2010-11-16 10:47:10 -0500 |
commit | 21a5b3c6b19a8b8972ccdd55389be28a8b7c9180 (patch) | |
tree | 4c96bbe4405cab9ac87cc9afd5d782705039f270 /drivers/net/wireless/iwlwifi/iwl-eeprom.h | |
parent | f4115d46599464a49a3055d33d499d97ac81fccb (diff) |
iwlagn: use SKU information in the EEPROM
EEPROM contain the SKU information for the device, use it.
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-eeprom.h')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-eeprom.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.h b/drivers/net/wireless/iwlwifi/iwl-eeprom.h index d9b590625ae4..e87be1e551aa 100644 --- a/drivers/net/wireless/iwlwifi/iwl-eeprom.h +++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.h | |||
@@ -110,9 +110,18 @@ enum { | |||
110 | }; | 110 | }; |
111 | 111 | ||
112 | /* SKU Capabilities */ | 112 | /* SKU Capabilities */ |
113 | /* 3945 only */ | ||
113 | #define EEPROM_SKU_CAP_SW_RF_KILL_ENABLE (1 << 0) | 114 | #define EEPROM_SKU_CAP_SW_RF_KILL_ENABLE (1 << 0) |
114 | #define EEPROM_SKU_CAP_HW_RF_KILL_ENABLE (1 << 1) | 115 | #define EEPROM_SKU_CAP_HW_RF_KILL_ENABLE (1 << 1) |
115 | 116 | ||
117 | /* 5000 and up */ | ||
118 | #define EEPROM_SKU_CAP_BAND_POS (4) | ||
119 | #define EEPROM_SKU_CAP_BAND_SELECTION \ | ||
120 | (3 << EEPROM_SKU_CAP_BAND_POS) | ||
121 | #define EEPROM_SKU_CAP_11N_ENABLE (1 << 6) | ||
122 | #define EEPROM_SKU_CAP_AMT_ENABLE (1 << 7) | ||
123 | #define EEPROM_SKU_CAP_IPAN_ENABLE (1 << 8) | ||
124 | |||
116 | /* *regulatory* channel data format in eeprom, one for each channel. | 125 | /* *regulatory* channel data format in eeprom, one for each channel. |
117 | * There are separate entries for HT40 (40 MHz) vs. normal (20 MHz) channels. */ | 126 | * There are separate entries for HT40 (40 MHz) vs. normal (20 MHz) channels. */ |
118 | struct iwl_eeprom_channel { | 127 | struct iwl_eeprom_channel { |
@@ -397,7 +406,7 @@ struct iwl_eeprom_calib_info { | |||
397 | #define EEPROM_BOARD_REVISION (2*0x35) /* 2 bytes */ | 406 | #define EEPROM_BOARD_REVISION (2*0x35) /* 2 bytes */ |
398 | #define EEPROM_BOARD_PBA_NUMBER (2*0x3B+1) /* 9 bytes */ | 407 | #define EEPROM_BOARD_PBA_NUMBER (2*0x3B+1) /* 9 bytes */ |
399 | #define EEPROM_VERSION (2*0x44) /* 2 bytes */ | 408 | #define EEPROM_VERSION (2*0x44) /* 2 bytes */ |
400 | #define EEPROM_SKU_CAP (2*0x45) /* 1 bytes */ | 409 | #define EEPROM_SKU_CAP (2*0x45) /* 2 bytes */ |
401 | #define EEPROM_OEM_MODE (2*0x46) /* 2 bytes */ | 410 | #define EEPROM_OEM_MODE (2*0x46) /* 2 bytes */ |
402 | #define EEPROM_WOWLAN_MODE (2*0x47) /* 2 bytes */ | 411 | #define EEPROM_WOWLAN_MODE (2*0x47) /* 2 bytes */ |
403 | #define EEPROM_RADIO_CONFIG (2*0x48) /* 2 bytes */ | 412 | #define EEPROM_RADIO_CONFIG (2*0x48) /* 2 bytes */ |
@@ -504,6 +513,7 @@ struct iwl_eeprom_ops { | |||
504 | int iwl_eeprom_init(struct iwl_priv *priv); | 513 | int iwl_eeprom_init(struct iwl_priv *priv); |
505 | void iwl_eeprom_free(struct iwl_priv *priv); | 514 | void iwl_eeprom_free(struct iwl_priv *priv); |
506 | int iwl_eeprom_check_version(struct iwl_priv *priv); | 515 | int iwl_eeprom_check_version(struct iwl_priv *priv); |
516 | int iwl_eeprom_check_sku(struct iwl_priv *priv); | ||
507 | const u8 *iwl_eeprom_query_addr(const struct iwl_priv *priv, size_t offset); | 517 | const u8 *iwl_eeprom_query_addr(const struct iwl_priv *priv, size_t offset); |
508 | int iwlcore_eeprom_verify_signature(struct iwl_priv *priv); | 518 | int iwlcore_eeprom_verify_signature(struct iwl_priv *priv); |
509 | u16 iwl_eeprom_query16(const struct iwl_priv *priv, size_t offset); | 519 | u16 iwl_eeprom_query16(const struct iwl_priv *priv, size_t offset); |