diff options
author | Sujith Manoharan <c_manoha@qca.qualcomm.com> | 2015-02-05 04:52:42 (GMT) |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2015-02-26 12:58:41 (GMT) |
commit | 6aaefab6cfe879246f209e39ca993deec493fa96 (patch) | |
tree | d8c11a1dfd1c6db6c1b812003d86086f132e10dd /drivers/net/wireless/ath/ath9k/ar9003_wow.c | |
parent | b39adc63bf0c014b0582c191a83272ea7f92ee8a (diff) | |
download | linux-6aaefab6cfe879246f209e39ca993deec493fa96.tar.xz |
ath9k: Handle additional patterns on wakeup
Handle the user-configured patterns in the range 8..15
when waking up and update wow_status correctly.
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/ar9003_wow.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ar9003_wow.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_wow.c b/drivers/net/wireless/ath/ath9k/ar9003_wow.c index bf3378f0..34763c4 100644 --- a/drivers/net/wireless/ath/ath9k/ar9003_wow.c +++ b/drivers/net/wireless/ath/ath9k/ar9003_wow.c @@ -186,18 +186,17 @@ u32 ath9k_hw_wow_wakeup(struct ath_hw *ah) u32 val = 0, rval; /* - * read the WoW status register to know - * the wakeup reason + * Read the WoW status register to know + * the wakeup reason. */ rval = REG_READ(ah, AR_WOW_PATTERN); val = AR_WOW_STATUS(rval); /* - * mask only the WoW events that we have enabled. Sometimes + * Mask only the WoW events that we have enabled. Sometimes * we have spurious WoW events from the AR_WOW_PATTERN * register. This mask will clean it up. */ - val &= ah->wow.wow_event_mask; if (val) { @@ -211,6 +210,15 @@ u32 ath9k_hw_wow_wakeup(struct ath_hw *ah) wow_status |= AH_WOW_BEACON_MISS; } + rval = REG_READ(ah, AR_MAC_PCU_WOW4); + val = AR_WOW_STATUS2(rval); + val &= ah->wow.wow_event_mask2; + + if (val) { + if (AR_WOW2_PATTERN_FOUND(val)) + wow_status |= AH_WOW_USER_PATTERN_EN; + } + /* * set and clear WOW_PME_CLEAR registers for the chip to * generate next wow signal. |