6 #include <dngl_stats.h>
\r
9 #include <proto/802.11.h>
\r
10 #ifdef POWER_OFF_IN_SUSPEND
\r
11 #include <wl_android.h>
\r
12 #include <bcmsdbus.h>
\r
13 #include <linux/mmc/sdio_func.h>
\r
16 #define FW_PATH_AUTO_SELECT 1
\r
17 extern char firmware_path[MOD_PARAM_PATHLEN];
\r
18 extern int disable_proptx;
\r
21 typedef struct wl_channel_list {
\r
22 /* in - # of channels, out - # of entries */
\r
24 /* variable length channel list */
\r
25 uint32 channel[WL_NUMCHANNELS];
\r
26 } wl_channel_list_t;
\r
28 typedef struct wmes_param {
\r
29 int aifsn[AC_COUNT];
\r
30 int cwmin[AC_COUNT];
\r
31 int cwmax[AC_COUNT];
\r
34 typedef struct dhd_conf {
\r
35 char fw_path[MOD_PARAM_PATHLEN]; /* Firmware path */
\r
36 char nv_path[MOD_PARAM_PATHLEN]; /* NVRAM path */
\r
37 uint band; /* Band, b:2.4G only, otherwise for auto */
\r
38 wl_country_t cspec; /* Country */
\r
39 wl_channel_list_t channels; /* Support channels */
\r
40 uint roam_off; /* Roaming, 0:enable, 1:disable */
\r
41 uint roam_off_suspend; /* Roaming in suspend, 0:enable, 1:disable */
\r
42 int roam_trigger[2]; /* The RSSI threshold to trigger roaming */
\r
43 int roam_scan_period[2]; /* Roaming scan period */
\r
44 int roam_delta[2]; /* Roaming candidate qualification delta */
\r
45 int fullroamperiod; /* Full Roaming period */
\r
46 uint filter_out_all_packets; /* Filter out all packets in early suspend */
\r
47 uint keep_alive_period; /* The perioid in ms to send keep alive packet */
\r
49 wme_param_t wme; /* WME parameters */
\r
50 int stbc; /* STBC for Tx/Rx */
\r
51 int phy_oclscdenable; /* phy_oclscdenable */
\r
54 void dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *dst, char *src);
\r
55 void dhd_conf_set_hw_oob_intr(bcmsdh_info_t *sdh, uint chip);
\r
56 void dhd_conf_set_fw_path(dhd_pub_t *dhd, char *fw_path);
\r
57 void dhd_conf_set_nv_path(dhd_pub_t *dhd, char *nv_path);
\r
58 int dhd_conf_set_band(dhd_pub_t *dhd);
\r
59 uint dhd_conf_get_band(dhd_pub_t *dhd);
\r
60 int dhd_conf_set_country(dhd_pub_t *dhd);
\r
61 int dhd_conf_get_country(dhd_pub_t *dhd);
\r
62 bool dhd_conf_match_channel(dhd_pub_t *dhd, uint32 channel);
\r
63 int dhd_conf_set_roam(dhd_pub_t *dhd);
\r
64 void dhd_conf_set_bw(dhd_pub_t *dhd);
\r
65 void dhd_conf_force_wme(dhd_pub_t *dhd);
\r
66 void dhd_conf_get_wme(dhd_pub_t *dhd, edcf_acparam_t *acp);
\r
67 void dhd_conf_set_wme(dhd_pub_t *dhd);
\r
68 void dhd_conf_set_stbc(dhd_pub_t *dhd);
\r
69 void dhd_conf_set_phyoclscdenable(dhd_pub_t *dhd);
\r
70 int dhd_conf_download_config(dhd_pub_t *dhd);
\r
71 int dhd_conf_preinit(dhd_pub_t *dhd);
\r
72 int dhd_conf_attach(dhd_pub_t *dhd);
\r
73 void dhd_conf_detach(dhd_pub_t *dhd);
\r
75 extern void *bcmsdh_get_drvdata(void);
\r
77 #ifdef POWER_OFF_IN_SUSPEND
\r
78 extern struct net_device *g_netdev;
\r
79 #if defined(CONFIG_HAS_EARLYSUSPEND)
\r
80 extern int g_wifi_on;
\r
82 void wl_cfg80211_stop(void);
\r
83 void wl_cfg80211_send_disconnect(void);
\r
84 void wl_cfg80211_user_sync(bool lock);
\r
87 void dhd_conf_wifi_suspend(struct sdio_func *func);
\r
88 void dhd_conf_register_wifi_suspend(struct sdio_func *func);
\r
89 void dhd_conf_unregister_wifi_suspend(struct sdio_func *func);
\r
92 #endif /* _dhd_config_ */
\r