aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rtlwifi/core.c
diff options
context:
space:
mode:
authorLarry Finger <Larry.Finger@lwfinger.net>2013-11-18 12:11:26 -0500
committerJohn W. Linville <linville@tuxdriver.com>2013-12-05 14:55:04 -0500
commit62009b7f12793c932aaba0df946b04cb4a77d022 (patch)
tree2dd5912260b890c414bc8b40568d2891c61e739d /drivers/net/wireless/rtlwifi/core.c
parent8fd77aec1a9d6f4328fc0244f21932114e066df3 (diff)
rtlwifi: rtl8192cu: Add new firmware
Vendor driver rtl8188C_8192C_8192D_usb_linux_v3.4.2_3727.20120404 introduced new firmware for these chips. The code try for the new file, and fall back to the original firmware if the new file is not available. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Cc: Stable <stable@vger.kernel.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rtlwifi/core.c')
-rw-r--r--drivers/net/wireless/rtlwifi/core.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/wireless/rtlwifi/core.c b/drivers/net/wireless/rtlwifi/core.c
index 210ce7cd94d8..8dc4d9308593 100644
--- a/drivers/net/wireless/rtlwifi/core.c
+++ b/drivers/net/wireless/rtlwifi/core.c
@@ -46,10 +46,20 @@ void rtl_fw_cb(const struct firmware *firmware, void *context)
46 "Firmware callback routine entered!\n"); 46 "Firmware callback routine entered!\n");
47 complete(&rtlpriv->firmware_loading_complete); 47 complete(&rtlpriv->firmware_loading_complete);
48 if (!firmware) { 48 if (!firmware) {
49 if (rtlpriv->cfg->alt_fw_name) {
50 err = request_firmware(&firmware,
51 rtlpriv->cfg->alt_fw_name,
52 rtlpriv->io.dev);
53 pr_info("Loading alternative firmware %s\n",
54 rtlpriv->cfg->alt_fw_name);
55 if (!err)
56 goto found_alt;
57 }
49 pr_err("Firmware %s not available\n", rtlpriv->cfg->fw_name); 58 pr_err("Firmware %s not available\n", rtlpriv->cfg->fw_name);
50 rtlpriv->max_fw_size = 0; 59 rtlpriv->max_fw_size = 0;
51 return; 60 return;
52 } 61 }
62found_alt:
53 if (firmware->size > rtlpriv->max_fw_size) { 63 if (firmware->size > rtlpriv->max_fw_size) {
54 RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, 64 RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
55 "Firmware is too big!\n"); 65 "Firmware is too big!\n");