]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: rtw88: Fix download_firmware_validate() for RTL8814AU
authorBitterblue Smith <rtl8821cerfe2@gmail.com>
Tue, 4 Feb 2025 18:37:36 +0000 (20:37 +0200)
committerPing-Ke Shih <pkshih@realtek.com>
Mon, 10 Feb 2025 03:32:37 +0000 (11:32 +0800)
After the firmware is uploaded, download_firmware_validate() checks some
bits in REG_MCUFW_CTRL to see if everything went okay. The
RTL8814AU power on sequence sets bits 13 and 12 to 2, which this
function does not expect, so it thinks the firmware upload failed.

Make download_firmware_validate() ignore bits 13 and 12.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/049d2887-22fc-47b7-9e59-62627cb525f8@gmail.com
drivers/net/wireless/realtek/rtw88/reg.h

index e438405fba566b85e1989f67e460f01cd7f90616..209b6fc08a73ea3b9ef4c738e40c9b52624157d0 100644 (file)
 #define BIT_SHIFT_ROM_PGE      16
 #define BIT_FW_INIT_RDY                BIT(15)
 #define BIT_FW_DW_RDY          BIT(14)
+#define BIT_CPU_CLK_SEL                (BIT(12) | BIT(13))
 #define BIT_RPWM_TOGGLE                BIT(7)
 #define BIT_RAM_DL_SEL         BIT(7)  /* legacy only */
 #define BIT_DMEM_CHKSUM_OK     BIT(6)
                                 BIT_CHECK_SUM_OK)
 #define FW_READY_LEGACY                (BIT_MCUFWDL_RDY | BIT_FWDL_CHK_RPT |          \
                                 BIT_WINTINI_RDY | BIT_RAM_DL_SEL)
-#define FW_READY_MASK          0xffff
+#define FW_READY_MASK          (0xffff & ~BIT_CPU_CLK_SEL)
 
 #define REG_MCU_TST_CFG                0x84
 #define VAL_FW_TRIGGER         0x1