Commit 1c58bed4 authored by Johannes Berg's avatar Johannes Berg Committed by Kalle Valo
Browse files

iwlwifi: pnvm: don't skip everything when not reloading



Even if we don't reload the file from disk, we still need to
trigger the PNVM load flow with the device; fix that.

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Fixes: 69725928 ("iwlwifi: read and parse PNVM file")
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/iwlwifi.20210115130252.85ef56c4ef8c.I3b853ce041a0755d45e448035bef1837995d191b@changeid
parent 34b9434c
Loading
Loading
Loading
Loading
+25 −25
Original line number Diff line number Diff line
@@ -224,20 +224,19 @@ static int iwl_pnvm_parse(struct iwl_trans *trans, const u8 *data,
int iwl_pnvm_load(struct iwl_trans *trans,
		  struct iwl_notif_wait_data *notif_wait)
{
	const struct firmware *pnvm;
	struct iwl_notification_wait pnvm_wait;
	static const u16 ntf_cmds[] = { WIDE_ID(REGULATORY_AND_NVM_GROUP,
						PNVM_INIT_COMPLETE_NTFY) };
	char pnvm_name[64];
	int ret;

	/* if the SKU_ID is empty, there's nothing to do */
	if (!trans->sku_id[0] && !trans->sku_id[1] && !trans->sku_id[2])
		return 0;

	/* if we already have it, nothing to do either */
	if (trans->pnvm_loaded)
		return 0;
	/* load from disk only if we haven't done it before */
	if (!trans->pnvm_loaded) {
		const struct firmware *pnvm;
		char pnvm_name[64];
		int ret;

		/*
		 * The prefix unfortunately includes a hyphen at the end, so
@@ -259,6 +258,7 @@ int iwl_pnvm_load(struct iwl_trans *trans,

			release_firmware(pnvm);
		}
	}

	iwl_init_notification_wait(notif_wait, &pnvm_wait,
				   ntf_cmds, ARRAY_SIZE(ntf_cmds),