support different wifi bt chip auto compatible
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / mt5931_kk / drv_wlan / include / mgmt / swcr.h
1 /*
2 ** $Id: //Department/DaVinci/BRANCHES/MT662X_593X_WIFI_DRIVER_V2_3/include/mgmt/swcr.h#1 $
3 */
4
5 /*! \file   "swcr.h"
6     \brief
7 */
8
9 /*******************************************************************************
10 * Copyright (c) 2009 MediaTek Inc.
11 *
12 * All rights reserved. Copying, compilation, modification, distribution
13 * or any other use whatsoever of this material is strictly prohibited
14 * except in accordance with a Software License Agreement with
15 * MediaTek Inc.
16 ********************************************************************************
17 */
18
19 /*******************************************************************************
20 * LEGAL DISCLAIMER
21 *
22 * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND
23 * AGREES THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK
24 * SOFTWARE") RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE
25 * PROVIDED TO BUYER ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY
26 * DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
27 * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
28 * PARTICULAR PURPOSE OR NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE
29 * ANY WARRANTY WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTY
30 * WHICH MAY BE USED BY, INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK
31 * SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY
32 * WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE
33 * FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S SPECIFICATION OR TO
34 * CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
35 *
36 * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
37 * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL
38 * BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT
39 * ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY
40 * BUYER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
41 *
42 * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
43 * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT
44 * OF LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING
45 * THEREOF AND RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN
46 * FRANCISCO, CA, UNDER THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE
47 * (ICC).
48 ********************************************************************************
49 */
50
51 /*
52  *
53  */
54
55 #ifndef _SWCR_H
56 #define _SWCR_H
57
58 /*******************************************************************************
59 *                         C O M P I L E R   F L A G S
60 ********************************************************************************
61 */
62
63 /*******************************************************************************
64 *                    E X T E R N A L   R E F E R E N C E S
65 ********************************************************************************
66 */
67
68 /*******************************************************************************
69 *                              C O N S T A N T S
70 ********************************************************************************
71 */
72
73 #define SWCR_VAR(x) ((VOID *)&x)
74 #define SWCR_FUNC(x)  ((VOID *)x)
75
76 #define SWCR_T_FUNC BIT(7)
77
78 #define SWCR_L_32 3
79 #define SWCR_L_16 2
80 #define SWCR_L_8  1
81
82 #define SWCR_READ 0
83 #define SWCR_WRITE 1
84
85 #define SWCR_MAP_NUM(x)  (sizeof(x)/sizeof(x[0]))
86
87 #define SWCR_CR_NUM 7
88
89 #define SWCR_GET_RW_INDEX(action,rw,index) \
90     index = action & 0x7F; \
91     rw = action >> 7; 
92
93
94 extern UINT_32          g_au4SwCr[]; /*: 0: command other: data */
95
96 typedef VOID (*PFN_SWCR_RW_T)(P_ADAPTER_T prAdapter, UINT_8 ucRead, UINT_16 u2Addr, UINT_32 *pu4Data);
97 typedef VOID (*PFN_CMD_RW_T)(P_ADAPTER_T prAdapter, UINT_8 ucCate, UINT_8 ucAction, UINT_8 ucOpt0,UINT_8 ucOpt1);
98
99 typedef struct _SWCR_MAP_ENTRY_T {
100     UINT_16             u2Type;
101     PVOID               u4Addr;
102 } SWCR_MAP_ENTRY_T, *P_SWCR_MAP_ENTRY_T;
103
104
105 typedef struct _SWCR_MOD_MAP_ENTRY_T {
106     UINT_8 ucMapNum;
107     P_SWCR_MAP_ENTRY_T prSwCrMap;
108 } SWCR_MOD_MAP_ENTRY_T, *P_SWCR_MOD_MAP_ENTRY_T;
109
110 typedef enum _ENUM_SWCR_DBG_TYPE_T {
111     SWCR_DBG_TYPE_ALL = 0,
112     SWCR_DBG_TYPE_TXRX,
113     SWCR_DBG_TYPE_RX_RATES,
114     SWCR_DBG_TYPE_PS,
115     SWCR_DBG_TYPE_NUM
116 } ENUM_SWCR_DBG_TYPE_T;
117
118 typedef enum _ENUM_SWCR_DBG_ALL_T {
119     SWCR_DBG_ALL_TX_CNT = 0,
120     SWCR_DBG_ALL_TX_BCN_CNT,
121     SWCR_DBG_ALL_TX_FAILED_CNT,
122     SWCR_DBG_ALL_TX_RETRY_CNT,
123     SWCR_DBG_ALL_TX_AGING_TIMEOUT_CNT,
124     SWCR_DBG_ALL_TX_PS_OVERFLOW_CNT,
125     SWCR_DBG_ALL_TX_MGNT_DROP_CNT,
126     SWCR_DBG_ALL_TX_ERROR_CNT,    
127     
128     SWCR_DBG_ALL_RX_CNT,
129     SWCR_DBG_ALL_RX_DROP_CNT,
130     SWCR_DBG_ALL_RX_DUP_DROP_CNT,
131     SWCR_DBG_ALL_RX_TYPE_ERROR_DROP_CNT,    
132     SWCR_DBG_ALL_RX_CLASS_ERROR_DROP_CNT,
133     SWCR_DBG_ALL_RX_AMPDU_ERROR_DROP_CNT,
134     
135     SWCR_DBG_ALL_RX_STATUS_ERROR_DROP_CNT,
136     SWCR_DBG_ALL_RX_FORMAT_ERROR_DROP_CNT,
137     SWCR_DBG_ALL_RX_ICV_ERROR_DROP_CNT,
138     SWCR_DBG_ALL_RX_KEY_ERROR_DROP_CNT,    
139     SWCR_DBG_ALL_RX_TKIP_ERROR_DROP_CNT,
140     SWCR_DBG_ALL_RX_MIC_ERROR_DROP_CNT,
141     SWCR_DBG_ALL_RX_BIP_ERROR_DROP_CNT,
142     
143     SWCR_DBG_ALL_RX_FCSERR_CNT,
144     SWCR_DBG_ALL_RX_FIFOFULL_CNT,
145     SWCR_DBG_ALL_RX_PFDROP_CNT,
146     
147     SWCR_DBG_ALL_PWR_PS_POLL_CNT,
148     SWCR_DBG_ALL_PWR_TRIGGER_NULL_CNT,
149     SWCR_DBG_ALL_PWR_BCN_IND_CNT,
150     SWCR_DBG_ALL_PWR_BCN_TIMEOUT_CNT,
151     SWCR_DBG_ALL_PWR_PM_STATE0,
152     SWCR_DBG_ALL_PWR_PM_STATE1,
153     SWCR_DBG_ALL_PWR_CUR_PS_PROF0,
154     SWCR_DBG_ALL_PWR_CUR_PS_PROF1,
155     
156     SWCR_DBG_ALL_AR_STA0_RATE,
157     SWCR_DBG_ALL_AR_STA0_BWGI,
158     SWCR_DBG_ALL_AR_STA0_RX_RATE_RCPI,
159
160     SWCR_DBG_ALL_ROAMING_ENABLE,
161     SWCR_DBG_ALL_ROAMING_ROAM_CNT,
162     SWCR_DBG_ALL_ROAMING_INT_CNT,
163
164     SWCR_DBG_ALL_BB_RX_MDRDY_CNT,
165     SWCR_DBG_ALL_BB_RX_FCSERR_CNT,
166     SWCR_DBG_ALL_BB_CCK_PD_CNT,
167     SWCR_DBG_ALL_BB_OFDM_PD_CNT,
168     SWCR_DBG_ALL_BB_CCK_SFDERR_CNT,
169     SWCR_DBG_ALL_BB_CCK_SIGERR_CNT,
170     SWCR_DBG_ALL_BB_OFDM_TAGERR_CNT,
171     SWCR_DBG_ALL_BB_OFDM_SIGERR_CNT,
172     
173     SWCR_DBG_ALL_NUM
174 } ENUM_SWCR_DBG_ALL_T;
175
176 /*******************************************************************************
177 *                             D A T A   T Y P E S
178 ********************************************************************************
179 */
180
181 /*******************************************************************************
182 *                            P U B L I C   D A T A
183 ********************************************************************************
184 */
185
186 /*******************************************************************************
187 *                           P R I V A T E   D A T A
188 ********************************************************************************
189 */
190
191 /*******************************************************************************
192 *                                 M A C R O S
193 ********************************************************************************
194 */
195
196 /*******************************************************************************
197 *                   F U N C T I O N   D E C L A R A T I O N S
198 ********************************************************************************
199 */
200
201
202 /*******************************************************************************
203 *                              F U N C T I O N S
204 ********************************************************************************
205 */
206
207 VOID swCrReadWriteCmd(
208         P_ADAPTER_T prAdapter,
209         UINT_8 ucRead, 
210         UINT_16 u2Addr, 
211         UINT_32 *pu4Data
212         );
213
214 /* Debug Support */
215 VOID swCrFrameCheckEnable(P_ADAPTER_T  prAdapter, UINT_32 u4DumpType);
216 VOID swCrDebugInit(P_ADAPTER_T  prAdapter);
217 VOID swCrDebugCheckEnable(P_ADAPTER_T  prAdapter, BOOLEAN fgIsEnable, UINT_8 ucType, UINT_32 u4Timeout);
218 VOID swCrDebugUninit(P_ADAPTER_T  prAdapter);
219
220 #endif