OSDN Git Service

Make certain that if, for, while, do, and switch have a space before an open paren
[android-x86/external-modules-rtl8723au.git] / 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 //============================================================
22 // include files
23 //============================================================
24
25 #include "odm_precomp.h"
26 //
27 // ODM IO Relative API.
28 //
29
30 u1Byte
31 ODM_Read1Byte(
32         IN      PDM_ODM_T               pDM_Odm,
33         IN      u4Byte                  RegAddr
34         )
35 {
36 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
37         prtl8192cd_priv priv    = pDM_Odm->priv;
38         return  RTL_R8(RegAddr);
39 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
40         PADAPTER                Adapter = pDM_Odm->Adapter;
41         return rtw_read8(Adapter,RegAddr);
42 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
43         PADAPTER                Adapter = pDM_Odm->Adapter;
44         return  PlatformEFIORead1Byte(Adapter, RegAddr);
45 #endif
46
47 }
48
49
50 u2Byte
51 ODM_Read2Byte(
52         IN      PDM_ODM_T               pDM_Odm,
53         IN      u4Byte                  RegAddr
54         )
55 {
56 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
57         prtl8192cd_priv priv    = pDM_Odm->priv;
58         return  RTL_R16(RegAddr);
59 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
60         PADAPTER                Adapter = pDM_Odm->Adapter;
61         return rtw_read16(Adapter,RegAddr);
62 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
63         PADAPTER                Adapter = pDM_Odm->Adapter;
64         return  PlatformEFIORead2Byte(Adapter, RegAddr);
65 #endif
66
67 }
68
69
70 u4Byte
71 ODM_Read4Byte(
72         IN      PDM_ODM_T               pDM_Odm,
73         IN      u4Byte                  RegAddr
74         )
75 {
76 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
77         prtl8192cd_priv priv    = pDM_Odm->priv;
78         return  RTL_R32(RegAddr);
79 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
80         PADAPTER                Adapter = pDM_Odm->Adapter;
81         return rtw_read32(Adapter,RegAddr);
82 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
83         PADAPTER                Adapter = pDM_Odm->Adapter;
84         return  PlatformEFIORead4Byte(Adapter, RegAddr);
85 #endif
86
87 }
88
89
90 void
91 ODM_Write1Byte(
92         IN      PDM_ODM_T               pDM_Odm,
93         IN      u4Byte                  RegAddr,
94         IN      u1Byte                  Data
95         )
96 {
97 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
98         prtl8192cd_priv priv    = pDM_Odm->priv;
99         RTL_W8(RegAddr, Data);
100 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
101         PADAPTER                Adapter = pDM_Odm->Adapter;
102         rtw_write8(Adapter,RegAddr, Data);
103 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
104         PADAPTER                Adapter = pDM_Odm->Adapter;
105         PlatformEFIOWrite1Byte(Adapter, RegAddr, Data);
106 #endif
107
108 }
109
110
111 void
112 ODM_Write2Byte(
113         IN      PDM_ODM_T               pDM_Odm,
114         IN      u4Byte                  RegAddr,
115         IN      u2Byte                  Data
116         )
117 {
118 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
119         prtl8192cd_priv priv    = pDM_Odm->priv;
120         RTL_W16(RegAddr, Data);
121 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
122         PADAPTER                Adapter = pDM_Odm->Adapter;
123         rtw_write16(Adapter,RegAddr, Data);
124 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
125         PADAPTER                Adapter = pDM_Odm->Adapter;
126         PlatformEFIOWrite2Byte(Adapter, RegAddr, Data);
127 #endif
128
129 }
130
131
132 void
133 ODM_Write4Byte(
134         IN      PDM_ODM_T               pDM_Odm,
135         IN      u4Byte                  RegAddr,
136         IN      u4Byte                  Data
137         )
138 {
139 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
140         prtl8192cd_priv priv    = pDM_Odm->priv;
141         RTL_W32(RegAddr, Data);
142 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
143         PADAPTER                Adapter = pDM_Odm->Adapter;
144         rtw_write32(Adapter,RegAddr, Data);
145 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
146         PADAPTER                Adapter = pDM_Odm->Adapter;
147         PlatformEFIOWrite4Byte(Adapter, RegAddr, Data);
148 #endif
149
150 }
151
152
153 void
154 ODM_SetMACReg(
155         IN      PDM_ODM_T       pDM_Odm,
156         IN      u4Byte          RegAddr,
157         IN      u4Byte          BitMask,
158         IN      u4Byte          Data
159         )
160 {
161 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
162         PHY_SetBBReg(pDM_Odm->priv, RegAddr, BitMask, Data);
163 #elif (DM_ODM_SUPPORT_TYPE & (ODM_CE|ODM_MP))
164         PADAPTER                Adapter = pDM_Odm->Adapter;
165         PHY_SetBBReg(Adapter, RegAddr, BitMask, Data);
166 #endif
167 }
168
169
170 u4Byte
171 ODM_GetMACReg(
172         IN      PDM_ODM_T       pDM_Odm,
173         IN      u4Byte          RegAddr,
174         IN      u4Byte          BitMask
175         )
176 {
177 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
178         return PHY_QueryBBReg(pDM_Odm->priv, RegAddr, BitMask);
179 #elif (DM_ODM_SUPPORT_TYPE & (ODM_CE|ODM_MP))
180         PADAPTER                Adapter = pDM_Odm->Adapter;
181         return PHY_QueryBBReg(Adapter, RegAddr, BitMask);
182 #endif
183 }
184
185
186 void
187 ODM_SetBBReg(
188         IN      PDM_ODM_T       pDM_Odm,
189         IN      u4Byte          RegAddr,
190         IN      u4Byte          BitMask,
191         IN      u4Byte          Data
192         )
193 {
194 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
195         PHY_SetBBReg(pDM_Odm->priv, RegAddr, BitMask, Data);
196 #elif (DM_ODM_SUPPORT_TYPE & (ODM_CE|ODM_MP))
197         PADAPTER                Adapter = pDM_Odm->Adapter;
198         PHY_SetBBReg(Adapter, RegAddr, BitMask, Data);
199 #endif
200 }
201
202
203 u4Byte
204 ODM_GetBBReg(
205         IN      PDM_ODM_T       pDM_Odm,
206         IN      u4Byte          RegAddr,
207         IN      u4Byte          BitMask
208         )
209 {
210 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
211         return PHY_QueryBBReg(pDM_Odm->priv, RegAddr, BitMask);
212 #elif (DM_ODM_SUPPORT_TYPE & (ODM_CE|ODM_MP))
213         PADAPTER                Adapter = pDM_Odm->Adapter;
214         return PHY_QueryBBReg(Adapter, RegAddr, BitMask);
215 #endif
216 }
217
218
219 void
220 ODM_SetRFReg(
221         IN      PDM_ODM_T                       pDM_Odm,
222         IN      ODM_RF_RADIO_PATH_E     eRFPath,
223         IN      u4Byte                          RegAddr,
224         IN      u4Byte                          BitMask,
225         IN      u4Byte                          Data
226         )
227 {
228 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
229         PHY_SetRFReg(pDM_Odm->priv, eRFPath, RegAddr, BitMask, Data);
230 #elif (DM_ODM_SUPPORT_TYPE & (ODM_CE|ODM_MP))
231         PADAPTER                Adapter = pDM_Odm->Adapter;
232         PHY_SetRFReg(Adapter, eRFPath, RegAddr, BitMask, Data);
233 #endif
234 }
235
236
237 u4Byte
238 ODM_GetRFReg(
239         IN      PDM_ODM_T                       pDM_Odm,
240         IN      ODM_RF_RADIO_PATH_E     eRFPath,
241         IN      u4Byte                          RegAddr,
242         IN      u4Byte                          BitMask
243         )
244 {
245 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
246         return PHY_QueryRFReg(pDM_Odm->priv, eRFPath, RegAddr, BitMask, 1);
247 #elif (DM_ODM_SUPPORT_TYPE & (ODM_CE|ODM_MP))
248         PADAPTER                Adapter = pDM_Odm->Adapter;
249         return PHY_QueryRFReg(Adapter, eRFPath, RegAddr, BitMask);
250 #endif
251 }
252
253
254
255
256 //
257 // ODM Memory relative API.
258 //
259 void
260 ODM_AllocateMemory(
261         IN      PDM_ODM_T       pDM_Odm,
262         OUT     void *          *pPtr,
263         IN      u4Byte          length
264         )
265 {
266 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
267         *pPtr = kmalloc(length, GFP_ATOMIC);
268 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE )
269         *pPtr = rtw_zvmalloc(length);
270 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
271         PADAPTER                Adapter = pDM_Odm->Adapter;
272         PlatformAllocateMemory(Adapter, pPtr, length);
273 #endif
274 }
275
276 // length could be ignored, used to detect memory leakage.
277 void
278 ODM_FreeMemory(
279         IN      PDM_ODM_T       pDM_Odm,
280         OUT     void *          pPtr,
281         IN      u4Byte          length
282         )
283 {
284 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
285         kfree(pPtr);
286 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE )
287         rtw_vmfree(pPtr, length);
288 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
289         //PADAPTER    Adapter = pDM_Odm->Adapter;
290         PlatformFreeMemory(pPtr, length);
291 #endif
292 }
293 s4Byte ODM_CompareMemory(
294         IN      PDM_ODM_T       pDM_Odm,
295         IN      void *           pBuf1,
296       IN        void *           pBuf2,
297       IN        u4Byte          length
298        )
299 {
300 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
301         return memcmp(pBuf1,pBuf2,length);
302 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE )
303         return _rtw_memcmp(pBuf1,pBuf2,length);
304 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
305         return PlatformCompareMemory(pBuf1,pBuf2,length);
306 #endif
307 }
308
309
310
311 //
312 // ODM MISC relative API.
313 //
314 void
315 ODM_AcquireSpinLock(
316         IN      PDM_ODM_T                       pDM_Odm,
317         IN      RT_SPINLOCK_TYPE        type
318         )
319 {
320 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
321
322 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE )
323
324 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
325         PADAPTER                Adapter = pDM_Odm->Adapter;
326         PlatformAcquireSpinLock(Adapter, type);
327 #endif
328 }
329 void
330 ODM_ReleaseSpinLock(
331         IN      PDM_ODM_T                       pDM_Odm,
332         IN      RT_SPINLOCK_TYPE        type
333         )
334 {
335 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
336
337 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE )
338
339 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
340         PADAPTER                Adapter = pDM_Odm->Adapter;
341         PlatformReleaseSpinLock(Adapter, type);
342 #endif
343 }
344
345 //
346 // Work item relative API. FOr MP driver only~!
347 //
348 void
349 ODM_InitializeWorkItem(
350         IN      PDM_ODM_T                                       pDM_Odm,
351         IN      PRT_WORK_ITEM                           pRtWorkItem,
352         IN      RT_WORKITEM_CALL_BACK           RtWorkItemCallback,
353         IN      void *                                          pContext,
354         IN      const char*                                     szID
355         )
356 {
357 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
358
359 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
360
361 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
362         PADAPTER                Adapter = pDM_Odm->Adapter;
363         PlatformInitializeWorkItem(Adapter, pRtWorkItem, RtWorkItemCallback, pContext, szID);
364 #endif
365 }
366
367
368 void
369 ODM_StartWorkItem(
370         IN      PRT_WORK_ITEM   pRtWorkItem
371         )
372 {
373 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
374
375 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
376
377 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
378         PlatformStartWorkItem(pRtWorkItem);
379 #endif
380 }
381
382
383 void
384 ODM_StopWorkItem(
385         IN      PRT_WORK_ITEM   pRtWorkItem
386         )
387 {
388 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
389
390 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
391
392 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
393         PlatformStopWorkItem(pRtWorkItem);
394 #endif
395 }
396
397
398 void
399 ODM_FreeWorkItem(
400         IN      PRT_WORK_ITEM   pRtWorkItem
401         )
402 {
403 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
404
405 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
406
407 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
408         PlatformFreeWorkItem(pRtWorkItem);
409 #endif
410 }
411
412
413 void
414 ODM_ScheduleWorkItem(
415         IN      PRT_WORK_ITEM   pRtWorkItem
416         )
417 {
418 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
419
420 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
421
422 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
423         PlatformScheduleWorkItem(pRtWorkItem);
424 #endif
425 }
426
427
428 void
429 ODM_IsWorkItemScheduled(
430         IN      PRT_WORK_ITEM   pRtWorkItem
431         )
432 {
433 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
434
435 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
436
437 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
438         PlatformIsWorkItemScheduled(pRtWorkItem);
439 #endif
440 }
441
442
443
444 //
445 // ODM Timer relative API.
446 //
447 void
448 ODM_StallExecution(
449         IN      u4Byte  usDelay
450         )
451 {
452 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
453
454 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
455         rtw_udelay_os(usDelay);
456 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
457         PlatformStallExecution(usDelay);
458 #endif
459 }
460
461 void
462 ODM_delay_ms(IN u4Byte  ms)
463 {
464 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
465         delay_ms(ms);
466 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
467         rtw_mdelay_os(ms);
468 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
469         delay_ms(ms);
470 #endif
471 }
472
473 void
474 ODM_delay_us(IN u4Byte  us)
475 {
476 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
477         delay_us(us);
478 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
479         rtw_udelay_os(us);
480 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
481         PlatformStallExecution(us);
482 #endif
483 }
484
485 void
486 ODM_sleep_ms(IN u4Byte  ms)
487 {
488 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
489
490 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
491         rtw_msleep_os(ms);
492 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
493 #endif
494 }
495
496 void
497 ODM_sleep_us(IN u4Byte  us)
498 {
499 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
500
501 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
502         rtw_usleep_os(us);
503 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
504 #endif
505 }
506
507 void
508 ODM_SetTimer(
509         IN      PDM_ODM_T               pDM_Odm,
510         IN      PRT_TIMER               pTimer,
511         IN      u4Byte                  msDelay
512         )
513 {
514 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
515         mod_timer(pTimer, jiffies + (msDelay+9)/10);
516 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
517         _set_timer(pTimer,msDelay ); //ms
518 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
519         PADAPTER                Adapter = pDM_Odm->Adapter;
520         PlatformSetTimer(Adapter, pTimer, msDelay);
521 #endif
522
523 }
524
525 void
526 ODM_InitializeTimer(
527         IN      PDM_ODM_T                       pDM_Odm,
528         IN      PRT_TIMER                       pTimer,
529         IN      RT_TIMER_CALL_BACK      CallBackFunc,
530         IN      void *                          pContext,
531         IN      const char*                     szID
532         )
533 {
534 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
535         pTimer->function = CallBackFunc;
536         pTimer->data = (unsigned long)pDM_Odm;
537         init_timer(pTimer);
538 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
539         PADAPTER Adapter = pDM_Odm->Adapter;
540         _init_timer(pTimer,Adapter->pnetdev,CallBackFunc,pDM_Odm);
541 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
542         PADAPTER Adapter = pDM_Odm->Adapter;
543         PlatformInitializeTimer(Adapter, pTimer, CallBackFunc,pContext,szID);
544 #endif
545 }
546
547
548 void
549 ODM_CancelTimer(
550         IN      PDM_ODM_T               pDM_Odm,
551         IN      PRT_TIMER               pTimer
552         )
553 {
554 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
555         del_timer_sync(pTimer);
556 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
557         _cancel_timer_ex(pTimer);
558 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
559         PADAPTER Adapter = pDM_Odm->Adapter;
560         PlatformCancelTimer(Adapter, pTimer);
561 #endif
562 }
563
564
565 void
566 ODM_ReleaseTimer(
567         IN      PDM_ODM_T               pDM_Odm,
568         IN      PRT_TIMER               pTimer
569         )
570 {
571 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
572
573 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
574
575 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
576
577         PADAPTER Adapter = pDM_Odm->Adapter;
578
579     // <20120301, Kordan> If the initilization fails, InitializeAdapterXxx will return regardless of InitHalDm.
580     // Hence, uninitialized timers cause BSOD when the driver releases resources since the init fail.
581     if (pTimer == 0)
582     {
583         ODM_RT_TRACE(pDM_Odm, ODM_COMP_INIT, ODM_DBG_SERIOUS, ("=====>ODM_ReleaseTimer(), The timer is NULL! Please check it!\n"));
584         return;
585     }
586
587         PlatformReleaseTimer(Adapter, pTimer);
588 #endif
589 }
590
591
592 //
593 // ODM FW relative API.
594 //
595 #if (DM_ODM_SUPPORT_TYPE & ODM_MP)
596 void
597 ODM_FillH2CCmd(
598         IN      PADAPTER                Adapter,
599         IN      u1Byte  ElementID,
600         IN      u4Byte  CmdLen,
601         IN      pu1Byte pCmdBuffer
602 )
603 {
604         if (IS_HARDWARE_TYPE_JAGUAR(Adapter))
605         {
606                 switch (ElementID)
607                 {
608                 case ODM_H2C_RSSI_REPORT:
609                         FillH2CCmd8812(Adapter, H2C_8812_RSSI_REPORT, CmdLen, pCmdBuffer);
610                 default:
611                         break;
612                 }
613
614         }
615         else if (IS_HARDWARE_TYPE_8188E(Adapter))
616         {
617                 switch (ElementID)
618                 {
619                 case ODM_H2C_PSD_RESULT:
620                         FillH2CCmd88E(Adapter, H2C_88E_PSD_RESULT, CmdLen, pCmdBuffer);
621                 default:
622                         break;
623                 }
624         }
625         else
626         {
627                 switch (ElementID)
628                 {
629                 case ODM_H2C_RSSI_REPORT:
630                         FillH2CCmd92C(Adapter, H2C_RSSI_REPORT, CmdLen, pCmdBuffer);
631                 case ODM_H2C_PSD_RESULT:
632                         FillH2CCmd92C(Adapter, H2C_92C_PSD_RESULT, CmdLen, pCmdBuffer);
633                 default:
634                         break;
635                 }
636         }
637 }
638 #else
639 u4Byte
640 ODM_FillH2CCmd(
641         IN      pu1Byte         pH2CBuffer,
642         IN      u4Byte          H2CBufferLen,
643         IN      u4Byte          CmdNum,
644         IN      pu4Byte         pElementID,
645         IN      pu4Byte         pCmdLen,
646         IN      pu1Byte*                pCmbBuffer,
647         IN      pu1Byte         CmdStartSeq
648         )
649 {
650 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
651
652 #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
653
654 #elif (DM_ODM_SUPPORT_TYPE & ODM_MP)
655         //FillH2CCmd(pH2CBuffer, H2CBufferLen, CmdNum, pElementID, pCmdLen, pCmbBuffer, CmdStartSeq);
656         return  false;
657 #endif
658
659         return  true;
660 }
661 #endif