Home | History | Annotate | Download | only in hl_ctrl
      1 /****************************************************************************
      2 **+-----------------------------------------------------------------------+**
      3 **|                                                                       |**
      4 **| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved.      |**
      5 **| All rights reserved.                                                  |**
      6 **|                                                                       |**
      7 **| Redistribution and use in source and binary forms, with or without    |**
      8 **| modification, are permitted provided that the following conditions    |**
      9 **| are met:                                                              |**
     10 **|                                                                       |**
     11 **|  * Redistributions of source code must retain the above copyright     |**
     12 **|    notice, this list of conditions and the following disclaimer.      |**
     13 **|  * Redistributions in binary form must reproduce the above copyright  |**
     14 **|    notice, this list of conditions and the following disclaimer in    |**
     15 **|    the documentation and/or other materials provided with the         |**
     16 **|    distribution.                                                      |**
     17 **|  * Neither the name Texas Instruments nor the names of its            |**
     18 **|    contributors may be used to endorse or promote products derived    |**
     19 **|    from this software without specific prior written permission.      |**
     20 **|                                                                       |**
     21 **| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |**
     22 **| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |**
     23 **| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |**
     24 **| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |**
     25 **| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |**
     26 **| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |**
     27 **| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |**
     28 **| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |**
     29 **| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |**
     30 **| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |**
     31 **| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |**
     32 **|                                                                       |**
     33 **+-----------------------------------------------------------------------+**
     34 ****************************************************************************/
     35 
     36 /****************************************************************************
     37  *
     38  *   MODULE:  whalRadio.c
     39  *   PURPOSE: Handle all radio aspects in the Hal
     40  *
     41  *  RSSI
     42  *		Set RSSI params to the firmware
     43  *		Conversion function From/To RxLevel/RSSI
     44  *	TxPowerLevel
     45  *		Overide the default radioTxLevel table
     46  *
     47  ****************************************************************************/
     48 #include "whalCommon.h"
     49 #include "whalCtrl_api.h"
     50 #include "whalCtrl.h"
     51 #include "whalSecurity.h"
     52 #include "commonTypes.h"
     53 #include "eventMbox_api.h"
     54 #include "whalBus_Api.h"
     55 
     56 /* Conversion Factors */
     57 #define RADIA_BG_FACTOR         93
     58 #define RADIA_ABG_FACTOR        93
     59 #define RADIA_BG_CRT_FACTOR     98
     60 
     61 /*
     62  * ----------------------------------------------------------------------------
     63  * Function : whalCtrl_SetRadioBand
     64  *
     65  * Input    :
     66  * Output   :
     67  * Process  :
     68  * Note(s)  : Done
     69  * -----------------------------------------------------------------------------
     70  */
     71 
     72 int whalCtrl_SetRadioBand (TI_HANDLE hWhalCtrl, radioBand_e RadioBand)
     73 {
     74     WHAL_CTRL *pWhalCtrl = (WHAL_CTRL *)hWhalCtrl;
     75 
     76 	pWhalCtrl->pWhalParams->WlanParams.RadioBand = RadioBand;
     77 
     78 	return OK;
     79 }
     80 
     81 /*
     82  * ----------------------------------------------------------------------------
     83  * Function : whalCtrl_convertRSSIToRxLevel
     84  *
     85  * Input    :
     86  * Output   :
     87  * Process  :
     88  * Note(s)  :  Done
     89  * -----------------------------------------------------------------------------
     90  */
     91 INT8 whalCtrl_convertRSSIToRxLevel(TI_HANDLE hWhalCtrl, INT32 rssiVal)
     92 {
     93     WHAL_CTRL   *pWhalCtrl = (WHAL_CTRL *)hWhalCtrl;
     94     INT8       rxLevel;
     95 
     96     switch(pWhalCtrl->pWhalParams->WlanParams.radioType)
     97     {
     98     case RADIO_MAXIM2820_ID:  /* Not Supported at the moment */
     99         rxLevel = 0;
    100         break;
    101     case RADIO_RFMD_ID:       /* Not Supported at the moment */
    102         rxLevel = 0;
    103         break;
    104     case RADIO_RADIA_BG_ID:
    105         rxLevel = (INT8)(rssiVal + RADIA_BG_FACTOR);
    106         break;
    107     case RADIO_RADIA_ABG_ID:
    108         rxLevel = (INT8)(rssiVal + RADIA_ABG_FACTOR);
    109         break;
    110     case RADIO_RADIA_BG_CRT_ID:
    111         rxLevel = (INT8)(rssiVal + RADIA_BG_CRT_FACTOR);
    112         break;
    113     case RADIO_RADIA_WBR_ID:
    114         rxLevel = (UINT8)(rssiVal + RADIA_BG_CRT_FACTOR);
    115         break;
    116     case RADIO_RADIA_DCR_ID:
    117 	case RADIO_RADIA_DCR_1251_ID:
    118         rxLevel = (UINT8)(rssiVal + RADIA_BG_CRT_FACTOR);
    119         break;
    120     default:
    121         rxLevel = 0;
    122         WLAN_REPORT_ERROR(pWhalCtrl->hReport, HAL_CTRL_MODULE_LOG,
    123             ("whalCtrl_convertRSSIToRxLevel: Error - Unknown radio type!\n"));
    124         break;
    125     }
    126 
    127 	return rxLevel;
    128 }
    129 
    130 /*
    131  * ----------------------------------------------------------------------------
    132  * Function : whalCtrl_getRadioNumber
    133  *
    134  * Input    :
    135  * Output   :
    136  * Process  :
    137  * Note(s)  :  Done
    138  * -----------------------------------------------------------------------------
    139  */
    140 TI_STATUS whalCtrl_getRadioNumber(TI_HANDLE hWhalCtrl, UINT32 *outRadioType, UINT32 *outRadioNumber)
    141 {
    142     WHAL_CTRL *pWhalCtrl = (WHAL_CTRL*)hWhalCtrl;
    143 	WlanParams_T *pWlanParams = whal_ParamsGetWlanParams(pWhalCtrl->pWhalParams);
    144 	UINT32 RadioType;
    145 
    146 	*outRadioNumber = pWlanParams->radioType;
    147 
    148 	switch (pWlanParams->radioType)
    149 	{
    150 		case RADIO_RADIA_BG_ID:
    151 			RadioType = RADIA_BG;
    152 			WLAN_REPORT_INFORMATION (pWhalCtrl->hReport, HAL_CTRL_MODULE_LOG,
    153 									 ("Radio Type is : RADIA BG\n"));
    154 			break;
    155 
    156 		case RADIO_RADIA_ABG_ID:
    157 			RadioType = RADIA_ABG;
    158 			WLAN_REPORT_INFORMATION (pWhalCtrl->hReport, HAL_CTRL_MODULE_LOG,
    159 									 ("Radio Type is : RADIA ABG\n"));
    160 			break;
    161 
    162 		case RADIO_RADIA_BG_CRT_ID:
    163 			RadioType = RADIA_BG;
    164 			WLAN_REPORT_INFORMATION (pWhalCtrl->hReport, HAL_CTRL_MODULE_LOG,
    165 									 ("Radio Type is : RADIA BG (crt)\n"));
    166 			break;
    167 
    168         case RADIO_RADIA_WBR_ID:
    169             RadioType = RADIA_ABG;
    170             WLAN_REPORT_INFORMATION (pWhalCtrl->hReport, HAL_CTRL_MODULE_LOG,
    171                                  ("Radio Type is : RADIO ABG (wbr)\n"));
    172             break;
    173 
    174         case RADIO_RADIA_DCR_ID:
    175 		case RADIO_RADIA_DCR_1251_ID:
    176             RadioType = RADIA_ABG;
    177             WLAN_REPORT_INFORMATION (pWhalCtrl->hReport, HAL_CTRL_MODULE_LOG,
    178                                  ("Radio Type is : RADIO ABG (dcr)\n"));
    179             break;
    180 
    181 		default:
    182 			RadioType = UNKNOWN_RADIO_TYPE;
    183 			WLAN_OS_REPORT (("FATAL ERR: Radio Type is : 0x%x - UNKNOWN\n", pWlanParams->radioType));
    184 			break;
    185 	}
    186 
    187 	*outRadioType = RadioType;
    188 	return OK;
    189 }
    190 
    191