mirror of https://gitee.com/openkylin/linux.git
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: Malcolm Priestley <tvboxspy@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
4fdae0d9fe
commit
3e7921a094
|
@ -403,6 +403,7 @@ struct vnt_private {
|
||||||
unsigned char abyEEPROM[EEP_MAX_CONTEXT_SIZE]; /* unsigned long alignment */
|
unsigned char abyEEPROM[EEP_MAX_CONTEXT_SIZE]; /* unsigned long alignment */
|
||||||
|
|
||||||
unsigned short wBeaconInterval;
|
unsigned short wBeaconInterval;
|
||||||
|
u16 wake_up_count;
|
||||||
|
|
||||||
struct work_struct interrupt_work;
|
struct work_struct interrupt_work;
|
||||||
|
|
||||||
|
|
|
@ -157,10 +157,18 @@ PSbIsNextTBTTWakeUp(
|
||||||
struct ieee80211_conf *conf = &hw->conf;
|
struct ieee80211_conf *conf = &hw->conf;
|
||||||
bool bWakeUp = false;
|
bool bWakeUp = false;
|
||||||
|
|
||||||
if (conf->listen_interval == 1) {
|
if (conf->listen_interval > 1) {
|
||||||
/* Turn on wake up to listen next beacon */
|
if (!pDevice->wake_up_count)
|
||||||
MACvRegBitsOn(pDevice->PortOffset, MAC_REG_PSCTL, PSCTL_LNBCN);
|
pDevice->wake_up_count = conf->listen_interval;
|
||||||
bWakeUp = true;
|
|
||||||
|
--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;
|
return bWakeUp;
|
||||||
|
|
Loading…
Reference in New Issue