From b72c69dd542c4684ece8ac88ec1ba33364ec9365 Mon Sep 17 00:00:00 2001 From: Bitterblue Smith Date: Tue, 16 May 2023 12:48:23 +0300 Subject: [PATCH] rtlwifi: Update firmware for RTL8188EU to v28.0 It seems this fixes some issues with rtl8xxxu in monitor mode. r8188eu from kernel 6.2.5 still works with this new firmware. This firmware was extracted from the vendor driver v5.2.2.4 from https://github.com/lwfinger/rtl8188eu/blob/v5.2.2.4/hal8188e_t_fw.c Also, move the entry in WHENCE under the rtl8xxxu driver, because that's the driver which handles this chip from kernel 6.3 onwards. Link: https://bugzilla.kernel.org/show_bug.cgi?id=217205 Signed-off-by: Bitterblue Smith Signed-off-by: Ping-Ke Shih --- WHENCE | 16 +++++++--------- rtlwifi/rtl8188eufw.bin | Bin 13904 -> 15262 bytes 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/WHENCE b/WHENCE index 61da3444..f3bba6e5 100644 --- a/WHENCE +++ b/WHENCE @@ -2973,15 +2973,6 @@ Licence: Redistributable. See LICENCE.rtlwifi_firmware.txt for details. -------------------------------------------------------------------------- -Driver: rtl8188eu - Realtek 802.11n WLAN driver for RTL8188EU - -Info: Taken from Realtek version RTL8188EUS_linux_v4.1.4_6773.20130222 -File: rtlwifi/rtl8188eufw.bin - -Licence: Redistributable. See LICENCE.rtlwifi_firmware.txt for details. - --------------------------------------------------------------------------- - Driver: rtl8821ae - Realtek 802.11n WLAN driver for RTL8812AE Info: From Vendor's realtek/rtlwifi_linux_mac80211_0019.0320.2014V628 driver @@ -3112,6 +3103,13 @@ Version: 16.0 File: rtlwifi/rtl8710bufw_UMC.bin Version: 16.0 +Info: rtl8188eu taken from Realtek driver version + v5.2.2.4_25483.20171222. + Firmware is embedded in the driver as data statements. This info + has been extracted into a binary file. +File: rtlwifi/rtl8188eufw.bin +Version: 28.0 + Licence: Redistributable. See LICENCE.rtlwifi_firmware.txt for details. -------------------------------------------------------------------------- diff --git a/rtlwifi/rtl8188eufw.bin b/rtlwifi/rtl8188eufw.bin index 4ae7e1c5deb7846e59c461546a49679504ffed28..8bb12ea88246d2e7060a46bdeef61800c1ed1881 100644 GIT binary patch literal 15262 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 OE+=Occa@IUp8UUyqelq<