GNU Linux-libre 4.19.268-gnu1
[releases.git] / drivers / staging / rtl8723bs / hal / odm_AntDiv.c
1 // SPDX-License-Identifier: GPL-2.0
2 /******************************************************************************
3  *
4  * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
5  *
6  ******************************************************************************/
7
8 //============================================================
9 // include files
10 //============================================================
11
12 #include "odm_precomp.h"
13
14 //======================================================
15 // when antenna test utility is on or some testing
16 // need to disable antenna diversity
17 // call this function to disable all ODM related mechanisms
18 // which will switch antenna.
19 //======================================================
20 void ODM_StopAntennaSwitchDm(PDM_ODM_T pDM_Odm)
21 {
22         // disable ODM antenna diversity
23         pDM_Odm->SupportAbility &= ~ODM_BB_ANT_DIV;
24         ODM_RT_TRACE(
25                 pDM_Odm,
26                 ODM_COMP_ANT_DIV,
27                 ODM_DBG_LOUD,
28                 ("STOP Antenna Diversity\n")
29         );
30 }
31
32 void ODM_SetAntConfig(PDM_ODM_T pDM_Odm, u8 antSetting)// 0=A, 1=B, 2=C, ....
33 {
34         if (antSetting == 0) // ant A
35                 PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord, 0x00000000);
36         else if (antSetting == 1)
37                 PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord, 0x00000280);
38 }
39
40 //======================================================
41
42
43 void ODM_SwAntDivRestAfterLink(PDM_ODM_T pDM_Odm)
44 {
45         pSWAT_T pDM_SWAT_Table = &pDM_Odm->DM_SWAT_Table;
46         pFAT_T pDM_FatTable = &pDM_Odm->DM_FatTable;
47         u32 i;
48
49         pDM_Odm->RSSI_test = false;
50         pDM_SWAT_Table->try_flag = 0xff;
51         pDM_SWAT_Table->RSSI_Trying = 0;
52         pDM_SWAT_Table->Double_chk_flag = 0;
53
54         pDM_FatTable->RxIdleAnt = MAIN_ANT;
55
56         for (i = 0; i < ODM_ASSOCIATE_ENTRY_NUM; i++) {
57                 pDM_FatTable->MainAnt_Sum[i] = 0;
58                 pDM_FatTable->AuxAnt_Sum[i] = 0;
59                 pDM_FatTable->MainAnt_Cnt[i] = 0;
60                 pDM_FatTable->AuxAnt_Cnt[i] = 0;
61         }
62 }