rtw88: fix error handling when setup efuse info
commit f4268729eb1eefe23f6746849c1b5626d9030532 upstream. Disable efuse if the efuse is enabled when we failed to setup the efuse information, otherwise the hardware will not turn off. Fixes: e3037485c68e ("rtw88: new Realtek 802.11ac driver") Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
6b6d5f5338
commit
f88ed5cf0d
@ -1048,19 +1048,19 @@ static int rtw_chip_efuse_info_setup(struct rtw_dev *rtwdev)
|
||||
/* power on mac to read efuse */
|
||||
ret = rtw_chip_efuse_enable(rtwdev);
|
||||
if (ret)
|
||||
goto out;
|
||||
goto out_unlock;
|
||||
|
||||
ret = rtw_parse_efuse_map(rtwdev);
|
||||
if (ret)
|
||||
goto out;
|
||||
goto out_disable;
|
||||
|
||||
ret = rtw_dump_hw_feature(rtwdev);
|
||||
if (ret)
|
||||
goto out;
|
||||
goto out_disable;
|
||||
|
||||
ret = rtw_check_supported_rfe(rtwdev);
|
||||
if (ret)
|
||||
goto out;
|
||||
goto out_disable;
|
||||
|
||||
if (efuse->crystal_cap == 0xff)
|
||||
efuse->crystal_cap = 0;
|
||||
@ -1087,9 +1087,10 @@ static int rtw_chip_efuse_info_setup(struct rtw_dev *rtwdev)
|
||||
efuse->ext_pa_5g = efuse->pa_type_5g & BIT(0) ? 1 : 0;
|
||||
efuse->ext_lna_2g = efuse->lna_type_5g & BIT(3) ? 1 : 0;
|
||||
|
||||
out_disable:
|
||||
rtw_chip_efuse_disable(rtwdev);
|
||||
|
||||
out:
|
||||
out_unlock:
|
||||
mutex_unlock(&rtwdev->mutex);
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user