diff options
author | Fiona Klute <fiona.klute@gmx.de> | 2024-03-11 11:37:12 +0100 |
---|---|---|
committer | Kalle Valo <kvalo@kernel.org> | 2024-03-14 10:59:30 +0200 |
commit | 1f30e95b1646c1c5b0fa82b6762634505a81bb87 (patch) | |
tree | 73f72bba625528de70e0d8c4fffcc8e92efcc23a | |
parent | c75065b1ebfc450249e13805f8fdd275e461cefe (diff) |
wifi: rtw88: Reset 8703b firmware before download
Sometimes 8703b firmware is still active from previous use when the
driver needs to download the firmware during MAC activation. Reset it
in that case.
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
Tested-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Fiona Klute <fiona.klute@gmx.de>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240311103735.615541-9-fiona.klute@gmx.de
-rw-r--r-- | drivers/net/wireless/realtek/rtw88/mac.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/realtek/rtw88/mac.c index 0c1c1ff31085..699ae3048c6b 100644 --- a/drivers/net/wireless/realtek/rtw88/mac.c +++ b/drivers/net/wireless/realtek/rtw88/mac.c @@ -943,6 +943,12 @@ static int __rtw_download_firmware_legacy(struct rtw_dev *rtwdev, { int ret = 0; + /* reset firmware if still present */ + if (rtwdev->chip->id == RTW_CHIP_TYPE_8703B && + rtw_read8_mask(rtwdev, REG_MCUFW_CTRL, BIT_RAM_DL_SEL)) { + rtw_write8(rtwdev, REG_MCUFW_CTRL, 0x00); + } + en_download_firmware_legacy(rtwdev, true); ret = download_firmware_legacy(rtwdev, fw->firmware->data, fw->firmware->size); en_download_firmware_legacy(rtwdev, false); |