wifi: rtw89: use struct to fill C2H recv ack

This C2H packet is used to indicate that FW has received the
corresponding H2C command. No logic is changed.

Signed-off-by: Chih-Kang Chang <gary.chang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260420034051.17666-13-pkshih@realtek.com
This commit is contained in:
Chih-Kang Chang 2026-04-20 11:40:47 +08:00 committed by Ping-Ke Shih
parent 89058548dd
commit 8beba37615
2 changed files with 18 additions and 13 deletions

View File

@ -3886,14 +3886,16 @@ struct rtw89_c2h_done_ack {
#define RTW89_C2H_SCAN_DONE_ACK_RETURN GENMASK(5, 0)
#define RTW89_C2H_DONE_ACK_W2_H2C_SEQ GENMASK(31, 24)
#define RTW89_GET_MAC_C2H_REV_ACK_CAT(c2h) \
le32_get_bits(*((const __le32 *)(c2h) + 2), GENMASK(1, 0))
#define RTW89_GET_MAC_C2H_REV_ACK_CLASS(c2h) \
le32_get_bits(*((const __le32 *)(c2h) + 2), GENMASK(7, 2))
#define RTW89_GET_MAC_C2H_REV_ACK_FUNC(c2h) \
le32_get_bits(*((const __le32 *)(c2h) + 2), GENMASK(15, 8))
#define RTW89_GET_MAC_C2H_REV_ACK_H2C_SEQ(c2h) \
le32_get_bits(*((const __le32 *)(c2h) + 2), GENMASK(23, 16))
struct rtw89_c2h_rev_ack {
__le32 w0;
__le32 w1;
__le32 w2;
} __packed;
#define RTW89_C2H_REV_ACK_W2_CAT GENMASK(1, 0)
#define RTW89_C2H_REV_ACK_W2_CLASS GENMASK(7, 2)
#define RTW89_C2H_REV_ACK_W2_FUNC GENMASK(15, 8)
#define RTW89_C2H_REV_ACK_W2_H2C_SEQ GENMASK(23, 16)
struct rtw89_fw_c2h_log_fmt {
__le16 signature;

View File

@ -5442,16 +5442,19 @@ rtw89_mac_c2h_bcn_fltr_rpt(struct rtw89_dev *rtwdev, struct sk_buff *c2h,
}
static void
rtw89_mac_c2h_rec_ack(struct rtw89_dev *rtwdev, struct sk_buff *c2h, u32 len)
rtw89_mac_c2h_rec_ack(struct rtw89_dev *rtwdev, struct sk_buff *skb_c2h, u32 len)
{
/* N.B. This will run in interrupt context. */
const struct rtw89_c2h_rev_ack *c2h = (const void *)skb_c2h->data;
u8 h2c_cat = le32_get_bits(c2h->w2, RTW89_C2H_REV_ACK_W2_CAT);
u8 h2c_class = le32_get_bits(c2h->w2, RTW89_C2H_REV_ACK_W2_CLASS);
u8 h2c_func = le32_get_bits(c2h->w2, RTW89_C2H_REV_ACK_W2_FUNC);
u8 h2c_seq = le32_get_bits(c2h->w2, RTW89_C2H_REV_ACK_W2_H2C_SEQ);
rtw89_debug(rtwdev, RTW89_DBG_FW,
"C2H rev ack recv, cat: %d, class: %d, func: %d, seq : %d\n",
RTW89_GET_MAC_C2H_REV_ACK_CAT(c2h->data),
RTW89_GET_MAC_C2H_REV_ACK_CLASS(c2h->data),
RTW89_GET_MAC_C2H_REV_ACK_FUNC(c2h->data),
RTW89_GET_MAC_C2H_REV_ACK_H2C_SEQ(c2h->data));
h2c_cat, h2c_class, h2c_func, h2c_seq);
}
static void