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));