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