aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rtlwifi/wifi.h
diff options
context:
space:
mode:
authorLarry Finger <Larry.Finger@lwfinger.net>2014-02-28 16:16:43 -0500
committerJohn W. Linville <linville@tuxdriver.com>2014-03-04 13:18:28 -0500
commitaa45a673b291fd761275493bc15316d79555ed55 (patch)
tree4b27260c71479bed2c67f79798c272ab1bc8d515 /drivers/net/wireless/rtlwifi/wifi.h
parentc24782e612dce377cf9149ad787998af7694f757 (diff)
rtlwifi: btcoexist: Add new mini driver
A new driver in the rtlwifi family for the RTL8723BE will soon be added. The bluetooth coexistence code for this device has been split into a separate mini driver as it will be shared with other devices. This commit adds the the headers and sources, and modifies Kconfig and Makefile to configure and build this driver. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rtlwifi/wifi.h')
-rw-r--r--drivers/net/wireless/rtlwifi/wifi.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/drivers/net/wireless/rtlwifi/wifi.h b/drivers/net/wireless/rtlwifi/wifi.h
index 8c647391bedf..de91c82f87fd 100644
--- a/drivers/net/wireless/rtlwifi/wifi.h
+++ b/drivers/net/wireless/rtlwifi/wifi.h
@@ -49,6 +49,7 @@
49 49
50#define IQK_ADDA_REG_NUM 16 50#define IQK_ADDA_REG_NUM 16
51#define IQK_MAC_REG_NUM 4 51#define IQK_MAC_REG_NUM 4
52#define IQK_THRESHOLD 8
52 53
53#define MAX_KEY_LEN 61 54#define MAX_KEY_LEN 61
54#define KEY_BUF_SIZE 5 55#define KEY_BUF_SIZE 5
@@ -96,6 +97,7 @@
96#define CHANNEL_MAX_NUMBER_2G 14 97#define CHANNEL_MAX_NUMBER_2G 14
97#define AVG_THERMAL_NUM 8 98#define AVG_THERMAL_NUM 8
98#define AVG_THERMAL_NUM_88E 4 99#define AVG_THERMAL_NUM_88E 4
100#define AVG_THERMAL_NUM_8723BE 4
99#define MAX_TID_COUNT 9 101#define MAX_TID_COUNT 9
100 102
101/* for early mode */ 103/* for early mode */
@@ -115,6 +117,8 @@ struct txpower_info_2g {
115 u8 ofdm_diff[MAX_RF_PATH][MAX_TX_COUNT]; 117 u8 ofdm_diff[MAX_RF_PATH][MAX_TX_COUNT];
116 u8 bw20_diff[MAX_RF_PATH][MAX_TX_COUNT]; 118 u8 bw20_diff[MAX_RF_PATH][MAX_TX_COUNT];
117 u8 bw40_diff[MAX_RF_PATH][MAX_TX_COUNT]; 119 u8 bw40_diff[MAX_RF_PATH][MAX_TX_COUNT];
120 u8 bw80_diff[MAX_RF_PATH][MAX_TX_COUNT];
121 u8 bw160_diff[MAX_RF_PATH][MAX_TX_COUNT];
118}; 122};
119 123
120struct txpower_info_5g { 124struct txpower_info_5g {
@@ -158,6 +162,7 @@ enum hardware_type {
158 HARDWARE_TYPE_RTL8192DU, 162 HARDWARE_TYPE_RTL8192DU,
159 HARDWARE_TYPE_RTL8723AE, 163 HARDWARE_TYPE_RTL8723AE,
160 HARDWARE_TYPE_RTL8723U, 164 HARDWARE_TYPE_RTL8723U,
165 HARDWARE_TYPE_RTL8723BE,
161 HARDWARE_TYPE_RTL8188EE, 166 HARDWARE_TYPE_RTL8188EE,
162 167
163 /* keep it last */ 168 /* keep it last */
@@ -1986,6 +1991,44 @@ struct rtl_global_var {
1986 spinlock_t glb_list_lock; 1991 spinlock_t glb_list_lock;
1987}; 1992};
1988 1993
1994struct rtl_btc_info {
1995 u8 bt_type;
1996 u8 btcoexist;
1997 u8 ant_num;
1998};
1999
2000struct rtl_bt_coexist {
2001 struct rtl_btc_ops *btc_ops;
2002 struct rtl_btc_info btc_info;
2003};
2004
2005struct rtl_btc_ops {
2006 void (*btc_init_variables) (struct rtl_priv *rtlpriv);
2007 void (*btc_init_hal_vars) (struct rtl_priv *rtlpriv);
2008 void (*btc_init_hw_config) (struct rtl_priv *rtlpriv);
2009 void (*btc_ips_notify) (struct rtl_priv *rtlpriv, u8 type);
2010 void (*btc_scan_notify) (struct rtl_priv *rtlpriv, u8 scantype);
2011 void (*btc_connect_notify) (struct rtl_priv *rtlpriv, u8 action);
2012 void (*btc_mediastatus_notify) (struct rtl_priv *rtlpriv,
2013 enum _RT_MEDIA_STATUS mstatus);
2014 void (*btc_periodical) (struct rtl_priv *rtlpriv);
2015 void (*btc_halt_notify) (void);
2016 void (*btc_btinfo_notify) (struct rtl_priv *rtlpriv,
2017 u8 *tmp_buf, u8 length);
2018 bool (*btc_is_limited_dig) (struct rtl_priv *rtlpriv);
2019 bool (*btc_is_disable_edca_turbo) (struct rtl_priv *rtlpriv);
2020 bool (*btc_is_bt_disabled) (struct rtl_priv *rtlpriv);
2021};
2022
2023struct proxim {
2024 bool proxim_on;
2025
2026 void *proximity_priv;
2027 int (*proxim_rx)(struct ieee80211_hw *hw, struct rtl_stats *status,
2028 struct sk_buff *skb);
2029 u8 (*proxim_get_var)(struct ieee80211_hw *hw, u8 type);
2030};
2031
1989struct rtl_priv { 2032struct rtl_priv {
1990 struct ieee80211_hw *hw; 2033 struct ieee80211_hw *hw;
1991 struct completion firmware_loading_complete; 2034 struct completion firmware_loading_complete;
@@ -2048,6 +2091,20 @@ struct rtl_priv {
2048 bool enter_ps; /* true when entering PS */ 2091 bool enter_ps; /* true when entering PS */
2049 u8 rate_mask[5]; 2092 u8 rate_mask[5];
2050 2093
2094 /* intel Proximity, should be alloc mem
2095 * in intel Proximity module and can only
2096 * be used in intel Proximity mode
2097 */
2098 struct proxim proximity;
2099
2100 /*for bt coexist use*/
2101 struct rtl_bt_coexist btcoexist;
2102
2103 /* separate 92ee from other ICs,
2104 * 92ee use new trx flow.
2105 */
2106 bool use_new_trx_flow;
2107
2051 /*This must be the last item so 2108 /*This must be the last item so
2052 that it points to the data allocated 2109 that it points to the data allocated
2053 beyond this structure like: 2110 beyond this structure like:
@@ -2079,6 +2136,9 @@ enum bt_co_type {
2079 BT_CSR_BC8 = 4, 2136 BT_CSR_BC8 = 4,
2080 BT_RTL8756 = 5, 2137 BT_RTL8756 = 5,
2081 BT_RTL8723A = 6, 2138 BT_RTL8723A = 6,
2139 BT_RTL8821 = 7,
2140 BT_RTL8723B = 8,
2141 BT_RTL8192E = 9,
2082}; 2142};
2083 2143
2084enum bt_cur_state { 2144enum bt_cur_state {