GNU Linux-libre 4.14.313-gnu1
[releases.git] / drivers / staging / rtl8188eu / include / hal_com.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_COMMON_H__
16 #define __HAL_COMMON_H__
17
18 /*  */
19 /*        Rate Definition */
20 /*  */
21 /* CCK */
22 #define RATR_1M                                 0x00000001
23 #define RATR_2M                                 0x00000002
24 #define RATR_55M                                0x00000004
25 #define RATR_11M                                0x00000008
26 /* OFDM */
27 #define RATR_6M                                 0x00000010
28 #define RATR_9M                                 0x00000020
29 #define RATR_12M                                0x00000040
30 #define RATR_18M                                0x00000080
31 #define RATR_24M                                0x00000100
32 #define RATR_36M                                0x00000200
33 #define RATR_48M                                0x00000400
34 #define RATR_54M                                0x00000800
35 /* MCS 1 Spatial Stream */
36 #define RATR_MCS0                               0x00001000
37 #define RATR_MCS1                               0x00002000
38 #define RATR_MCS2                               0x00004000
39 #define RATR_MCS3                               0x00008000
40 #define RATR_MCS4                               0x00010000
41 #define RATR_MCS5                               0x00020000
42 #define RATR_MCS6                               0x00040000
43 #define RATR_MCS7                               0x00080000
44 /* MCS 2 Spatial Stream */
45 #define RATR_MCS8                               0x00100000
46 #define RATR_MCS9                               0x00200000
47 #define RATR_MCS10                              0x00400000
48 #define RATR_MCS11                              0x00800000
49 #define RATR_MCS12                              0x01000000
50 #define RATR_MCS13                              0x02000000
51 #define RATR_MCS14                              0x04000000
52 #define RATR_MCS15                              0x08000000
53
54 /* CCK */
55 #define RATE_1M                                 BIT(0)
56 #define RATE_2M                                 BIT(1)
57 #define RATE_5_5M                               BIT(2)
58 #define RATE_11M                                BIT(3)
59 /* OFDM */
60 #define RATE_6M                                 BIT(4)
61 #define RATE_9M                                 BIT(5)
62 #define RATE_12M                                BIT(6)
63 #define RATE_18M                                BIT(7)
64 #define RATE_24M                                BIT(8)
65 #define RATE_36M                                BIT(9)
66 #define RATE_48M                                BIT(10)
67 #define RATE_54M                                BIT(11)
68 /* MCS 1 Spatial Stream */
69 #define RATE_MCS0                               BIT(12)
70 #define RATE_MCS1                               BIT(13)
71 #define RATE_MCS2                               BIT(14)
72 #define RATE_MCS3                               BIT(15)
73 #define RATE_MCS4                               BIT(16)
74 #define RATE_MCS5                               BIT(17)
75 #define RATE_MCS6                               BIT(18)
76 #define RATE_MCS7                               BIT(19)
77 /* MCS 2 Spatial Stream */
78 #define RATE_MCS8                               BIT(20)
79 #define RATE_MCS9                               BIT(21)
80 #define RATE_MCS10                              BIT(22)
81 #define RATE_MCS11                              BIT(23)
82 #define RATE_MCS12                              BIT(24)
83 #define RATE_MCS13                              BIT(25)
84 #define RATE_MCS14                              BIT(26)
85 #define RATE_MCS15                              BIT(27)
86
87 /*  ALL CCK Rate */
88 #define RATE_ALL_CCK            (RATR_1M | RATR_2M | RATR_55M | RATR_11M)
89 #define RATE_ALL_OFDM_AG        (RATR_6M | RATR_9M | RATR_12M | RATR_18M | \
90                                  RATR_24M | RATR_36M | RATR_48M | RATR_54M)
91 #define RATE_ALL_OFDM_1SS       (RATR_MCS0 | RATR_MCS1 | RATR_MCS2 |    \
92                                  RATR_MCS3 | RATR_MCS4 | RATR_MCS5|RATR_MCS6 | \
93                                  RATR_MCS7)
94 #define RATE_ALL_OFDM_2SS       (RATR_MCS8 | RATR_MCS9 | RATR_MCS10 | \
95                                  RATR_MCS11 | RATR_MCS12 | RATR_MCS13 | \
96                                  RATR_MCS14 | RATR_MCS15)
97
98 /*------------------------------ Tx Desc definition Macro --------------------*/
99 /* pragma mark -- Tx Desc related definition. -- */
100 /*      Rate */
101 /*  CCK Rates, TxHT = 0 */
102 #define DESC_RATE1M                             0x00
103 #define DESC_RATE2M                             0x01
104 #define DESC_RATE5_5M                           0x02
105 #define DESC_RATE11M                            0x03
106
107 /*  OFDM Rates, TxHT = 0 */
108 #define DESC_RATE6M                             0x04
109 #define DESC_RATE9M                             0x05
110 #define DESC_RATE12M                            0x06
111 #define DESC_RATE18M                            0x07
112 #define DESC_RATE24M                            0x08
113 #define DESC_RATE36M                            0x09
114 #define DESC_RATE48M                            0x0a
115 #define DESC_RATE54M                            0x0b
116
117 /*  MCS Rates, TxHT = 1 */
118 #define DESC_RATEMCS0                           0x0c
119 #define DESC_RATEMCS1                           0x0d
120 #define DESC_RATEMCS2                           0x0e
121 #define DESC_RATEMCS3                           0x0f
122 #define DESC_RATEMCS4                           0x10
123 #define DESC_RATEMCS5                           0x11
124 #define DESC_RATEMCS6                           0x12
125 #define DESC_RATEMCS7                           0x13
126 #define DESC_RATEMCS8                           0x14
127 #define DESC_RATEMCS9                           0x15
128 #define DESC_RATEMCS10                          0x16
129 #define DESC_RATEMCS11                          0x17
130 #define DESC_RATEMCS12                          0x18
131 #define DESC_RATEMCS13                          0x19
132 #define DESC_RATEMCS14                          0x1a
133 #define DESC_RATEMCS15                          0x1b
134 #define DESC_RATEMCS15_SG                       0x1c
135 #define DESC_RATEMCS32                          0x20
136
137 /*  1 Byte long (in unit of TU) */
138 #define REG_P2P_CTWIN                           0x0572
139 #define REG_NOA_DESC_SEL                        0x05CF
140 #define REG_NOA_DESC_DURATION                   0x05E0
141 #define REG_NOA_DESC_INTERVAL                   0x05E4
142 #define REG_NOA_DESC_START                      0x05E8
143 #define REG_NOA_DESC_COUNT                      0x05EC
144
145 #include "HalVerDef.h"
146 void dump_chip_info(struct HAL_VERSION  ChipVersion);
147
148
149 /* return the final channel plan decision */
150 u8 hal_com_get_channel_plan(struct adapter *padapter,
151                             u8 hw_channel_plan,
152                             u8 sw_channel_plan,
153                             u8 def_channel_plan,
154                             bool AutoLoadFail
155 );
156
157 u8 MRateToHwRate(u8 rate);
158
159 void HalSetBrateCfg(struct adapter *Adapter, u8 *mBratesOS, u16 *pBrateCfg);
160
161 bool Hal_MappingOutPipe(struct adapter *pAdapter, u8 NumOutPipe);
162
163 void hal_init_macaddr(struct adapter *adapter);
164 #endif /* __HAL_COMMON_H__ */