iwlwifi: mvm: support fw reading empty OTP
If the OTP is empty, the NVM_GET_INFO command returns
with flags' bit(0) on. This means the FW returns the
default values for working with. This is allowed, so
use this returned data.
Fixes: e9e1ba3dbf
("iwlwifi: mvm: support getting nvm data from firmware")
Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
This commit is contained in:
parent
c1b68c194e
commit
f6aa45f67a
@ -163,9 +163,17 @@ struct iwl_nvm_get_info {
|
||||
__le32 reserved;
|
||||
} __packed; /* GRP_REGULATORY_NVM_GET_INFO_CMD_S_VER_1 */
|
||||
|
||||
/**
|
||||
* enum iwl_nvm_info_general_flags - flags in NVM_GET_INFO resp
|
||||
* @NVM_GENERAL_FLAGS_EMPTY_OTP: 1 if OTP is empty
|
||||
*/
|
||||
enum iwl_nvm_info_general_flags {
|
||||
NVM_GENERAL_FLAGS_EMPTY_OTP = BIT(0),
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iwl_nvm_get_info_general - general NVM data
|
||||
* @flags: 1 - empty, 0 - valid
|
||||
* @flags: bit 0: 1 - empty, 0 - non-empty
|
||||
* @nvm_version: nvm version
|
||||
* @board_type: board type
|
||||
* @reserved: reserved
|
||||
|
@ -576,11 +576,8 @@ int iwl_mvm_nvm_get_from_fw(struct iwl_mvm *mvm)
|
||||
}
|
||||
|
||||
rsp = (void *)hcmd.resp_pkt->data;
|
||||
if (le32_to_cpu(rsp->general.flags)) {
|
||||
IWL_ERR(mvm, "Invalid NVM data from FW\n");
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
if (le32_to_cpu(rsp->general.flags) & NVM_GENERAL_FLAGS_EMPTY_OTP)
|
||||
IWL_INFO(mvm, "OTP is empty\n");
|
||||
|
||||
mvm->nvm_data = kzalloc(sizeof(*mvm->nvm_data) +
|
||||
sizeof(struct ieee80211_channel) *
|
||||
|
Loading…
Reference in New Issue
Block a user