summaryrefslogtreecommitdiff
path: root/drivers/staging/cw1200/pm.c
diff options
context:
space:
mode:
authorDmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>2011-10-06 19:05:02 +0200
committerPhilippe Langlais <philippe.langlais@linaro.org>2012-03-19 09:01:55 +0100
commit9e25afc8c4d91b027bec1f2a3688f1b3f780afbf (patch)
treea1c5043194a7122198fc1a89446a7e6940c99d12 /drivers/staging/cw1200/pm.c
parent4f2dc1b663eedd69515ea591e7138e969c9566e6 (diff)
cw1200: Accurate reporting of TX status.
* Accurate reporting of TX status is implemented (needed for UAPSD and PSPOLL). * Leaking of TX rate policies is fixed. * skb destructor is implemented. * Time to live for queued frames is implemented. * cw1200_tx is split by separate TX handlers (like in mac80211). * cw1200_skb_to_wsm is not existing anymore. * BT coex: null frames are prioritized as management frames. * Debug: added printing of rate policies in use. ST-Ericsson ID: 354950 ST-Ericsson ID: 360749 Change-Id: I920d398418df99c21b37a16ef16591e58a82151d Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/33542 Reviewed-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com> Reviewed-by: Philippe LANGLAIS <philippe.langlais@stericsson.com>
Diffstat (limited to 'drivers/staging/cw1200/pm.c')
-rw-r--r--drivers/staging/cw1200/pm.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/staging/cw1200/pm.c b/drivers/staging/cw1200/pm.c
index 3cb6b62b530..3d7570767ed 100644
--- a/drivers/staging/cw1200/pm.c
+++ b/drivers/staging/cw1200/pm.c
@@ -95,6 +95,7 @@ void cw1200_pm_deinit(struct cw1200_pm_state *pm)
wake_lock_destroy(&pm->wakelock);
cw1200_pm_deinit_common(pm);
}
+
void cw1200_pm_stay_awake(struct cw1200_pm_state *pm,
unsigned long tmo)
{
@@ -205,6 +206,10 @@ int cw1200_wow_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
return -EAGAIN;
#endif
+ /* Do not suspend when datapath is not idle */
+ if (priv->tx_queue_stats.num_queued)
+ return -EBUSY;
+
/* Make sure there is no configuration requests in progress. */
if (!mutex_trylock(&priv->conf_mutex))
return -EBUSY;