2024-02-05 03:06:02

by Ping-Ke Shih

[permalink] [raw]
Subject: RE: [PATCH 8/9] wifi: rtw88: Reset 8703b firmware before download



> -----Original Message-----
> From: Fiona Klute <[email protected]>
> Sent: Friday, February 2, 2024 8:11 PM
> To: [email protected]; Ping-Ke Shih <[email protected]>
> Cc: Kalle Valo <[email protected]>; Ulf Hansson <[email protected]>; [email protected]; Pavel
> Machek <[email protected]>; Ond?ej Jirman <[email protected]>; Fiona Klute <[email protected]>
> Subject: [PATCH 8/9] 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.
>
> Signed-off-by: Fiona Klute <[email protected]>
> ---
> drivers/net/wireless/realtek/rtw88/mac.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/realtek/rtw88/mac.c
> index 298663b035..b6de097e44 100644
> --- a/drivers/net/wireless/realtek/rtw88/mac.c
> +++ b/drivers/net/wireless/realtek/rtw88/mac.c
> @@ -936,6 +936,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(rtwdev, REG_MCUFW_CTRL) & BIT_RAM_DL_SEL) {

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);
> --
> 2.43.0
>