[PATCH 02/99] cw1200: scan, probe_req rates check no_cck flag

Dmitry Tarnyagin dmitry.tarnyagin at stericsson.com
Wed Feb 29 14:14:09 UTC 2012


From: Janusz Dziedzic <janusz.dziedzic at tieto.com>

Check no_cck flag in hw_scan callback,
and use correct rates for scan request.
Similar in case of probe request frame.
Set correct rate for beacon/probe_res frames.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic at tieto.com>

Change-Id: I83216968e9394a17f6294923d209d2f6876c12b7
ST-Ericsson ID: 360139
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/33399
Reviewed-by: QABUILD
Reviewed-by: Janusz DZIEDZIC <janusz.dziedzic at tieto.com>
Tested-by: Janusz DZIEDZIC <janusz.dziedzic at tieto.com>
Reviewed-by: Bartosz MARKOWSKI <bartosz.markowski at tieto.com>
---
 drivers/staging/cw1200/ap.c   |    2 ++
 drivers/staging/cw1200/scan.c |    7 +++++--
 drivers/staging/cw1200/sta.c  |    5 ++++-
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/cw1200/ap.c b/drivers/staging/cw1200/ap.c
index cd74143..4f55850 100755
--- a/drivers/staging/cw1200/ap.c
+++ b/drivers/staging/cw1200/ap.c
@@ -683,6 +683,8 @@ static int cw1200_upload_beacon(struct cw1200_common *priv)
 		.frame_type = WSM_FRAME_TYPE_BEACON,
 	};
 
+	if (priv->vif->p2p)
+		frame.rate = WSM_TRANSMIT_RATE_6;
 
 	frame.skb = ieee80211_beacon_get(priv->hw, priv->vif);
 	if (WARN_ON(!frame.skb))
diff --git a/drivers/staging/cw1200/scan.c b/drivers/staging/cw1200/scan.c
index d97bc81..cb63376 100644
--- a/drivers/staging/cw1200/scan.c
+++ b/drivers/staging/cw1200/scan.c
@@ -199,8 +199,11 @@ void cw1200_scan_work(struct work_struct *work)
 				break;
 		}
 		scan.band = first->band;
-		/* TODO: Is it optimal? */
-		scan.maxTransmitRate = WSM_TRANSMIT_RATE_1;
+
+		if (priv->scan.req->no_cck)
+			scan.maxTransmitRate = WSM_TRANSMIT_RATE_6;
+		else
+			scan.maxTransmitRate = WSM_TRANSMIT_RATE_1;
 		/* TODO: Is it optimal? */
 		scan.numOfProbeRequests =
 			(first->flags & IEEE80211_CHAN_PASSIVE_SCAN) ? 0 : 2;
diff --git a/drivers/staging/cw1200/sta.c b/drivers/staging/cw1200/sta.c
index c138bcd..0304c70 100644
--- a/drivers/staging/cw1200/sta.c
+++ b/drivers/staging/cw1200/sta.c
@@ -1240,8 +1240,11 @@ void cw1200_join_work(struct work_struct *work)
 			memcpy(&join.ssid[0], &ssidie[2], join.ssidLength);
 		}
 
-		if (priv->vif->p2p)
+		if (priv->vif->p2p) {
 			join.flags |= WSM_JOIN_FLAGS_P2P_GO;
+			join.basicRateSet =
+				cw1200_rate_mask_to_wsm(priv, 0xFF0);
+		}
 
 		wsm_flush_tx(priv);
 
-- 
1.7.8.3



More information about the kernel mailing list