diff mbox series

[18/24] rtw88: 8822c: set ack timeout

Message ID 1548937297-14660-19-git-send-email-yhchuang@realtek.com (mailing list archive)
State Changes Requested
Delegated to: Kalle Valo
Headers show
Series rtw88: major fixes for 8822c to have stable functionalities | expand

Commit Message

Tony Chuang Jan. 31, 2019, 12:21 p.m. UTC
From: Yan-Hsuan Chuang <yhchuang@realtek.com>

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@realtek.com>
---
 drivers/net/wireless/realtek/rtw88/reg.h      | 1 +
 drivers/net/wireless/realtek/rtw88/rtw8822c.c | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/drivers/net/wireless/realtek/rtw88/reg.h b/drivers/net/wireless/realtek/rtw88/reg.h
index 7fc2b8f..81eec3c 100644
--- a/drivers/net/wireless/realtek/rtw88/reg.h
+++ b/drivers/net/wireless/realtek/rtw88/reg.h
@@ -278,6 +278,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 b2bc362..3634e41 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
@@ -767,7 +767,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
@@ -889,6 +890,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);