When loading custom NVM file on Wireless-AC 9260 160MHz, REV=0x324 8086:2526 (rev 29) Subsystem: 8086:001c firmware version 46.6b541b68.0 9260-th-b0-jf-b0-46.ucode , the NVM_WRITE_OPCODE return status is 0x1000 for all sections. What does this mean is unknown, however clearing the top 4 bits permits the NVM to be written and the card operates as it should. Hexdump of the iNVM file is below, the iNVM file overrides antenna settings to only use AUX antenna and disables MIMO . 00000000 54 4c 50 2a 2a 4d 56 4e 2c 11 00 00 08 10 21 20 00000010 c0 00 00 02 03 03 02 11 2f 00 00 00 00 00 00 00 00000020 00 00 00 00 Signed-off-by: Marek Vasut <marex@xxxxxxx> Cc: Dan Moulding <dmoulding@xxxxxx> Cc: Kalle Valo <kvalo@xxxxxxxxxxxxxx> Cc: Luca Coelho <luciano.coelho@xxxxxxxxx> To: linux-wireless@xxxxxxxxxxxxxxx --- drivers/net/wireless/intel/iwlwifi/mvm/nvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c b/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c index 60296a754af2..52921f7e735b 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c @@ -116,7 +116,7 @@ static int iwl_nvm_write_chunk(struct iwl_mvm *mvm, u16 section, pkt = cmd.resp_pkt; /* Extract & check NVM write response */ nvm_resp = (void *)pkt->data; - if (le16_to_cpu(nvm_resp->status) != READ_NVM_CHUNK_SUCCEED) { + if ((le16_to_cpu(nvm_resp->status) & 0xfff) != READ_NVM_CHUNK_SUCCEED) { IWL_ERR(mvm, "NVM access write command failed for section %u (status = 0x%x)\n", section, le16_to_cpu(nvm_resp->status)); -- 2.33.0