aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/brcm80211/brcmfmac/p2p.h
diff options
context:
space:
mode:
authorHante Meuleman <meuleman@broadcom.com>2013-02-08 09:53:38 -0500
committerJohn W. Linville <linville@tuxdriver.com>2013-02-08 14:51:37 -0500
commit0de8aace0ff499bf1b6597e7f272961d2e335933 (patch)
tree3bcaa7edefc2ecf74448f3ffa2665de262d014da /drivers/net/wireless/brcm80211/brcmfmac/p2p.h
parentd3c0b63396442d564ceb4db0dcc51e70918b9c93 (diff)
brcmfmac: add support for P2P listen mode.
With this patch a device can be put in p2p listen mode and becomes visible for other p2p devices (via p2p_find). Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Hante Meuleman <meuleman@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/brcm80211/brcmfmac/p2p.h')
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/p2p.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/p2p.h b/drivers/net/wireless/brcm80211/brcmfmac/p2p.h
index f304adfcce60..df93272ad49f 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/p2p.h
+++ b/drivers/net/wireless/brcm80211/brcmfmac/p2p.h
@@ -60,10 +60,10 @@ struct p2p_bss {
60 * @BRCMF_P2P_STATUS_IF_DELETING: peer-to-peer vif delete sent to dongle. 60 * @BRCMF_P2P_STATUS_IF_DELETING: peer-to-peer vif delete sent to dongle.
61 * @BRCMF_P2P_STATUS_IF_CHANGING: peer-to-peer vif change sent to dongle. 61 * @BRCMF_P2P_STATUS_IF_CHANGING: peer-to-peer vif change sent to dongle.
62 * @BRCMF_P2P_STATUS_IF_CHANGED: peer-to-peer vif change completed on dongle. 62 * @BRCMF_P2P_STATUS_IF_CHANGED: peer-to-peer vif change completed on dongle.
63 * @BRCMF_P2P_STATUS_LISTEN_EXPIRED: listen duration expired.
64 * @BRCMF_P2P_STATUS_ACTION_TX_COMPLETED: action frame tx completed. 63 * @BRCMF_P2P_STATUS_ACTION_TX_COMPLETED: action frame tx completed.
65 * @BRCMF_P2P_STATUS_ACTION_TX_NOACK: action frame tx not acked. 64 * @BRCMF_P2P_STATUS_ACTION_TX_NOACK: action frame tx not acked.
66 * @BRCMF_P2P_STATUS_GO_NEG_PHASE: P2P GO negotiation ongoing. 65 * @BRCMF_P2P_STATUS_GO_NEG_PHASE: P2P GO negotiation ongoing.
66 * @BRCMF_P2P_STATUS_REMAIN_ON_CHANNEL: P2P listen, remaining on channel.
67 */ 67 */
68enum brcmf_p2p_status { 68enum brcmf_p2p_status {
69 BRCMF_P2P_STATUS_IF_ADD = 0, 69 BRCMF_P2P_STATUS_IF_ADD = 0,
@@ -71,10 +71,10 @@ enum brcmf_p2p_status {
71 BRCMF_P2P_STATUS_IF_DELETING, 71 BRCMF_P2P_STATUS_IF_DELETING,
72 BRCMF_P2P_STATUS_IF_CHANGING, 72 BRCMF_P2P_STATUS_IF_CHANGING,
73 BRCMF_P2P_STATUS_IF_CHANGED, 73 BRCMF_P2P_STATUS_IF_CHANGED,
74 BRCMF_P2P_STATUS_LISTEN_EXPIRED,
75 BRCMF_P2P_STATUS_ACTION_TX_COMPLETED, 74 BRCMF_P2P_STATUS_ACTION_TX_COMPLETED,
76 BRCMF_P2P_STATUS_ACTION_TX_NOACK, 75 BRCMF_P2P_STATUS_ACTION_TX_NOACK,
77 BRCMF_P2P_STATUS_GO_NEG_PHASE 76 BRCMF_P2P_STATUS_GO_NEG_PHASE,
77 BRCMF_P2P_STATUS_REMAIN_ON_CHANNEL
78}; 78};
79 79
80/** 80/**
@@ -88,6 +88,7 @@ enum brcmf_p2p_status {
88 * @listen_timer: timer for @WL_P2P_DISC_ST_LISTEN discover state. 88 * @listen_timer: timer for @WL_P2P_DISC_ST_LISTEN discover state.
89 * @ssid: ssid for P2P GO. 89 * @ssid: ssid for P2P GO.
90 * @listen_channel: channel for @WL_P2P_DISC_ST_LISTEN discover state. 90 * @listen_channel: channel for @WL_P2P_DISC_ST_LISTEN discover state.
91 * @remain_on_channel: contains copy of struct used by cfg80211.
91 */ 92 */
92struct brcmf_p2p_info { 93struct brcmf_p2p_info {
93 struct brcmf_cfg80211_info *cfg; 94 struct brcmf_cfg80211_info *cfg;
@@ -98,6 +99,7 @@ struct brcmf_p2p_info {
98 struct timer_list listen_timer; 99 struct timer_list listen_timer;
99 struct brcmf_ssid ssid; 100 struct brcmf_ssid ssid;
100 u8 listen_channel; 101 u8 listen_channel;
102 struct ieee80211_channel remain_on_channel;
101}; 103};
102 104
103void brcmf_p2p_attach(struct brcmf_cfg80211_info *cfg); 105void brcmf_p2p_attach(struct brcmf_cfg80211_info *cfg);
@@ -110,5 +112,12 @@ int brcmf_p2p_start_device(struct wiphy *wiphy, struct wireless_dev *wdev);
110void brcmf_p2p_stop_device(struct wiphy *wiphy, struct wireless_dev *wdev); 112void brcmf_p2p_stop_device(struct wiphy *wiphy, struct wireless_dev *wdev);
111int brcmf_p2p_scan_prep(struct wiphy *wiphy, 113int brcmf_p2p_scan_prep(struct wiphy *wiphy,
112 struct cfg80211_scan_request *request); 114 struct cfg80211_scan_request *request);
115int brcmf_p2p_remain_on_channel(struct wiphy *wiphy, struct wireless_dev *wdev,
116 struct ieee80211_channel *channel,
117 unsigned int duration, u64 *cookie);
118int brcmf_p2p_notify_listen_complete(struct brcmf_if *ifp,
119 const struct brcmf_event_msg *e,
120 void *data);
121void brcmf_p2p_cancel_remain_on_channel(struct brcmf_if *ifp);
113 122
114#endif /* WL_CFGP2P_H_ */ 123#endif /* WL_CFGP2P_H_ */