summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Nakraszewicz <piotr.nakraszewicz@tieto.com>2012-02-29 15:15:35 +0100
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:06:49 +0200
commit8e1699448eaef8d90f884c1a8b2eda967c76ca62 (patch)
tree7436d0fa2ff9fdf3574b260ec869e8cc402ee01f
parentb23b9fe752a732812e5ac57f7d11464efcedf629 (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.c12
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);