Commit 1d6d131d authored by Chih-Kang Chang's avatar Chih-Kang Chang Committed by Kalle Valo

rtw88: add HT MPDU density value for each chip

Each chip have best ampdu density value, the correct setting can improve
throughput performance.
Signed-off-by: default avatarChih-Kang Chang <gary.chang@realtek.com>
Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220428020521.8015-1-pkshih@realtek.com
parent 72a1a2ed
...@@ -1461,6 +1461,7 @@ static void rtw_init_ht_cap(struct rtw_dev *rtwdev, ...@@ -1461,6 +1461,7 @@ static void rtw_init_ht_cap(struct rtw_dev *rtwdev,
struct ieee80211_sta_ht_cap *ht_cap) struct ieee80211_sta_ht_cap *ht_cap)
{ {
struct rtw_efuse *efuse = &rtwdev->efuse; struct rtw_efuse *efuse = &rtwdev->efuse;
struct rtw_chip_info *chip = rtwdev->chip;
ht_cap->ht_supported = true; ht_cap->ht_supported = true;
ht_cap->cap = 0; ht_cap->cap = 0;
...@@ -1478,7 +1479,7 @@ static void rtw_init_ht_cap(struct rtw_dev *rtwdev, ...@@ -1478,7 +1479,7 @@ static void rtw_init_ht_cap(struct rtw_dev *rtwdev,
IEEE80211_HT_CAP_DSSSCCK40 | IEEE80211_HT_CAP_DSSSCCK40 |
IEEE80211_HT_CAP_SGI_40; IEEE80211_HT_CAP_SGI_40;
ht_cap->ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K; 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; ht_cap->mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED;
if (efuse->hw_cap.nss > 1) { if (efuse->hw_cap.nss > 1) {
ht_cap->mcs.rx_mask[0] = 0xFF; ht_cap->mcs.rx_mask[0] = 0xFF;
......
...@@ -1179,6 +1179,7 @@ struct rtw_chip_info { ...@@ -1179,6 +1179,7 @@ struct rtw_chip_info {
bool rx_ldpc; bool rx_ldpc;
bool tx_stbc; bool tx_stbc;
u8 max_power_index; u8 max_power_index;
u8 ampdu_density;
u16 fw_fifo_addr[RTW_FW_FIFO_MAX]; u16 fw_fifo_addr[RTW_FW_FIFO_MAX];
const struct rtw_fwcd_segs *fwcd_segs; const struct rtw_fwcd_segs *fwcd_segs;
......
...@@ -2747,6 +2747,7 @@ struct rtw_chip_info rtw8723d_hw_spec = { ...@@ -2747,6 +2747,7 @@ struct rtw_chip_info rtw8723d_hw_spec = {
.rx_ldpc = false, .rx_ldpc = false,
.pwr_track_tbl = &rtw8723d_rtw_pwr_track_tbl, .pwr_track_tbl = &rtw8723d_rtw_pwr_track_tbl,
.iqk_threshold = 8, .iqk_threshold = 8,
.ampdu_density = IEEE80211_HT_MPDU_DENSITY_16,
.coex_para_ver = 0x2007022f, .coex_para_ver = 0x2007022f,
.bt_desired_ver = 0x2f, .bt_desired_ver = 0x2f,
......
...@@ -1923,6 +1923,7 @@ struct rtw_chip_info rtw8821c_hw_spec = { ...@@ -1923,6 +1923,7 @@ struct rtw_chip_info rtw8821c_hw_spec = {
.iqk_threshold = 8, .iqk_threshold = 8,
.bfer_su_max_num = 2, .bfer_su_max_num = 2,
.bfer_mu_max_num = 1, .bfer_mu_max_num = 1,
.ampdu_density = IEEE80211_HT_MPDU_DENSITY_2,
.coex_para_ver = 0x19092746, .coex_para_ver = 0x19092746,
.bt_desired_ver = 0x46, .bt_desired_ver = 0x46,
......
...@@ -2548,6 +2548,7 @@ struct rtw_chip_info rtw8822b_hw_spec = { ...@@ -2548,6 +2548,7 @@ struct rtw_chip_info rtw8822b_hw_spec = {
.edcca_th = rtw8822b_edcca_th, .edcca_th = rtw8822b_edcca_th,
.l2h_th_ini_cs = 10 + EDCCA_IGI_BASE, .l2h_th_ini_cs = 10 + EDCCA_IGI_BASE,
.l2h_th_ini_ad = -14 + EDCCA_IGI_BASE, .l2h_th_ini_ad = -14 + EDCCA_IGI_BASE,
.ampdu_density = IEEE80211_HT_MPDU_DENSITY_2,
.coex_para_ver = 0x20070206, .coex_para_ver = 0x20070206,
.bt_desired_ver = 0x6, .bt_desired_ver = 0x6,
......
...@@ -5368,6 +5368,7 @@ struct rtw_chip_info rtw8822c_hw_spec = { ...@@ -5368,6 +5368,7 @@ struct rtw_chip_info rtw8822c_hw_spec = {
.edcca_th = rtw8822c_edcca_th, .edcca_th = rtw8822c_edcca_th,
.l2h_th_ini_cs = 60, .l2h_th_ini_cs = 60,
.l2h_th_ini_ad = 45, .l2h_th_ini_ad = 45,
.ampdu_density = IEEE80211_HT_MPDU_DENSITY_2,
#ifdef CONFIG_PM #ifdef CONFIG_PM
.wow_fw_name = "rtw88/rtw8822c_wow_fw.bin", .wow_fw_name = "rtw88/rtw8822c_wow_fw.bin",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment