wifi: update bcmdhd.1.579.77.41.1.cn from ampak[3/3]
[GitHub/LineageOS/G12/android_hardware_amlogic_kernel-modules_dhd-driver.git] / bcmdhd.1.579.77.41.1.cn / wl_escan.h
CommitLineData
010c3a89
RC
1\r
2#ifndef _wl_escan_\r
3#define _wl_escan_\r
4\r
5#include <linux/wireless.h>\r
6#include <wl_iw.h>\r
7#include <dngl_stats.h>\r
8#include <dhd.h>\r
9#include <linux/time.h>\r
10\r
11\r
12#ifdef DHD_MAX_IFS\r
13#define WL_MAX_IFS DHD_MAX_IFS\r
14#else\r
15#define WL_MAX_IFS 16\r
16#endif\r
17\r
18#define ESCAN_BUF_SIZE (64 * 1024)\r
19\r
20#define WL_ESCAN_TIMER_INTERVAL_MS 10000 /* Scan timeout */\r
21\r
22/* event queue for cfg80211 main event */\r
23struct escan_event_q {\r
24 struct list_head eq_list;\r
25 u32 etype;\r
26 wl_event_msg_t emsg;\r
27 s8 edata[1];\r
28};\r
29\r
30/* donlge escan state */\r
31enum escan_state {\r
32 ESCAN_STATE_IDLE,\r
33 ESCAN_STATE_SCANING\r
34};\r
35\r
36struct wl_escan_info;\r
37\r
38typedef s32(*ESCAN_EVENT_HANDLER) (struct wl_escan_info *escan,\r
39 const wl_event_msg_t *e, void *data);\r
40\r
41typedef struct wl_escan_info {\r
42 struct net_device *dev;\r
43 dhd_pub_t *pub;\r
44 struct timer_list scan_timeout; /* Timer for catch scan event timeout */\r
45 int escan_state;\r
46 int ioctl_ver;\r
47\r
48 char ioctlbuf[WLC_IOCTL_SMLEN];\r
49 u8 escan_buf[ESCAN_BUF_SIZE];\r
50 struct wl_scan_results *bss_list;\r
51 struct wl_scan_results *scan_results;\r
52 struct ether_addr disconnected_bssid;\r
53 u8 *escan_ioctl_buf;\r
54 spinlock_t eq_lock; /* for event queue synchronization */\r
55 struct list_head eq_list; /* used for event queue */\r
56 tsk_ctl_t event_tsk; /* task of main event handler thread */\r
57 ESCAN_EVENT_HANDLER evt_handler[WLC_E_LAST];\r
58 struct mutex usr_sync; /* maily for up/down synchronization */\r
d964ce36 59 int autochannel;\r
60 int best_2g_ch;\r
61 int best_5g_ch;\r
62#if defined(RSSIAVG)\r
63 wl_rssi_cache_ctrl_t g_rssi_cache_ctrl;\r
64 wl_rssi_cache_ctrl_t g_connected_rssi_cache_ctrl;\r
65#endif\r
66#if defined(BSSCACHE)\r
67 wl_bss_cache_ctrl_t g_bss_cache_ctrl;\r
68#endif\r
010c3a89
RC
69} wl_escan_info_t;\r
70\r
d964ce36 71void wl_escan_event(struct net_device *dev, const wl_event_msg_t * e, void *data);\r
010c3a89
RC
72\r
73int wl_escan_set_scan(\r
74 struct net_device *dev,\r
75 struct iw_request_info *info,\r
76 union iwreq_data *wrqu,\r
77 char *extra\r
78);\r
79int wl_escan_get_scan(struct net_device *dev, struct iw_request_info *info,\r
80 struct iw_point *dwrq, char *extra);\r
d964ce36 81s32 wl_escan_autochannel(struct net_device *dev, char* command, int total_len);\r
ccd15baf
RC
82int wl_escan_attach(struct net_device *dev, dhd_pub_t *dhdp);\r
83void wl_escan_detach(dhd_pub_t *dhdp);\r
010c3a89
RC
84\r
85#endif /* _wl_escan_ */\r
86\r