diff options
author | Hante Meuleman <meuleman@broadcom.com> | 2013-02-08 09:53:38 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-02-08 14:51:37 -0500 |
commit | 0de8aace0ff499bf1b6597e7f272961d2e335933 (patch) | |
tree | 3bcaa7edefc2ecf74448f3ffa2665de262d014da /drivers/net/wireless/brcm80211/brcmfmac/p2p.h | |
parent | d3c0b63396442d564ceb4db0dcc51e70918b9c93 (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.h | 15 |
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 | */ |
68 | enum brcmf_p2p_status { | 68 | enum 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 | */ |
92 | struct brcmf_p2p_info { | 93 | struct 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 | ||
103 | void brcmf_p2p_attach(struct brcmf_cfg80211_info *cfg); | 105 | void brcmf_p2p_attach(struct brcmf_cfg80211_info *cfg); |
@@ -110,5 +112,12 @@ int brcmf_p2p_start_device(struct wiphy *wiphy, struct wireless_dev *wdev); | |||
110 | void brcmf_p2p_stop_device(struct wiphy *wiphy, struct wireless_dev *wdev); | 112 | void brcmf_p2p_stop_device(struct wiphy *wiphy, struct wireless_dev *wdev); |
111 | int brcmf_p2p_scan_prep(struct wiphy *wiphy, | 113 | int brcmf_p2p_scan_prep(struct wiphy *wiphy, |
112 | struct cfg80211_scan_request *request); | 114 | struct cfg80211_scan_request *request); |
115 | int brcmf_p2p_remain_on_channel(struct wiphy *wiphy, struct wireless_dev *wdev, | ||
116 | struct ieee80211_channel *channel, | ||
117 | unsigned int duration, u64 *cookie); | ||
118 | int brcmf_p2p_notify_listen_complete(struct brcmf_if *ifp, | ||
119 | const struct brcmf_event_msg *e, | ||
120 | void *data); | ||
121 | void brcmf_p2p_cancel_remain_on_channel(struct brcmf_if *ifp); | ||
113 | 122 | ||
114 | #endif /* WL_CFGP2P_H_ */ | 123 | #endif /* WL_CFGP2P_H_ */ |