Merge tag 'lsk-v3.10-android-14.11'
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rkwifi / bcmdhd / dhd_config.h
1 \r
2 #ifndef _dhd_config_\r
3 #define _dhd_config_\r
4 \r
5 #include <bcmdevs.h>\r
6 #include <dngl_stats.h>\r
7 #include <dhd.h>\r
8 #include <wlioctl.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
14 #endif\r
15 \r
16 #define FW_PATH_AUTO_SELECT 1\r
17 extern char firmware_path[MOD_PARAM_PATHLEN];\r
18 extern int disable_proptx;\r
19 \r
20 /* channel list */\r
21 typedef struct wl_channel_list {\r
22         /* in - # of channels, out - # of entries */\r
23         uint32 count;\r
24         /* variable length channel list */\r
25         uint32 channel[WL_NUMCHANNELS];\r
26 } wl_channel_list_t;\r
27 \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
32 } wme_param_t;\r
33 \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
48         uint force_wme_ac;\r
49         wme_param_t wme;        /* WME parameters */\r
50         int stbc;                       /* STBC for Tx/Rx */\r
51         int phy_oclscdenable;           /* phy_oclscdenable */\r
52 } dhd_conf_t;\r
53 \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
74 \r
75 extern void *bcmsdh_get_drvdata(void);\r
76 \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
81 #ifdef WL_CFG80211\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
85 #endif\r
86 #endif\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
90 #endif\r
91 \r
92 #endif /* _dhd_config_ */\r