net: wireless: rockchip_wlan: add rtl8723bs support
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8723bs / hal / phydm / phydm_acs.h
1 /******************************************************************************\r
2  *\r
3  * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.\r
4  *                                        \r
5  * This program is free software; you can redistribute it and/or modify it\r
6  * under the terms of version 2 of the GNU General Public License as\r
7  * published by the Free Software Foundation.\r
8  *\r
9  * This program is distributed in the hope that it will be useful, but WITHOUT\r
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\r
12  * more details.\r
13  *\r
14  * You should have received a copy of the GNU General Public License along with\r
15  * this program; if not, write to the Free Software Foundation, Inc.,\r
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA\r
17  *\r
18  *\r
19  ******************************************************************************/\r
20  \r
21 #ifndef __PHYDMACS_H__\r
22 #define    __PHYDMACS_H__\r
23 \r
24 #define ACS_VERSION     "1.0"\r
25 #define CLM_VERSION "1.0"\r
26 \r
27 #define ODM_MAX_CHANNEL_2G                      14\r
28 #define ODM_MAX_CHANNEL_5G                      24\r
29 \r
30 // For phydm_AutoChannelSelectSettingAP()\r
31 #define STORE_DEFAULT_NHM_SETTING               0\r
32 #define RESTORE_DEFAULT_NHM_SETTING             1\r
33 #define ACS_NHM_SETTING                         2\r
34 \r
35 typedef struct _ACS_\r
36 {\r
37         BOOLEAN         bForceACSResult;\r
38         u1Byte          CleanChannel_2G;\r
39         u1Byte          CleanChannel_5G;\r
40         u2Byte          Channel_Info_2G[2][ODM_MAX_CHANNEL_2G];         //Channel_Info[1]: Channel Score, Channel_Info[2]:Channel_Scan_Times\r
41         u2Byte          Channel_Info_5G[2][ODM_MAX_CHANNEL_5G]; \r
42 \r
43 #if ( DM_ODM_SUPPORT_TYPE & ODM_AP )    \r
44     u1Byte              ACS_Step;\r
45     // NHM Count 0-11\r
46     u1Byte              NHM_Cnt[14][11];\r
47 \r
48     // AC-Series, for storing previous setting\r
49     u4Byte              Reg0x990; \r
50     u4Byte              Reg0x994;\r
51     u4Byte              Reg0x998;\r
52     u4Byte              Reg0x99C;\r
53     u1Byte              Reg0x9A0;   // u1Byte\r
54 \r
55     // N-Series, for storing previous setting\r
56     u4Byte              Reg0x890; \r
57     u4Byte              Reg0x894;\r
58     u4Byte              Reg0x898;\r
59     u4Byte              Reg0x89C;\r
60     u1Byte              Reg0xE28;   // u1Byte\r
61 #endif\r
62 \r
63 }ACS, *PACS;\r
64 \r
65 \r
66 VOID\r
67 odm_AutoChannelSelectInit(\r
68         IN              PVOID                   pDM_VOID\r
69 );\r
70 \r
71 VOID\r
72 odm_AutoChannelSelectReset(\r
73         IN              PVOID                   pDM_VOID\r
74 );\r
75 \r
76 VOID\r
77 odm_AutoChannelSelect(\r
78         IN              PVOID                   pDM_VOID,\r
79         IN              u1Byte                  Channel\r
80 );\r
81 \r
82 u1Byte\r
83 ODM_GetAutoChannelSelectResult(\r
84         IN              PVOID                   pDM_VOID,\r
85         IN              u1Byte                  Band\r
86 );\r
87 \r
88 #if ( DM_ODM_SUPPORT_TYPE & ODM_AP )\r
89 \r
90 VOID\r
91 phydm_AutoChannelSelectSettingAP(\r
92     IN  PVOID   pDM_VOID,\r
93     IN  u4Byte  Setting,             // 0: STORE_DEFAULT_NHM_SETTING; 1: RESTORE_DEFAULT_NHM_SETTING, 2: ACS_NHM_SETTING\r
94     IN  u4Byte  acs_step        \r
95 );\r
96 \r
97 VOID\r
98 phydm_GetNHMStatisticsAP(\r
99     IN  PVOID       pDM_VOID,\r
100     IN  u4Byte      idx,                // @ 2G, Real channel number = idx+1\r
101     IN  u4Byte      acs_step\r
102 );\r
103 \r
104 #endif  //#if ( DM_ODM_SUPPORT_TYPE & ODM_AP )\r
105 \r
106 \r
107 VOID\r
108 phydm_CLMInit(\r
109         IN              PVOID                   pDM_VOID,\r
110         IN              u2Byte                  sampleNum\r
111 );\r
112 \r
113 VOID\r
114 phydm_CLMtrigger(\r
115         IN              PVOID                   pDM_VOID\r
116 );\r
117 \r
118 BOOLEAN\r
119 phydm_checkCLMready(\r
120         IN              PVOID                   pDM_VOID\r
121 );\r
122 \r
123 u2Byte\r
124 phydm_getCLMresult(\r
125         IN              PVOID                   pDM_VOID\r
126 );\r
127 \r
128 \r
129 #endif  //#ifndef       __PHYDMACS_H__