|
@@ -518,6 +518,11 @@ int iwl_eeprom_init(struct iwl_priv *priv)
|
|
|
}
|
|
|
e = (u16 *)priv->eeprom;
|
|
|
|
|
|
+ if (priv->nvm_device_type == NVM_DEVICE_TYPE_OTP) {
|
|
|
+ /* OTP reads require powered-up chip */
|
|
|
+ priv->cfg->ops->lib->apm_ops.init(priv);
|
|
|
+ }
|
|
|
+
|
|
|
ret = priv->cfg->ops->lib->eeprom_ops.verify_signature(priv);
|
|
|
if (ret < 0) {
|
|
|
IWL_ERR(priv, "EEPROM not found, EEPROM_GP=0x%08x\n", gp);
|
|
@@ -532,10 +537,8 @@ int iwl_eeprom_init(struct iwl_priv *priv)
|
|
|
ret = -ENOENT;
|
|
|
goto err;
|
|
|
}
|
|
|
- if (priv->nvm_device_type == NVM_DEVICE_TYPE_OTP) {
|
|
|
|
|
|
- /* OTP reads require powered-up chip */
|
|
|
- priv->cfg->ops->lib->apm_ops.init(priv);
|
|
|
+ if (priv->nvm_device_type == NVM_DEVICE_TYPE_OTP) {
|
|
|
|
|
|
ret = iwl_init_otp_access(priv);
|
|
|
if (ret) {
|