root/drivers/staging/rtl8723bs/hal/HalBtc8723b1Ant.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 1ANT BT Co-exist definition */
   8 #define BT_INFO_8723B_1ANT_B_FTP                BIT7
   9 #define BT_INFO_8723B_1ANT_B_A2DP               BIT6
  10 #define BT_INFO_8723B_1ANT_B_HID                BIT5
  11 #define BT_INFO_8723B_1ANT_B_SCO_BUSY           BIT4
  12 #define BT_INFO_8723B_1ANT_B_ACL_BUSY           BIT3
  13 #define BT_INFO_8723B_1ANT_B_INQ_PAGE           BIT2
  14 #define BT_INFO_8723B_1ANT_B_SCO_ESCO           BIT1
  15 #define BT_INFO_8723B_1ANT_B_CONNECTION         BIT0
  16 
  17 #define BT_INFO_8723B_1ANT_A2DP_BASIC_RATE(_BT_INFO_EXT_)       \
  18                 (((_BT_INFO_EXT_&BIT0)) ? true : false)
  19 
  20 #define BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT 2
  21 
  22 #define  BT_8723B_1ANT_WIFI_NOISY_THRESH 30   /* max: 255 */
  23 
  24 typedef enum _BT_INFO_SRC_8723B_1ANT {
  25         BT_INFO_SRC_8723B_1ANT_WIFI_FW                  = 0x0,
  26         BT_INFO_SRC_8723B_1ANT_BT_RSP                           = 0x1,
  27         BT_INFO_SRC_8723B_1ANT_BT_ACTIVE_SEND           = 0x2,
  28         BT_INFO_SRC_8723B_1ANT_MAX
  29 } BT_INFO_SRC_8723B_1ANT, *PBT_INFO_SRC_8723B_1ANT;
  30 
  31 typedef enum _BT_8723B_1ANT_BT_STATUS {
  32         BT_8723B_1ANT_BT_STATUS_NON_CONNECTED_IDLE      = 0x0,
  33         BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE          = 0x1,
  34         BT_8723B_1ANT_BT_STATUS_INQ_PAGE                                = 0x2,
  35         BT_8723B_1ANT_BT_STATUS_ACL_BUSY                                = 0x3,
  36         BT_8723B_1ANT_BT_STATUS_SCO_BUSY                                = 0x4,
  37         BT_8723B_1ANT_BT_STATUS_ACL_SCO_BUSY                    = 0x5,
  38         BT_8723B_1ANT_BT_STATUS_MAX
  39 } BT_8723B_1ANT_BT_STATUS, *PBT_8723B_1ANT_BT_STATUS;
  40 
  41 typedef enum _BT_8723B_1ANT_WIFI_STATUS {
  42         BT_8723B_1ANT_WIFI_STATUS_NON_CONNECTED_IDLE           = 0x0,
  43         BT_8723B_1ANT_WIFI_STATUS_NON_CONNECTED_ASSO_AUTH_SCAN = 0x1,
  44         BT_8723B_1ANT_WIFI_STATUS_CONNECTED_SCAN               = 0x2,
  45         BT_8723B_1ANT_WIFI_STATUS_CONNECTED_SPECIAL_PKT        = 0x3,
  46         BT_8723B_1ANT_WIFI_STATUS_CONNECTED_IDLE               = 0x4,
  47         BT_8723B_1ANT_WIFI_STATUS_CONNECTED_BUSY               = 0x5,
  48         BT_8723B_1ANT_WIFI_STATUS_MAX
  49 } BT_8723B_1ANT_WIFI_STATUS, *PBT_8723B_1ANT_WIFI_STATUS;
  50 
  51 typedef enum _BT_8723B_1ANT_COEX_ALGO {
  52         BT_8723B_1ANT_COEX_ALGO_UNDEFINED               = 0x0,
  53         BT_8723B_1ANT_COEX_ALGO_SCO                             = 0x1,
  54         BT_8723B_1ANT_COEX_ALGO_HID                             = 0x2,
  55         BT_8723B_1ANT_COEX_ALGO_A2DP                    = 0x3,
  56         BT_8723B_1ANT_COEX_ALGO_A2DP_PANHS              = 0x4,
  57         BT_8723B_1ANT_COEX_ALGO_PANEDR                  = 0x5,
  58         BT_8723B_1ANT_COEX_ALGO_PANHS                   = 0x6,
  59         BT_8723B_1ANT_COEX_ALGO_PANEDR_A2DP             = 0x7,
  60         BT_8723B_1ANT_COEX_ALGO_PANEDR_HID              = 0x8,
  61         BT_8723B_1ANT_COEX_ALGO_HID_A2DP_PANEDR = 0x9,
  62         BT_8723B_1ANT_COEX_ALGO_HID_A2DP                = 0xa,
  63         BT_8723B_1ANT_COEX_ALGO_MAX                             = 0xb,
  64 } BT_8723B_1ANT_COEX_ALGO, *PBT_8723B_1ANT_COEX_ALGO;
  65 
  66 typedef struct _COEX_DM_8723B_1ANT {
  67         /*  fw mechanism */
  68         bool bCurIgnoreWlanAct;
  69         bool bPreIgnoreWlanAct;
  70         u8 prePsTdma;
  71         u8 curPsTdma;
  72         u8 psTdmaPara[5];
  73         u8 psTdmaDuAdjType;
  74         bool bAutoTdmaAdjust;
  75         bool bPrePsTdmaOn;
  76         bool bCurPsTdmaOn;
  77         bool bPreBtAutoReport;
  78         bool bCurBtAutoReport;
  79         u8 preLps;
  80         u8 curLps;
  81         u8 preRpwm;
  82         u8 curRpwm;
  83 
  84         /*  sw mechanism */
  85         bool bPreLowPenaltyRa;
  86         bool bCurLowPenaltyRa;
  87         u32 preVal0x6c0;
  88         u32 curVal0x6c0;
  89         u32 preVal0x6c4;
  90         u32 curVal0x6c4;
  91         u32 preVal0x6c8;
  92         u32 curVal0x6c8;
  93         u8 preVal0x6cc;
  94         u8 curVal0x6cc;
  95         bool bLimitedDig;
  96 
  97         u32 backupArfrCnt1;     /*  Auto Rate Fallback Retry cnt */
  98         u32 backupArfrCnt2;     /*  Auto Rate Fallback Retry cnt */
  99         u16 backupRetryLimit;
 100         u8 backupAmpduMaxTime;
 101 
 102         /*  algorithm related */
 103         u8 preAlgorithm;
 104         u8 curAlgorithm;
 105         u8 btStatus;
 106         u8 wifiChnlInfo[3];
 107 
 108         u32 preRaMask;
 109         u32 curRaMask;
 110         u8 preArfrType;
 111         u8 curArfrType;
 112         u8 preRetryLimitType;
 113         u8 curRetryLimitType;
 114         u8 preAmpduTimeType;
 115         u8 curAmpduTimeType;
 116         u32 nArpCnt;
 117 
 118         u8 errorCondition;
 119 } COEX_DM_8723B_1ANT, *PCOEX_DM_8723B_1ANT;
 120 
 121 typedef struct _COEX_STA_8723B_1ANT {
 122         bool bBtLinkExist;
 123         bool bScoExist;
 124         bool bA2dpExist;
 125         bool bHidExist;
 126         bool bPanExist;
 127 
 128         bool bUnderLps;
 129         bool bUnderIps;
 130         u32 specialPktPeriodCnt;
 131         u32 highPriorityTx;
 132         u32 highPriorityRx;
 133         u32 lowPriorityTx;
 134         u32 lowPriorityRx;
 135         s8 btRssi;
 136         bool bBtTxRxMask;
 137         u8 preBtRssiState;
 138         u8 preWifiRssiState[4];
 139         bool bC2hBtInfoReqSent;
 140         u8 btInfoC2h[BT_INFO_SRC_8723B_1ANT_MAX][10];
 141         u32 btInfoC2hCnt[BT_INFO_SRC_8723B_1ANT_MAX];
 142         bool bC2hBtInquiryPage;
 143         bool bC2hBtPage; /* Add for win8.1 page out issue */
 144         bool bWiFiIsHighPriTask; /* Add for win8.1 page out issue */
 145         u8 btRetryCnt;
 146         u8 btInfoExt;
 147         u32 popEventCnt;
 148         u8 nScanAPNum;
 149 
 150         u32 nCRCOK_CCK;
 151         u32 nCRCOK_11g;
 152         u32 nCRCOK_11n;
 153         u32 nCRCOK_11nAgg;
 154 
 155         u32 nCRCErr_CCK;
 156         u32 nCRCErr_11g;
 157         u32 nCRCErr_11n;
 158         u32 nCRCErr_11nAgg;
 159 
 160         bool bCCKLock;
 161         bool bPreCCKLock;
 162         u8 nCoexTableType;
 163 
 164         bool bForceLpsOn;
 165 } COEX_STA_8723B_1ANT, *PCOEX_STA_8723B_1ANT;
 166 
 167 /*  */
 168 /*  The following is interface which will notify coex module. */
 169 /*  */
 170 void EXhalbtc8723b1ant_PowerOnSetting(PBTC_COEXIST pBtCoexist);
 171 void EXhalbtc8723b1ant_InitHwConfig(PBTC_COEXIST pBtCoexist, bool bWifiOnly);
 172 void EXhalbtc8723b1ant_InitCoexDm(PBTC_COEXIST pBtCoexist);
 173 void EXhalbtc8723b1ant_IpsNotify(PBTC_COEXIST pBtCoexist, u8 type);
 174 void EXhalbtc8723b1ant_LpsNotify(PBTC_COEXIST pBtCoexist, u8 type);
 175 void EXhalbtc8723b1ant_ScanNotify(PBTC_COEXIST pBtCoexist, u8 type);
 176 void EXhalbtc8723b1ant_ConnectNotify(PBTC_COEXIST pBtCoexist, u8 type);
 177 void EXhalbtc8723b1ant_MediaStatusNotify(PBTC_COEXIST pBtCoexist, u8 type);
 178 void EXhalbtc8723b1ant_SpecialPacketNotify(PBTC_COEXIST pBtCoexist, u8 type);
 179 void EXhalbtc8723b1ant_BtInfoNotify(
 180         PBTC_COEXIST pBtCoexist, u8 *tmpBuf, u8 length
 181 );
 182 void EXhalbtc8723b1ant_HaltNotify(PBTC_COEXIST pBtCoexist);
 183 void EXhalbtc8723b1ant_PnpNotify(PBTC_COEXIST pBtCoexist, u8 pnpState);
 184 void EXhalbtc8723b1ant_Periodical(PBTC_COEXIST pBtCoexist);
 185 void EXhalbtc8723b1ant_DisplayCoexInfo(PBTC_COEXIST pBtCoexist);

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