• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 Huawei Device Co., Ltd.
3  *
4  * HDF is dual licensed: you can use it either under the terms of
5  * the GPL, or the BSD license, at your option.
6  * See the LICENSE file in the root of this repository for complete details.
7  */
8 
9 #include "hdf_audio_driver_test.h"
10 #include "hdf_log.h"
11 #include "hi3516_aiao_impl_test.h"
12 #include "hi3516_codec_impl_test.h"
13 #include "hi3516_codec_ops_test.h"
14 #include "hi3516_dai_ops_test.h"
15 #include "hi3516_dma_ops_test.h"
16 
17 #define HDF_LOG_TAG hdf_hi3516_audio_driver_test
18 
19 static HdfTestCaseList g_hdfHi3516DirverTestCaseList[] = {
20     {AUDIO_DRIVER_TESTDAIDEVICEINIT, TestDaiDeviceInit},
21     {AUDIO_DRIVER_TESTDAISTARTUP, TestDaiStartup},
22     {AUDIO_DRIVER_TESTDAIHWPARAMS, TestDaiHwParams},
23     {AUDIO_DRIVER_TESTDAI_TRIGGER, TestDaiTrigger},
24 
25     {AUDIO_DRIVER_TESTCODECHALSYSINIT, TestCodecHalSysInit},
26     {AUDIO_DRIVER_TESTACODECREGBITSREAD, TestCodecRegBitsRead},
27     {AUDIO_DRIVER_TESTCODECREGBITSUPDATE, TestCodecRegBitsUpdate},
28     {AUDIO_DRIVER_TESTCODECREGDEFAULTINIT, TestCodecRegDefaultInit},
29     {AUDIO_DRIVER_TESTCODECSETADCTUNEENABLE, TestCodecSetAdcTuneEnable},
30     {AUDIO_DRIVER_TESTCODECDAIPARAMSUPDATE, TestCodecDaiParamsUpdate},
31     {AUDIO_DRIVER_TESTAUDIOCODECAIAOSETCTRLOPS, TestAudioCodecAiaoSetCtrlOps},
32     {AUDIO_DRIVER_TESTAUDIOCODECAIAOGETCTRLOPS, TestAudioCodecAiaoGetCtrlOps},
33 
34     {AUDIO_DRIVER_TESTCODECDEVICEINIT, TestCodecDeviceInit},
35     {AUDIO_DRIVER_TESTCODECDAIDEVICEINIT, TestCodecDaiDeviceInit},
36     {AUDIO_DRIVER_TESTCODECDAIHWPARAMS, TestCodecDaiHwParams},
37     {AUDIO_DRIVER_TESTCODECDAISTARTUP, TestCodecDaiStartup},
38 
39     {AUDIO_DRIVER_TESTAIOPREGCFG, TestAiopRegCfg},
40     {AUDIO_DRIVER_TESTAIAOHALSYSINIT, TestAiaoHalSysInit},
41     {AUDIO_DRIVER_TESTAIAOCLOCKRESET, TestAiaoClockReset},
42     {AUDIO_DRIVER_TESTAIAOHALREADREG, TestAiaoHalReadReg},
43     {AUDIO_DRIVER_TESTAOPHALSETBUFFRPTR, TestAopHalSetBuffRptr},
44     {AUDIO_DRIVER_TESTAOPHALSETBUFFWPTR, TestAopHalSetBuffWptr},
45     {AUDIO_DRIVER_TESTAIPHALSETBUFFWPTR, TestAipHalSetBuffWptr},
46     {AUDIO_DRIVER_TESTAIPHALSETBUFFRPTR, TestAipHalSetBuffRptr},
47     {AUDIO_DRIVER_TESTAOPHALSETTXSTART, TestAopHalSetTxStart},
48     {AUDIO_DRIVER_TESTAIPHALSETRXSTART, TestAipHalSetRxStart},
49     {AUDIO_DRIVER_TESTAOPHALDEVENABLE, TestAopHalDevEnable},
50     {AUDIO_DRIVER_TESTAIAODEVICEINIT, TestAiaoDeviceInit},
51     {AUDIO_DRIVER_TESTAUDIOAOINIT, TestAudioAoInit},
52     {AUDIO_DRIVER_TESTAUDIOAIINIT, TestAudioAiInit},
53     {AUDIO_DRIVER_TESTAIAOSYSPINMUX, TestAiaoSysPinMux},
54     {AUDIO_DRIVER_TESTAIAOGETMCLK, TestAiaoGetMclk},
55     {AUDIO_DRIVER_TESTAIAOSETSYSCTLREGVALUE, TestAiaoSetSysCtlRegValue},
56 
57     {AUDIO_DRIVER_TESTAUDIODMADEVICEINIT, TestAudioDmaDeviceInit},
58     {AUDIO_DRIVER_TESTHI3516DMABUFALLOC, TestHi3516DmaBufAlloc},
59     {AUDIO_DRIVER_TESTHI3516DMABUFFREE, TestHi3516DmaBufFree},
60     {AUDIO_DRIVER_TESTHI3516DMAREQUESTCHANNEL, TestHi3516DmaRequestChannel},
61     {AUDIO_DRIVER_TESTHI3516DMACONFIGCHANNEL, TestHi3516DmaConfigChannel},
62     {AUDIO_DRIVER_TESTHI3516DMAPREP, TestHi3516DmaPrep},
63     {AUDIO_DRIVER_TESTHI3516DMASUBMIT, TestHi3516DmaSubmit},
64     {AUDIO_DRIVER_TESTHI3516DMAPENDING, TestHi3516DmaPending},
65     {AUDIO_DRIVER_TESTHI3516DMAPAUSE, TestHi3516DmaPause},
66     {AUDIO_DRIVER_TESTHI3516DMARESUME, TestHi3516DmaResume},
67     {AUDIO_DRIVER_TESTHI3516DMAPOINTER, TestHi3516DmaPointer},
68 };
69 
HdfAudioDriverEntry(HdfTestMsg * msg)70 int32_t HdfAudioDriverEntry(HdfTestMsg *msg)
71 {
72     int32_t result;
73     uint32_t i;
74 
75     if (msg == NULL) {
76         HDF_LOGE("%s is fail: HdfTestMsg is NULL!", __func__);
77         return HDF_SUCCESS;
78     }
79 
80     for (i = 0; i < sizeof(g_hdfHi3516DirverTestCaseList) / sizeof(g_hdfHi3516DirverTestCaseList[0]); ++i) {
81         if ((msg->subCmd == g_hdfHi3516DirverTestCaseList[i].subCmd) &&
82             (g_hdfHi3516DirverTestCaseList[i].testFunc != NULL)) {
83             result = g_hdfHi3516DirverTestCaseList[i].testFunc();
84             HDF_LOGE("HdfAudioDriverEntry::hi3516 driver test result[%s-%u]",
85                      ((result == 0) ? "pass" : "fail"), msg->subCmd);
86             msg->result = (result == 0) ? HDF_SUCCESS : HDF_FAILURE;
87             return HDF_SUCCESS;
88         }
89     }
90 
91     return HDF_SUCCESS;
92 }
93