1 /******************************************************************************
2  *
3  * Copyright(c) 2009-2010  Realtek Corporation.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of version 2 of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12  * more details.
13  *
14  * The full GNU General Public License is included in this distribution in the
15  * file called LICENSE.
16  *
17  * Contact Information:
18  * wlanfae <wlanfae@realtek.com>
19  * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
20  * Hsinchu 300, Taiwan.
21  * Larry Finger <Larry.Finger@lwfinger.net>
22  *
23  *****************************************************************************/
24 
25 #ifndef __RTL_BTC_H__
26 #define __RTL_BTC_H__
27 
28 #include "halbt_precomp.h"
29 
30 void rtl_btc_init_variables(struct rtl_priv *rtlpriv);
31 void rtl_btc_init_hal_vars(struct rtl_priv *rtlpriv);
32 void rtl_btc_init_hw_config(struct rtl_priv *rtlpriv);
33 void rtl_btc_ips_notify(struct rtl_priv *rtlpriv, u8 type);
34 void rtl_btc_lps_notify(struct rtl_priv *rtlpriv, u8 type);
35 void rtl_btc_scan_notify(struct rtl_priv *rtlpriv, u8 scantype);
36 void rtl_btc_connect_notify(struct rtl_priv *rtlpriv, u8 action);
37 void rtl_btc_mediastatus_notify(struct rtl_priv *rtlpriv,
38 				enum rt_media_status mstatus);
39 void rtl_btc_periodical(struct rtl_priv *rtlpriv);
40 void rtl_btc_halt_notify(void);
41 void rtl_btc_btinfo_notify(struct rtl_priv *rtlpriv, u8 *tmpbuf, u8 length);
42 void rtl_btc_btmpinfo_notify(struct rtl_priv *rtlpriv, u8 *tmp_buf, u8 length);
43 bool rtl_btc_is_limited_dig(struct rtl_priv *rtlpriv);
44 bool rtl_btc_is_disable_edca_turbo(struct rtl_priv *rtlpriv);
45 bool rtl_btc_is_bt_disabled(struct rtl_priv *rtlpriv);
46 void rtl_btc_special_packet_notify(struct rtl_priv *rtlpriv, u8 pkt_type);
47 void rtl_btc_record_pwr_mode(struct rtl_priv *rtlpriv, u8 *buf, u8 len);
48 u8   rtl_btc_get_lps_val(struct rtl_priv *rtlpriv);
49 u8   rtl_btc_get_rpwm_val(struct rtl_priv *rtlpriv);
50 bool rtl_btc_is_bt_ctrl_lps(struct rtl_priv *rtlpriv);
51 bool rtl_btc_is_bt_lps_on(struct rtl_priv *rtlpriv);
52 void rtl_btc_get_ampdu_cfg(struct rtl_priv *rtlpriv, u8 *reject_agg,
53 			   u8 *ctrl_agg_size, u8 *agg_size);
54 
55 struct rtl_btc_ops *rtl_btc_get_ops_pointer(void);
56 
57 u8 rtl_get_hwpg_bt_exist(struct rtl_priv *rtlpriv);
58 u8 rtl_get_hwpg_bt_type(struct rtl_priv *rtlpriv);
59 u8 rtl_get_hwpg_ant_num(struct rtl_priv *rtlpriv);
60 u8 rtl_get_hwpg_single_ant_path(struct rtl_priv *rtlpriv);
61 u8 rtl_get_hwpg_package_type(struct rtl_priv *rtlpriv);
62 
63 enum rt_media_status mgnt_link_status_query(struct ieee80211_hw *hw);
64 
65 #endif
66