1 From 87341ca1eac9a3bac23bd41f6e24f3c93b77452f Mon Sep 17 00:00:00 2001
2 From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
3 Date: Wed, 23 Oct 2024 17:02:05 +0300
4 Subject: [PATCH] wifi: rtw88: Dump the HW features only for some chips
6 RTL8821AU and RTL8812AU don't support this. They hit the "failed to read
7 hw feature report" error.
9 Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
10 Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
11 Link: https://patch.msgid.link/8becd851-8760-4480-8e8c-c4869ce72507@gmail.com
13 drivers/net/wireless/realtek/rtw88/main.c | 3 +++
14 drivers/net/wireless/realtek/rtw88/main.h | 1 +
15 drivers/net/wireless/realtek/rtw88/rtw8703b.c | 1 +
16 drivers/net/wireless/realtek/rtw88/rtw8723d.c | 1 +
17 drivers/net/wireless/realtek/rtw88/rtw8821c.c | 1 +
18 drivers/net/wireless/realtek/rtw88/rtw8822b.c | 1 +
19 drivers/net/wireless/realtek/rtw88/rtw8822c.c | 1 +
20 7 files changed, 9 insertions(+)
22 --- a/drivers/net/wireless/realtek/rtw88/main.c
23 +++ b/drivers/net/wireless/realtek/rtw88/main.c
24 @@ -1917,6 +1917,9 @@ static int rtw_dump_hw_feature(struct rt
28 + if (!rtwdev->chip->hw_feature_report)
31 id = rtw_read8(rtwdev, REG_C2HEVT);
32 if (id != C2H_HW_FEATURE_REPORT) {
33 rtw_err(rtwdev, "failed to read hw feature report\n");
34 --- a/drivers/net/wireless/realtek/rtw88/main.h
35 +++ b/drivers/net/wireless/realtek/rtw88/main.h
36 @@ -1200,6 +1200,7 @@ struct rtw_chip_info {
37 const struct rtw_fwcd_segs *fwcd_segs;
39 u8 usb_tx_agg_desc_num;
40 + bool hw_feature_report;
42 u8 default_1ss_tx_path;
44 --- a/drivers/net/wireless/realtek/rtw88/rtw8703b.c
45 +++ b/drivers/net/wireless/realtek/rtw88/rtw8703b.c
46 @@ -1960,6 +1960,7 @@ const struct rtw_chip_info rtw8703b_hw_s
47 .max_power_index = 0x3f,
48 .ampdu_density = IEEE80211_HT_MPDU_DENSITY_16,
49 .usb_tx_agg_desc_num = 1, /* Not sure if this chip has USB interface */
50 + .hw_feature_report = true,
52 .path_div_supported = false,
54 --- a/drivers/net/wireless/realtek/rtw88/rtw8723d.c
55 +++ b/drivers/net/wireless/realtek/rtw88/rtw8723d.c
56 @@ -2131,6 +2131,7 @@ const struct rtw_chip_info rtw8723d_hw_s
57 .page_size = TX_PAGE_SIZE,
59 .usb_tx_agg_desc_num = 1,
60 + .hw_feature_report = true,
62 .vht_supported = false,
63 .lps_deep_mode_supported = 0,
64 --- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c
65 +++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
66 @@ -1968,6 +1968,7 @@ const struct rtw_chip_info rtw8821c_hw_s
67 .page_size = TX_PAGE_SIZE,
69 .usb_tx_agg_desc_num = 3,
70 + .hw_feature_report = true,
72 .vht_supported = true,
73 .lps_deep_mode_supported = BIT(LPS_DEEP_MODE_LCLK),
74 --- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
75 +++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
76 @@ -2509,6 +2509,7 @@ const struct rtw_chip_info rtw8822b_hw_s
77 .page_size = TX_PAGE_SIZE,
79 .usb_tx_agg_desc_num = 3,
80 + .hw_feature_report = true,
82 .vht_supported = true,
83 .lps_deep_mode_supported = BIT(LPS_DEEP_MODE_LCLK),
84 --- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
85 +++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
86 @@ -5329,6 +5329,7 @@ const struct rtw_chip_info rtw8822c_hw_s
87 .page_size = TX_PAGE_SIZE,
89 .usb_tx_agg_desc_num = 3,
90 + .hw_feature_report = true,
91 .default_1ss_tx_path = BB_PATH_A,
92 .path_div_supported = true,