123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- /******************************************************************************
- *
- * Copyright(c) 2009-2012 Realtek Corporation.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * The full GNU General Public License is included in this distribution in the
- * file called LICENSE.
- *
- * Contact Information:
- * wlanfae <wlanfae@realtek.com>
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
- * Hsinchu 300, Taiwan.
- * Larry Finger <Larry.Finger@lwfinger.net>
- *
- *****************************************************************************/
- #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
|