mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
wifi: rtw89: mac: separate pre-init code before downloading firmware
Driver needs to initialize registers before downloading firmware, so move pre-init part (power on) from original rtw89_mac_init(). The consequence patches will add more pre-init codes before downloading firmware. Since rtw89_phy_init_bb_afe() is used by coming RTL8922D, don't change logic at all for existing chips. Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/20251114060128.35363-4-pkshih@realtek.com
This commit is contained in:
@@ -5617,8 +5617,16 @@ int rtw89_core_start(struct rtw89_dev *rtwdev)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = rtw89_mac_preinit(rtwdev);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "mac preinit fail, ret: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
rtw89_phy_init_bb_afe(rtwdev);
|
||||
|
||||
/* above do preinit before downloading firmware */
|
||||
|
||||
ret = rtw89_mac_init(rtwdev);
|
||||
if (ret) {
|
||||
rtw89_err(rtwdev, "mac init fail, ret:%d\n", ret);
|
||||
|
||||
@@ -4126,6 +4126,17 @@ int rtw89_mac_partial_init(struct rtw89_dev *rtwdev, bool include_bb)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int rtw89_mac_preinit(struct rtw89_dev *rtwdev)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = rtw89_mac_pwr_on(rtwdev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int rtw89_mac_init(struct rtw89_dev *rtwdev)
|
||||
{
|
||||
const struct rtw89_mac_gen_def *mac = rtwdev->chip->mac_def;
|
||||
@@ -4133,10 +4144,6 @@ int rtw89_mac_init(struct rtw89_dev *rtwdev)
|
||||
bool include_bb = !!chip->bbmcu_nr;
|
||||
int ret;
|
||||
|
||||
ret = rtw89_mac_pwr_on(rtwdev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = rtw89_mac_partial_init(rtwdev, include_bb);
|
||||
if (ret)
|
||||
goto fail;
|
||||
|
||||
@@ -1201,6 +1201,7 @@ rtw89_write32_port_set(struct rtw89_dev *rtwdev, struct rtw89_vif_link *rtwvif_l
|
||||
int rtw89_mac_pwr_on(struct rtw89_dev *rtwdev);
|
||||
void rtw89_mac_pwr_off(struct rtw89_dev *rtwdev);
|
||||
int rtw89_mac_partial_init(struct rtw89_dev *rtwdev, bool include_bb);
|
||||
int rtw89_mac_preinit(struct rtw89_dev *rtwdev);
|
||||
int rtw89_mac_init(struct rtw89_dev *rtwdev);
|
||||
int rtw89_mac_dle_init(struct rtw89_dev *rtwdev, enum rtw89_qta_mode mode,
|
||||
enum rtw89_qta_mode ext_mode);
|
||||
|
||||
Reference in New Issue
Block a user