mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 11:03:43 +02:00
wifi: rtw89: add chip_ops::update_beacon to abstract update beacon operation
Since coming WiFi 7 and existing chips use different update_beacon() format, add to abstract selection of H2C command. Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://msgid.link/20240108091359.67636-1-pkshih@realtek.com
This commit is contained in:
parent
a880b92830
commit
bcd1ae7844
|
|
@ -1494,7 +1494,7 @@ static void rtw89_mcc_handle_beacon_noa(struct rtw89_dev *rtwdev, bool enable)
|
|||
if (!rtwvif_go->chanctx_assigned)
|
||||
return;
|
||||
|
||||
rtw89_fw_h2c_update_beacon(rtwdev, rtwvif_go);
|
||||
rtw89_chip_h2c_update_beacon(rtwdev, rtwvif_go);
|
||||
}
|
||||
|
||||
static void rtw89_mcc_start_beacon_noa(struct rtw89_dev *rtwdev)
|
||||
|
|
|
|||
|
|
@ -3879,7 +3879,7 @@ void rtw89_core_update_beacon_work(struct work_struct *work)
|
|||
|
||||
rtwdev = rtwvif->rtwdev;
|
||||
mutex_lock(&rtwdev->mutex);
|
||||
rtw89_fw_h2c_update_beacon(rtwdev, rtwvif);
|
||||
rtw89_chip_h2c_update_beacon(rtwdev, rtwvif);
|
||||
mutex_unlock(&rtwdev->mutex);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3197,6 +3197,8 @@ struct rtw89_chip_ops {
|
|||
int (*h2c_dctl_sec_cam)(struct rtw89_dev *rtwdev,
|
||||
struct rtw89_vif *rtwvif,
|
||||
struct rtw89_sta *rtwsta);
|
||||
int (*h2c_update_beacon)(struct rtw89_dev *rtwdev,
|
||||
struct rtw89_vif *rtwvif);
|
||||
int (*h2c_ba_cam)(struct rtw89_dev *rtwdev, struct rtw89_sta *rtwsta,
|
||||
bool valid, struct ieee80211_ampdu_params *params);
|
||||
|
||||
|
|
|
|||
|
|
@ -2355,6 +2355,7 @@ int rtw89_fw_h2c_update_beacon(struct rtw89_dev *rtwdev,
|
|||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(rtw89_fw_h2c_update_beacon);
|
||||
|
||||
int rtw89_fw_h2c_update_beacon_be(struct rtw89_dev *rtwdev,
|
||||
struct rtw89_vif *rtwvif)
|
||||
|
|
@ -2437,6 +2438,7 @@ int rtw89_fw_h2c_update_beacon_be(struct rtw89_dev *rtwdev,
|
|||
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(rtw89_fw_h2c_update_beacon_be);
|
||||
|
||||
#define H2C_ROLE_MAINTAIN_LEN 4
|
||||
int rtw89_fw_h2c_role_maintain(struct rtw89_dev *rtwdev,
|
||||
|
|
|
|||
|
|
@ -3946,6 +3946,14 @@ static inline void rtw89_fw_h2c_init_ba_cam(struct rtw89_dev *rtwdev)
|
|||
rtw89_fw_h2c_init_dynamic_ba_cam_v0_ext(rtwdev);
|
||||
}
|
||||
|
||||
static inline int rtw89_chip_h2c_update_beacon(struct rtw89_dev *rtwdev,
|
||||
struct rtw89_vif *rtwvif)
|
||||
{
|
||||
const struct rtw89_chip_info *chip = rtwdev->chip;
|
||||
|
||||
return chip->ops->h2c_update_beacon(rtwdev, rtwvif);
|
||||
}
|
||||
|
||||
static inline
|
||||
int rtw89_chip_h2c_ba_cam(struct rtw89_dev *rtwdev, struct rtw89_sta *rtwsta,
|
||||
bool valid, struct ieee80211_ampdu_params *params)
|
||||
|
|
|
|||
|
|
@ -452,7 +452,7 @@ static void rtw89_ops_bss_info_changed(struct ieee80211_hw *hw,
|
|||
}
|
||||
|
||||
if (changed & BSS_CHANGED_BEACON)
|
||||
rtw89_fw_h2c_update_beacon(rtwdev, rtwvif);
|
||||
rtw89_chip_h2c_update_beacon(rtwdev, rtwvif);
|
||||
|
||||
if (changed & BSS_CHANGED_ERP_SLOT)
|
||||
rtw89_conf_tx(rtwdev, rtwvif);
|
||||
|
|
|
|||
|
|
@ -2334,6 +2334,7 @@ static const struct rtw89_chip_ops rtw8851b_chip_ops = {
|
|||
.stop_sch_tx = rtw89_mac_stop_sch_tx,
|
||||
.resume_sch_tx = rtw89_mac_resume_sch_tx,
|
||||
.h2c_dctl_sec_cam = NULL,
|
||||
.h2c_update_beacon = rtw89_fw_h2c_update_beacon,
|
||||
.h2c_ba_cam = rtw89_fw_h2c_ba_cam,
|
||||
|
||||
.btc_set_rfe = rtw8851b_btc_set_rfe,
|
||||
|
|
|
|||
|
|
@ -2078,6 +2078,7 @@ static const struct rtw89_chip_ops rtw8852a_chip_ops = {
|
|||
.stop_sch_tx = rtw89_mac_stop_sch_tx,
|
||||
.resume_sch_tx = rtw89_mac_resume_sch_tx,
|
||||
.h2c_dctl_sec_cam = NULL,
|
||||
.h2c_update_beacon = rtw89_fw_h2c_update_beacon,
|
||||
.h2c_ba_cam = rtw89_fw_h2c_ba_cam,
|
||||
|
||||
.btc_set_rfe = rtw8852a_btc_set_rfe,
|
||||
|
|
|
|||
|
|
@ -2503,6 +2503,7 @@ static const struct rtw89_chip_ops rtw8852b_chip_ops = {
|
|||
.stop_sch_tx = rtw89_mac_stop_sch_tx,
|
||||
.resume_sch_tx = rtw89_mac_resume_sch_tx,
|
||||
.h2c_dctl_sec_cam = NULL,
|
||||
.h2c_update_beacon = rtw89_fw_h2c_update_beacon,
|
||||
.h2c_ba_cam = rtw89_fw_h2c_ba_cam,
|
||||
|
||||
.btc_set_rfe = rtw8852b_btc_set_rfe,
|
||||
|
|
|
|||
|
|
@ -2848,6 +2848,7 @@ static const struct rtw89_chip_ops rtw8852c_chip_ops = {
|
|||
.stop_sch_tx = rtw89_mac_stop_sch_tx_v1,
|
||||
.resume_sch_tx = rtw89_mac_resume_sch_tx_v1,
|
||||
.h2c_dctl_sec_cam = rtw89_fw_h2c_dctl_sec_cam_v1,
|
||||
.h2c_update_beacon = rtw89_fw_h2c_update_beacon,
|
||||
.h2c_ba_cam = rtw89_fw_h2c_ba_cam,
|
||||
|
||||
.btc_set_rfe = rtw8852c_btc_set_rfe,
|
||||
|
|
|
|||
|
|
@ -822,6 +822,7 @@ static const struct rtw89_chip_ops rtw8922a_chip_ops = {
|
|||
.read_phycap = rtw8922a_read_phycap,
|
||||
.pwr_on_func = rtw8922a_pwr_on_func,
|
||||
.pwr_off_func = rtw8922a_pwr_off_func,
|
||||
.h2c_update_beacon = rtw89_fw_h2c_update_beacon_be,
|
||||
.h2c_ba_cam = rtw89_fw_h2c_ba_cam_v1,
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user