Commit 3e7921a0 authored by Malcolm Priestley's avatar Malcolm Priestley Committed by Greg Kroah-Hartman

staging: vt6655: Correct listen interval TBTT wake up

PSbIsNextTBTTWakeUp is called at beacon intervals.

The should listen to next beacon on count down of wake_up_count == 1.

This restores this back to vendors code but modified for mac80211.
Signed-off-by: default avatarMalcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 4fdae0d9
......@@ -403,6 +403,7 @@ struct vnt_private {
unsigned char abyEEPROM[EEP_MAX_CONTEXT_SIZE]; /* unsigned long alignment */
unsigned short wBeaconInterval;
u16 wake_up_count;
struct work_struct interrupt_work;
......
......@@ -157,10 +157,18 @@ PSbIsNextTBTTWakeUp(
struct ieee80211_conf *conf = &hw->conf;
bool bWakeUp = false;
if (conf->listen_interval == 1) {
/* Turn on wake up to listen next beacon */
MACvRegBitsOn(pDevice->PortOffset, MAC_REG_PSCTL, PSCTL_LNBCN);
bWakeUp = true;
if (conf->listen_interval > 1) {
if (!pDevice->wake_up_count)
pDevice->wake_up_count = conf->listen_interval;
--pDevice->wake_up_count;
if (pDevice->wake_up_count == 1) {
/* Turn on wake up to listen next beacon */
MACvRegBitsOn(pDevice->PortOffset,
MAC_REG_PSCTL, PSCTL_LNBCN);
bWakeUp = true;
}
}
return bWakeUp;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment