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