Blob Blame History Raw
From: Takashi Iwai <tiwai@suse.de>
Subject: iwlwifi: Fix MODULE_FIRMWARE() for non-existing ucode version
Patch-mainline: Never, temporary workaround
References: boo#1191417

iwlwifi driver declares the requested firmware *-64.ucode for 22000
series, but that version isn't found in the upstream linux-firmware
tree.  As a result, the installation image (and initrd) misses the
requested firmware, which leads to the non-working WiFi.

As a temporary fix, correct the ucode version in MODULE_FIRMWARE().

Signed-off-by: Takashi Iwai <tiwai@suse.de>

---
 drivers/net/wireless/intel/iwlwifi/cfg/22000.c |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

--- a/drivers/net/wireless/intel/iwlwifi/cfg/22000.c
+++ b/drivers/net/wireless/intel/iwlwifi/cfg/22000.c
@@ -850,6 +850,10 @@ const struct iwl_cfg iwl_cfg_bz_a0_mr_a0
 	.num_rbds = IWL_NUM_RBDS_AX210_HE,
 };
 
+/* Re-define API_MAX as *-64.ucode doesn't exist (boo#1191417) */
+#undef IWL_22000_UCODE_API_MAX
+#define IWL_22000_UCODE_API_MAX	63
+
 MODULE_FIRMWARE(IWL_QU_B_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
 MODULE_FIRMWARE(IWL_QNJ_B_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
 MODULE_FIRMWARE(IWL_QU_C_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
@@ -861,7 +865,9 @@ MODULE_FIRMWARE(IWL_CC_A_MODULE_FIRMWARE
 MODULE_FIRMWARE(IWL_SO_A_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
 MODULE_FIRMWARE(IWL_SO_A_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
 MODULE_FIRMWARE(IWL_SO_A_GF_A_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
-MODULE_FIRMWARE(IWL_TY_A_GF_A_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
+/* FIXME: only iwlwifi-ty-a0-gf-a0-* has *-66.ucode as of now while others are with *-63.ucode */
+/* MODULE_FIRMWARE(IWL_TY_A_GF_A_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); */
+MODULE_FIRMWARE(IWL_TY_A_GF_A_MODULE_FIRMWARE(66));
 MODULE_FIRMWARE(IWL_SNJ_A_GF4_A_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
 MODULE_FIRMWARE(IWL_SNJ_A_GF_A_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
 MODULE_FIRMWARE(IWL_SNJ_A_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));