[PATCH 09/99] cw1200: Enable probe_req forwarding

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


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

In case we became P2P_GO we should enable
probe_req forwarding to upper layer. Next
wpa_supplicant will handle this request.
Need to be integrated together with firmware:
WSM_A30.01.0338

ST-Ericsson ID: 365887
ST-Ericsson FOSS-OUT ID: NA

Change-Id: I623c1b092ecbda814ff22d48269e1dbb50094d98
Signed-off-by: Marek Puzyniak <marek.puzyniak at tieto.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/34006
Reviewed-by: QATOOLS
Reviewed-by: QABUILD
Reviewed-by: Bartosz MARKOWSKI <bartosz.markowski at tieto.com>
Tested-by: Bartosz MARKOWSKI <bartosz.markowski at tieto.com>
---
 drivers/staging/cw1200/ap.c  |    2 ++
 drivers/staging/cw1200/wsm.h |    6 +++++-
 2 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/drivers/staging/cw1200/ap.c b/drivers/staging/cw1200/ap.c
index 4f55850..d3c7527 100755
--- a/drivers/staging/cw1200/ap.c
+++ b/drivers/staging/cw1200/ap.c
@@ -698,6 +698,8 @@ static int cw1200_upload_beacon(struct cw1200_common *priv)
 			__cpu_to_le16(IEEE80211_FTYPE_MGMT |
 				      IEEE80211_STYPE_PROBE_RESP);
 		frame.frame_type = WSM_FRAME_TYPE_PROBE_RESPONSE;
+		if (priv->vif->p2p)
+			frame.disable = true;
 		ret = wsm_set_template_frame(priv, &frame);
 	}
 	dev_kfree_skb(frame.skb);
diff --git a/drivers/staging/cw1200/wsm.h b/drivers/staging/cw1200/wsm.h
index f0b07dc..133de01 100644
--- a/drivers/staging/cw1200/wsm.h
+++ b/drivers/staging/cw1200/wsm.h
@@ -1393,6 +1393,7 @@ static inline int wsm_set_operational_mode(struct cw1200_common *priv,
 struct wsm_template_frame {
 	u8 frame_type;
 	u8 rate;
+	bool disable;
 	struct sk_buff *skb;
 };
 
@@ -1403,7 +1404,10 @@ static inline int wsm_set_template_frame(struct cw1200_common *priv,
 	u8 *p = skb_push(arg->skb, 4);
 	p[0] = arg->frame_type;
 	p[1] = arg->rate;
-	((u16 *) p)[1] = __cpu_to_le16(arg->skb->len - 4);
+	if (arg->disable)
+		((u16 *) p)[1] = 0;
+	else
+		((u16 *) p)[1] = __cpu_to_le16(arg->skb->len - 4);
 	ret = wsm_write_mib(priv, WSM_MIB_ID_TEMPLATE_FRAME, p, arg->skb->len);
 	skb_pull(arg->skb, 4);
 	return ret;
-- 
1.7.8.3



More information about the kernel mailing list