Skip to contentSkip to conversation

Patch "rtlwifi: rtl8192ce: Fix loading of incorrect firmware" has been added to the 4.9-stable tree

PATCH [email protected] 1 participant 1 message Feb 10, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

rtlwifi: rtl8192ce: Fix loading of incorrect firmware

to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
rtlwifi-rtl8192ce-fix-loading-of-incorrect-firmware.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 52f5631a4c056ad01682393be56d2be237e81610 Mon Sep 17 00:00:00 2001

From: Jurij Smakov <[email protected]>
Date: Mon, 30 Jan 2017 15:41:36 -0600
Subject: rtlwifi: rtl8192ce: Fix loading of incorrect firmware

From: Jurij Smakov <[email protected]>

commit 52f5631a4c056ad01682393be56d2be237e81610 upstream.

In commit cf4747d7535a ("rtlwifi: Fix regression caused by commit d86e64768859, an error in the edit results in the wrong firmware being loaded for some models of the RTL8188/8192CE. In this condition, the connection suffered from high ping latency, slow transfer rates,
and required higher signal strengths to work at all

See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853073,
https://bugzilla.opensuse.org/show_bug.cgi?id=1017471, and
https://github.com/lwfinger/rtlwifi_new/issues/203 for descriptions of the problems. This patch fixes all of those problems.

Fixes cf4747d7535a ("rtlwifi: Fix regression caused by commit d86e64768859")
---
 drivers/net/wireless/realtek/rtlwifi/rtl8192ce/sw.c |    9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/sw.c +7 -2
@@ -96,7 +96,7 @@ int rtl92c_init_sw_vars(struct ieee80211
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
 	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
 	struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
-	char *fw_name = "rtlwifi/rtl8192cfwU.bin";
+	char *fw_name;
 
 	rtl8192ce_bt_reg_init(hw);
 
@@ -168,8 +168,13 @@ int rtl92c_init_sw_vars(struct ieee80211
 	}
 
 	/* request fw */
-	if (IS_81XXC_VENDOR_UMC_B_CUT(rtlhal->version))
+	if (IS_VENDOR_UMC_A_CUT(rtlhal->version) &&
+	    !IS_92C_SERIAL(rtlhal->version))
+		fw_name = "rtlwifi/rtl8192cfwU.bin";
+	else if (IS_81XXC_VENDOR_UMC_B_CUT(rtlhal->version))
 		fw_name = "rtlwifi/rtl8192cfwU_B.bin";
+	else
+		fw_name = "rtlwifi/rtl8192cfw.bin";
 
 	rtlpriv->max_fw_size = 0x4000;
 	pr_info("Using firmware %s\n", fw_name);

Patches currently in stable-queue which might be from [email protected] are

queue-4.9/rtlwifi-rtl8192ce-fix-loading-of-incorrect-firmware.patch