iwlwifi: mvm: fix bug with OTP memory size
OTP size changed in family 7000 and in family 8000. Signed-off-by: Eran Harary <eran.harary@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
This commit is contained in:
parent
7a53174146
commit
300855443e
5 changed files with 8 additions and 6 deletions
|
@ -98,7 +98,7 @@
|
||||||
#define NVM_HW_SECTION_NUM_FAMILY_7000 0
|
#define NVM_HW_SECTION_NUM_FAMILY_7000 0
|
||||||
|
|
||||||
static const struct iwl_base_params iwl7000_base_params = {
|
static const struct iwl_base_params iwl7000_base_params = {
|
||||||
.eeprom_size = OTP_LOW_IMAGE_SIZE,
|
.eeprom_size = OTP_LOW_IMAGE_SIZE_FAMILY_7000,
|
||||||
.num_of_queues = IWLAGN_NUM_QUEUES,
|
.num_of_queues = IWLAGN_NUM_QUEUES,
|
||||||
.pll_cfg_val = 0,
|
.pll_cfg_val = 0,
|
||||||
.shadow_ram_support = true,
|
.shadow_ram_support = true,
|
||||||
|
|
|
@ -85,7 +85,7 @@
|
||||||
#define NVM_HW_SECTION_NUM_FAMILY_8000 10
|
#define NVM_HW_SECTION_NUM_FAMILY_8000 10
|
||||||
|
|
||||||
static const struct iwl_base_params iwl8000_base_params = {
|
static const struct iwl_base_params iwl8000_base_params = {
|
||||||
.eeprom_size = OTP_LOW_IMAGE_SIZE,
|
.eeprom_size = OTP_LOW_IMAGE_SIZE_FAMILY_8000,
|
||||||
.num_of_queues = IWLAGN_NUM_QUEUES,
|
.num_of_queues = IWLAGN_NUM_QUEUES,
|
||||||
.pll_cfg_val = 0,
|
.pll_cfg_val = 0,
|
||||||
.shadow_ram_support = true,
|
.shadow_ram_support = true,
|
||||||
|
|
|
@ -102,9 +102,7 @@
|
||||||
|
|
||||||
/* EEPROM */
|
/* EEPROM */
|
||||||
#define IWLAGN_EEPROM_IMG_SIZE 2048
|
#define IWLAGN_EEPROM_IMG_SIZE 2048
|
||||||
/* OTP */
|
|
||||||
/* lower blocks contain EEPROM image and calibration data */
|
|
||||||
#define OTP_LOW_IMAGE_SIZE (2 * 512 * sizeof(u16)) /* 2 KB */
|
|
||||||
/* high blocks contain PAPD data */
|
/* high blocks contain PAPD data */
|
||||||
#define OTP_HIGH_IMAGE_SIZE_6x00 (6 * 512 * sizeof(u16)) /* 6 KB */
|
#define OTP_HIGH_IMAGE_SIZE_6x00 (6 * 512 * sizeof(u16)) /* 6 KB */
|
||||||
#define OTP_HIGH_IMAGE_SIZE_1000 (0x200 * sizeof(u16)) /* 1024 bytes */
|
#define OTP_HIGH_IMAGE_SIZE_1000 (0x200 * sizeof(u16)) /* 1024 bytes */
|
||||||
|
|
|
@ -193,6 +193,11 @@ struct iwl_ht_params {
|
||||||
#define EEPROM_6000_REG_BAND_24_HT40_CHANNELS 0x80
|
#define EEPROM_6000_REG_BAND_24_HT40_CHANNELS 0x80
|
||||||
#define EEPROM_REGULATORY_BAND_NO_HT40 0
|
#define EEPROM_REGULATORY_BAND_NO_HT40 0
|
||||||
|
|
||||||
|
/* lower blocks contain EEPROM image and calibration data */
|
||||||
|
#define OTP_LOW_IMAGE_SIZE (2 * 512 * sizeof(u16)) /* 2 KB */
|
||||||
|
#define OTP_LOW_IMAGE_SIZE_FAMILY_7000 (4 * 512 * sizeof(u16)) /* 4 KB */
|
||||||
|
#define OTP_LOW_IMAGE_SIZE_FAMILY_8000 (32 * 512 * sizeof(u16)) /* 32 KB */
|
||||||
|
|
||||||
struct iwl_eeprom_params {
|
struct iwl_eeprom_params {
|
||||||
const u8 regulatory_bands[7];
|
const u8 regulatory_bands[7];
|
||||||
bool enhanced_txpower;
|
bool enhanced_txpower;
|
||||||
|
|
|
@ -463,7 +463,6 @@ int iwl_nvm_init(struct iwl_mvm *mvm)
|
||||||
/* Read From FW NVM */
|
/* Read From FW NVM */
|
||||||
IWL_DEBUG_EEPROM(mvm->trans->dev, "Read from NVM\n");
|
IWL_DEBUG_EEPROM(mvm->trans->dev, "Read from NVM\n");
|
||||||
|
|
||||||
/* TODO: find correct NVM max size for a section */
|
|
||||||
nvm_buffer = kmalloc(mvm->cfg->base_params->eeprom_size,
|
nvm_buffer = kmalloc(mvm->cfg->base_params->eeprom_size,
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!nvm_buffer)
|
if (!nvm_buffer)
|
||||||
|
|
Loading…
Add table
Reference in a new issue