Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / staging / rtl8723au / include / HalVerDef.h
1 /******************************************************************************
2  *
3  * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of version 2 of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  ******************************************************************************/
15 #ifndef __HAL_VERSION_DEF_H__
16 #define __HAL_VERSION_DEF_H__
17
18 enum hal_ic_type {
19         CHIP_8192S              =       0,
20         CHIP_8188C      =       1,
21         CHIP_8192C      =       2,
22         CHIP_8192D      =       3,
23         CHIP_8723A      =       4,
24         CHIP_8188E      =       5,
25         CHIP_8881A      =       6,
26         CHIP_8812A      =       7,
27         CHIP_8821A      =       8,
28         CHIP_8723B      =       9,
29         CHIP_8192E              =       10,
30 };
31
32 enum hal_chip_type {
33         TEST_CHIP               =       0,
34         NORMAL_CHIP             =       1,
35         FPGA                    =       2,
36 };
37
38 enum hal_cut_version {
39         A_CUT_VERSION           =       0,
40         B_CUT_VERSION           =       1,
41         C_CUT_VERSION           =       2,
42         D_CUT_VERSION           =       3,
43         E_CUT_VERSION           =       4,
44         F_CUT_VERSION           =       5,
45         G_CUT_VERSION           =       6,
46 };
47
48 /*  HAL_Manufacturer */
49 enum hal_vendor {
50         CHIP_VENDOR_TSMC        =       0,
51         CHIP_VENDOR_UMC         =       1,
52 };
53
54 struct hal_version {
55         enum hal_ic_type        ICType;
56         enum hal_chip_type      ChipType;
57         enum hal_cut_version    CUTVersion;
58         enum hal_vendor         VendorType;
59         u8                      ROMVer;
60 };
61
62 /*  Get element */
63 #define GET_CVID_IC_TYPE(version)       ((version).ICType)
64 #define GET_CVID_CHIP_TYPE(version)     ((version).ChipType)
65 #define GET_CVID_MANUFACTUER(version)   ((version).VendorType)
66 #define GET_CVID_CUT_VERSION(version)   ((version).CUTVersion)
67 #define GET_CVID_ROM_VERSION(version)   (((version).ROMVer) & ROM_VERSION_MASK)
68
69 /* Common Macro. -- */
70
71 #define IS_81XXC(version)                       \
72         (((GET_CVID_IC_TYPE(version) == CHIP_8192C) ||  \
73          (GET_CVID_IC_TYPE(version) == CHIP_8188C)) ? true : false)
74 #define IS_8723_SERIES(version)                 \
75         ((GET_CVID_IC_TYPE(version) == CHIP_8723A) ? true : false)
76
77 #define IS_TEST_CHIP(version)                   \
78         ((GET_CVID_CHIP_TYPE(version) == TEST_CHIP) ? true : false)
79 #define IS_NORMAL_CHIP(version)                 \
80         ((GET_CVID_CHIP_TYPE(version) == NORMAL_CHIP) ? true : false)
81
82 #define IS_A_CUT(version)                       \
83         ((GET_CVID_CUT_VERSION(version) == A_CUT_VERSION) ? true : false)
84 #define IS_B_CUT(version)                       \
85         ((GET_CVID_CUT_VERSION(version) == B_CUT_VERSION) ? true : false)
86 #define IS_C_CUT(version)                       \
87         ((GET_CVID_CUT_VERSION(version) == C_CUT_VERSION) ? true : false)
88 #define IS_D_CUT(version)                       \
89         ((GET_CVID_CUT_VERSION(version) == D_CUT_VERSION) ? true : false)
90 #define IS_E_CUT(version)                       \
91         ((GET_CVID_CUT_VERSION(version) == E_CUT_VERSION) ? true : false)
92
93 #define IS_CHIP_VENDOR_TSMC(version)            \
94         ((GET_CVID_MANUFACTUER(version) == CHIP_VENDOR_TSMC) ? true : false)
95 #define IS_CHIP_VENDOR_UMC(version)             \
96         ((GET_CVID_MANUFACTUER(version) == CHIP_VENDOR_UMC) ? true : false)
97
98 /* Chip version Macro. -- */
99
100 #define IS_81xxC_VENDOR_UMC_A_CUT(version)                      \
101         (IS_81XXC(version)?(IS_CHIP_VENDOR_UMC(version) ?       \
102         (IS_A_CUT(version) ? true : false) : false) : false)
103 #define IS_81xxC_VENDOR_UMC_B_CUT(version)                      \
104         (IS_81XXC(version) ? (IS_CHIP_VENDOR_UMC(version) ?     \
105          (IS_B_CUT(version) ? true : false) : false): false)
106 #define IS_81xxC_VENDOR_UMC_C_CUT(version)                      \
107         (IS_81XXC(version)?(IS_CHIP_VENDOR_UMC(version) ?       \
108         (IS_C_CUT(version) ? true : false) : false) : false)
109 #define IS_8723A_A_CUT(version)                         \
110         ((IS_8723_SERIES(version)) ? (IS_A_CUT(version) ? true : false) : false)
111 #define IS_8723A_B_CUT(version)                                 \
112         ((IS_8723_SERIES(version)) ? (IS_B_CUT(version) ? true : false) : false)
113
114 #endif