GNU Linux-libre 4.19.286-gnu1
[releases.git] / drivers / staging / rtlwifi / btcoexist / rtl_btc.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /******************************************************************************
3  *
4  * Copyright(c) 2009-2010  Realtek Corporation.
5  *
6  * Contact Information:
7  * wlanfae <wlanfae@realtek.com>
8  * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
9  * Hsinchu 300, Taiwan.
10  * Larry Finger <Larry.Finger@lwfinger.net>
11  *
12  *****************************************************************************/
13
14 #ifndef __RTL_BTC_H__
15 #define __RTL_BTC_H__
16
17 #include "halbt_precomp.h"
18
19 void rtl_btc_init_variables(struct rtl_priv *rtlpriv);
20 void rtl_btc_init_variables_wifi_only(struct rtl_priv *rtlpriv);
21 void rtl_btc_deinit_variables(struct rtl_priv *rtlpriv);
22 void rtl_btc_init_hal_vars(struct rtl_priv *rtlpriv);
23 void rtl_btc_power_on_setting(struct rtl_priv *rtlpriv);
24 void rtl_btc_init_hw_config(struct rtl_priv *rtlpriv);
25 void rtl_btc_init_hw_config_wifi_only(struct rtl_priv *rtlpriv);
26 void rtl_btc_ips_notify(struct rtl_priv *rtlpriv, u8 type);
27 void rtl_btc_lps_notify(struct rtl_priv *rtlpriv, u8 type);
28 void rtl_btc_scan_notify(struct rtl_priv *rtlpriv, u8 scantype);
29 void rtl_btc_scan_notify_wifi_only(struct rtl_priv *rtlpriv, u8 scantype);
30 void rtl_btc_connect_notify(struct rtl_priv *rtlpriv, u8 action);
31 void rtl_btc_mediastatus_notify(struct rtl_priv *rtlpriv,
32                                 enum rt_media_status mstatus);
33 void rtl_btc_periodical(struct rtl_priv *rtlpriv);
34 void rtl_btc_halt_notify(struct rtl_priv *rtlpriv);
35 void rtl_btc_btinfo_notify(struct rtl_priv *rtlpriv, u8 *tmpbuf, u8 length);
36 void rtl_btc_btmpinfo_notify(struct rtl_priv *rtlpriv, u8 *tmp_buf, u8 length);
37 bool rtl_btc_is_limited_dig(struct rtl_priv *rtlpriv);
38 bool rtl_btc_is_disable_edca_turbo(struct rtl_priv *rtlpriv);
39 bool rtl_btc_is_bt_disabled(struct rtl_priv *rtlpriv);
40 void rtl_btc_special_packet_notify(struct rtl_priv *rtlpriv, u8 pkt_type);
41 void rtl_btc_switch_band_notify(struct rtl_priv *rtlpriv, u8 band_type,
42                                 bool scanning);
43 void rtl_btc_switch_band_notify_wifionly(struct rtl_priv *rtlpriv, u8 band_type,
44                                          bool scanning);
45 void rtl_btc_display_bt_coex_info(struct rtl_priv *rtlpriv, struct seq_file *m);
46 void rtl_btc_record_pwr_mode(struct rtl_priv *rtlpriv, u8 *buf, u8 len);
47 u8   rtl_btc_get_lps_val(struct rtl_priv *rtlpriv);
48 u8   rtl_btc_get_rpwm_val(struct rtl_priv *rtlpriv);
49 bool rtl_btc_is_bt_ctrl_lps(struct rtl_priv *rtlpriv);
50 bool rtl_btc_is_bt_lps_on(struct rtl_priv *rtlpriv);
51 void rtl_btc_get_ampdu_cfg(struct rtl_priv *rtlpriv, u8 *reject_agg,
52                            u8 *ctrl_agg_size, u8 *agg_size);
53
54 struct rtl_btc_ops *rtl_btc_get_ops_pointer(void);
55
56 u8 rtl_get_hwpg_bt_exist(struct rtl_priv *rtlpriv);
57 u8 rtl_get_hwpg_bt_type(struct rtl_priv *rtlpriv);
58 u8 rtl_get_hwpg_ant_num(struct rtl_priv *rtlpriv);
59 u8 rtl_get_hwpg_single_ant_path(struct rtl_priv *rtlpriv);
60 u8 rtl_get_hwpg_package_type(struct rtl_priv *rtlpriv);
61
62 enum rt_media_status mgnt_link_status_query(struct ieee80211_hw *hw);
63
64 #endif