]> git.karo-electronics.de Git - karo-tx-linux.git/blob - drivers/staging/rtl8188eu/hal/odm_interface.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux...
[karo-tx-linux.git] / drivers / staging / rtl8188eu / hal / odm_interface.c
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
24 u8 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
30 u16 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
36 u32 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
42 void 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
48 void 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
54 void 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
60 void 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
66 u32 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
72 void 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
78 u32 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
84 void 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
90 u32 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. */
97 void 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. */
103 void ODM_FreeMemory(struct odm_dm_struct *pDM_Odm, void *pPtr, u32 length)
104 {
105         rtw_vmfree(pPtr, length);
106 }
107
108 s32 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. */
114 void ODM_AcquireSpinLock(struct odm_dm_struct *pDM_Odm, enum RT_SPINLOCK_TYPE type)
115 {
116 }
117
118 void 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~! */
123 void 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
129 void ODM_StartWorkItem(void *pRtWorkItem)
130 {
131 }
132
133 void ODM_StopWorkItem(void *pRtWorkItem)
134 {
135 }
136
137 void ODM_FreeWorkItem(void *pRtWorkItem)
138 {
139 }
140
141 void ODM_ScheduleWorkItem(void *pRtWorkItem)
142 {
143 }
144
145 void ODM_IsWorkItemScheduled(void *pRtWorkItem)
146 {
147 }
148
149 /*  ODM Timer relative API. */
150 void ODM_StallExecution(u32 usDelay)
151 {
152         rtw_udelay_os(usDelay);
153 }
154
155 void ODM_delay_ms(u32 ms)
156 {
157         rtw_mdelay_os(ms);
158 }
159
160 void ODM_delay_us(u32 us)
161 {
162         rtw_udelay_os(us);
163 }
164
165 void ODM_sleep_ms(u32 ms)
166 {
167         rtw_msleep_os(ms);
168 }
169
170 void ODM_sleep_us(u32 us)
171 {
172         rtw_usleep_os(us);
173 }
174
175 void ODM_SetTimer(struct odm_dm_struct *pDM_Odm, struct timer_list *pTimer, u32 msDelay)
176 {
177         _set_timer(pTimer, msDelay); /* ms */
178 }
179
180 void 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
188 void ODM_CancelTimer(struct odm_dm_struct *pDM_Odm, struct timer_list *pTimer)
189 {
190         _cancel_timer_ex(pTimer);
191 }
192
193 void ODM_ReleaseTimer(struct odm_dm_struct *pDM_Odm, struct timer_list *pTimer)
194 {
195 }
196
197 /*  ODM FW relative API. */
198 u32 ODM_FillH2CCmd(u8 *pH2CBuffer, u32 H2CBufferLen, u32 CmdNum,
199                       u32 *pElementID, u32 *pCmdLen,
200                       u8 **pCmbBuffer, u8 *CmdStartSeq)
201 {
202         return  true;
203 }