RE: [PATCH v2 11/11] wifi: rtw88: run the RTL8723BS association register sequence

From: Ping-Ke Shih

Date: Mon Jul 27 2026 - 05:36:37 EST


luka.gejak@xxxxxxxxx <luka.gejak@xxxxxxxxx> wrote:
> @@ -740,8 +1215,23 @@ static void rtw_ops_mgd_prepare_tx(struct ieee80211_hw *hw,
>
> mutex_lock(&rtwdev->mutex);
> rtw_leave_lps_deep(rtwdev);
> - rtw_coex_connect_notify(rtwdev, COEX_ASSOCIATE_START);
> - rtw_chip_prepare_tx(rtwdev);
> +
> + if (rtw_is_8723bs(rtwdev)) {
> + /* Wake from soft IPS and run the vendor join sequence. The RFK
> + * is handled by the once-only power-on IQK plus the ps.c
> + * post-IPS RF-bus recovery, not a fresh calibration here.
> + */
> + if (rtw_leave_ips(rtwdev)) {
> + rtw_err(rtwdev, "failed to leave idle state for mgd tx\n");
> + goto out;
> + }
> + rtw_coex_connect_notify(rtwdev, COEX_ASSOCIATE_START);
> + rtw8723bs_mgd_prepare_auth_join(rtwdev, vif, info);

I'm surprising that RTL8723BS needs so many special handing. Can you reduce them?
At least, use rtw_chip_prepare_tx() to implement its specific functions.

> + } else {
> + rtw_coex_connect_notify(rtwdev, COEX_ASSOCIATE_START);
> + rtw_chip_prepare_tx(rtwdev);
> + }
> +out:
> mutex_unlock(&rtwdev->mutex);
> }
>