wifi: rtw89: coex: Move coexistence firmware buffer size parameter to chip info
authorChing-Te Ku <ku920601@realtek.com>
Tue, 13 Sep 2022 09:25:42 +0000 (17:25 +0800)
committerKalle Valo <kvalo@kernel.org>
Mon, 19 Sep 2022 10:01:37 +0000 (13:01 +0300)
Because RTL8852A/RTL8852C use different firmware buffer size to
send C2H packet, it's necessary to use different size to parse C2H report.

Signed-off-by: Ching-Te Ku <ku920601@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/20220913092546.43722-4-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/coex.c
drivers/net/wireless/realtek/rtw89/core.h
drivers/net/wireless/realtek/rtw89/rtw8852a.c
drivers/net/wireless/realtek/rtw89/rtw8852c.c

index 74d503ea4965e21d5299644855719334d564cd51..6fdc2c33b7c6af86d71a7932b7fe6e2527cc92ba 100644 (file)
@@ -650,8 +650,6 @@ static void _reset_btc_var(struct rtw89_dev *rtwdev, u8 type)
                memset(&btc->mdinfo, 0, sizeof(btc->mdinfo));
 }
 
-#define BTC_FWINFO_BUF 1024
-
 #define BTC_RPT_HDR_SIZE 3
 #define BTC_CHK_WLSLOT_DRIFT_MAX 15
 #define BTC_CHK_HANG_MAX 3
@@ -1315,6 +1313,7 @@ static void _parse_btc_report(struct rtw89_dev *rtwdev,
                              struct rtw89_btc_btf_fwinfo *pfwinfo,
                              u8 *pbuf, u32 buf_len)
 {
+       const struct rtw89_chip_info *chip = rtwdev->chip;
        struct rtw89_btc_prpt *btc_prpt = NULL;
        u32 index = 0, rpt_len = 0;
 
@@ -1324,7 +1323,7 @@ static void _parse_btc_report(struct rtw89_dev *rtwdev,
 
        while (pbuf) {
                btc_prpt = (struct rtw89_btc_prpt *)&pbuf[index];
-               if (index + 2 >= BTC_FWINFO_BUF)
+               if (index + 2 >= chip->btc_fwinfo_buf)
                        break;
                /* At least 3 bytes: type(1) & len(2) */
                rpt_len = le16_to_cpu(btc_prpt->len);
index 6737ce7b6ebb642e57a9212a54bd7ddac916eb91..3caa8cfd5e5e771b865d57ac357136790d00afeb 100644 (file)
@@ -2654,6 +2654,7 @@ struct rtw89_chip_info {
        u8 btcx_desired;
        u8 scbd;
        u8 mailbox;
+       u16 btc_fwinfo_buf;
 
        u8 fcxbtcrpt_ver;
        u8 fcxtdma_ver;
index 4eddfa23dcadc63efebae27276ce037d6b6cc811..a2d0f2e2794e5d6769918f7ec68ac07e73da0cf0 100644 (file)
@@ -2190,6 +2190,7 @@ const struct rtw89_chip_info rtw8852a_chip_info = {
        .btcx_desired           = 0x5,
        .scbd                   = 0x1,
        .mailbox                = 0x1,
+       .btc_fwinfo_buf         = 1024,
 
        .fcxbtcrpt_ver          = 1,
        .fcxtdma_ver            = 1,
index 0d92518a1e0df66c7c4c1c5726bef4305b738c06..817bb57698ba867ebacf47123c76a3b81c5c3ed9 100644 (file)
@@ -3035,6 +3035,7 @@ const struct rtw89_chip_info rtw8852c_chip_info = {
        .btcx_desired           = 0x5,
        .scbd                   = 0x1,
        .mailbox                = 0x1,
+       .btc_fwinfo_buf         = 1280,
 
        .fcxbtcrpt_ver          = 4,
        .fcxtdma_ver            = 3,