linux/drivers/staging/r8188eu/hal/odm_interface.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2/* Copyright(c) 2007 - 2011 Realtek Corporation. */
   3
   4#include "../include/odm_precomp.h"
   5/*  ODM IO Relative API. */
   6
   7u8 ODM_Read1Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr)
   8{
   9        struct adapter *Adapter = pDM_Odm->Adapter;
  10        return rtw_read8(Adapter, RegAddr);
  11}
  12
  13u16 ODM_Read2Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr)
  14{
  15        struct adapter *Adapter = pDM_Odm->Adapter;
  16        return rtw_read16(Adapter, RegAddr);
  17}
  18
  19u32 ODM_Read4Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr)
  20{
  21        struct adapter *Adapter = pDM_Odm->Adapter;
  22        return rtw_read32(Adapter, RegAddr);
  23}
  24
  25void ODM_Write1Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u8 Data)
  26{
  27        struct adapter *Adapter = pDM_Odm->Adapter;
  28        rtw_write8(Adapter, RegAddr, Data);
  29}
  30
  31void ODM_Write2Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u16 Data)
  32{
  33        struct adapter *Adapter = pDM_Odm->Adapter;
  34        rtw_write16(Adapter, RegAddr, Data);
  35}
  36
  37void ODM_Write4Byte(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 Data)
  38{
  39        struct adapter *Adapter = pDM_Odm->Adapter;
  40        rtw_write32(Adapter, RegAddr, Data);
  41}
  42
  43void ODM_SetMACReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask, u32 Data)
  44{
  45        struct adapter *Adapter = pDM_Odm->Adapter;
  46        PHY_SetBBReg(Adapter, RegAddr, BitMask, Data);
  47}
  48
  49u32 ODM_GetMACReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask)
  50{
  51        struct adapter *Adapter = pDM_Odm->Adapter;
  52        return PHY_QueryBBReg(Adapter, RegAddr, BitMask);
  53}
  54
  55void ODM_SetBBReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask, u32 Data)
  56{
  57        struct adapter *Adapter = pDM_Odm->Adapter;
  58        PHY_SetBBReg(Adapter, RegAddr, BitMask, Data);
  59}
  60
  61u32 ODM_GetBBReg(struct odm_dm_struct *pDM_Odm, u32 RegAddr, u32 BitMask)
  62{
  63        struct adapter *Adapter = pDM_Odm->Adapter;
  64        return PHY_QueryBBReg(Adapter, RegAddr, BitMask);
  65}
  66
  67void ODM_SetRFReg(struct odm_dm_struct *pDM_Odm, enum rf_radio_path     eRFPath, u32 RegAddr, u32 BitMask, u32 Data)
  68{
  69        struct adapter *Adapter = pDM_Odm->Adapter;
  70        PHY_SetRFReg(Adapter, (enum rf_radio_path)eRFPath, RegAddr, BitMask, Data);
  71}
  72
  73u32 ODM_GetRFReg(struct odm_dm_struct *pDM_Odm, enum rf_radio_path      eRFPath, u32 RegAddr, u32 BitMask)
  74{
  75        struct adapter *Adapter = pDM_Odm->Adapter;
  76        return PHY_QueryRFReg(Adapter, (enum rf_radio_path)eRFPath, RegAddr, BitMask);
  77}
  78
  79/*  ODM Memory relative API. */
  80void ODM_AllocateMemory(struct odm_dm_struct *pDM_Odm, void **pPtr, u32 length)
  81{
  82        *pPtr = vzalloc(length);
  83}
  84
  85/*  length could be ignored, used to detect memory leakage. */
  86void ODM_FreeMemory(struct odm_dm_struct *pDM_Odm, void *pPtr, u32 length)
  87{
  88        vfree(pPtr);
  89}
  90
  91s32 ODM_CompareMemory(struct odm_dm_struct *pDM_Odm, void *pBuf1, void *pBuf2, u32 length)
  92{
  93        return !memcmp(pBuf1, pBuf2, length);
  94}
  95
  96/*  ODM MISC relative API. */
  97void ODM_AcquireSpinLock(struct odm_dm_struct *pDM_Odm, enum RT_SPINLOCK_TYPE type)
  98{
  99}
 100
 101void ODM_ReleaseSpinLock(struct odm_dm_struct *pDM_Odm, enum RT_SPINLOCK_TYPE type)
 102{
 103}
 104
 105/*  Work item relative API. FOr MP driver only~! */
 106void ODM_InitializeWorkItem(struct odm_dm_struct *pDM_Odm, void *pRtWorkItem,
 107                            RT_WORKITEM_CALL_BACK RtWorkItemCallback,
 108                            void *pContext, const char *szID)
 109{
 110}
 111
 112void ODM_StartWorkItem(void *pRtWorkItem)
 113{
 114}
 115
 116void ODM_StopWorkItem(void *pRtWorkItem)
 117{
 118}
 119
 120void ODM_FreeWorkItem(void *pRtWorkItem)
 121{
 122}
 123
 124void ODM_ScheduleWorkItem(void *pRtWorkItem)
 125{
 126}
 127
 128void ODM_IsWorkItemScheduled(void *pRtWorkItem)
 129{
 130}
 131
 132/*  ODM Timer relative API. */
 133void ODM_StallExecution(u32 usDelay)
 134{
 135        udelay(usDelay);
 136}
 137
 138void ODM_delay_ms(u32 ms)
 139{
 140        mdelay(ms);
 141}
 142
 143void ODM_delay_us(u32 us)
 144{
 145        udelay(us);
 146}
 147
 148void ODM_sleep_ms(u32 ms)
 149{
 150        msleep(ms);
 151}
 152
 153void ODM_sleep_us(u32 us)
 154{
 155        rtw_usleep_os(us);
 156}
 157
 158void ODM_SetTimer(struct odm_dm_struct *pDM_Odm, struct timer_list *pTimer, u32 msDelay)
 159{
 160        _set_timer(pTimer, msDelay); /* ms */
 161}
 162
 163void ODM_CancelTimer(struct odm_dm_struct *pDM_Odm, struct timer_list *pTimer)
 164{
 165        _cancel_timer_ex(pTimer);
 166}
 167
 168void ODM_ReleaseTimer(struct odm_dm_struct *pDM_Odm, struct timer_list *pTimer)
 169{
 170}
 171
 172/*  ODM FW relative API. */
 173u32 ODM_FillH2CCmd(u8 *pH2CBuffer, u32 H2CBufferLen, u32 CmdNum,
 174                      u32 *pElementID, u32 *pCmdLen,
 175                      u8 **pCmbBuffer, u8 *CmdStartSeq)
 176{
 177        return  true;
 178}
 179