Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a7be039d authored by Rajkumar Manoharan's avatar Rajkumar Manoharan Committed by John W. Linville
Browse files

ath9k: Fix eifs/usec timeout for AR9287 v1.3+



For AR9287 v1.3+ chips, MAC runs at 117MHz. But the initvals
IFS parameters are loaded based on 44/88MHz clockrate. So
eifs/usec from ini should not be used for AR9287 v1.3+.
The mentioned values are tested on 2 chain HT40 mode.

Signed-off-by: default avatarRajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent e3f2acc7
Loading
Loading
Loading
Loading
+8 −2
Original line number Original line Diff line number Diff line
@@ -997,8 +997,14 @@ void ath9k_hw_init_global_settings(struct ath_hw *ah)
		slottime = 21;
		slottime = 21;
		sifstime = 64;
		sifstime = 64;
	} else {
	} else {
		eifs = REG_READ(ah, AR_D_GBL_IFS_EIFS)/common->clockrate;
		if (AR_SREV_9287(ah) && AR_SREV_9287_13_OR_LATER(ah)) {
			eifs = AR_D_GBL_IFS_EIFS_ASYNC_FIFO;
			reg = AR_USEC_ASYNC_FIFO;
		} else {
			eifs = REG_READ(ah, AR_D_GBL_IFS_EIFS)/
				common->clockrate;
			reg = REG_READ(ah, AR_USEC);
			reg = REG_READ(ah, AR_USEC);
		}
		rx_lat = MS(reg, AR_USEC_RX_LAT);
		rx_lat = MS(reg, AR_USEC_RX_LAT);
		tx_lat = MS(reg, AR_USEC_TX_LAT);
		tx_lat = MS(reg, AR_USEC_TX_LAT);


+2 −0
Original line number Original line Diff line number Diff line
@@ -619,6 +619,7 @@
#define AR_D_GBL_IFS_EIFS         0x10b0
#define AR_D_GBL_IFS_EIFS         0x10b0
#define AR_D_GBL_IFS_EIFS_M       0x0000FFFF
#define AR_D_GBL_IFS_EIFS_M       0x0000FFFF
#define AR_D_GBL_IFS_EIFS_RESV0   0xFFFF0000
#define AR_D_GBL_IFS_EIFS_RESV0   0xFFFF0000
#define AR_D_GBL_IFS_EIFS_ASYNC_FIFO 363


#define AR_D_GBL_IFS_MISC        0x10f0
#define AR_D_GBL_IFS_MISC        0x10f0
#define AR_D_GBL_IFS_MISC_LFSR_SLICE_SEL        0x00000007
#define AR_D_GBL_IFS_MISC_LFSR_SLICE_SEL        0x00000007
@@ -1503,6 +1504,7 @@ enum {
#define AR_USEC_TX_LAT_S     14
#define AR_USEC_TX_LAT_S     14
#define AR_USEC_RX_LAT       0x1F800000
#define AR_USEC_RX_LAT       0x1F800000
#define AR_USEC_RX_LAT_S     23
#define AR_USEC_RX_LAT_S     23
#define AR_USEC_ASYNC_FIFO   0x12E00074


#define AR_RESET_TSF        0x8020
#define AR_RESET_TSF        0x8020
#define AR_RESET_TSF_ONCE   0x01000000
#define AR_RESET_TSF_ONCE   0x01000000