From: Yan-Hsuan Chuang <yhchuang@xxxxxxxxxxx> For 8822C, driver needs to set ack timeout after hardware powered-on. There are two values required for both CCK and OFDM rate sets. But only OFDM ack timeout was set, and the value did not meet the hardware specification (aSIFSTime + aSlotTime). For CCK, the ack timeout should be 106us and for OFDM it should be 33us. Signed-off-by: Yan-Hsuan Chuang <yhchuang@xxxxxxxxxxx> --- drivers/net/wireless/realtek/rtw88/reg.h | 1 + drivers/net/wireless/realtek/rtw88/rtw8822c.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/realtek/rtw88/reg.h b/drivers/net/wireless/realtek/rtw88/reg.h index 8d8dbc5..27732a1 100644 --- a/drivers/net/wireless/realtek/rtw88/reg.h +++ b/drivers/net/wireless/realtek/rtw88/reg.h @@ -283,6 +283,7 @@ #define REG_RX_DRVINFO_SZ 0x060F #define BIT_APP_PHYSTS BIT(28) #define REG_USTIME_EDCA 0x0638 +#define REG_ACKTO_CCK 0x0639 #define REG_RESP_SIFS_CCK 0x063C #define REG_RESP_SIFS_OFDM 0x063E #define REG_ACKTO 0x0640 diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822c.c b/drivers/net/wireless/realtek/rtw88/rtw8822c.c index 74cbf4e..4bde3fc 100644 --- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c +++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c @@ -772,7 +772,8 @@ static void rtw8822c_phy_set_param(struct rtw_dev *rtwdev) #define WLAN_BAR_ACK_TYPE 0x05 #define WLAN_RA_TRY_RATE_AGG_LIMIT 0x08 #define WLAN_RESP_TXRATE 0x84 -#define WLAN_ACK_TO 0x40 +#define WLAN_ACK_TO 0x21 +#define WLAN_ACK_TO_CCK 0x6A #define WLAN_DATA_RATE_FB_CNT_1_4 0x01000000 #define WLAN_DATA_RATE_FB_CNT_5_8 0x08070504 #define WLAN_RTS_RATE_FB_CNT_5_8 0x08070504 @@ -894,6 +895,7 @@ static int rtw8822c_mac_init(struct rtw_dev *rtwdev) /* WMAC configuration */ rtw_write8(rtwdev, REG_BBPSF_CTRL + 2, WLAN_RESP_TXRATE); rtw_write8(rtwdev, REG_ACKTO, WLAN_ACK_TO); + rtw_write8(rtwdev, REG_ACKTO_CCK, WLAN_ACK_TO_CCK); rtw_write16(rtwdev, REG_EIFS, WLAN_EIFS_DUR_TUNE); rtw_write8(rtwdev, REG_NAV_CTRL + 2, WLAN_NAV_MAX); rtw_write8(rtwdev, REG_WMAC_TRXPTCL_CTL_H + 2, WLAN_BAR_ACK_TYPE); -- 2.7.4