Skip to content

Commit

Permalink
wifi: rtw89: coex: Add TDMA version 7
Browse files Browse the repository at this point in the history
In order to packet up the slots information, the TLV header has updated.
TDMA also use the TLV header to packet up to H2C, so upgrade to version 7.

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://msgid.link/20240312013721.17452-4-pkshih@realtek.com
  • Loading branch information
Ching-Te Ku authored and Kalle Valo committed Mar 14, 2024
1 parent bd120fa commit 69cf605
Showing 1 changed file with 18 additions and 2 deletions.
20 changes: 18 additions & 2 deletions drivers/net/wireless/realtek/rtw89/coex.c
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,13 @@ struct rtw89_btc_btf_tlv {
u8 val[];
} __packed;

struct rtw89_btc_btf_tlv_v7 {
u8 type;
u8 ver;
u8 len;
u8 val[];
} __packed;

enum btc_btf_set_report_en {
RPT_EN_TDMA,
RPT_EN_CYCLE,
Expand Down Expand Up @@ -1210,7 +1217,7 @@ static u32 _chk_btc_report(struct rtw89_dev *rtwdev,
if (ver->fcxtdma == 1) {
pfinfo = &pfwinfo->rpt_fbtc_tdma.finfo.v1;
pcinfo->req_len = sizeof(pfwinfo->rpt_fbtc_tdma.finfo.v1);
} else if (ver->fcxtdma == 3) {
} else if (ver->fcxtdma == 3 || ver->fcxtdma == 7) {
pfinfo = &pfwinfo->rpt_fbtc_tdma.finfo.v3;
pcinfo->req_len = sizeof(pfwinfo->rpt_fbtc_tdma.finfo.v3);
} else {
Expand Down Expand Up @@ -1486,7 +1493,7 @@ static u32 _chk_btc_report(struct rtw89_dev *rtwdev,
memcmp(&dm->tdma_now,
&pfwinfo->rpt_fbtc_tdma.finfo.v1,
sizeof(dm->tdma_now)));
else if (ver->fcxtdma == 3)
else if (ver->fcxtdma == 3 || ver->fcxtdma == 7)
_chk_btc_err(rtwdev, BTC_DCNT_TDMA_NONSYNC,
memcmp(&dm->tdma_now,
&pfwinfo->rpt_fbtc_tdma.finfo.v3.tdma,
Expand Down Expand Up @@ -1727,13 +1734,15 @@ static void _parse_btc_report(struct rtw89_dev *rtwdev,
}

#define BTC_TLV_HDR_LEN 2
#define BTC_TLV_HDR_LEN_V7 3

static void _append_tdma(struct rtw89_dev *rtwdev)
{
struct rtw89_btc *btc = &rtwdev->btc;
const struct rtw89_btc_ver *ver = btc->ver;
struct rtw89_btc_dm *dm = &btc->dm;
struct rtw89_btc_btf_tlv *tlv;
struct rtw89_btc_btf_tlv_v7 *tlv_v7;
struct rtw89_btc_fbtc_tdma *v;
struct rtw89_btc_fbtc_tdma_v3 *v3;
u16 len = btc->policy_len;
Expand All @@ -1753,6 +1762,13 @@ static void _append_tdma(struct rtw89_dev *rtwdev)
tlv->len = sizeof(*v);
*v = dm->tdma;
btc->policy_len += BTC_TLV_HDR_LEN + sizeof(*v);
} else if (ver->fcxtdma == 7) {
tlv_v7 = (struct rtw89_btc_btf_tlv_v7 *)&btc->policy[len];
tlv_v7->len = sizeof(dm->tdma);
tlv_v7->ver = ver->fcxtdma;
tlv_v7->type = CXPOLICY_TDMA;
memcpy(tlv_v7->val, &dm->tdma, tlv_v7->len);
btc->policy_len += BTC_TLV_HDR_LEN_V7 + tlv_v7->len;
} else {
tlv->len = sizeof(*v3);
v3 = (struct rtw89_btc_fbtc_tdma_v3 *)&tlv->val[0];
Expand Down

0 comments on commit 69cf605

Please sign in to comment.