diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-01-20 14:01:31 -0300 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-01-20 14:01:31 -0300 |
commit | b4b7ff4b08e691656c9d77c758fc355833128ac0 (patch) | |
tree | 82fcb00e6b918026dc9f2d1f05ed8eee83874cc0 /drivers/staging/vt6656/int.c | |
parent | 35acfa0fc609f2a2cd95cef4a6a9c3a5c38f1778 (diff) |
Linux-libre 4.4-gnupck-4.4-gnu
Diffstat (limited to 'drivers/staging/vt6656/int.c')
-rw-r--r-- | drivers/staging/vt6656/int.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/staging/vt6656/int.c b/drivers/staging/vt6656/int.c index 2ef70e470..14b8ebc65 100644 --- a/drivers/staging/vt6656/int.c +++ b/drivers/staging/vt6656/int.c @@ -149,10 +149,18 @@ void vnt_int_process_data(struct vnt_private *priv) priv->op_mode == NL80211_IFTYPE_AP) vnt_schedule_command(priv, WLAN_CMD_BECON_SEND); - if (int_data->isr0 & ISR_TBTT) { - if (priv->hw->conf.flags & IEEE80211_CONF_PS) + if (int_data->isr0 & ISR_TBTT && + priv->hw->conf.flags & IEEE80211_CONF_PS) { + if (!priv->wake_up_count) + priv->wake_up_count = + priv->hw->conf.listen_interval; + + --priv->wake_up_count; + + /* Turn on wake up to listen next beacon */ + if (priv->wake_up_count == 1) vnt_schedule_command(priv, - WLAN_CMD_TBTT_WAKEUP); + WLAN_CMD_TBTT_WAKEUP); } priv->current_tsf = le64_to_cpu(int_data->tsf); |