mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 04:56:13 +02:00
wifi: rtw89: 8922a: add chip_ops::bb_preinit to enable BB before downloading firmware
Before downloading firmware for BB MCU, call this ops to enable baseband hardware. Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20230901073956.54203-7-pkshih@realtek.com
This commit is contained in:
parent
a712eef681
commit
c6ea2a8391
|
|
@ -3032,6 +3032,7 @@ struct rtw89_hci_info {
|
|||
struct rtw89_chip_ops {
|
||||
int (*enable_bb_rf)(struct rtw89_dev *rtwdev);
|
||||
int (*disable_bb_rf)(struct rtw89_dev *rtwdev);
|
||||
void (*bb_preinit)(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx);
|
||||
void (*bb_reset)(struct rtw89_dev *rtwdev,
|
||||
enum rtw89_phy_idx phy_idx);
|
||||
void (*bb_sethw)(struct rtw89_dev *rtwdev);
|
||||
|
|
@ -5113,6 +5114,15 @@ static inline void rtw89_chip_rfe_gpio(struct rtw89_dev *rtwdev)
|
|||
chip->ops->rfe_gpio(rtwdev);
|
||||
}
|
||||
|
||||
static inline
|
||||
void rtw89_chip_bb_preinit(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx)
|
||||
{
|
||||
const struct rtw89_chip_info *chip = rtwdev->chip;
|
||||
|
||||
if (chip->ops->bb_preinit)
|
||||
chip->ops->bb_preinit(rtwdev, phy_idx);
|
||||
}
|
||||
|
||||
static inline void rtw89_chip_bb_sethw(struct rtw89_dev *rtwdev)
|
||||
{
|
||||
const struct rtw89_chip_info *chip = rtwdev->chip;
|
||||
|
|
|
|||
|
|
@ -3607,6 +3607,12 @@ int rtw89_mac_partial_init(struct rtw89_dev *rtwdev, bool include_bb)
|
|||
|
||||
rtw89_mac_ctrl_hci_dma_trx(rtwdev, true);
|
||||
|
||||
if (include_bb) {
|
||||
rtw89_chip_bb_preinit(rtwdev, RTW89_PHY_0);
|
||||
if (rtwdev->dbcc_en)
|
||||
rtw89_chip_bb_preinit(rtwdev, RTW89_PHY_1);
|
||||
}
|
||||
|
||||
ret = rtw89_mac_dmac_pre_init(rtwdev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
|
|
|||
|
|
@ -2280,6 +2280,7 @@ static int rtw8851b_mac_disable_bb_rf(struct rtw89_dev *rtwdev)
|
|||
static const struct rtw89_chip_ops rtw8851b_chip_ops = {
|
||||
.enable_bb_rf = rtw8851b_mac_enable_bb_rf,
|
||||
.disable_bb_rf = rtw8851b_mac_disable_bb_rf,
|
||||
.bb_preinit = NULL,
|
||||
.bb_reset = rtw8851b_bb_reset,
|
||||
.bb_sethw = rtw8851b_bb_sethw,
|
||||
.read_rf = rtw89_phy_read_rf_v1,
|
||||
|
|
|
|||
|
|
@ -2025,6 +2025,7 @@ static const struct wiphy_wowlan_support rtw_wowlan_stub_8852a = {
|
|||
static const struct rtw89_chip_ops rtw8852a_chip_ops = {
|
||||
.enable_bb_rf = rtw89_mac_enable_bb_rf,
|
||||
.disable_bb_rf = rtw89_mac_disable_bb_rf,
|
||||
.bb_preinit = NULL,
|
||||
.bb_reset = rtw8852a_bb_reset,
|
||||
.bb_sethw = rtw8852a_bb_sethw,
|
||||
.read_rf = rtw89_phy_read_rf,
|
||||
|
|
|
|||
|
|
@ -2449,6 +2449,7 @@ static int rtw8852b_mac_disable_bb_rf(struct rtw89_dev *rtwdev)
|
|||
static const struct rtw89_chip_ops rtw8852b_chip_ops = {
|
||||
.enable_bb_rf = rtw8852b_mac_enable_bb_rf,
|
||||
.disable_bb_rf = rtw8852b_mac_disable_bb_rf,
|
||||
.bb_preinit = NULL,
|
||||
.bb_reset = rtw8852b_bb_reset,
|
||||
.bb_sethw = rtw8852b_bb_sethw,
|
||||
.read_rf = rtw89_phy_read_rf_v1,
|
||||
|
|
|
|||
|
|
@ -2760,6 +2760,7 @@ static const struct wiphy_wowlan_support rtw_wowlan_stub_8852c = {
|
|||
static const struct rtw89_chip_ops rtw8852c_chip_ops = {
|
||||
.enable_bb_rf = rtw8852c_mac_enable_bb_rf,
|
||||
.disable_bb_rf = rtw8852c_mac_disable_bb_rf,
|
||||
.bb_preinit = NULL,
|
||||
.bb_reset = rtw8852c_bb_reset,
|
||||
.bb_sethw = rtw8852c_bb_sethw,
|
||||
.read_rf = rtw89_phy_read_rf_v1,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user