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