|
@@ -50,6 +50,9 @@ MODULE_AUTHOR("Larry Finger <Larry.Finger@lwfinger.net>");
|
|
|
MODULE_LICENSE("GPL");
|
|
|
MODULE_DESCRIPTION("Realtek 8192C/8188C 802.11n USB wireless");
|
|
|
MODULE_FIRMWARE("rtlwifi/rtl8192cufw.bin");
|
|
|
+MODULE_FIRMWARE("rtlwifi/rtl8192cufw_A.bin");
|
|
|
+MODULE_FIRMWARE("rtlwifi/rtl8192cufw_B.bin");
|
|
|
+MODULE_FIRMWARE("rtlwifi/rtl8192cufw_TMSC.bin");
|
|
|
|
|
|
static int rtl92cu_init_sw_vars(struct ieee80211_hw *hw)
|
|
|
{
|
|
@@ -69,14 +72,21 @@ static int rtl92cu_init_sw_vars(struct ieee80211_hw *hw)
|
|
|
"Can't alloc buffer for fw\n");
|
|
|
return 1;
|
|
|
}
|
|
|
-
|
|
|
+ if (IS_VENDOR_UMC_A_CUT(rtlpriv->rtlhal.version) &&
|
|
|
+ !IS_92C_SERIAL(rtlpriv->rtlhal.version)) {
|
|
|
+ rtlpriv->cfg->fw_name = "rtlwifi/rtl8192cufw_A.bin";
|
|
|
+ } else if (IS_81xxC_VENDOR_UMC_B_CUT(rtlpriv->rtlhal.version)) {
|
|
|
+ rtlpriv->cfg->fw_name = "rtlwifi/rtl8192cufw_B.bin";
|
|
|
+ } else {
|
|
|
+ rtlpriv->cfg->fw_name = "rtlwifi/rtl8192cufw_TMSC.bin";
|
|
|
+ }
|
|
|
+ /* provide name of alternative file */
|
|
|
+ rtlpriv->cfg->alt_fw_name = "rtlwifi/rtl8192cufw.bin";
|
|
|
pr_info("Loading firmware %s\n", rtlpriv->cfg->fw_name);
|
|
|
rtlpriv->max_fw_size = 0x4000;
|
|
|
err = request_firmware_nowait(THIS_MODULE, 1,
|
|
|
rtlpriv->cfg->fw_name, rtlpriv->io.dev,
|
|
|
GFP_KERNEL, hw, rtl_fw_cb);
|
|
|
-
|
|
|
-
|
|
|
return err;
|
|
|
}
|
|
|
|