aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEran Harary <eran.harary@intel.com>2014-03-25 08:14:44 -0400
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>2014-05-06 13:40:02 -0400
commit26481bf41b98746d4e7fa4b56c222ca1dee4dd15 (patch)
treeabad83038a69ba5a6dd4557959036b28326f9822
parent14b485f041e35f60212317017c2127b8a9b6be31 (diff)
iwlwifi: mvm: Prioritize external nvm values on top of the OTP values
Read first the nvm sections from the OTP, then read the nvm sections from the external file and override the OTP values (if there were any values in the OTP). Signed-off-by: Eran Harary <eran.harary@intel.com> Reviewed-by: Dor Shaish <dor.shaish@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/nvm.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/nvm.c b/drivers/net/wireless/iwlwifi/mvm/nvm.c
index fe4c91e7c27c..2cb6c29b0a97 100644
--- a/drivers/net/wireless/iwlwifi/mvm/nvm.c
+++ b/drivers/net/wireless/iwlwifi/mvm/nvm.c
@@ -437,14 +437,7 @@ int iwl_nvm_init(struct iwl_mvm *mvm, bool read_nvm_from_nic)
437 if (WARN_ON_ONCE(mvm->cfg->nvm_hw_section_num >= NVM_MAX_NUM_SECTIONS)) 437 if (WARN_ON_ONCE(mvm->cfg->nvm_hw_section_num >= NVM_MAX_NUM_SECTIONS))
438 return -EINVAL; 438 return -EINVAL;
439 439
440 /* load external NVM if configured */ 440 /* load NVM values from nic */
441 if (iwlwifi_mod_params.nvm_file) {
442 /* move to External NVM flow */
443 ret = iwl_mvm_read_external_nvm(mvm);
444 if (ret)
445 return ret;
446 }
447
448 if (read_nvm_from_nic) { 441 if (read_nvm_from_nic) {
449 /* list of NVM sections we are allowed/need to read */ 442 /* list of NVM sections we are allowed/need to read */
450 if (mvm->trans->cfg->device_family != IWL_DEVICE_FAMILY_8000) { 443 if (mvm->trans->cfg->device_family != IWL_DEVICE_FAMILY_8000) {
@@ -512,6 +505,15 @@ int iwl_nvm_init(struct iwl_mvm *mvm, bool read_nvm_from_nic)
512 return ret; 505 return ret;
513 } 506 }
514 507
508 /* load external NVM if configured */
509 if (iwlwifi_mod_params.nvm_file) {
510 /* move to External NVM flow */
511 ret = iwl_mvm_read_external_nvm(mvm);
512 if (ret)
513 return ret;
514 }
515
516 /* parse the relevant nvm sections */
515 mvm->nvm_data = iwl_parse_nvm_sections(mvm); 517 mvm->nvm_data = iwl_parse_nvm_sections(mvm);
516 if (!mvm->nvm_data) 518 if (!mvm->nvm_data)
517 return -ENODATA; 519 return -ENODATA;