1981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*
2981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * rate.c
3981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
4981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved.
5981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * All rights reserved.
6981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
7981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Redistribution and use in source and binary forms, with or without
8981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * modification, are permitted provided that the following conditions
9981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * are met:
10981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
11981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *  * Redistributions of source code must retain the above copyright
12981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *    notice, this list of conditions and the following disclaimer.
13981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *  * Redistributions in binary form must reproduce the above copyright
14981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *    notice, this list of conditions and the following disclaimer in
15981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *    the documentation and/or other materials provided with the
16981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *    distribution.
17981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *  * Neither the name Texas Instruments nor the names of its
18981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *    contributors may be used to endorse or promote products derived
19981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *    from this software without specific prior written permission.
20981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
21981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
33981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
34981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
35981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \file  rate.c
36981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *  \brief Rate conversion
37981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
38981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *  \see   rate.h
39981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
40981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define __FILE_ID__  FILE_ID_131
41981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "tidef.h"
42981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "rate.h"
43981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
44981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtERate rate_NetToDrv (TI_UINT32 rate)
45981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
46981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    switch (rate)
47981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
48981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_1M:
49981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_1M_BASIC:
50981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_1M;
51981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
52981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_2M:
53981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_2M_BASIC:
54981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_2M;
55981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
56981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_5_5M:
57981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_5_5M_BASIC:
58981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_5_5M;
59981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
60981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_11M:
61981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_11M_BASIC:
62981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_11M;
63981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
64981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_22M:
65981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_22M_BASIC:
66981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_22M;
67981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
68981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_6M:
69981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_6M_BASIC:
70981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_6M;
71981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
72981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_9M:
73981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_9M_BASIC:
74981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_9M;
75981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
76981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_12M:
77981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_12M_BASIC:
78981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_12M;
79981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
80981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_18M:
81981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_18M_BASIC:
82981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_18M;
83981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
84981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_24M:
85981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_24M_BASIC:
86981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_24M;
87981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
88981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_36M:
89981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_36M_BASIC:
90981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_36M;
91981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
92981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_48M:
93981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_48M_BASIC:
94981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_48M;
95981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
96981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_54M:
97981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_54M_BASIC:
98981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_54M;
99981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
100981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_MCS0:
101981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_MCS0_BASIC:
102981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_MCS_0;
103981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
104981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_MCS1:
105981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_MCS1_BASIC:
106981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_MCS_1;
107981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
108981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_MCS2:
109981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_MCS2_BASIC:
110981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_MCS_2;
111981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
112981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_MCS3:
113981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_MCS3_BASIC:
114981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_MCS_3;
115981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
116981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_MCS4:
117981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_MCS4_BASIC:
118981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_MCS_4;
119981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
120981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_MCS5:
121981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_MCS5_BASIC:
122981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_MCS_5;
123981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
124981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_MCS6:
125981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_MCS6_BASIC:
126981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_MCS_6;
127981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
128981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_MCS7:
129981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_MCS7_BASIC:
130981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_MCS_7;
131981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
132981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        default:
133981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_INVALID;
134981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
135981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
136981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
137981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/************************************************************************
138981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *                        hostToNetworkRate                         *
139981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ************************************************************************
140981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtDESCRIPTION: Translates a host rate (1, 2, 3, ....) to network rate (0x02, 0x82, 0x84, etc...)
141981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
142981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtINPUT:      rate        -   Host rate
143981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
144981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtOUTPUT:
145981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
146981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
147981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtRETURN:     Network rate if the input rate is valid, otherwise returns 0.
148981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
149981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt************************************************************************/
150981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtENetRate rate_DrvToNet (ERate rate)
151981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
152981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    switch (rate)
153981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
154981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_AUTO:
155981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 0;
156981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
157981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_1M:
158981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_1M;
159981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
160981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_2M:
161981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_2M;
162981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
163981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_5_5M:
164981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_5_5M;
165981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
166981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_11M:
167981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_11M;
168981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
169981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_22M:
170981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_22M;
171981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
172981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_6M:
173981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_6M;
174981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
175981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_9M:
176981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_9M;
177981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
178981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_12M:
179981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_12M;
180981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
181981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_18M:
182981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_18M;
183981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
184981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_24M:
185981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_24M;
186981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
187981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_36M:
188981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_36M;
189981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
190981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_48M:
191981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_48M;
192981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
193981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_54M:
194981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_54M;
195981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
196981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_MCS_0:
197981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_MCS0;
198981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
199981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_MCS_1:
200981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_MCS1;
201981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
202981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_MCS_2:
203981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_MCS2;
204981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
205981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_MCS_3:
206981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_MCS3;
207981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
208981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_MCS_4:
209981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_MCS4;
210981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
211981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_MCS_5:
212981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_MCS5;
213981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
214981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_MCS_6:
215981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_MCS6;
216981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
217981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_MCS_7:
218981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return NET_RATE_MCS7;
219981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
220981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        default:
221981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 0;
222981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
223981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
224981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
225981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/***************************************************************************
226981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt*                   getMaxActiveRatefromBitmap                             *
227981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt****************************************************************************
228981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt* DESCRIPTION:
229981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt*
230981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt* INPUTS:       hCtrlData - the object
231981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt*
232981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt* OUTPUT:
233981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt*
234981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt* RETURNS:
235981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt***************************************************************************/
236981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtERate rate_GetMaxFromDrvBitmap (TI_UINT32 uRateBitMap)
237981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
238981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_MCS_7_OFDM)
239981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
240981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_MCS_7;
241981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
242981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
243981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_MCS_6_OFDM)
244981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
245981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_MCS_6;
246981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
247981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
248981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_MCS_5_OFDM)
249981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
250981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_MCS_5;
251981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
252981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
253981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_MCS_4_OFDM)
254981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
255981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_MCS_4;
256981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
257981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
258981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_MCS_3_OFDM)
259981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
260981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_MCS_3;
261981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
262981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
263981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_MCS_2_OFDM)
264981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
265981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_MCS_2;
266981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
267981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
268981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_MCS_1_OFDM)
269981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
270981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_MCS_1;
271981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
272981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
273981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_MCS_0_OFDM)
274981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
275981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_MCS_0;
276981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
277981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
278981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_54_OFDM)
279981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
280981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_54M;
281981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
282981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
283981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_48_OFDM)
284981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
285981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_48M;
286981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
287981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
288981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_36_OFDM)
289981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
290981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_36M;
291981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
292981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
293981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_24_OFDM)
294981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
295981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_24M;
296981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
297981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
298981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_22_PBCC)
299981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
300981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_22M;
301981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
302981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
303981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_18_OFDM)
304981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
305981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_18M;
306981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
307981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
308981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_12_OFDM)
309981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
310981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_12M;
311981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
312981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
313981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_11_CCK)
314981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
315981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_11M;
316981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
317981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
318981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_9_OFDM)
319981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
320981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_9M;
321981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
322981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
323981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_6_OFDM)
324981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
325981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_6M;
326981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
327981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
328981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_5_5_CCK)
329981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
330981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_5_5M;
331981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
332981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
333981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_2_BARKER)
334981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
335981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_2M;
336981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
337981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
338981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uRateBitMap & DRV_RATE_MASK_1_BARKER)
339981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
340981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        return DRV_RATE_1M;
341981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
342981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
343981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    return DRV_RATE_INVALID;
344981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
345981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
346981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/************************************************************************
347981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *                        validateNetworkRate                           *
348981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ************************************************************************
349981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtDESCRIPTION: Verify that the input nitwork rate is valid
350981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
351981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtINPUT:      rate    -   input network rate
352981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
353981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtOUTPUT:
354981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
355981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
356981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtRETURN:     TI_OK if valid, otherwise TI_NOK
357981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
358981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt************************************************************************/
359981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtstatic TI_STATUS rate_ValidateNet (ENetRate eRate)
360981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
361981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    switch (eRate)
362981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
363981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_1M:
364981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_1M_BASIC:
365981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_2M:
366981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_2M_BASIC:
367981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_5_5M:
368981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_5_5M_BASIC:
369981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_11M:
370981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_11M_BASIC:
371981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_22M:
372981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_22M_BASIC:
373981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_6M:
374981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_6M_BASIC:
375981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_9M:
376981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_9M_BASIC:
377981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_12M:
378981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_12M_BASIC:
379981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_18M:
380981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_18M_BASIC:
381981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_24M:
382981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_24M_BASIC:
383981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_36M:
384981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_36M_BASIC:
385981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_48M:
386981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_48M_BASIC:
387981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_54M:
388981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case NET_RATE_54M_BASIC:
389981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return TI_OK;
390981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
391981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        default:
392981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return TI_NOK;
393981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
394981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
395981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
396981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/************************************************************************
397981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *                        getMaxBasicRate                           *
398981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ************************************************************************
399981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtDESCRIPTION: Goes over an array of network rates and returns the max basic rate
400981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
401981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtINPUT:      pRates      -   Rate array
402981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
403981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtOUTPUT:
404981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
405981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
406981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtRETURN:     Max basic rate (in network units)
407981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
408981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt************************************************************************/
409981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtENetRate rate_GetMaxBasicFromStr (TI_UINT8 *pRatesString, TI_UINT32 len, ENetRate eMaxRate)
410981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
411981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TI_UINT32   i;
412981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
413981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    for (i = 0; i < len; i++)
414981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
415981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (NET_BASIC_RATE (pRatesString[i]) && rate_ValidateNet (pRatesString[i]) == TI_OK)
416981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
417981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            eMaxRate = TI_MAX (pRatesString[i], eMaxRate);
418981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
419981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
420981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
421981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    return eMaxRate;
422981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
423981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
424981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/************************************************************************
425981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *                        getMaxActiveRate                          *
426981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ************************************************************************
427981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtDESCRIPTION: Goes over an array of network rates and returns the max active rate
428981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
429981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtINPUT:      pRates      -   Rate array
430981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
431981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtOUTPUT:
432981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
433981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
434981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtRETURN:     Max active rate (in network units)
435981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
436981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt************************************************************************/
437981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtENetRate rate_GetMaxActiveFromStr (TI_UINT8 *pRatesString, TI_UINT32 len, ENetRate eMaxRate)
438981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
439981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TI_UINT32   i;
440981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
441981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    for (i = 0; i < len; i++)
442981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
443981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (NET_ACTIVE_RATE (pRatesString[i]) && rate_ValidateNet (pRatesString[i]) == TI_OK)
444981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
445981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            eMaxRate = TI_MAX (pRatesString[i], eMaxRate);
446981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
447981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
448981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
449981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    return eMaxRate;
450981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
451981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
452981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_UINT32 rate_DrvToNumber (ERate eRate)
453981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
454981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    switch (eRate)
455981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
456981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_1M:
457981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 1;
458981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
459981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_2M:
460981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 2;
461981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
462981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_5_5M:
463981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 5;
464981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
465981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_11M:
466981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 11;
467981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
468981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_22M:
469981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 22;
470981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
471981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_6M:
472981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 6;
473981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
474981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_9M:
475981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 9;
476981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
477981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_12M:
478981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 12;
479981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
480981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_18M:
481981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 18;
482981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
483981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_24M:
484981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 24;
485981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
486981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_36M:
487981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 36;
488981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
489981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_48M:
490981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 48;
491981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
492981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_54M:
493981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 54;
494981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
495981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_MCS_0:
496981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 6;
497981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
498981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_MCS_1:
499981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 13;
500981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
501981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_MCS_2:
502981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 19;
503981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
504981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_MCS_3:
505981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 26;
506981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
507981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_MCS_4:
508981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 39;
509981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
510981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_MCS_5:
511981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 52;
512981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
513981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_MCS_6:
514981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 58;
515981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
516981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case DRV_RATE_MCS_7:
517981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 65;
518981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
519981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        default:
520981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return 0;
521981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
522981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
523981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
524981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/************************************************************************
525981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *                        bitMapToNetworkStringRates                    *
526981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ************************************************************************
527981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtDESCRIPTION: Converts bit map to the rates string
528981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
529981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtINPUT:      suppRatesBitMap     -   bit map of supported rates
530981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            basicRatesBitMap    -   bit map of basic rates
531981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
532981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtOUTPUT:     string - network format rates array,
533981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            len - rates array length
534981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            firstOFDMrateLoc - the index of first OFDM rate in the rates array.
535981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
536981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
537981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtRETURN:     None
538981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
539981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt************************************************************************/
540981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS rate_DrvBitmapToNetStr (TI_UINT32   uSuppRatesBitMap,
541981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                                  TI_UINT32   uBasicRatesBitMap,
542981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                                  TI_UINT8    *string,
543981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                                  TI_UINT32   *len,
544981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                                  TI_UINT32   *pFirstOfdmRate)
545981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
546981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TI_UINT32   i = 0;
547981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
548981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_1_BARKER)
549981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
550981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_1_BARKER)
551981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
552981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_1M_BASIC;
553981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
554981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
555981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
556981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_1M;
557981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
558981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
559981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
560981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_2_BARKER)
561981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
562981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_2_BARKER)
563981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
564981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_2M_BASIC;
565981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
566981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
567981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
568981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_2M;
569981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
570981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
571981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
572981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_5_5_CCK)
573981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
574981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_5_5_CCK)
575981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
576981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_5_5M_BASIC;
577981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
578981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
579981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
580981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_5_5M;
581981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
582981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
583981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
584981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_11_CCK)
585981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
586981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_11_CCK)
587981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
588981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_11M_BASIC;
589981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
590981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
591981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
592981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_11M;
593981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
594981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
595981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
596981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_22_PBCC)
597981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
598981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_22_PBCC)
599981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
600981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_22M_BASIC;
601981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
602981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
603981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
604981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_22M;
605981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
606981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
607981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
608981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    *pFirstOfdmRate = i;
609981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
610981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_6_OFDM)
611981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
612981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_6_OFDM)
613981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
614981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_6M_BASIC;
615981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
616981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
617981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
618981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_6M;
619981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
620981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
621981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
622981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_9_OFDM)
623981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
624981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_9_OFDM)
625981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
626981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_9M_BASIC;
627981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
628981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
629981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
630981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_9M;
631981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
632981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
633981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
634981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_12_OFDM)
635981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
636981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_12_OFDM)
637981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
638981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_12M_BASIC;
639981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
640981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
641981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
642981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_12M;
643981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
644981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
645981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
646981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_18_OFDM)
647981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
648981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_18_OFDM)
649981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
650981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_18M_BASIC;
651981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
652981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
653981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
654981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_18M;
655981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
656981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
657981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
658981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_24_OFDM)
659981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
660981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_24_OFDM)
661981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
662981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_24M_BASIC;
663981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
664981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
665981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
666981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_24M;
667981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
668981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
669981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
670981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_36_OFDM)
671981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
672981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_36_OFDM)
673981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
674981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_36M_BASIC;
675981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
676981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
677981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
678981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_36M;
679981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
680981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
681981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
682981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_48_OFDM)
683981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
684981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_48_OFDM)
685981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
686981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_48M_BASIC;
687981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
688981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
689981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
690981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_48M;
691981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
692981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
693981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
694981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_54_OFDM)
695981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
696981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_54_OFDM)
697981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
698981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_54M_BASIC;
699981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
700981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
701981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
702981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_54M;
703981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
704981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
705981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
706981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*
707981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Don't convert MCS rates,
708981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * it is only for basic and extended rates, otherwise it will exceed 16 bytes string
709981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * the code below is a sample and can be used in the future, if need to parse MCS rates bit map to string
710981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
711981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#if 0
712981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_MCS_0_OFDM)
713981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
714981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_MCS_0_OFDM)
715981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
716981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_MCS0_BASIC;
717981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
718981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
719981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
720981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_MCS0;
721981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
722981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
723981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
724981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_MCS_1_OFDM)
725981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
726981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_MCS_1_OFDM)
727981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
728981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_MCS1_BASIC;
729981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
730981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
731981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
732981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_MCS1;
733981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
734981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
735981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
736981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_MCS_2_OFDM)
737981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
738981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_MCS_2_OFDM)
739981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
740981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_MCS2_BASIC;
741981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
742981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
743981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
744981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_MCS2;
745981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
746981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
747981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
748981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_MCS_3_OFDM)
749981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
750981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_MCS_3_OFDM)
751981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
752981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_MCS3_BASIC;
753981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
754981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
755981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
756981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_MCS3;
757981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
758981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
759981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
760981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_MCS_4_OFDM)
761981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
762981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_MCS_4_OFDM)
763981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
764981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_MCS4_BASIC;
765981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
766981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
767981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
768981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_MCS4;
769981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
770981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
771981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
772981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_MCS_5_OFDM)
773981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
774981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_MCS_5_OFDM)
775981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
776981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_MCS5_BASIC;
777981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
778981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
779981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
780981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_MCS5;
781981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
782981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
783981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
784981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_MCS_6_OFDM)
785981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
786981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_MCS_6_OFDM)
787981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
788981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_MCS6_BASIC;
789981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
790981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
791981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
792981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_MCS6;
793981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
794981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
795981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
796981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uSuppRatesBitMap & DRV_RATE_MASK_MCS_7_OFDM)
797981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
798981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (uBasicRatesBitMap & DRV_RATE_MASK_MCS_7_OFDM)
799981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
800981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_MCS7_BASIC;
801981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
802981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
803981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
804981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            string[i++] = NET_RATE_MCS7;
805981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
806981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
807981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif
808981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
809981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    *len = i;
810981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
811981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    return TI_OK;
812981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
813981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
814981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/************************************************************************
815981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *                        networkStringToBitMapSuppRates                *
816981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ************************************************************************
817981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtDESCRIPTION: Converts supported rates string to the bit map
818981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
819981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtINPUT:      string      -   array of rates in the network format
820981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            len - array length
821981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
822981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtOUTPUT:     bitMap - bit map of rates.
823981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
824981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtRETURN:     None
825981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
826981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt************************************************************************/
827981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS rate_NetStrToDrvBitmap (TI_UINT32 *pBitMap, TI_UINT8 *string, TI_UINT32 len)
828981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
829981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TI_UINT32   i;
830981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
831981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    *pBitMap = 0;
832981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
833981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    for (i = 0; i < len; i++)
834981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
835981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        switch (string[i])
836981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
837981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_1M:
838981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_1M_BASIC:
839981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_1_BARKER;
840981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
841981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
842981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_2M:
843981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_2M_BASIC:
844981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_2_BARKER;
845981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
846981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
847981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_5_5M:
848981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_5_5M_BASIC:
849981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_5_5_CCK;
850981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
851981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
852981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_11M:
853981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_11M_BASIC:
854981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_11_CCK;
855981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
856981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
857981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_22M:
858981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_22M_BASIC:
859981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_22_PBCC;
860981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
861981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
862981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_6M:
863981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_6M_BASIC:
864981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_6_OFDM;
865981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
866981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
867981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_9M:
868981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_9M_BASIC:
869981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_9_OFDM;
870981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
871981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
872981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_12M:
873981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_12M_BASIC:
874981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_12_OFDM;
875981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
876981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
877981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_18M:
878981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_18M_BASIC:
879981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_18_OFDM;
880981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
881981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
882981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_24M:
883981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_24M_BASIC:
884981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_24_OFDM;
885981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
886981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
887981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_36M:
888981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_36M_BASIC:
889981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_36_OFDM;
890981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
891981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
892981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_48M:
893981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_48M_BASIC:
894981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_48_OFDM;
895981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
896981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
897981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_54M:
898981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_54M_BASIC:
899981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_54_OFDM;
900981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
901981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
902981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS0:
903981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS0_BASIC:
904981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_MCS_0_OFDM;
905981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
906981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
907981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS1:
908981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS1_BASIC:
909981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_MCS_1_OFDM;
910981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
911981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
912981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS2:
913981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS2_BASIC:
914981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_MCS_2_OFDM;
915981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
916981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
917981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS3:
918981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS3_BASIC:
919981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_MCS_3_OFDM;
920981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
921981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
922981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS4:
923981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS4_BASIC:
924981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_MCS_4_OFDM;
925981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
926981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
927981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS5:
928981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS5_BASIC:
929981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_MCS_5_OFDM;
930981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
931981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
932981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS6:
933981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS6_BASIC:
934981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_MCS_6_OFDM;
935981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
936981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
937981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS7:
938981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS7_BASIC:
939981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_MCS_7_OFDM;
940981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
941981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
942981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            default:
943981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
944981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
945981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
946981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
947981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    return TI_OK;
948981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
949981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
950981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/************************************************************************
951981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *                        networkStringToBitMapBasicRates               *
952981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ************************************************************************
953981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtDESCRIPTION: Converts basic rates string to the bit map
954981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
955981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtINPUT:      string      -   array of rates in the network format
956981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            len - array length
957981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
958981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtOUTPUT:     bitMap - bit map of rates.
959981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
960981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtRETURN:     None
961981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
962981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt************************************************************************/
963981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS rate_NetBasicStrToDrvBitmap (TI_UINT32 *pBitMap, TI_UINT8 *string, TI_UINT32 len)
964981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
965981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TI_UINT32   i;
966981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
967981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    *pBitMap = 0;
968981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
969981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    for (i = 0; i < len; i++)
970981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
971981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        switch (string[i])
972981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
973981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_1M_BASIC:
974981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_1_BARKER;
975981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
976981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
977981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_2M_BASIC:
978981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_2_BARKER;
979981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
980981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
981981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_5_5M_BASIC:
982981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_5_5_CCK;
983981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
984981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
985981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_11M_BASIC:
986981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_11_CCK;
987981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
988981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
989981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_22M_BASIC:
990981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_22_PBCC;
991981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
992981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
993981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_6M_BASIC:
994981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_6_OFDM;
995981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
996981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
997981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_9M_BASIC:
998981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_9_OFDM;
999981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
1000981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1001981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_12M_BASIC:
1002981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_12_OFDM;
1003981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
1004981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1005981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_18M_BASIC:
1006981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_18_OFDM;
1007981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
1008981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1009981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_24M_BASIC:
1010981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_24_OFDM;
1011981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
1012981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1013981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_36M_BASIC:
1014981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_36_OFDM;
1015981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
1016981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1017981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_48M_BASIC:
1018981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_48_OFDM;
1019981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
1020981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1021981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_54M_BASIC:
1022981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_54_OFDM;
1023981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
1024981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1025981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS0_BASIC:
1026981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_MCS_0_OFDM;
1027981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
1028981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1029981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS1_BASIC:
1030981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_MCS_1_OFDM;
1031981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
1032981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1033981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS2_BASIC:
1034981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_MCS_2_OFDM;
1035981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
1036981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1037981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS3_BASIC:
1038981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_MCS_3_OFDM;
1039981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
1040981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1041981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS4_BASIC:
1042981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_MCS_4_OFDM;
1043981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
1044981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1045981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS5_BASIC:
1046981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_MCS_5_OFDM;
1047981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
1048981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1049981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS6_BASIC:
1050981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_MCS_6_OFDM;
1051981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
1052981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1053981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case NET_RATE_MCS7_BASIC:
1054981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                *pBitMap |= DRV_RATE_MASK_MCS_7_OFDM;
1055981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
1056981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1057981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            default:
1058981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                break;
1059981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
1060981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1061981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1062981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    return TI_OK;
1063981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
1064981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1065981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1066981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/************************************************************************
1067981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *                        rate_McsNetStrToDrvBitmap                     *
1068981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt ************************************************************************
1069981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtDESCRIPTION: Converts MCS IEs rates bit map to driver bit map.
1070981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt             supported only MCS0 - MCS7
1071981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1072981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtINPUT:      string - HT capabilities IE in the network format
1073981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            len - IE array length
1074981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1075981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtOUTPUT:     bitMap - bit map of rates.
1076981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1077981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtRETURN:     None
1078981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1079981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt************************************************************************/
1080981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS rate_McsNetStrToDrvBitmap (TI_UINT32 *pBitMap, TI_UINT8 *string)
1081981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
1082981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    *pBitMap = string[0];
1083981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1084981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    *pBitMap = *pBitMap << (DRV_RATE_MCS_0 - 1);
1085981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1086981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    return TI_OK;
1087981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
1088981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1089981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1090981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS rate_DrvBitmapToHwBitmap (TI_UINT32 uDrvBitMap, TI_UINT32 *pHwBitmap)
1091981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
1092981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TI_UINT32   uHwBitMap = 0;
1093981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1094981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_1_BARKER)
1095981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1096981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_1MBPS;
1097981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1098981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1099981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_2_BARKER)
1100981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1101981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_2MBPS;
1102981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1103981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1104981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_5_5_CCK)
1105981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1106981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_5_5MBPS;
1107981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1108981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1109981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_11_CCK)
1110981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1111981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_11MBPS;
1112981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1113981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1114981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_22_PBCC)
1115981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1116981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_22MBPS;
1117981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1118981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1119981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_6_OFDM)
1120981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1121981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_6MBPS;
1122981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1123981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1124981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_9_OFDM)
1125981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1126981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_9MBPS;
1127981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1128981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1129981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_12_OFDM)
1130981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1131981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_12MBPS;
1132981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1133981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1134981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_18_OFDM)
1135981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1136981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_18MBPS;
1137981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1138981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1139981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_24_OFDM)
1140981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1141981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_24MBPS;
1142981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1143981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1144981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_36_OFDM)
1145981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1146981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_36MBPS;
1147981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1148981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1149981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_48_OFDM)
1150981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1151981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_48MBPS;
1152981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1153981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1154981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_54_OFDM)
1155981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1156981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_54MBPS;
1157981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1158981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1159981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_MCS_0_OFDM)
1160981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1161981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_MCS_0;
1162981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1163981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1164981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_MCS_1_OFDM)
1165981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1166981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_MCS_1;
1167981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1168981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1169981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_MCS_2_OFDM)
1170981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1171981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_MCS_2;
1172981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1173981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1174981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_MCS_3_OFDM)
1175981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1176981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_MCS_3;
1177981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1178981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1179981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_MCS_4_OFDM)
1180981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1181981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_MCS_4;
1182981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1183981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1184981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_MCS_5_OFDM)
1185981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1186981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_MCS_5;
1187981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1188981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1189981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_MCS_6_OFDM)
1190981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1191981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_MCS_6;
1192981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1193981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1194981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (uDrvBitMap & DRV_RATE_MASK_MCS_7_OFDM)
1195981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1196981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        uHwBitMap |= HW_BIT_RATE_MCS_7;
1197981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1198981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1199981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    *pHwBitmap = uHwBitMap;
1200981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1201981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    return TI_OK;
1202981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
1203981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1204981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS rate_PolicyToDrv (ETxRateClassId ePolicyRate, ERate *eAppRate)
1205981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
1206981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TI_UINT8     Rate = 0;
1207981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TI_STATUS status = TI_OK;
1208981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1209981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    switch (ePolicyRate)
1210981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1211981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicy1    :   Rate =  DRV_RATE_1M   ;    break;
1212981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicy2    :   Rate =  DRV_RATE_2M   ;    break;
1213981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicy5_5  :   Rate =  DRV_RATE_5_5M ;    break;
1214981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicy11   :   Rate =  DRV_RATE_11M  ;    break;
1215981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicy22   :   Rate =  DRV_RATE_22M  ;    break;
1216981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicy6    :   Rate =  DRV_RATE_6M   ;    break;
1217981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicy9    :   Rate =  DRV_RATE_9M   ;    break;
1218981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicy12   :   Rate =  DRV_RATE_12M  ;    break;
1219981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicy18   :   Rate =  DRV_RATE_18M  ;    break;
1220981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicy24   :   Rate =  DRV_RATE_24M  ;    break;
1221981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicy36   :   Rate =  DRV_RATE_36M  ;    break;
1222981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicy48   :   Rate =  DRV_RATE_48M  ;    break;
1223981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicy54   :   Rate =  DRV_RATE_54M  ;    break;
1224981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicyMcs0 :   Rate =  DRV_RATE_MCS_0;    break;
1225981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicyMcs1 :   Rate =  DRV_RATE_MCS_1;    break;
1226981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicyMcs2 :   Rate =  DRV_RATE_MCS_2;    break;
1227981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicyMcs3 :   Rate =  DRV_RATE_MCS_3;    break;
1228981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicyMcs4 :   Rate =  DRV_RATE_MCS_4;    break;
1229981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicyMcs5 :   Rate =  DRV_RATE_MCS_5;    break;
1230981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicyMcs6 :   Rate =  DRV_RATE_MCS_6;    break;
1231981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case txPolicyMcs7 :   Rate =  DRV_RATE_MCS_7;    break;
1232981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1233981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        default:
1234981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            status = TI_NOK;
1235981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            break;
1236981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1237981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1238981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (status == TI_OK)
1239981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        *eAppRate = Rate;
1240981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    else
1241981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        *eAppRate = DRV_RATE_INVALID;
1242981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1243981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    return status;
1244981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
1245981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1246981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1247981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_UINT32 rate_BasicToDrvBitmap (EBasicRateSet eBasicRateSet, TI_BOOL bDot11a)
1248981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
1249981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (!bDot11a)
1250981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1251981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        switch (eBasicRateSet)
1252981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
1253981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_1_2:
1254981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1255981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER;
1256981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1257981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_1_2_5_5_11:
1258981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1259981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER |
1260981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK |
1261981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK;
1262981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1263981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_UP_TO_12:
1264981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1265981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER |
1266981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK |
1267981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK |
1268981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_6_OFDM |
1269981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1270981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM;
1271981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1272981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_UP_TO_18:
1273981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1274981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER |
1275981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK |
1276981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK |
1277981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_6_OFDM |
1278981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1279981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1280981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM;
1281981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1282981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_UP_TO_24:
1283981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1284981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER |
1285981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK |
1286981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK |
1287981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_6_OFDM |
1288981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1289981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1290981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1291981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM;
1292981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1293981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_UP_TO_36:
1294981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1295981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER |
1296981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK |
1297981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK |
1298981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_6_OFDM |
1299981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1300981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1301981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1302981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1303981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM;
1304981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1305981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_UP_TO_48:
1306981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1307981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER |
1308981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK |
1309981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK |
1310981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_6_OFDM |
1311981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1312981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1313981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1314981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1315981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM |
1316981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_48_OFDM;
1317981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1318981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_UP_TO_54:
1319981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1320981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER |
1321981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK |
1322981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK |
1323981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_6_OFDM |
1324981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1325981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1326981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1327981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1328981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM |
1329981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_48_OFDM |
1330981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_54_OFDM;
1331981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1332981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_6_12_24:
1333981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_6_OFDM |
1334981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1335981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM;
1336981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1337981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_1_2_5_5_6_11_12_24:
1338981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1339981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER |
1340981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK |
1341981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK |
1342981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_6_OFDM |
1343981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1344981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM;
1345981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1346981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_ALL_MCS_RATES:
1347981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_MCS_0_OFDM |
1348981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_1_OFDM |
1349981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_2_OFDM |
1350981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_3_OFDM |
1351981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_4_OFDM |
1352981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_5_OFDM |
1353981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_6_OFDM |
1354981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_7_OFDM |
1355981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_1_BARKER   |
1356981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER   |
1357981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK    |
1358981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK;
1359981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1360981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1361981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            default:
1362981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1363981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER;
1364981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
1365981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1366981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    else
1367981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1368981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        switch (eBasicRateSet)
1369981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
1370981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_UP_TO_12:
1371981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_6_OFDM |
1372981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1373981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM;
1374981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1375981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_UP_TO_18:
1376981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_6_OFDM |
1377981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1378981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1379981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM;
1380981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1381981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_UP_TO_24:
1382981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_6_OFDM |
1383981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1384981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1385981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1386981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM;
1387981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1388981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_UP_TO_36:
1389981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_6_OFDM |
1390981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1391981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1392981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1393981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1394981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM;
1395981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1396981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_UP_TO_48:
1397981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_6_OFDM |
1398981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1399981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1400981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1401981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1402981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM |
1403981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_48_OFDM;
1404981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1405981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_UP_TO_54:
1406981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_6_OFDM |
1407981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1408981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1409981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1410981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1411981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM |
1412981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_48_OFDM |
1413981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_54_OFDM;
1414981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1415981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_6_12_24:
1416981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_6_OFDM |
1417981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1418981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM;
1419981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1420981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case BASIC_RATE_SET_ALL_MCS_RATES:
1421981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_MCS_0_OFDM |
1422981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_1_OFDM |
1423981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_2_OFDM |
1424981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_3_OFDM |
1425981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_4_OFDM |
1426981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_5_OFDM |
1427981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_6_OFDM |
1428981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_7_OFDM |
1429981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_6_OFDM |
1430981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1431981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM;
1432981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1433981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            default:
1434981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_6_OFDM |
1435981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1436981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM;
1437981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
1438981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1439981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
1440981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1441981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_UINT32 rate_SupportedToDrvBitmap (ESupportedRateSet eSupportedRateSet, TI_BOOL bDot11a)
1442981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
1443981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (!bDot11a)
1444981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1445981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        switch (eSupportedRateSet)
1446981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
1447981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_1_2:
1448981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1449981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER;
1450981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1451981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_1_2_5_5_11:
1452981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1453981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER |
1454981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK |
1455981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK;
1456981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1457981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_1_2_5_5_11_22:
1458981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1459981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER |
1460981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK |
1461981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK |
1462981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_22_PBCC;
1463981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1464981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_UP_TO_18:
1465981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1466981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER |
1467981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK |
1468981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK |
1469981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_6_OFDM |
1470981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1471981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1472981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM;
1473981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1474981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_UP_TO_24:
1475981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1476981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER |
1477981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK |
1478981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK |
1479981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_6_OFDM |
1480981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1481981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1482981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1483981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM;
1484981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1485981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_UP_TO_36:
1486981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1487981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER |
1488981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK |
1489981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK |
1490981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_6_OFDM |
1491981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1492981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1493981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1494981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1495981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM;
1496981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1497981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_UP_TO_48:
1498981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1499981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER |
1500981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK |
1501981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK |
1502981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_6_OFDM |
1503981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1504981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1505981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1506981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1507981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM |
1508981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_48_OFDM;
1509981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1510981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_UP_TO_54:
1511981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1512981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER |
1513981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK |
1514981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK |
1515981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_6_OFDM |
1516981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1517981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1518981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1519981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1520981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM |
1521981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_48_OFDM |
1522981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_54_OFDM;
1523981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1524981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_ALL:
1525981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1526981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER |
1527981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK |
1528981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK |
1529981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_22_PBCC |
1530981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_6_OFDM |
1531981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1532981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1533981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1534981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1535981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM |
1536981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_48_OFDM |
1537981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_54_OFDM;
1538981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1539981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_ALL_OFDM:
1540981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_6_OFDM |
1541981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1542981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1543981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1544981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1545981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM |
1546981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_48_OFDM |
1547981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_54_OFDM;
1548981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1549981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_ALL_MCS_RATES:
1550981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_MCS_0_OFDM |
1551981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_1_OFDM |
1552981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_2_OFDM |
1553981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_3_OFDM |
1554981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_4_OFDM |
1555981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_5_OFDM |
1556981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_6_OFDM |
1557981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_7_OFDM |
1558981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_1_BARKER |
1559981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER |
1560981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK |
1561981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK |
1562981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_22_PBCC |
1563981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_6_OFDM |
1564981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1565981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1566981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1567981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1568981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM |
1569981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_48_OFDM |
1570981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_54_OFDM;
1571981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1572981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            default:
1573981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_1_BARKER |
1574981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_2_BARKER |
1575981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_5_5_CCK |
1576981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_11_CCK |
1577981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_22_PBCC |
1578981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_6_OFDM |
1579981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1580981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1581981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1582981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1583981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM |
1584981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_48_OFDM |
1585981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_54_OFDM;
1586981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
1587981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1588981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    else
1589981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1590981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        switch (eSupportedRateSet)
1591981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
1592981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_UP_TO_18:
1593981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_6_OFDM |
1594981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1595981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1596981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM;
1597981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1598981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_UP_TO_24:
1599981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_6_OFDM |
1600981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1601981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1602981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1603981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM;
1604981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1605981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_UP_TO_36:
1606981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_6_OFDM |
1607981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1608981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1609981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1610981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1611981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM;
1612981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1613981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_UP_TO_48:
1614981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_6_OFDM |
1615981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1616981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1617981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1618981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1619981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM |
1620981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_48_OFDM;
1621981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1622981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_UP_TO_54:
1623981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_6_OFDM |
1624981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1625981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1626981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1627981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1628981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM |
1629981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_48_OFDM |
1630981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_54_OFDM;
1631981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1632981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_ALL:
1633981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_ALL_OFDM:
1634981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_6_OFDM |
1635981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1636981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1637981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1638981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1639981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM |
1640981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_48_OFDM |
1641981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_54_OFDM;
1642981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1643981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            case SUPPORTED_RATE_SET_ALL_MCS_RATES:
1644981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_MCS_0_OFDM |
1645981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_1_OFDM |
1646981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_2_OFDM |
1647981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_3_OFDM |
1648981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_4_OFDM |
1649981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_5_OFDM |
1650981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_6_OFDM |
1651981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_MCS_7_OFDM |
1652981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_6_OFDM |
1653981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1654981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1655981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1656981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1657981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM |
1658981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_48_OFDM |
1659981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_54_OFDM;
1660981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1661981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            default:
1662981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                return DRV_RATE_MASK_6_OFDM |
1663981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_9_OFDM |
1664981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_12_OFDM |
1665981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_18_OFDM |
1666981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_24_OFDM |
1667981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_36_OFDM |
1668981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_48_OFDM |
1669981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                       DRV_RATE_MASK_54_OFDM;
1670981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
1671981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1672981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
1673981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1674981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS rate_ValidateVsBand (TI_UINT32 *pSupportedMask, TI_UINT32 *pBasicMask, TI_BOOL bDot11a)
1675981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
1676981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (bDot11a)
1677981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1678981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        *pSupportedMask &= ~
1679981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            (
1680981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                DRV_RATE_MASK_1_BARKER |
1681981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                DRV_RATE_MASK_2_BARKER |
1682981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                DRV_RATE_MASK_5_5_CCK |
1683981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                DRV_RATE_MASK_11_CCK |
1684981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt                DRV_RATE_MASK_22_PBCC
1685981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            );
1686981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1687981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1688981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    *pBasicMask &= *pSupportedMask;
1689981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1690981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    if (*pBasicMask == 0)
1691981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1692981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        if (bDot11a)
1693981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
1694981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            *pBasicMask = DRV_RATE_MASK_6_OFDM | DRV_RATE_MASK_12_OFDM | DRV_RATE_MASK_24_OFDM;
1695981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
1696981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        else
1697981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        {
1698981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            *pBasicMask = DRV_RATE_MASK_1_BARKER | DRV_RATE_MASK_2_BARKER;
1699981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        }
1700981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1701981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1702981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    return TI_OK;
1703981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
1704981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1705981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*-----------------------------------------------------------------------------
1706981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtRoutine Name:    RateNumberToHost
1707981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtRoutine Description:
1708981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtArguments:
1709981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtReturn Value:    None
1710981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt-----------------------------------------------------------------------------*/
1711981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtERate rate_NumberToDrv (TI_UINT32 rate)
1712981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
1713981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    switch (rate)
1714981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
1715981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0x1:
1716981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_1M;
1717981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1718981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0x2:
1719981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_2M;
1720981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1721981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0x5:
1722981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_5_5M;
1723981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1724981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0xB:
1725981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_11M;
1726981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1727981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0x16:
1728981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_22M;
1729981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1730981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0x6:
1731981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_6M;
1732981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1733981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0x9:
1734981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_9M;
1735981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1736981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0xC:
1737981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_12M;
1738981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1739981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0x12:
1740981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_18M;
1741981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1742981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0x18:
1743981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_24M;
1744981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1745981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0x24:
1746981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_36M;
1747981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1748981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0x30:
1749981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_48M;
1750981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1751981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0x36:
1752981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_54M;
1753981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1754981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        /* MCS rate */
1755981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0x7:
1756981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_MCS_0;
1757981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1758981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0xD:
1759981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_MCS_1;
1760981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1761981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0x13:
1762981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_MCS_2;
1763981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1764981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0x1A:
1765981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_MCS_3;
1766981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1767981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0x27:
1768981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_MCS_4;
1769981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1770981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0x34:
1771981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_MCS_5;
1772981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1773981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0x3A:
1774981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_MCS_6;
1775981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1776981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        case 0x41:
1777981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_MCS_7;
1778981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1779981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        default:
1780981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt            return DRV_RATE_6M;
1781981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    }
1782981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
1783981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1784981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_UINT32 rate_GetDrvBitmapForDefaultBasicSet ()
1785981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
1786981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    return rate_BasicToDrvBitmap (BASIC_RATE_SET_1_2_5_5_11, TI_FALSE);
1787981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
1788981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1789981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_UINT32 rate_GetDrvBitmapForDefaultSupporteSet ()
1790981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
1791981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    return rate_SupportedToDrvBitmap (SUPPORTED_RATE_SET_1_2_5_5_11, TI_FALSE);
1792981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt}
1793981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
1794