Skip to content

Commit 8b1b36d

Browse files
Ping-Ke Shihsmb49
authored andcommitted
wifi: rtw89: 8852b: adjust quota to avoid SER L1 caused by access null page
BugLink: https://bugs.launchpad.net/bugs/2028979 [ Upstream commit c0426c4 ] Though SER can recover this case, traffic can get stuck for a while. Fix it by adjusting page quota to avoid hardware access null page of CMAC/DMAC. Fixes: a1cb097 ("wifi: rtw89: 8852b: configure DLE mem") Fixes: 3e870b4 ("wifi: rtw89: 8852b: add HFC quota arrays") Cc: stable@vger.kernel.org Tested-by: Larry Finger <Larry.Finger@lwfinger.net> Link: lwfinger/rtw89#226 (comment) Link: lwfinger/rtw89#240 Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20230426034737.24870-1-pkshih@realtek.com Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Kamal Mostafa <kamal@canonical.com> Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
1 parent 7be8a67 commit 8b1b36d

3 files changed

Lines changed: 17 additions & 11 deletions

File tree

drivers/net/wireless/realtek/rtw89/mac.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1422,6 +1422,8 @@ const struct rtw89_mac_size_set rtw89_mac_size = {
14221422
.wde_size4 = {RTW89_WDE_PG_64, 0, 4096,},
14231423
/* PCIE 64 */
14241424
.wde_size6 = {RTW89_WDE_PG_64, 512, 0,},
1425+
/* 8852B PCIE SCC */
1426+
.wde_size7 = {RTW89_WDE_PG_64, 510, 2,},
14251427
/* DLFW */
14261428
.wde_size9 = {RTW89_WDE_PG_64, 0, 1024,},
14271429
/* 8852C DLFW */
@@ -1446,6 +1448,8 @@ const struct rtw89_mac_size_set rtw89_mac_size = {
14461448
.wde_qt4 = {0, 0, 0, 0,},
14471449
/* PCIE 64 */
14481450
.wde_qt6 = {448, 48, 0, 16,},
1451+
/* 8852B PCIE SCC */
1452+
.wde_qt7 = {446, 48, 0, 16,},
14491453
/* 8852C DLFW */
14501454
.wde_qt17 = {0, 0, 0, 0,},
14511455
/* 8852C PCIE SCC */

drivers/net/wireless/realtek/rtw89/mac.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -789,6 +789,7 @@ struct rtw89_mac_size_set {
789789
const struct rtw89_dle_size wde_size0;
790790
const struct rtw89_dle_size wde_size4;
791791
const struct rtw89_dle_size wde_size6;
792+
const struct rtw89_dle_size wde_size7;
792793
const struct rtw89_dle_size wde_size9;
793794
const struct rtw89_dle_size wde_size18;
794795
const struct rtw89_dle_size wde_size19;
@@ -801,6 +802,7 @@ struct rtw89_mac_size_set {
801802
const struct rtw89_wde_quota wde_qt0;
802803
const struct rtw89_wde_quota wde_qt4;
803804
const struct rtw89_wde_quota wde_qt6;
805+
const struct rtw89_wde_quota wde_qt7;
804806
const struct rtw89_wde_quota wde_qt17;
805807
const struct rtw89_wde_quota wde_qt18;
806808
const struct rtw89_ple_quota ple_qt4;

drivers/net/wireless/realtek/rtw89/rtw8852b.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,25 @@
1313
#include "txrx.h"
1414

1515
static const struct rtw89_hfc_ch_cfg rtw8852b_hfc_chcfg_pcie[] = {
16-
{5, 343, grp_0}, /* ACH 0 */
17-
{5, 343, grp_0}, /* ACH 1 */
18-
{5, 343, grp_0}, /* ACH 2 */
19-
{5, 343, grp_0}, /* ACH 3 */
16+
{5, 341, grp_0}, /* ACH 0 */
17+
{5, 341, grp_0}, /* ACH 1 */
18+
{4, 342, grp_0}, /* ACH 2 */
19+
{4, 342, grp_0}, /* ACH 3 */
2020
{0, 0, grp_0}, /* ACH 4 */
2121
{0, 0, grp_0}, /* ACH 5 */
2222
{0, 0, grp_0}, /* ACH 6 */
2323
{0, 0, grp_0}, /* ACH 7 */
24-
{4, 344, grp_0}, /* B0MGQ */
25-
{4, 344, grp_0}, /* B0HIQ */
24+
{4, 342, grp_0}, /* B0MGQ */
25+
{4, 342, grp_0}, /* B0HIQ */
2626
{0, 0, grp_0}, /* B1MGQ */
2727
{0, 0, grp_0}, /* B1HIQ */
2828
{40, 0, 0} /* FWCMDQ */
2929
};
3030

3131
static const struct rtw89_hfc_pub_cfg rtw8852b_hfc_pubcfg_pcie = {
32-
448, /* Group 0 */
32+
446, /* Group 0 */
3333
0, /* Group 1 */
34-
448, /* Public Max */
34+
446, /* Public Max */
3535
0 /* WP threshold */
3636
};
3737

@@ -44,9 +44,9 @@ static const struct rtw89_hfc_param_ini rtw8852b_hfc_param_ini_pcie[] = {
4444
};
4545

4646
static const struct rtw89_dle_mem rtw8852b_dle_mem_pcie[] = {
47-
[RTW89_QTA_SCC] = {RTW89_QTA_SCC, &rtw89_mac_size.wde_size6,
48-
&rtw89_mac_size.ple_size6, &rtw89_mac_size.wde_qt6,
49-
&rtw89_mac_size.wde_qt6, &rtw89_mac_size.ple_qt18,
47+
[RTW89_QTA_SCC] = {RTW89_QTA_SCC, &rtw89_mac_size.wde_size7,
48+
&rtw89_mac_size.ple_size6, &rtw89_mac_size.wde_qt7,
49+
&rtw89_mac_size.wde_qt7, &rtw89_mac_size.ple_qt18,
5050
&rtw89_mac_size.ple_qt58},
5151
[RTW89_QTA_DLFW] = {RTW89_QTA_DLFW, &rtw89_mac_size.wde_size9,
5252
&rtw89_mac_size.ple_size8, &rtw89_mac_size.wde_qt4,

0 commit comments

Comments
 (0)