u32 hci_func_en_addr;
        u32 h2c_desc_size;
        u32 txwd_body_size;
+       u32 txwd_info_size;
        u32 h2c_ctrl_reg;
        const u32 *h2c_regs;
        struct rtw89_reg_def h2c_counter_reg;
 
        struct rtw89_pci *rtwpci = (struct rtw89_pci *)rtwdev->priv;
        const struct rtw89_chip_info *chip = rtwdev->chip;
        struct rtw89_tx_desc_info *desc_info = &tx_req->desc_info;
-       struct rtw89_txwd_info *txwd_info;
        struct rtw89_pci_tx_wp_info *txwp_info;
        void *txaddr_info_addr;
        struct pci_dev *pdev = rtwpci->pdev;
 
        txwp_len = sizeof(*txwp_info);
        txwd_len = chip->txwd_body_size;
-       txwd_len += en_wd_info ? sizeof(*txwd_info) : 0;
+       txwd_len += en_wd_info ? chip->txwd_info_size : 0;
 
        txwp_info = txwd->vaddr + txwd_len;
        txwp_info->seq0 = cpu_to_le16(txwd->seq | RTW89_PCI_TXWP_VALID);
 
        .hci_func_en_addr       = R_AX_HCI_FUNC_EN,
        .h2c_desc_size          = sizeof(struct rtw89_txwd_body),
        .txwd_body_size         = sizeof(struct rtw89_txwd_body),
+       .txwd_info_size         = sizeof(struct rtw89_txwd_info),
        .h2c_ctrl_reg           = R_AX_H2CREG_CTRL,
        .h2c_counter_reg        = {R_AX_UDM1 + 1, B_AX_UDM1_HALMAC_H2C_DEQ_CNT_MASK >> 8},
        .h2c_regs               = rtw8851b_h2c_regs,
 
        .hci_func_en_addr       = R_AX_HCI_FUNC_EN,
        .h2c_desc_size          = sizeof(struct rtw89_txwd_body),
        .txwd_body_size         = sizeof(struct rtw89_txwd_body),
+       .txwd_info_size         = sizeof(struct rtw89_txwd_info),
        .h2c_ctrl_reg           = R_AX_H2CREG_CTRL,
        .h2c_counter_reg        = {R_AX_UDM1 + 1, B_AX_UDM1_HALMAC_H2C_DEQ_CNT_MASK >> 8},
        .h2c_regs               = rtw8852a_h2c_regs,
 
        .hci_func_en_addr       = R_AX_HCI_FUNC_EN,
        .h2c_desc_size          = sizeof(struct rtw89_txwd_body),
        .txwd_body_size         = sizeof(struct rtw89_txwd_body),
+       .txwd_info_size         = sizeof(struct rtw89_txwd_info),
        .h2c_ctrl_reg           = R_AX_H2CREG_CTRL,
        .h2c_counter_reg        = {R_AX_UDM1 + 1, B_AX_UDM1_HALMAC_H2C_DEQ_CNT_MASK >> 8},
        .h2c_regs               = rtw8852b_h2c_regs,
 
        .hci_func_en_addr       = R_AX_HCI_FUNC_EN_V1,
        .h2c_desc_size          = sizeof(struct rtw89_rxdesc_short),
        .txwd_body_size         = sizeof(struct rtw89_txwd_body_v1),
+       .txwd_info_size         = sizeof(struct rtw89_txwd_info),
        .h2c_ctrl_reg           = R_AX_H2CREG_CTRL_V1,
        .h2c_counter_reg        = {R_AX_UDM1 + 1, B_AX_UDM1_HALMAC_H2C_DEQ_CNT_MASK >> 8},
        .h2c_regs               = rtw8852c_h2c_regs,