root/drivers/staging/rtl8723bs/hal/HalBtc8723b2Ant.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /******************************************************************************
   3  *
   4  * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
   5  *
   6  ******************************************************************************/
   7 /*  The following is for 8723B 2Ant BT Co-exist definition */
   8 #define BT_INFO_8723B_2ANT_B_FTP                BIT7
   9 #define BT_INFO_8723B_2ANT_B_A2DP               BIT6
  10 #define BT_INFO_8723B_2ANT_B_HID                BIT5
  11 #define BT_INFO_8723B_2ANT_B_SCO_BUSY           BIT4
  12 #define BT_INFO_8723B_2ANT_B_ACL_BUSY           BIT3
  13 #define BT_INFO_8723B_2ANT_B_INQ_PAGE           BIT2
  14 #define BT_INFO_8723B_2ANT_B_SCO_ESCO           BIT1
  15 #define BT_INFO_8723B_2ANT_B_CONNECTION         BIT0
  16 
  17 #define         BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT             2
  18 
  19 typedef enum _BT_INFO_SRC_8723B_2ANT {
  20         BT_INFO_SRC_8723B_2ANT_WIFI_FW        = 0x0,
  21         BT_INFO_SRC_8723B_2ANT_BT_RSP         = 0x1,
  22         BT_INFO_SRC_8723B_2ANT_BT_ACTIVE_SEND = 0x2,
  23         BT_INFO_SRC_8723B_2ANT_MAX
  24 } BT_INFO_SRC_8723B_2ANT, *PBT_INFO_SRC_8723B_2ANT;
  25 
  26 typedef enum _BT_8723B_2ANT_BT_STATUS {
  27         BT_8723B_2ANT_BT_STATUS_NON_CONNECTED_IDLE = 0x0,
  28         BT_8723B_2ANT_BT_STATUS_CONNECTED_IDLE     = 0x1,
  29         BT_8723B_2ANT_BT_STATUS_INQ_PAGE           = 0x2,
  30         BT_8723B_2ANT_BT_STATUS_ACL_BUSY           = 0x3,
  31         BT_8723B_2ANT_BT_STATUS_SCO_BUSY           = 0x4,
  32         BT_8723B_2ANT_BT_STATUS_ACL_SCO_BUSY       = 0x5,
  33         BT_8723B_2ANT_BT_STATUS_MAX
  34 } BT_8723B_2ANT_BT_STATUS, *PBT_8723B_2ANT_BT_STATUS;
  35 
  36 typedef enum _BT_8723B_2ANT_COEX_ALGO {
  37         BT_8723B_2ANT_COEX_ALGO_UNDEFINED       = 0x0,
  38         BT_8723B_2ANT_COEX_ALGO_SCO             = 0x1,
  39         BT_8723B_2ANT_COEX_ALGO_HID             = 0x2,
  40         BT_8723B_2ANT_COEX_ALGO_A2DP            = 0x3,
  41         BT_8723B_2ANT_COEX_ALGO_A2DP_PANHS      = 0x4,
  42         BT_8723B_2ANT_COEX_ALGO_PANEDR          = 0x5,
  43         BT_8723B_2ANT_COEX_ALGO_PANHS           = 0x6,
  44         BT_8723B_2ANT_COEX_ALGO_PANEDR_A2DP     = 0x7,
  45         BT_8723B_2ANT_COEX_ALGO_PANEDR_HID      = 0x8,
  46         BT_8723B_2ANT_COEX_ALGO_HID_A2DP_PANEDR = 0x9,
  47         BT_8723B_2ANT_COEX_ALGO_HID_A2DP        = 0xa,
  48         BT_8723B_2ANT_COEX_ALGO_MAX             = 0xb,
  49 } BT_8723B_2ANT_COEX_ALGO, *PBT_8723B_2ANT_COEX_ALGO;
  50 
  51 typedef struct _COEX_DM_8723B_2ANT {
  52         /*  fw mechanism */
  53         u8 preBtDecPwrLvl;
  54         u8 curBtDecPwrLvl;
  55         u8 preFwDacSwingLvl;
  56         u8 curFwDacSwingLvl;
  57         bool bCurIgnoreWlanAct;
  58         bool bPreIgnoreWlanAct;
  59         u8 prePsTdma;
  60         u8 curPsTdma;
  61         u8 psTdmaPara[5];
  62         u8 psTdmaDuAdjType;
  63         bool bResetTdmaAdjust;
  64         bool bAutoTdmaAdjust;
  65         bool bPrePsTdmaOn;
  66         bool bCurPsTdmaOn;
  67         bool bPreBtAutoReport;
  68         bool bCurBtAutoReport;
  69 
  70         /*  sw mechanism */
  71         bool bPreRfRxLpfShrink;
  72         bool bCurRfRxLpfShrink;
  73         u32 btRf0x1eBackup;
  74         bool bPreLowPenaltyRa;
  75         bool bCurLowPenaltyRa;
  76         bool bPreDacSwingOn;
  77         u32  preDacSwingLvl;
  78         bool bCurDacSwingOn;
  79         u32  curDacSwingLvl;
  80         bool bPreAdcBackOff;
  81         bool bCurAdcBackOff;
  82         bool bPreAgcTableEn;
  83         bool bCurAgcTableEn;
  84         u32 preVal0x6c0;
  85         u32 curVal0x6c0;
  86         u32 preVal0x6c4;
  87         u32 curVal0x6c4;
  88         u32 preVal0x6c8;
  89         u32 curVal0x6c8;
  90         u8 preVal0x6cc;
  91         u8 curVal0x6cc;
  92         bool bLimitedDig;
  93 
  94         /*  algorithm related */
  95         u8 preAlgorithm;
  96         u8 curAlgorithm;
  97         u8 btStatus;
  98         u8 wifiChnlInfo[3];
  99 
 100         bool bNeedRecover0x948;
 101         u32 backup0x948;
 102 } COEX_DM_8723B_2ANT, *PCOEX_DM_8723B_2ANT;
 103 
 104 typedef struct _COEX_STA_8723B_2ANT {
 105         bool bBtLinkExist;
 106         bool bScoExist;
 107         bool bA2dpExist;
 108         bool bHidExist;
 109         bool bPanExist;
 110 
 111         bool bUnderLps;
 112         bool bUnderIps;
 113         u32 highPriorityTx;
 114         u32 highPriorityRx;
 115         u32 lowPriorityTx;
 116         u32 lowPriorityRx;
 117         u8 btRssi;
 118         bool bBtTxRxMask;
 119         u8 preBtRssiState;
 120         u8 preWifiRssiState[4];
 121         bool bC2hBtInfoReqSent;
 122         u8 btInfoC2h[BT_INFO_SRC_8723B_2ANT_MAX][10];
 123         u32 btInfoC2hCnt[BT_INFO_SRC_8723B_2ANT_MAX];
 124         bool bC2hBtInquiryPage;
 125         u8 btRetryCnt;
 126         u8 btInfoExt;
 127 } COEX_STA_8723B_2ANT, *PCOEX_STA_8723B_2ANT;
 128 
 129 /*  */
 130 /*  The following is interface which will notify coex module. */
 131 /*  */
 132 void EXhalbtc8723b2ant_PowerOnSetting(PBTC_COEXIST pBtCoexist);
 133 void EXhalbtc8723b2ant_InitHwConfig(PBTC_COEXIST pBtCoexist, bool bWifiOnly);
 134 void EXhalbtc8723b2ant_InitCoexDm(PBTC_COEXIST pBtCoexist);
 135 void EXhalbtc8723b2ant_IpsNotify(PBTC_COEXIST pBtCoexist, u8 type);
 136 void EXhalbtc8723b2ant_LpsNotify(PBTC_COEXIST pBtCoexist, u8 type);
 137 void EXhalbtc8723b2ant_ScanNotify(PBTC_COEXIST pBtCoexist, u8 type);
 138 void EXhalbtc8723b2ant_ConnectNotify(PBTC_COEXIST pBtCoexist, u8 type);
 139 void EXhalbtc8723b2ant_MediaStatusNotify(PBTC_COEXIST pBtCoexist, u8 type);
 140 void EXhalbtc8723b2ant_SpecialPacketNotify(PBTC_COEXIST pBtCoexist, u8 type);
 141 void EXhalbtc8723b2ant_BtInfoNotify(
 142         PBTC_COEXIST pBtCoexist, u8 *tmpBuf, u8 length
 143 );
 144 void EXhalbtc8723b2ant_HaltNotify(PBTC_COEXIST pBtCoexist);
 145 void EXhalbtc8723b2ant_PnpNotify(PBTC_COEXIST pBtCoexist, u8 pnpState);
 146 void EXhalbtc8723b2ant_Periodical(PBTC_COEXIST pBtCoexist);
 147 void EXhalbtc8723b2ant_DisplayCoexInfo(PBTC_COEXIST pBtCoexist);

/* [<][>][^][v][top][bottom][index][help] */