Skip to content

Commit

Permalink
wlcore: consider multiple APs when checking active_link_count
Browse files Browse the repository at this point in the history
Each AP has its own global and broadcast links, so when
checking for active sta count (according to the active_link_count)
we must take them all into account.

Signed-off-by: Eliad Peller <eliad@wizery.com>
  • Loading branch information
elp committed Jan 21, 2014
1 parent fc38cd1 commit 4689e4f
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 10 deletions.
10 changes: 5 additions & 5 deletions drivers/net/wireless/ti/wlcore/main.c
Expand Up @@ -346,12 +346,12 @@ static void wl12xx_irq_ps_regulate_link(struct wl1271 *wl,
* Start high-level PS if the STA is asleep with enough blocks in FW.
* Make an exception if this is the only connected link. In this
* case FW-memory congestion is less of a problem.
* Note that a single connected STA means 3 active links, since we must
* account for the global and broadcast AP links. The "fw_ps" check
* assures us the third link is a STA connected to the AP. Otherwise
* the FW would not set the PSM bit.
* Note that a single connected STA means 2*ap_count + 1 active links,
* since we must account for the global and broadcast AP links
* for each AP. The "fw_ps" check assures us the other link is a STA
* connected to the AP. Otherwise the FW would not set the PSM bit.
*/
else if (wl->active_link_count > 3 && fw_ps &&
else if (wl->active_link_count > (wl->ap_count*2 + 1) && fw_ps &&
tx_pkts >= WL1271_PS_STA_MAX_PACKETS)
wl12xx_ps_link_start(wl, wlvif, hlid, true);
}
Expand Down
10 changes: 5 additions & 5 deletions drivers/net/wireless/ti/wlcore/tx.c
Expand Up @@ -134,12 +134,12 @@ static void wl1271_tx_regulate_link(struct wl1271 *wl,
* into high-level PS and clean out its TX queues.
* Make an exception if this is the only connected link. In this
* case FW-memory congestion is less of a problem.
* Note that a single connected STA means 3 active links, since we must
* account for the global and broadcast AP links. The "fw_ps" check
* assures us the third link is a STA connected to the AP. Otherwise
* the FW would not set the PSM bit.
* Note that a single connected STA means 2*ap_count + 1 active links,
* since we must account for the global and broadcast AP links
* for each AP. The "fw_ps" check assures us the other link is a STA
* connected to the AP. Otherwise the FW would not set the PSM bit.
*/
if (wl->active_link_count > 3 && fw_ps &&
if (wl->active_link_count > (wl->ap_count*2 + 1) && fw_ps &&
tx_pkts >= WL1271_PS_STA_MAX_PACKETS)
wl12xx_ps_link_start(wl, wlvif, hlid, true);
}
Expand Down

0 comments on commit 4689e4f

Please sign in to comment.