diff options
author | Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> | 2011-06-07 09:12:07 +0200 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@stericsson.com> | 2012-05-22 11:06:19 +0200 |
commit | 8baff0cf82469a4ebfabc775b56772dcd0b6fdfc (patch) | |
tree | 57fb798f0166d5f77ff5bad61be8f83c1c4a5368 /drivers/staging/cw1200/bh.c | |
parent | f21ed94daa73a203b5c537c18cf8d0ecfd320f5c (diff) |
cw1200: throughput optimization and fine-tuning.
* Fixed: Do not allocate a dedicated communication channel (buffer) for WSM command stream,
use it for data traffic when needed.
* Additional statistics added to DebugFS: counters for TX policy cache misses and unaligned
skbs memmove.
* Fixed: Strip IV/ICV in the driver to prevent mac80211 layer from double-verification.
Change-Id: I600664466d577df4c2bc62ff49fb22f2d3b024cc
Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/24482
Reviewed-by: Robert MARKLUND <robert.marklund@stericsson.com>
Tested-by: Robert MARKLUND <robert.marklund@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/25622
Reviewed-by: Philippe LANGLAIS <philippe.langlais@stericsson.com>
Diffstat (limited to 'drivers/staging/cw1200/bh.c')
-rw-r--r-- | drivers/staging/cw1200/bh.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/staging/cw1200/bh.c b/drivers/staging/cw1200/bh.c index 177274a00d2..d49f9fdf732 100644 --- a/drivers/staging/cw1200/bh.c +++ b/drivers/staging/cw1200/bh.c @@ -120,7 +120,7 @@ int wsm_release_tx_buffer(struct cw1200_common *priv, int count) priv->hw_bufs_used -= count; if (WARN_ON(priv->hw_bufs_used < 0)) ret = -1; - else if (hw_bufs_used >= priv->wsm_caps.numInpChBufs - 1) + else if (hw_bufs_used >= priv->wsm_caps.numInpChBufs) ret = 1; if (!priv->hw_bufs_used) wake_up_interruptible(&priv->hw_bufs_used_wq); @@ -363,9 +363,7 @@ tx: /* HACK! One buffer is reserved for control path */ BUG_ON(priv->hw_bufs_used > priv->wsm_caps.numInpChBufs); tx_allowed = - priv->hw_bufs_used + 1 < priv->wsm_caps.numInpChBufs; - if (unlikely(!tx_allowed && priv->wsm_cmd.ptr)) - tx_allowed = 1; + priv->hw_bufs_used < priv->wsm_caps.numInpChBufs; if (tx && tx_allowed) { size_t tx_len; |