1
2
3
4#ifndef __RTL8723E_HAL_BTC_H__
5#define __RTL8723E_HAL_BTC_H__
6
7#include "../wifi.h"
8#include "btc.h"
9#include "hal_bt_coexist.h"
10
11#define BT_TXRX_CNT_THRES_1 1200
12#define BT_TXRX_CNT_THRES_2 1400
13#define BT_TXRX_CNT_THRES_3 3000
14
15#define BT_TXRX_CNT_LEVEL_0 0
16
17#define BT_TXRX_CNT_LEVEL_1 1
18
19#define BT_TXRX_CNT_LEVEL_2 2
20#define BT_TXRX_CNT_LEVEL_3 3
21
22#define BT_COEX_DISABLE 0
23#define BT_Q_PKT_OFF 0
24#define BT_Q_PKT_ON 1
25
26#define BT_TX_PWR_OFF 0
27#define BT_TX_PWR_ON 1
28
29
30#define TDMA_2ANT 0
31#define TDMA_1ANT 1
32#define TDMA_NAV_OFF 0
33#define TDMA_NAV_ON 1
34#define TDMA_DAC_SWING_OFF 0
35#define TDMA_DAC_SWING_ON 1
36
37
38#define BT_PTA_MODE_OFF 0
39#define BT_PTA_MODE_ON 1
40
41
42#define BT_TX_RATE_ADAPTIVE_NORMAL 0
43#define BT_TX_RATE_ADAPTIVE_LOW_PENALTY 1
44
45
46#define BT_RF_RX_LPF_CORNER_RESUME 0
47#define BT_RF_RX_LPF_CORNER_SHRINK 1
48
49#define C2H_EVT_HOST_CLOSE 0x00
50#define C2H_EVT_FW_CLOSE 0xFF
51
52enum bt_traffic_mode {
53 BT_MOTOR_EXT_BE = 0x00,
54 BT_MOTOR_EXT_GUL = 0x01,
55 BT_MOTOR_EXT_GUB = 0x02,
56 BT_MOTOR_EXT_GULB = 0x03
57};
58
59enum bt_traffic_mode_profile {
60 BT_PROFILE_NONE,
61 BT_PROFILE_A2DP,
62 BT_PROFILE_PAN,
63 BT_PROFILE_HID,
64 BT_PROFILE_SCO
65};
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83enum bt_spec {
84 BT_SPEC_1_0_b = 0x00,
85 BT_SPEC_1_1 = 0x01,
86 BT_SPEC_1_2 = 0x02,
87 BT_SPEC_2_0_EDR = 0x03,
88 BT_SPEC_2_1_EDR = 0x04,
89 BT_SPEC_3_0_HS = 0x05,
90 BT_SPEC_4_0 = 0x06
91};
92
93struct c2h_evt_hdr {
94 u8 cmd_id;
95 u8 cmd_len;
96 u8 cmd_seq;
97};
98
99enum bt_state {
100 BT_INFO_STATE_DISABLED = 0,
101 BT_INFO_STATE_NO_CONNECTION = 1,
102 BT_INFO_STATE_CONNECT_IDLE = 2,
103 BT_INFO_STATE_INQ_OR_PAG = 3,
104 BT_INFO_STATE_ACL_ONLY_BUSY = 4,
105 BT_INFO_STATE_SCO_ONLY_BUSY = 5,
106 BT_INFO_STATE_ACL_SCO_BUSY = 6,
107 BT_INFO_STATE_HID_BUSY = 7,
108 BT_INFO_STATE_HID_SCO_BUSY = 8,
109 BT_INFO_STATE_MAX = 7
110};
111
112enum rtl8723e_c2h_evt_v0 {
113 C2H_V0_DBG = 0,
114 C2H_V0_TSF = 1,
115 C2H_V0_AP_RPT_RSP = 2,
116
117 C2H_V0_CCX_TX_RPT = 3,
118 C2H_V0_BT_RSSI = 4,
119 C2H_V0_BT_OP_MODE = 5,
120 C2H_V0_HW_INFO_EXCH = 10,
121 C2H_V0_C2H_H2C_TEST = 11,
122 C2H_V0_BT_INFO = 12,
123 MAX_C2HEVENT
124};
125
126void rtl8723e_dm_bt_fw_coex_all_off_8723a(struct ieee80211_hw *hw);
127void rtl8723e_dm_bt_sw_coex_all_off_8723a(struct ieee80211_hw *hw);
128void rtl8723e_dm_bt_hw_coex_all_off_8723a(struct ieee80211_hw *hw);
129void rtl8723e_dm_bt_coexist_8723(struct ieee80211_hw *hw);
130void rtl8723e_dm_bt_set_bt_dm(struct ieee80211_hw *hw,
131 struct btdm_8723 *p_btdm);
132void rtl_8723e_c2h_command_handle(struct ieee80211_hw *hw);
133void rtl_8723e_bt_wifi_media_status_notify(struct ieee80211_hw *hw,
134 bool mstatus);
135void rtl8723e_dm_bt_turn_off_bt_coexist_before_enter_lps(
136 struct ieee80211_hw *hw);
137
138#endif
139