[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