rtw88: do PHY calibration while starting AP
authorPing-Ke Shih <pkshih@realtek.com>
Thu, 7 Apr 2022 09:58:57 +0000 (17:58 +0800)
committerKalle Valo <kvalo@kernel.org>
Tue, 12 Apr 2022 13:52:06 +0000 (16:52 +0300)
Calling calibration to yield expected PHY performance. We do this in STA
mode, so do this in AP mode as well.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220407095858.46807-6-pkshih@realtek.com
drivers/net/wireless/realtek/rtw88/mac80211.c

index 1ee41df..30903c5 100644 (file)
@@ -429,6 +429,18 @@ static void rtw_ops_bss_info_changed(struct ieee80211_hw *hw,
        mutex_unlock(&rtwdev->mutex);
 }
 
+static int rtw_ops_start_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
+{
+       struct rtw_dev *rtwdev = hw->priv;
+       struct rtw_chip_info *chip = rtwdev->chip;
+
+       mutex_lock(&rtwdev->mutex);
+       chip->ops->phy_calibration(rtwdev);
+       mutex_unlock(&rtwdev->mutex);
+
+       return 0;
+}
+
 static int rtw_ops_conf_tx(struct ieee80211_hw *hw,
                           struct ieee80211_vif *vif, u16 ac,
                           const struct ieee80211_tx_queue_params *params)
@@ -886,6 +898,7 @@ const struct ieee80211_ops rtw_ops = {
        .change_interface       = rtw_ops_change_interface,
        .configure_filter       = rtw_ops_configure_filter,
        .bss_info_changed       = rtw_ops_bss_info_changed,
+       .start_ap               = rtw_ops_start_ap,
        .conf_tx                = rtw_ops_conf_tx,
        .sta_add                = rtw_ops_sta_add,
        .sta_remove             = rtw_ops_sta_remove,