]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
rtw88: add HT MPDU density value for each chip
authorChih-Kang Chang <gary.chang@realtek.com>
Thu, 28 Apr 2022 02:05:19 +0000 (10:05 +0800)
committerKalle Valo <kvalo@kernel.org>
Sun, 1 May 2022 16:13:22 +0000 (19:13 +0300)
Each chip have best ampdu density value, the correct setting can improve
throughput performance.

Signed-off-by: Chih-Kang Chang <gary.chang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220428020521.8015-1-pkshih@realtek.com
drivers/net/wireless/realtek/rtw88/main.c
drivers/net/wireless/realtek/rtw88/main.h
drivers/net/wireless/realtek/rtw88/rtw8723d.c
drivers/net/wireless/realtek/rtw88/rtw8821c.c
drivers/net/wireless/realtek/rtw88/rtw8822b.c
drivers/net/wireless/realtek/rtw88/rtw8822c.c

index 7431988b598594cb73b4c937ae1479d528839387..14289f83feb54d69407b4d0dcef0e11a3177c879 100644 (file)
@@ -1461,6 +1461,7 @@ static void rtw_init_ht_cap(struct rtw_dev *rtwdev,
                            struct ieee80211_sta_ht_cap *ht_cap)
 {
        struct rtw_efuse *efuse = &rtwdev->efuse;
+       struct rtw_chip_info *chip = rtwdev->chip;
 
        ht_cap->ht_supported = true;
        ht_cap->cap = 0;
@@ -1478,7 +1479,7 @@ static void rtw_init_ht_cap(struct rtw_dev *rtwdev,
                                IEEE80211_HT_CAP_DSSSCCK40 |
                                IEEE80211_HT_CAP_SGI_40;
        ht_cap->ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K;
-       ht_cap->ampdu_density = IEEE80211_HT_MPDU_DENSITY_16;
+       ht_cap->ampdu_density = chip->ampdu_density;
        ht_cap->mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED;
        if (efuse->hw_cap.nss > 1) {
                ht_cap->mcs.rx_mask[0] = 0xFF;
index 2743074a4256033cec89b8eb8f92b326a520a44e..de149a3b3ba1b56f0228b095db2a8d63ef1bdd12 100644 (file)
@@ -1179,6 +1179,7 @@ struct rtw_chip_info {
        bool rx_ldpc;
        bool tx_stbc;
        u8 max_power_index;
+       u8 ampdu_density;
 
        u16 fw_fifo_addr[RTW_FW_FIFO_MAX];
        const struct rtw_fwcd_segs *fwcd_segs;
index ad2b323a0423c129553f3b6e0be7b56139148140..93cce44df53183046ccfcaf5d75d8d3edf7c1d07 100644 (file)
@@ -2747,6 +2747,7 @@ struct rtw_chip_info rtw8723d_hw_spec = {
        .rx_ldpc = false,
        .pwr_track_tbl = &rtw8723d_rtw_pwr_track_tbl,
        .iqk_threshold = 8,
+       .ampdu_density = IEEE80211_HT_MPDU_DENSITY_16,
 
        .coex_para_ver = 0x2007022f,
        .bt_desired_ver = 0x2f,
index ec38a7c8495175724aa4885b26428713a2faaefd..ffee39ea5df69945f45f4405d3438e99fafbea29 100644 (file)
@@ -1923,6 +1923,7 @@ struct rtw_chip_info rtw8821c_hw_spec = {
        .iqk_threshold = 8,
        .bfer_su_max_num = 2,
        .bfer_mu_max_num = 1,
+       .ampdu_density = IEEE80211_HT_MPDU_DENSITY_2,
 
        .coex_para_ver = 0x19092746,
        .bt_desired_ver = 0x46,
index eee7bf0354030b8a5c6df93f19ebb7a347cbaa18..dccd722b8e624a29e408627e9f52b14d6b5cdcc9 100644 (file)
@@ -2548,6 +2548,7 @@ struct rtw_chip_info rtw8822b_hw_spec = {
        .edcca_th = rtw8822b_edcca_th,
        .l2h_th_ini_cs = 10 + EDCCA_IGI_BASE,
        .l2h_th_ini_ad = -14 + EDCCA_IGI_BASE,
+       .ampdu_density = IEEE80211_HT_MPDU_DENSITY_2,
 
        .coex_para_ver = 0x20070206,
        .bt_desired_ver = 0x6,
index cd74607a61a288258ce83254172b729a91f766f1..c043b5c520b9a57e9cdf5a7db9a4c8c0865a0db8 100644 (file)
@@ -5368,6 +5368,7 @@ struct rtw_chip_info rtw8822c_hw_spec = {
        .edcca_th = rtw8822c_edcca_th,
        .l2h_th_ini_cs = 60,
        .l2h_th_ini_ad = 45,
+       .ampdu_density = IEEE80211_HT_MPDU_DENSITY_2,
 
 #ifdef CONFIG_PM
        .wow_fw_name = "rtw88/rtw8822c_wow_fw.bin",