linux/drivers/staging/rtl8188eu/hal/odm_interface.c
<<
>>
Prefs
   1/******************************************************************************
   2 *
   3 * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
   4 *
   5 * This program is free software; you can redistribute it and/or modify it
   6 * under the terms of version 2 of the GNU General Public License as
   7 * published by the Free Software Foundation.
   8 *
   9 * This program is distributed in the hope that it will be useful, but WITHOUT
  10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  12 * more details.
  13 *
  14 * You should have received a copy of the GNU General Public License along with
  15 * this program; if not, write to the Free Software Foundation, Inc.,
  16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
  17 *
  18 *
  19 ******************************************************************************/
  20
  21#include "odm_precomp.h"
  22/*  ODM IO Relative API. */
  23
  24u8 ODM_Read1Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr)
  25{
  26        struct adapter *Adapter = pDM_Odm->Adapter;
  27        return rtw_read8(Adapter, RegAddr);
  28}
  29
  30u16 ODM_Read2Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr)
  31{
  32        struct adapter *Adapter = pDM_Odm->Adapter;
  33        return rtw_read16(Adapter, RegAddr);
  34}
  35
  36u32 ODM_Read4Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr)
  37{
  38        struct adapter *Adapter = pDM_Odm->Adapter;
  39        return rtw_read32(Adapter, RegAddr);
  40}
  41
  42void ODM_Write1Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u8 Data)
  43{
  44        struct adapter *Adapter = pDM_Odm->Adapter;
  45        rtw_write8(Adapter, RegAddr, Data);
  46}
  47
  48void ODM_Write2Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u16 Data)
  49{
  50        struct adapter *Adapter = pDM_Odm->Adapter;
  51        rtw_write16(Adapter, RegAddr, Data);
  52}
  53
  54void ODM_Write4Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 Data)
  55{
  56        struct adapter *Adapter = pDM_Odm->Adapter;
  57        rtw_write32(Adapter, RegAddr, Data);
  58}
  59
  60void ODM_SetMACReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask, u32 Data)
  61{
  62        struct adapter *Adapter = pDM_Odm->Adapter;
  63        PHY_SetBBReg(Adapter, RegAddr, BitMask, Data);
  64}
  65
  66u32 ODM_GetMACReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask)
  67{
  68        struct adapter *Adapter = pDM_Odm->Adapter;
  69        return PHY_QueryBBReg(Adapter, RegAddr, BitMask);
  70}
  71
  72void ODM_SetBBReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask, u32 Data)
  73{
  74        struct adapter *Adapter = pDM_Odm->Adapter;
  75        PHY_SetBBReg(Adapter, RegAddr, BitMask, Data);
  76}
  77
  78u32 ODM_GetBBReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask)
  79{
  80        struct adapter *Adapter = pDM_Odm->Adapter;
  81        return PHY_QueryBBReg(Adapter, RegAddr, BitMask);
  82}
  83
  84void ODM_SetRFReg(struct odm_dm_struct *pDM_Odm, enum ODM_RF_RADIO_PATH eRFPath, u32 RegAddr, u32 BitMask, u32 Data)
  85{
  86        struct adapter *Adapter = pDM_Odm->Adapter;
  87        PHY_SetRFReg(Adapter, (enum rf_radio_path)eRFPath, RegAddr, BitMask, Data);
  88}
  89
  90u32 ODM_GetRFReg(struct odm_dm_struct *pDM_Odm, enum ODM_RF_RADIO_PATH  eRFPath, u32 RegAddr, u32 BitMask)
  91{
  92        struct adapter *Adapter = pDM_Odm->Adapter;
  93        return PHY_QueryRFReg(Adapter, (enum rf_radio_path)eRFPath, RegAddr, BitMask);
  94}
  95
  96/*  ODM Memory relative API. */
  97void ODM_AllocateMemory(struct odm_dm_struct *pDM_Odm, void **pPtr, u32 length)
  98{
  99        *pPtr = rtw_zvmalloc(length);
 100}
 101
 102/*  length could be ignored, used to detect memory leakage. */
 103void ODM_FreeMemory(struct odm_dm_struct *pDM_Odm, void *pPtr, u32 length)
 104{
 105        rtw_vmfree(pPtr, length);
 106}
 107
 108s32 ODM_CompareMemory(struct odm_dm_struct *pDM_Odm, void *pBuf1, void *pBuf2, u32 length)
 109{
 110        return _rtw_memcmp(pBuf1, pBuf2, length);
 111}
 112
 113/*  ODM MISC relative API. */
 114void ODM_AcquireSpinLock(struct odm_dm_struct *pDM_Odm, enum RT_SPINLOCK_TYPE type)
 115{
 116}
 117
 118void ODM_ReleaseSpinLock(struct odm_dm_struct *pDM_Odm, enum RT_SPINLOCK_TYPE type)
 119{
 120}
 121
 122/*  Work item relative API. FOr MP driver only~! */
 123void ODM_InitializeWorkItem(struct odm_dm_struct *pDM_Odm, void *pRtWorkItem,
 124                            RT_WORKITEM_CALL_BACK RtWorkItemCallback,
 125                            void *pContext, const char *szID)
 126{
 127}
 128
 129void ODM_StartWorkItem(void *pRtWorkItem)
 130{
 131}
 132
 133void ODM_StopWorkItem(void *pRtWorkItem)
 134{
 135}
 136
 137void ODM_FreeWorkItem(void *pRtWorkItem)
 138{
 139}
 140
 141void ODM_ScheduleWorkItem(void *pRtWorkItem)
 142{
 143}
 144
 145void ODM_IsWorkItemScheduled(void *pRtWorkItem)
 146{
 147}
 148
 149/*  ODM Timer relative API. */
 150void ODM_StallExecution(u32 usDelay)
 151{
 152        rtw_udelay_os(usDelay);
 153}
 154
 155void ODM_delay_ms(u32 ms)
 156{
 157        rtw_mdelay_os(ms);
 158}
 159
 160void ODM_delay_us(u32 us)
 161{
 162        rtw_udelay_os(us);
 163}
 164
 165void ODM_sleep_ms(u32 ms)
 166{
 167        rtw_msleep_os(ms);
 168}
 169
 170void ODM_sleep_us(u32 us)
 171{
 172        rtw_usleep_os(us);
 173}
 174
 175void ODM_SetTimer(struct odm_dm_struct *pDM_Odm, struct timer_list *pTimer, u32 msDelay)
 176{
 177        _set_timer(pTimer, msDelay); /* ms */
 178}
 179
 180void ODM_InitializeTimer(struct odm_dm_struct *pDM_Odm, struct timer_list *pTimer,
 181                         void *CallBackFunc, void *pContext,
 182                         const char *szID)
 183{
 184        struct adapter *Adapter = pDM_Odm->Adapter;
 185        _init_timer(pTimer, Adapter->pnetdev, CallBackFunc, pDM_Odm);
 186}
 187
 188void ODM_CancelTimer(struct odm_dm_struct *pDM_Odm, struct timer_list *pTimer)
 189{
 190        _cancel_timer_ex(pTimer);
 191}
 192
 193void ODM_ReleaseTimer(struct odm_dm_struct *pDM_Odm, struct timer_list *pTimer)
 194{
 195}
 196
 197/*  ODM FW relative API. */
 198u32 ODM_FillH2CCmd(u8 *pH2CBuffer, u32 H2CBufferLen, u32 CmdNum,
 199                      u32 *pElementID, u32 *pCmdLen,
 200                      u8 **pCmbBuffer, u8 *CmdStartSeq)
 201{
 202        return  true;
 203}
 204