summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJanusz Dziedzic <janusz.dziedzic@tieto.com>2012-02-29 15:14:16 +0100
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:06:37 +0200
commit976bfd8cb9b4c0fdcdabd561009a1469c836dcb5 (patch)
treed089361ca238c77da6ef46a8127048144ed3db9e
parentf8078997500faad868cdd6374abfdb0f17f34026 (diff)
cw1200: Enable probe_req forwarding
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@tieto.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/34006 Reviewed-by: QATOOLS Reviewed-by: QABUILD Reviewed-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com> Tested-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com>
-rwxr-xr-xdrivers/staging/cw1200/ap.c2
-rw-r--r--drivers/staging/cw1200/wsm.h6
2 files changed, 7 insertions, 1 deletions
diff --git a/drivers/staging/cw1200/ap.c b/drivers/staging/cw1200/ap.c
index 4f558506d12..d3c75275fae 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 f0b07dc08a2..133de01cb96 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;