diff options
author | Piotr Nakraszewicz <piotr.nakraszewicz@tieto.com> | 2012-02-29 15:15:35 +0100 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@stericsson.com> | 2012-05-22 11:06:49 +0200 |
commit | 8e1699448eaef8d90f884c1a8b2eda967c76ca62 (patch) | |
tree | 7436d0fa2ff9fdf3574b260ec869e8cc402ee01f | |
parent | b23b9fe752a732812e5ac57f7d11464efcedf629 (diff) |
cw1200: Do not set bssid filter when in p2p mode
When acting as p2p client being connected to p2p GO,
in order to receive frames from a different p2p device
(such as GO negotiation request) turn off bssid filter.
WARNING: This patch can only be used with FW WSM371 and
its successors. In that FW version even with bssid
filter turned off, device will block most of the frames
from outside the BSS and not pass them to the host.
If using FW WSM373 and its successors this patch will
be causing high power consumption in p2p mode.
ST-Ericsson ID: 409603
ST-Ericsson FOSS-OUT ID: NA
Signed-off-by: Piotr Nakraszewicz <piotr.nakraszewicz@tieto.com>
Change-Id: Icbcd6c57f8c646f56c41b174c79abb45f7118d15
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/46739
Reviewed-by: QABUILD
Tested-by: Piotr NAKRASZEWICZ <piotr.nakraszewicz@tieto.com>
Reviewed-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com>
-rw-r--r-- | drivers/staging/cw1200/sta.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/staging/cw1200/sta.c b/drivers/staging/cw1200/sta.c index 2d2392f7a75..edce5b436cf 100644 --- a/drivers/staging/cw1200/sta.c +++ b/drivers/staging/cw1200/sta.c @@ -466,6 +466,18 @@ void cw1200_update_filtering(struct cw1200_common *priv) else if (priv->join_status == CW1200_JOIN_STATUS_MONITOR) bssid_filtering = false; + /* + * When acting as p2p client being connected to p2p GO, in order to + * receive frames from a different p2p device, turn off bssid filter. + * + * WARNING: FW dependency! + * This can only be used with FW WSM371 and its successors. + * In that FW version even with bssid filter turned off, + * device will block most of the unwanted frames. + */ + if (priv->vif->p2p) + bssid_filtering = false; + ret = wsm_set_rx_filter(priv, &priv->rx_filter); if (!ret) ret = wsm_set_beacon_filter_table(priv, &priv->bf_table); |