mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-10 19:43:29 +00:00
brcmfmac: add hostap supoort.
This patch adds support for host AP mode. Reviewed-by: Arend Van Spriel <arend@broadcom.com> Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@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>
This commit is contained in:
parent
5db6e95645
commit
1a87334239
@ -27,6 +27,7 @@
|
||||
* IO codes that are interpreted by dongle firmware
|
||||
******************************************************************************/
|
||||
#define BRCMF_C_UP 2
|
||||
#define BRCMF_C_DOWN 3
|
||||
#define BRCMF_C_SET_PROMISC 10
|
||||
#define BRCMF_C_GET_RATE 12
|
||||
#define BRCMF_C_GET_INFRA 19
|
||||
@ -50,7 +51,10 @@
|
||||
#define BRCMF_C_REASSOC 53
|
||||
#define BRCMF_C_SET_ROAM_TRIGGER 55
|
||||
#define BRCMF_C_SET_ROAM_DELTA 57
|
||||
#define BRCMF_C_GET_BCNPRD 75
|
||||
#define BRCMF_C_SET_BCNPRD 76
|
||||
#define BRCMF_C_GET_DTIMPRD 77
|
||||
#define BRCMF_C_SET_DTIMPRD 78
|
||||
#define BRCMF_C_SET_COUNTRY 84
|
||||
#define BRCMF_C_GET_PM 85
|
||||
#define BRCMF_C_SET_PM 86
|
||||
@ -134,6 +138,9 @@
|
||||
|
||||
#define WLC_BSS_RSSI_ON_CHANNEL 0x0002
|
||||
|
||||
#define BRCMF_MAXRATES_IN_SET 16 /* max # of rates in rateset */
|
||||
#define BRCMF_STA_ASSOC 0x10 /* Associated */
|
||||
|
||||
struct brcmf_event_msg {
|
||||
__be16 version;
|
||||
__be16 flags;
|
||||
@ -566,6 +573,28 @@ struct brcmf_channel_info_le {
|
||||
__le32 scan_channel;
|
||||
};
|
||||
|
||||
struct brcmf_sta_info_le {
|
||||
__le16 ver; /* version of this struct */
|
||||
__le16 len; /* length in bytes of this structure */
|
||||
__le16 cap; /* sta's advertised capabilities */
|
||||
__le32 flags; /* flags defined below */
|
||||
__le32 idle; /* time since data pkt rx'd from sta */
|
||||
u8 ea[ETH_ALEN]; /* Station address */
|
||||
__le32 count; /* # rates in this set */
|
||||
u8 rates[BRCMF_MAXRATES_IN_SET]; /* rates in 500kbps units */
|
||||
/* w/hi bit set if basic */
|
||||
__le32 in; /* seconds elapsed since associated */
|
||||
__le32 listen_interval_inms; /* Min Listen interval in ms for STA */
|
||||
__le32 tx_pkts; /* # of packets transmitted */
|
||||
__le32 tx_failures; /* # of packets failed */
|
||||
__le32 rx_ucast_pkts; /* # of unicast packets received */
|
||||
__le32 rx_mcast_pkts; /* # of multicast packets received */
|
||||
__le32 tx_rate; /* Rate of last successful tx frame */
|
||||
__le32 rx_rate; /* Rate of last successful rx frame */
|
||||
__le32 rx_decrypt_succeeds; /* # of packet decrypted successfully */
|
||||
__le32 rx_decrypt_failures; /* # of packet decrypted failed */
|
||||
};
|
||||
|
||||
/* Bus independent dongle command */
|
||||
struct brcmf_dcmd {
|
||||
uint cmd; /* common dongle cmd definition */
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -125,6 +125,7 @@ do { \
|
||||
#define WL_ESCAN_ACTION_ABORT 3
|
||||
|
||||
#define WL_AUTH_SHARED_KEY 1 /* d11 shared authentication */
|
||||
#define IE_MAX_LEN 512
|
||||
|
||||
/* dongle status */
|
||||
enum wl_status {
|
||||
@ -132,7 +133,9 @@ enum wl_status {
|
||||
WL_STATUS_SCANNING,
|
||||
WL_STATUS_SCAN_ABORTING,
|
||||
WL_STATUS_CONNECTING,
|
||||
WL_STATUS_CONNECTED
|
||||
WL_STATUS_CONNECTED,
|
||||
WL_STATUS_AP_CREATING,
|
||||
WL_STATUS_AP_CREATED
|
||||
};
|
||||
|
||||
/* wi-fi mode */
|
||||
@ -285,6 +288,17 @@ struct escan_info {
|
||||
struct net_device *ndev;
|
||||
};
|
||||
|
||||
/* Structure to hold WPS, WPA IEs for a AP */
|
||||
struct ap_info {
|
||||
u8 probe_res_ie[IE_MAX_LEN];
|
||||
u8 beacon_ie[IE_MAX_LEN];
|
||||
u32 probe_res_ie_len;
|
||||
u32 beacon_ie_len;
|
||||
u8 *wpa_ie;
|
||||
u8 *rsn_ie;
|
||||
bool security_mode;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct brcmf_pno_param_le - PNO scan configuration parameters
|
||||
*
|
||||
@ -407,6 +421,7 @@ struct brcmf_pno_scanresults_le {
|
||||
* @escan_timeout: Timer for catch scan timeout.
|
||||
* @escan_timeout_work: scan timeout worker.
|
||||
* @escan_ioctl_buf: dongle command buffer for escan commands.
|
||||
* @ap_info: host ap information.
|
||||
* @ci: used to link this structure to netdev private data.
|
||||
*/
|
||||
struct brcmf_cfg80211_priv {
|
||||
@ -448,6 +463,7 @@ struct brcmf_cfg80211_priv {
|
||||
struct timer_list escan_timeout;
|
||||
struct work_struct escan_timeout_work;
|
||||
u8 *escan_ioctl_buf;
|
||||
struct ap_info *ap_info;
|
||||
};
|
||||
|
||||
static inline struct wiphy *cfg_to_wiphy(struct brcmf_cfg80211_priv *w)
|
||||
|
Loading…
x
Reference in New Issue
Block a user