diff options
author | Sujith Manoharan <c_manoha@qca.qualcomm.com> | 2015-02-02 12:51:10 (GMT) |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2015-02-06 06:39:26 (GMT) |
commit | bb6313140b3c8356cf36675a8edbf6782dc6c3d0 (patch) | |
tree | e49581d79905c11f30619437ea280d9f0d599b2e /drivers/net/wireless/ath/ath9k/reg_wow.h | |
parent | e68e9c10fbe0d4e49732783aae534ba0a328887f (diff) | |
download | linux-bb6313140b3c8356cf36675a8edbf6782dc6c3d0.tar.xz |
ath9k: Fix issues with WoW enable
This patch addresses several issues with the
ath9k_hw_wow_enable() routine:
* The usage of set/clr variables is removed. Writing
the required values to registers is cleaner.
* The shift value of 28 for the contention window field
in AR_WOW_PATTERN is incorrect, change it to 27.
* Disabling Keep Alive needs to be done based on the
LINK_CHANGE option. This is done unconditionally now,
fix this.
* The workaround for the D1/D3 issue is required only
for AR9462.
* The bitfield for enabling pattern matching for packets
less than 256 bytes has expanded for new chips, handle
this accordingly.
* General cleanup.
Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/reg_wow.h')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/reg_wow.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath9k/reg_wow.h b/drivers/net/wireless/ath/ath9k/reg_wow.h index 83f27f9..3abfca5 100644 --- a/drivers/net/wireless/ath/ath9k/reg_wow.h +++ b/drivers/net/wireless/ath/ath9k/reg_wow.h @@ -68,7 +68,7 @@ #define AR_CLR_MAC_INTERRUPT 0x20 #define AR_CLR_KA_INTERRUPT 0x40 -#define AR_WOW_BACK_OFF_SHIFT(x) ((x & 0xf) << 28) /* in usecs */ +#define AR_WOW_BACK_OFF_SHIFT(x) ((x & 0xf) << 27) /* in usecs */ #define AR_WOW_MAC_INTR_EN 0x00040000 #define AR_WOW_MAGIC_EN 0x00010000 #define AR_WOW_PATTERN_EN(x) (x & 0xff) @@ -113,7 +113,8 @@ #define AR_WOW_KA_DESC_WORD2 0xe000 #define AR_WOW_TB_PATTERN(i) (0xe100 + (i << 8)) #define AR_WOW_TB_MASK(i) (0xec00 + (i << 5)) -#define AR_WOW_PATTERN_SUPPORTED 0xff +#define AR_WOW_PATTERN_SUPPORTED_LEGACY 0xff +#define AR_WOW_PATTERN_SUPPORTED 0xffff #define AR_WOW_LENGTH_MAX 0xff #define AR_WOW_LEN1_SHIFT(_i) ((0x3 - ((_i) & 0x3)) << 0x3) #define AR_WOW_LENGTH1_MASK(_i) (AR_WOW_LENGTH_MAX << AR_WOW_LEN1_SHIFT(_i)) |