From 25a43a6eaf2dcd8bdb9a48ff85e0ac14d19cd35b Mon Sep 17 00:00:00 2001 From: jone_haipeng Date: Thu, 4 Nov 2021 17:53:29 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90Audio=E3=80=91=E6=9B=B4=E6=96=B0Audio?= =?UTF-8?q?=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/audio/audio_codec_if.h | 3 +- include/audio/audio_dai_if.h | 2 +- .../common/include/audio_accessory_base.h | 1 + model/audio/common/include/audio_codec_base.h | 5 - model/audio/common/include/audio_dsp_base.h | 9 - model/audio/common/src/audio_accessory_base.c | 26 + model/audio/common/src/audio_codec_base.c | 43 -- model/audio/common/src/audio_dma_base.c | 1 + model/audio/common/src/audio_dsp_base.c | 316 +--------- model/audio/common/src/audio_platform_base.c | 31 +- .../common/audio_accessory_base_test.cpp | 100 +++ .../unittest/common/audio_codec_base_test.cpp | 71 +++ .../test/unittest/common/audio_common_test.h | 76 +++ .../unittest/common/audio_dai_base_test.cpp | 65 ++ .../unittest/common/audio_dma_base_test.cpp | 101 ++++ .../unittest/common/audio_dsp_base_test.cpp} | 21 +- .../common/audio_platform_base_test.cpp | 167 +++++ model/audio/core/include/audio_control.h | 11 +- model/audio/core/include/audio_core.h | 47 +- model/audio/core/include/audio_host.h | 12 - model/audio/core/include/audio_parse.h | 1 + model/audio/core/src/audio_core.c | 103 ++-- model/audio/core/src/audio_host.c | 4 +- model/audio/core/src/audio_parse.c | 2 + .../test/unittest/common/audio_common_test.h | 83 ++- .../test/unittest/common/audio_core_test.cpp | 154 +++-- .../test/unittest/common/audio_host_test.cpp | 8 +- .../test/unittest/common/audio_parse_test.cpp | 10 +- .../dispatch/include/audio_control_dispatch.h | 13 +- .../dispatch/include/audio_stream_dispatch.h | 54 +- .../dispatch/src/audio_control_dispatch.c | 2 +- .../dispatch/src/audio_stream_dispatch.c | 524 ++++++++++------ model/audio/sapm/include/audio_sapm.h | 40 -- model/audio/sapm/src/audio_sapm.c | 21 +- .../test/unittest/common/audio_sapm_test.cpp | 51 +- .../audio/include/audio_accessory_base_test.h | 38 ++ .../audio_codec_base_test.h} | 37 +- .../model/audio/include/audio_core_test.h | 55 +- .../model/audio/include/audio_dai_base_test.h | 31 + .../model/audio/include/audio_dma_base_test.h | 37 ++ ..._dispatch_test.h => audio_dsp_base_test.h} | 18 +- .../model/audio/include/audio_host_test.h | 4 +- .../model/audio/include/audio_parse_test.h | 3 +- .../audio/include/audio_platform_base_test.h | 48 ++ .../model/audio/include/audio_sapm_test.h | 16 +- .../model/audio/include/hdf_audio_test.h | 149 +++-- .../audio/src/audio_accessory_base_test.c | 149 +++++ .../model/audio/src/audio_codec_base_test.c | 94 +++ .../model/audio/src/audio_core_test.c | 571 ++++++++++++------ .../model/audio/src/audio_dai_base_test.c | 68 +++ .../model/audio/src/audio_dma_base_test.c | 171 ++++++ .../model/audio/src/audio_dsp_base_test.c | 65 ++ .../model/audio/src/audio_host_test.c | 50 +- .../model/audio/src/audio_parse_test.c | 36 +- .../audio/src/audio_platform_base_test.c | 403 ++++++++++++ .../model/audio/src/audio_sapm_test.c | 100 ++- .../unittest/model/audio/src/hdf_audio_test.c | 149 +++-- 57 files changed, 3232 insertions(+), 1238 deletions(-) create mode 100644 model/audio/common/test/unittest/common/audio_accessory_base_test.cpp create mode 100644 model/audio/common/test/unittest/common/audio_codec_base_test.cpp create mode 100644 model/audio/common/test/unittest/common/audio_common_test.h create mode 100644 model/audio/common/test/unittest/common/audio_dai_base_test.cpp create mode 100644 model/audio/common/test/unittest/common/audio_dma_base_test.cpp rename model/audio/{dispatch/test/unittest/common/audio_stream_dispatch_test.cpp => common/test/unittest/common/audio_dsp_base_test.cpp} (53%) mode change 100755 => 100644 create mode 100644 model/audio/common/test/unittest/common/audio_platform_base_test.cpp create mode 100644 test/unittest/model/audio/include/audio_accessory_base_test.h rename test/unittest/model/audio/{src/audio_stream_dispatch_test.c => include/audio_codec_base_test.h} (30%) mode change 100755 => 100644 create mode 100644 test/unittest/model/audio/include/audio_dai_base_test.h create mode 100644 test/unittest/model/audio/include/audio_dma_base_test.h rename test/unittest/model/audio/include/{audio_stream_dispatch_test.h => audio_dsp_base_test.h} (61%) mode change 100755 => 100644 create mode 100644 test/unittest/model/audio/include/audio_platform_base_test.h create mode 100644 test/unittest/model/audio/src/audio_accessory_base_test.c create mode 100644 test/unittest/model/audio/src/audio_codec_base_test.c create mode 100644 test/unittest/model/audio/src/audio_dai_base_test.c create mode 100644 test/unittest/model/audio/src/audio_dma_base_test.c create mode 100644 test/unittest/model/audio/src/audio_dsp_base_test.c create mode 100644 test/unittest/model/audio/src/audio_platform_base_test.c diff --git a/include/audio/audio_codec_if.h b/include/audio/audio_codec_if.h index d18d99da6..3f6aee0ca 100755 --- a/include/audio/audio_codec_if.h +++ b/include/audio/audio_codec_if.h @@ -56,8 +56,7 @@ struct CodecData { struct CodecHost { struct IDeviceIoService service; struct HdfDeviceObject *device; - unsigned long priv; - unsigned long aiaoPriv; + void *priv; }; enum AudioRegParams { diff --git a/include/audio/audio_dai_if.h b/include/audio/audio_dai_if.h index 603e938a5..a000c8a45 100755 --- a/include/audio/audio_dai_if.h +++ b/include/audio/audio_dai_if.h @@ -45,7 +45,7 @@ struct DaiData { struct AudioKcontrol *controls; int numControls; bool daiInitFlag; - uint32_t regDaiBase; + unsigned long regVirtualAddr; struct AudioRegCfgData *regConfig; struct AudioRegCfgGroupNode **regCfgGroup; struct OsalMutex mutex; diff --git a/model/audio/common/include/audio_accessory_base.h b/model/audio/common/include/audio_accessory_base.h index 76ccc892c..2ee01ed99 100755 --- a/model/audio/common/include/audio_accessory_base.h +++ b/model/audio/common/include/audio_accessory_base.h @@ -75,6 +75,7 @@ int32_t AccessoryDeviceCfgGet(struct AccessoryData *data, struct AccessoryTransf int32_t AccessoryDeviceCtrlRegInit(void); int32_t AccessoryDeviceRegRead(const struct AccessoryDevice *codec, uint32_t reg, uint32_t *value); int32_t AccessoryDeviceRegWrite(const struct AccessoryDevice *codec, uint32_t reg, uint32_t value); +int32_t AccessoryGetConfigInfo(const struct HdfDeviceObject *device, struct AccessoryData *accessoryData); #ifdef __cplusplus #if __cplusplus diff --git a/model/audio/common/include/audio_codec_base.h b/model/audio/common/include/audio_codec_base.h index 712a2b73e..c89ce90ad 100755 --- a/model/audio/common/include/audio_codec_base.h +++ b/model/audio/common/include/audio_codec_base.h @@ -19,17 +19,12 @@ extern "C" { #endif #endif /* __cplusplus */ -int32_t CodecDeviceReadReg(unsigned long virtualAddress, uint32_t reg, uint32_t *value); -int32_t CodecDeviceWriteReg(unsigned long virtualAddress, uint32_t reg, uint32_t value); int32_t CodecGetServiceName(const struct HdfDeviceObject *device, const char **drvCodecName); int32_t CodecGetDaiName(const struct HdfDeviceObject *device, const char **drvDaiName); int32_t CodecGetConfigInfo(const struct HdfDeviceObject *device, struct CodecData *codecData); int32_t CodecSetConfigInfo(struct CodecData *codeData, struct DaiData *daiData); int32_t CodecSetCtlFunc(struct CodecData *codeData, void *aiaoGetCtrl, void *aiaoSetCtrl); - -int32_t AccessoryGetConfigInfo(const struct HdfDeviceObject *device, struct AccessoryData *codecData); - #ifdef __cplusplus #if __cplusplus } diff --git a/model/audio/common/include/audio_dsp_base.h b/model/audio/common/include/audio_dsp_base.h index 535cffdd0..5cf402345 100644 --- a/model/audio/common/include/audio_dsp_base.h +++ b/model/audio/common/include/audio_dsp_base.h @@ -19,15 +19,6 @@ extern "C" { int32_t DspGetServiceName(const struct HdfDeviceObject *device, const char **drvDspName); int32_t DspGetDaiName(const struct HdfDeviceObject *device, const char **drvDaiName); -int32_t DspLinkDeviceInit(struct AudioCard *card, const struct DaiDevice *device); -int32_t DspDeviceInit(const struct DspDevice *device); -int32_t DspDeviceReadReg(const struct DspDevice *device, uint8_t *buf, uint32_t len); -int32_t DspDeviceWriteReg(const struct DspDevice *device, uint8_t *buf, uint32_t len); -int32_t DspLinkStartup(const struct AudioCard *card, const struct DaiDevice *device); -int32_t DspLinkHwParams(const struct AudioCard *card, const struct AudioPcmHwParams *param); -int32_t DspDecodeAudioStream(const struct AudioCard *card, const uint8_t *buf, const struct DspDevice *device); -int32_t DspEncodeAudioStream(const struct AudioCard *card, const uint8_t *buf, const struct DspDevice *device); -int32_t DspEqualizerActive(const struct AudioCard *card, const uint8_t *buf, const struct DspDevice *device); #ifdef __cplusplus #if __cplusplus diff --git a/model/audio/common/src/audio_accessory_base.c b/model/audio/common/src/audio_accessory_base.c index 0c02a7366..29e74532e 100755 --- a/model/audio/common/src/audio_accessory_base.c +++ b/model/audio/common/src/audio_accessory_base.c @@ -399,3 +399,29 @@ int32_t AccessoryDeviceRegWrite(const struct AccessoryDevice *codec, uint32_t re AUDIO_DRIVER_LOG_DEBUG("success"); return HDF_SUCCESS; } + +int32_t AccessoryGetConfigInfo(const struct HdfDeviceObject *device, struct AccessoryData *accessoryData) +{ + if (device == NULL) { + AUDIO_DRIVER_LOG_ERR("param is null!"); + return HDF_FAILURE; + } + + if (accessoryData->regConfig != NULL) { + ADM_LOG_ERR("g_codecData regConfig fail!"); + return HDF_FAILURE; + } + + accessoryData->regConfig = (struct AudioRegCfgData *)OsalMemCalloc(sizeof(*(accessoryData->regConfig))); + if (accessoryData->regConfig == NULL) { + ADM_LOG_ERR("malloc AudioRegCfgData fail!"); + return HDF_FAILURE; + } + + if (CodecGetRegConfig(device, accessoryData->regConfig) != HDF_SUCCESS) { + ADM_LOG_ERR("CodecGetRegConfig fail!"); + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} diff --git a/model/audio/common/src/audio_codec_base.c b/model/audio/common/src/audio_codec_base.c index 40626ab28..88f13a742 100755 --- a/model/audio/common/src/audio_codec_base.c +++ b/model/audio/common/src/audio_codec_base.c @@ -13,23 +13,6 @@ #define HDF_LOG_TAG audio_codec_base -int32_t CodecDeviceReadReg(unsigned long virtualAddress, uint32_t reg, uint32_t *val) -{ - if (val == NULL) { - AUDIO_DRIVER_LOG_ERR("param val is null."); - return HDF_FAILURE; - } - - *val = OSAL_READL((void *)((uintptr_t)(virtualAddress + reg))); - return HDF_SUCCESS; -} - -int32_t CodecDeviceWriteReg(unsigned long virtualAddress, uint32_t reg, uint32_t value) -{ - OSAL_WRITEL(value, (void *)((uintptr_t)(virtualAddress + reg))); - return HDF_SUCCESS; -} - int32_t CodecGetServiceName(const struct HdfDeviceObject *device, const char **drvCodecName) { const struct DeviceResourceNode *node = NULL; @@ -272,29 +255,3 @@ int32_t CodecSetCtlFunc(struct CodecData *codeData, void *aiaoGetCtrl, void *aia return HDF_SUCCESS; } - -int32_t AccessoryGetConfigInfo(const struct HdfDeviceObject *device, struct AccessoryData *codecData) -{ - if (device == NULL) { - AUDIO_DRIVER_LOG_ERR("param is null!"); - return HDF_FAILURE; - } - - if (codecData->regConfig != NULL) { - ADM_LOG_ERR("g_codecData regConfig fail!"); - return HDF_FAILURE; - } - - codecData->regConfig = (struct AudioRegCfgData *)OsalMemCalloc(sizeof(*(codecData->regConfig))); - if (codecData->regConfig == NULL) { - ADM_LOG_ERR("malloc AudioRegCfgData fail!"); - return HDF_FAILURE; - } - - if (CodecGetRegConfig(device, codecData->regConfig) != HDF_SUCCESS) { - ADM_LOG_ERR("CodecGetRegConfig fail!"); - return HDF_FAILURE; - } - - return HDF_SUCCESS; -} diff --git a/model/audio/common/src/audio_dma_base.c b/model/audio/common/src/audio_dma_base.c index a1e77af48..ece390d2e 100644 --- a/model/audio/common/src/audio_dma_base.c +++ b/model/audio/common/src/audio_dma_base.c @@ -5,6 +5,7 @@ * the GPL, or the BSD license, at your option. * See the LICENSE file in the root of this repository for complete details. */ + #include "audio_platform_if.h" int32_t AudioDmaBufAlloc(struct PlatformData *data, enum AudioStreamType streamType) diff --git a/model/audio/common/src/audio_dsp_base.c b/model/audio/common/src/audio_dsp_base.c index fb472fa87..fde2f9b06 100644 --- a/model/audio/common/src/audio_dsp_base.c +++ b/model/audio/common/src/audio_dsp_base.c @@ -6,290 +6,11 @@ * See the LICENSE file in the root of this repository for complete details. */ -#include "audio_accessory_base.h" -#include "audio_dsp_if.h" +#include "audio_dsp_base.h" #include "osal_io.h" -#include "spi_if.h" #include "audio_driver_log.h" -#define DEFAULT_SPEED 2000000 -#define BITS_PER_WORD_EIGHT 8 -#define DSP_CS_NUM 1 -#define DSP_SPI_BUS_NUM 1 - -enum DspI2sFormatRegVal { - I2S_SAMPLE_FORMAT_REG_VAL_MSB_24 = 0x2, /* MSB-justified data up to 24 bits */ - I2S_SAMPLE_FORMAT_REG_VAL_24 = 0x3, /* I2S data up to 24 bits */ - I2S_SAMPLE_FORMAT_REG_VAL_LSB_16 = 0x4, /* LSB-justified 16-bit data */ - I2S_SAMPLE_FORMAT_REG_VAL_LSB_18 = 0x5, /* LSB-justified 18-bit data */ - I2S_SAMPLE_FORMAT_REG_VAL_LSB_20 = 0x6, /* LSB-justified 20-bit data */ - I2S_SAMPLE_FORMAT_REG_VAL_LSB_24 = 0x7, /* LSB-justified 24-bit data */ -}; - -struct SpiDevInfo g_devInfo = { - .busNum = DSP_SPI_BUS_NUM, - .csNum = DSP_CS_NUM, -}; - -int32_t DspLinkStartup(const struct AudioCard *card, const struct DaiDevice *device) -{ - (void)card; - (void)device; - return HDF_SUCCESS; -} - -static int32_t DspCfgI2sFrequency(uint32_t rate, uint16_t *frequency) -{ - switch (rate) { - case I2S_SAMPLE_FREQUENCY_8000: - *frequency = I2S_SAMPLE_FREQUENCY_REG_VAL_8000; - break; - case I2S_SAMPLE_FREQUENCY_11025: - *frequency = I2S_SAMPLE_FREQUENCY_REG_VAL_11025; - break; - case I2S_SAMPLE_FREQUENCY_12000: - *frequency = I2S_SAMPLE_FREQUENCY_REG_VAL_12000; - break; - case I2S_SAMPLE_FREQUENCY_16000: - *frequency = I2S_SAMPLE_FREQUENCY_REG_VAL_16000; - break; - case I2S_SAMPLE_FREQUENCY_22050: - *frequency = I2S_SAMPLE_FREQUENCY_REG_VAL_22050; - break; - case I2S_SAMPLE_FREQUENCY_24000: - *frequency = I2S_SAMPLE_FREQUENCY_REG_VAL_24000; - break; - case I2S_SAMPLE_FREQUENCY_32000: - *frequency = I2S_SAMPLE_FREQUENCY_REG_VAL_32000; - break; - case I2S_SAMPLE_FREQUENCY_44100: - *frequency = I2S_SAMPLE_FREQUENCY_REG_VAL_44100; - break; - case I2S_SAMPLE_FREQUENCY_48000: - *frequency = I2S_SAMPLE_FREQUENCY_REG_VAL_48000; - break; - case I2S_SAMPLE_FREQUENCY_64000: - *frequency = I2S_SAMPLE_FREQUENCY_REG_VAL_64000; - break; - case I2S_SAMPLE_FREQUENCY_88200: - *frequency = I2S_SAMPLE_FREQUENCY_REG_VAL_88200; - break; - case I2S_SAMPLE_FREQUENCY_96000: - *frequency = I2S_SAMPLE_FREQUENCY_REG_VAL_96000; - break; - default: - AUDIO_DRIVER_LOG_ERR("rate: %d is not support.", rate); - return HDF_ERR_NOT_SUPPORT; - } - return HDF_SUCCESS; -} - -static int32_t DspSetI2sBitWidth(enum AudioFormat format, uint16_t *bitWidth) -{ - switch (format) { - case AUDIO_FORMAT_PCM_8_BIT: - *bitWidth = I2S_SAMPLE_FORMAT_REG_VAL_24; - break; - case AUDIO_FORMAT_PCM_16_BIT: - *bitWidth = I2S_SAMPLE_FORMAT_REG_VAL_24; - break; - case AUDIO_FORMAT_PCM_24_BIT: - *bitWidth = I2S_SAMPLE_FORMAT_REG_VAL_24; - break; - default: - AUDIO_DRIVER_LOG_ERR("format: %d is not support.", format); - return HDF_ERR_NOT_SUPPORT; - } - return HDF_SUCCESS; -} - -static int DspSetI2sFrequency(uint16_t frequencyVal) -{ - return HDF_SUCCESS; -} - -static int DspSetI2sFormat(uint16_t formatVal) -{ - return HDF_SUCCESS; -} - -int32_t DspLinkHwParams(const struct AudioCard *card, const struct AudioPcmHwParams *param) -{ - int ret; - uint16_t frequency, bitWidth; - (void)card; - - AUDIO_DRIVER_LOG_DEBUG("entry."); - if (param == NULL || param->cardServiceName == NULL) { - AUDIO_DRIVER_LOG_ERR("input param is nullptr."); - return HDF_ERR_INVALID_PARAM; - } - ret = DspCfgI2sFrequency(param->rate, &frequency); - if (ret != HDF_SUCCESS) { - AUDIO_DRIVER_LOG_ERR("RateToFrequency fail."); - return HDF_ERR_NOT_SUPPORT; - } - ret = DspSetI2sBitWidth(param->format, &bitWidth); - if (ret != HDF_SUCCESS) { - AUDIO_DRIVER_LOG_ERR("FormatToBitWidth fail."); - return HDF_ERR_NOT_SUPPORT; - } - ret = DspSetI2sFrequency(frequency); - if (ret != HDF_SUCCESS) { - AUDIO_DRIVER_LOG_ERR("SetDspI2sFs fail."); - return HDF_FAILURE; - } - ret = DspSetI2sFormat(bitWidth); - if (ret != HDF_SUCCESS) { - AUDIO_DRIVER_LOG_ERR("SetDspI2sFormat fail."); - return HDF_FAILURE; - } - AUDIO_DRIVER_LOG_DEBUG("DspLinkHwParams: channels = %d, rate = %d, periodSize = %d, \ - periodCount = %d, format = %d, cardServiceName = %s \n", - param->channels, param->rate, param->periodSize, - param->periodCount, (uint32_t)param->format, param->cardServiceName); - AUDIO_DRIVER_LOG_DEBUG("success."); - return HDF_SUCCESS; -} - -static int DspPowerEnable(void) -{ - return HDF_SUCCESS; -} - -static int DspGpioPinInit(void) -{ - return HDF_SUCCESS; -} - -static int DspI2cPinInit(void) -{ - return HDF_SUCCESS; -} - -static int DspI2sInit(void) -{ - return HDF_SUCCESS; -} - -static int DspI2cInit(void) -{ - return HDF_SUCCESS; -} - -/* not init dsp gpio */ -static int DspSpiPinInit(void) -{ - return HDF_FAILURE; -} - -int32_t DspDeviceInit(const struct DspDevice *device) -{ - DevHandle devHandle; - struct SpiCfg devCfg = { - .maxSpeedHz = DEFAULT_SPEED, - .mode = SPI_CLK_POLARITY, - .transferMode = SPI_DMA_TRANSFER, - .bitsPerWord = BITS_PER_WORD_EIGHT, - }; - - if (DspPowerEnable() != HDF_SUCCESS) { - AUDIO_DRIVER_LOG_ERR("DspPowerEnable: return Error!"); - return HDF_FAILURE; - } - - if (DspGpioPinInit() != HDF_SUCCESS) { - AUDIO_DRIVER_LOG_ERR("DspGpioPinInit: return Error!"); - return HDF_FAILURE; - } - - if (DspI2cPinInit() != HDF_SUCCESS) { - AUDIO_DRIVER_LOG_ERR("DspI2cPinInit: return Error!"); - return HDF_FAILURE; - } - - if (DspSpiPinInit() == HDF_SUCCESS) { - devHandle = SpiOpen(&g_devInfo); - if (devHandle == NULL) { - AUDIO_DRIVER_LOG_ERR("DspDeviceOpen: Spi failed!"); - return HDF_FAILURE; - } - - if (SpiSetCfg(devHandle, &devCfg) != HDF_SUCCESS) { - SpiClose(devHandle); - AUDIO_DRIVER_LOG_ERR("DspDeviceCfg: spi failed!"); - return HDF_FAILURE; - } - SpiClose(devHandle); - } else { - AUDIO_DRIVER_LOG_ERR("Dsp Gpio Pin: not init!"); - } - - if (DspI2cInit() != HDF_SUCCESS) { - return HDF_FAILURE; - } - - if (DspI2sInit() != HDF_SUCCESS) { - return HDF_FAILURE; - } - - return HDF_SUCCESS; -} - -int32_t DspDeviceReadReg(const struct DspDevice *device, uint8_t *buf, uint32_t len) -{ - int32_t ret; - - DevHandle devHandle = SpiOpen(&g_devInfo); - if (devHandle == NULL) { - AUDIO_DRIVER_LOG_ERR("DspDeviceOpen: Spi failed!"); - return HDF_FAILURE; - } - - ret = SpiRead(devHandle, buf, len); - if (ret != HDF_SUCCESS) { - AUDIO_DRIVER_LOG_ERR("DspDeviceRead: spi failed!"); - SpiClose(devHandle); - return HDF_FAILURE; - } - - SpiClose(devHandle); - - return HDF_SUCCESS; -} - -int32_t DspDeviceWriteReg(const struct DspDevice *device, uint8_t *buf, uint32_t len) -{ - int32_t ret; - - DevHandle devHandle = SpiOpen(&g_devInfo); - if (devHandle == NULL) { - AUDIO_DRIVER_LOG_ERR("DspDeviceOpen: Spi failed!"); - return HDF_FAILURE; - } - - ret = SpiWrite(devHandle, buf, len); - if (ret != HDF_SUCCESS) { - AUDIO_DRIVER_LOG_ERR("DspDeviceRead: spi failed!"); - SpiClose(devHandle); - return HDF_FAILURE; - } - - SpiClose(devHandle); - - return HDF_SUCCESS; -} - -int32_t DspLinkDeviceInit(struct AudioCard *card, const struct DaiDevice *device) -{ - if (device == NULL || device->devDaiName == NULL) { - AUDIO_DRIVER_LOG_ERR("input para is nullptr."); - return HDF_FAILURE; - } - AUDIO_DRIVER_LOG_DEBUG("dsp Link device name: %s\n", device->devDaiName); - (void)card; - return HDF_SUCCESS; -} +#define HDF_LOG_TAG audio_dsp_base int32_t DspGetServiceName(const struct HdfDeviceObject *device, const char **drvDspName) { @@ -297,7 +18,7 @@ int32_t DspGetServiceName(const struct HdfDeviceObject *device, const char **drv struct DeviceResourceIface *drsOps = NULL; int32_t ret; - if (device == NULL) { + if (device == NULL || drvDspName == NULL) { AUDIO_DRIVER_LOG_ERR("device is NULL."); return HDF_FAILURE; } @@ -328,7 +49,7 @@ int32_t DspGetDaiName(const struct HdfDeviceObject *device, const char **drvDaiN struct DeviceResourceIface *drsOps = NULL; int32_t ret; - if (device == NULL) { + if (device == NULL || drvDaiName == NULL) { AUDIO_DRIVER_LOG_ERR("input para is null pointer."); return HDF_FAILURE; } @@ -352,32 +73,3 @@ int32_t DspGetDaiName(const struct HdfDeviceObject *device, const char **drvDaiN return HDF_SUCCESS; } - - -int32_t DspDecodeAudioStream(const struct AudioCard *card, const uint8_t *buf, const struct DspDevice *device) -{ - (void)card; - (void)buf; - (void)device; - AUDIO_DRIVER_LOG_DEBUG("decode run!!!"); - return HDF_SUCCESS; -} - -int32_t DspEncodeAudioStream(const struct AudioCard *card, const uint8_t *buf, const struct DspDevice *device) -{ - (void)card; - (void)buf; - (void)device; - AUDIO_DRIVER_LOG_DEBUG("encode run!!!"); - return HDF_SUCCESS; -} - - -int32_t DspEqualizerActive(const struct AudioCard *card, const uint8_t *buf, const struct DspDevice *device) -{ - (void)card; - (void)buf; - (void)device; - AUDIO_DRIVER_LOG_DEBUG("equalizer run!!!"); - return HDF_SUCCESS; -} diff --git a/model/audio/common/src/audio_platform_base.c b/model/audio/common/src/audio_platform_base.c index ea0e242f2..2289917e8 100755 --- a/model/audio/common/src/audio_platform_base.c +++ b/model/audio/common/src/audio_platform_base.c @@ -426,7 +426,6 @@ static int32_t MmapWriteData(struct PlatformData *data, char *tmpBuf) if (data->renderBufInfo.trafBufSize > data->renderBufInfo.cirBufSize) { AUDIO_DRIVER_LOG_ERR("transferFrameSize is tool big."); - OsalMemFree(tmpBuf); return HDF_FAILURE; } @@ -435,7 +434,6 @@ static int32_t MmapWriteData(struct PlatformData *data, char *tmpBuf) data->renderBufInfo.trafBufSize); if (ret != EOK) { AUDIO_DRIVER_LOG_ERR("CopyFromUser failed."); - OsalMemFree(tmpBuf); return HDF_FAILURE; } @@ -443,10 +441,9 @@ static int32_t MmapWriteData(struct PlatformData *data, char *tmpBuf) tmpBuf, data->renderBufInfo.trafBufSize); if (ret != 0) { AUDIO_DRIVER_LOG_ERR("memcpy_s failed."); - OsalMemFree(tmpBuf); return HDF_FAILURE; } - + data->renderBufInfo.wptrOffSet = wPtr + data->renderBufInfo.trafBufSize; data->renderBufInfo.wbufOffSet += data->renderBufInfo.trafBufSize; data->renderBufInfo.framesPosition += data->renderBufInfo.trafBufSize / data->pcmInfo.frameSize; @@ -864,7 +861,7 @@ int32_t AudioRenderTrigger(struct AudioCard *card, int cmd) } switch (cmd) { - case AUDIO_DRV_PCM_IOCTRL_RENDER_START: + case AUDIO_DRV_PCM_IOCTL_RENDER_START: if (AudioDmaSubmit(data) != HDF_SUCCESS) { AUDIO_DRIVER_LOG_ERR("DmaPending fail."); return HDF_FAILURE; @@ -881,7 +878,7 @@ int32_t AudioRenderTrigger(struct AudioCard *card, int cmd) data->renderBufInfo.runStatus = PCM_START; break; - case AUDIO_DRV_PCM_IOCTRL_RENDER_STOP: + case AUDIO_DRV_PCM_IOCTL_RENDER_STOP: if (AudioDmaPause(data) != HDF_SUCCESS) { AUDIO_DRIVER_LOG_ERR("DmaPause fail."); return HDF_FAILURE; @@ -893,7 +890,7 @@ int32_t AudioRenderTrigger(struct AudioCard *card, int cmd) data->renderBufInfo.runStatus = PCM_STOP; break; - case AUDIO_DRV_PCM_IOCTRL_RENDER_PAUSE: + case AUDIO_DRV_PCM_IOCTL_RENDER_PAUSE: if (AudioDmaPause(data) != HDF_SUCCESS) { AUDIO_DRIVER_LOG_ERR("DmaPause fail."); return HDF_FAILURE; @@ -905,7 +902,7 @@ int32_t AudioRenderTrigger(struct AudioCard *card, int cmd) data->renderBufInfo.runStatus = PCM_PAUSE; break; - case AUDIO_DRV_PCM_IOCTRL_RENDER_RESUME: + case AUDIO_DRV_PCM_IOCTL_RENDER_RESUME: if (AudioDmaResume(data) != HDF_SUCCESS) { AUDIO_DRIVER_LOG_ERR("DmaPause fail."); return HDF_FAILURE; @@ -941,7 +938,7 @@ int32_t AudioCaptureTrigger(struct AudioCard *card, int cmd) } switch (cmd) { - case AUDIO_DRV_PCM_IOCTRL_CAPTURE_START: + case AUDIO_DRV_PCM_IOCTL_CAPTURE_START: if (AudioDmaSubmit(data) != HDF_SUCCESS) { AUDIO_DRIVER_LOG_ERR("DmaPending fail."); return HDF_FAILURE; @@ -957,7 +954,7 @@ int32_t AudioCaptureTrigger(struct AudioCard *card, int cmd) data->captureBufInfo.runStatus = PCM_START; break; - case AUDIO_DRV_PCM_IOCTRL_CAPTURE_STOP: + case AUDIO_DRV_PCM_IOCTL_CAPTURE_STOP: if (AudioDmaPause(data) != HDF_SUCCESS) { AUDIO_DRIVER_LOG_ERR("DmaPause fail."); return HDF_FAILURE; @@ -968,7 +965,7 @@ int32_t AudioCaptureTrigger(struct AudioCard *card, int cmd) } data->captureBufInfo.runStatus = PCM_STOP; break; - case AUDIO_DRV_PCM_IOCTRL_CAPTURE_PAUSE: + case AUDIO_DRV_PCM_IOCTL_CAPTURE_PAUSE: if (AudioDmaPause(data) != HDF_SUCCESS) { AUDIO_DRIVER_LOG_ERR("DmaPause fail."); return HDF_FAILURE; @@ -980,7 +977,7 @@ int32_t AudioCaptureTrigger(struct AudioCard *card, int cmd) data->captureBufInfo.runStatus = PCM_PAUSE; break; - case AUDIO_DRV_PCM_IOCTRL_CAPTURE_RESUME: + case AUDIO_DRV_PCM_IOCTL_CAPTURE_RESUME: if (AudioDmaResume(data) != HDF_SUCCESS) { AUDIO_DRIVER_LOG_ERR("DmaPause fail."); return HDF_FAILURE; @@ -1022,11 +1019,6 @@ int32_t AudioHwParams(const struct AudioCard *card, const struct AudioPcmHwParam return HDF_FAILURE; } - if (AudioDmaRequestChannel(platformData) != HDF_SUCCESS) { - AUDIO_DRIVER_LOG_ERR("Dma Request Channel fail."); - return HDF_FAILURE; - } - if (AudioFramatToBitWidth(param->format, &platformData->pcmInfo.bitWidth) != HDF_SUCCESS) { return HDF_FAILURE; } @@ -1034,6 +1026,11 @@ int32_t AudioHwParams(const struct AudioCard *card, const struct AudioPcmHwParam return HDF_FAILURE; } + if (AudioDmaRequestChannel(platformData) != HDF_SUCCESS) { + AUDIO_DRIVER_LOG_ERR("Dma Request Channel fail."); + return HDF_FAILURE; + } + if (param->streamType == AUDIO_RENDER_STREAM) { if (AudioSetRenderBufInfo(platformData, param) != HDF_SUCCESS) { return HDF_FAILURE; diff --git a/model/audio/common/test/unittest/common/audio_accessory_base_test.cpp b/model/audio/common/test/unittest/common/audio_accessory_base_test.cpp new file mode 100644 index 000000000..159dd09cd --- /dev/null +++ b/model/audio/common/test/unittest/common/audio_accessory_base_test.cpp @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * + * HDF is dual licensed: you can use it either under the terms of + * the GPL, or the BSD license, at your option. + * See the LICENSE file in the root of this repository for complete details. + */ + +#include "audio_common_test.h" +#include +#include "hdf_uhdf_test.h" + +using namespace testing::ext; +namespace { +class AudioAccessoryBaseTest : public testing::Test { +public: + static void SetUpTestCase(); + static void TearDownTestCase(); + void SetUp(); + void TearDown(); +}; + +void AudioAccessoryBaseTest::SetUpTestCase() +{ + HdfTestOpenService(); +} + +void AudioAccessoryBaseTest::TearDownTestCase() +{ + HdfTestCloseService(); +} + +void AudioAccessoryBaseTest::SetUp() +{ +} + +void AudioAccessoryBaseTest::TearDown() +{ +} + +HWTEST_F(AudioAccessoryBaseTest, AudioAccessoryBaseTest_I2cReadWrite, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTI2CREADWRITE, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioAccessoryBaseTest, AudioAccessoryBaseTest_RegBitsRead, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTREGBITSREAD, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioAccessoryBaseTest, AudioAccessoryBaseTest_RegBitsUpdate, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTREGBITSUPDATE, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioAccessoryBaseTest, AudioAccessoryBaseTest_DeviceFrequencyParse, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDEVICEFREQUENCYPARSE, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioAccessoryBaseTest, AudioAccessoryBaseTest_DaiParamsUpdate, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDAIPARAMSUPDATE, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioAccessoryBaseTest, AudioAccessoryBaseTest_DeviceCfgGet, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDEVICECFGGET, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioAccessoryBaseTest, AudioAccessoryBaseTest_DeviceCtrlRegInit, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDEVICECTRLREGINIT, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioAccessoryBaseTest, AudioAccessoryBaseTest_DeviceRegRead, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDEVICEREGREAD, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioAccessoryBaseTest, AudioAccessoryBaseTest_DeviceRegWrite, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDEVICEREGWRITE, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioAccessoryBaseTest, AudioAccessoryBaseTest_AccessoryGetConfigInfo, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTAGETCONFIGINFO, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} +} diff --git a/model/audio/common/test/unittest/common/audio_codec_base_test.cpp b/model/audio/common/test/unittest/common/audio_codec_base_test.cpp new file mode 100644 index 000000000..406d6d776 --- /dev/null +++ b/model/audio/common/test/unittest/common/audio_codec_base_test.cpp @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * + * HDF is dual licensed: you can use it either under the terms of + * the GPL, or the BSD license, at your option. + * See the LICENSE file in the root of this repository for complete details. + */ + +#include "audio_common_test.h" +#include +#include "hdf_uhdf_test.h" + +using namespace testing::ext; + +namespace { +class AudioCodecBaseTest : public testing::Test { +public: + static void SetUpTestCase(); + static void TearDownTestCase(); + void SetUp(); + void TearDown(); +}; + +void AudioCodecBaseTest::SetUpTestCase() +{ + HdfTestOpenService(); +} + +void AudioCodecBaseTest::TearDownTestCase() +{ + HdfTestCloseService(); +} + +void AudioCodecBaseTest::SetUp() +{ +} + +void AudioCodecBaseTest::TearDown() +{ +} + +HWTEST_F(AudioCodecBaseTest, AudioCodecBaseTest_GetServiceName, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTGETSERVICENAME, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioCodecBaseTest, AudioCodecBaseTest_GetDaiName, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTGETDAINAME, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioCodecBaseTest, AudioCodecBaseTest_GetConfigInfo, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTGETCONFIGINFO, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioCodecBaseTest, AudioCodecBaseTest_SetConfigInfo, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTSETCONFIGINFO, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioCodecBaseTest, AudioCodecBaseTest_SetCtlFunc, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTSETCTLFUNC, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} +} diff --git a/model/audio/common/test/unittest/common/audio_common_test.h b/model/audio/common/test/unittest/common/audio_common_test.h new file mode 100644 index 000000000..26bcd52cc --- /dev/null +++ b/model/audio/common/test/unittest/common/audio_common_test.h @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * + * HDF is dual licensed: you can use it either under the terms of + * the GPL, or the BSD license, at your option. + * See the LICENSE file in the root of this repository for complete details. + */ + +#ifndef AUDIO_COMMON_TEST_H +#define AUDIO_COMMON_TEST_H + +#include "hdf_types.h" + +const int32_t g_testAudioType = 701; // 701 is TEST_AUDIO_TYPE + +enum { + TESTI2CREADWRITE = 48, + TESTREGBITSREAD, + TESTREGBITSUPDATE, + TESTDEVICEFREQUENCYPARSE, + TESTDAIPARAMSUPDATE, + TESTDEVICECFGGET, + TESTDEVICECTRLREGINIT, + TESTDEVICEREGREAD, + TESTDEVICEREGWRITE, + TESTAGETCONFIGINFO, + + TESTGETSERVICENAME, + TESTGETDAINAME, + TESTGETCONFIGINFO, + TESTSETCONFIGINFO, + TESTSETCTLFUNC, + + TESTDAIDATAFROMCARD, + TESTDAIGETCONFIGINFO, + TESTDAICHECKSAMPLERATE, + TESTDAISETCONFIGINFO, + + TESTDMABUFALLOC, + TESTDMABUFFREE, + TESTDMAREQUESTCHANNEL, + TESTDMACONFIGCHANNEL, + TESTDMAPREP, + TESTDMASUBMIT, + TESTDMAPENDING, + TESTDMAPAUSE, + TESTDMARESUME, + TESTDMAPOINTER, + + TESTDSPGETSERVICENAME, + TESTDSPGETDAINAME, + + TESTDATAFROMCARD, + TESTBYTESTOFRAMES, + TESTDATABIGENDIANCHANGE, + TESTFRAMATTOBITWIDTH, + TESTSETPCMINFO, + TESTSETRENDERBUFINFO, + TESTSETCAPTUREBUFINFO, + TESTPCMWRITE, + TESTPCMREAD, + TESTPCMMMAPWRITE, + TESTPCMMMAPREAD, + TESTRENDEROPEN, + TESTCAPTUREOPEN, + TESTRENDERCLOSE, + TESTPCMPOINTER, + TESTCAPTURECLOSE, + TESTHWPARAMS, + TESTRENDERPREPARE, + TESTCAPTUREPREPARE, + TESTRENDERTRIGGER, + TESTCAPTURETRIGGER, +}; + +#endif /* AUDIO_COMMON_TEST_H */ diff --git a/model/audio/common/test/unittest/common/audio_dai_base_test.cpp b/model/audio/common/test/unittest/common/audio_dai_base_test.cpp new file mode 100644 index 000000000..d52654186 --- /dev/null +++ b/model/audio/common/test/unittest/common/audio_dai_base_test.cpp @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * + * HDF is dual licensed: you can use it either under the terms of + * the GPL, or the BSD license, at your option. + * See the LICENSE file in the root of this repository for complete details. + */ + +#include "audio_common_test.h" +#include +#include "hdf_uhdf_test.h" + +using namespace testing::ext; + +namespace { +class AudioDaiBaseTest : public testing::Test { +public: + static void SetUpTestCase(); + static void TearDownTestCase(); + void SetUp(); + void TearDown(); +}; + +void AudioDaiBaseTest::SetUpTestCase() +{ + HdfTestOpenService(); +} + +void AudioDaiBaseTest::TearDownTestCase() +{ + HdfTestCloseService(); +} + +void AudioDaiBaseTest::SetUp() +{ +} + +void AudioDaiBaseTest::TearDown() +{ +} + +HWTEST_F(AudioDaiBaseTest, AudioDaiBaseTest_DataFromCard, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDAIDATAFROMCARD, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioDaiBaseTest, AudioDaiBaseTest_GetConfigInfo, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDAIGETCONFIGINFO, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioDaiBaseTest, AudioDaiBaseTest_CheckSampleRate, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDAICHECKSAMPLERATE, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioDaiBaseTest, AudioDaiBaseTest_SetConfigInfo, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDAISETCONFIGINFO, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} +} diff --git a/model/audio/common/test/unittest/common/audio_dma_base_test.cpp b/model/audio/common/test/unittest/common/audio_dma_base_test.cpp new file mode 100644 index 000000000..1cfb5fc12 --- /dev/null +++ b/model/audio/common/test/unittest/common/audio_dma_base_test.cpp @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * + * HDF is dual licensed: you can use it either under the terms of + * the GPL, or the BSD license, at your option. + * See the LICENSE file in the root of this repository for complete details. + */ + +#include "audio_common_test.h" +#include +#include "hdf_uhdf_test.h" + +using namespace testing::ext; + +namespace { +class AudioDmaBaseTest : public testing::Test { +public: + static void SetUpTestCase(); + static void TearDownTestCase(); + void SetUp(); + void TearDown(); +}; + +void AudioDmaBaseTest::SetUpTestCase() +{ + HdfTestOpenService(); +} + +void AudioDmaBaseTest::TearDownTestCase() +{ + HdfTestCloseService(); +} + +void AudioDmaBaseTest::SetUp() +{ +} + +void AudioDmaBaseTest::TearDown() +{ +} + +HWTEST_F(AudioDmaBaseTest, AudioDmaBaseTest_DmaBufAlloc, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDMABUFALLOC, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioDmaBaseTest, AudioDmaBaseTest_DmaBufFree, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDMABUFFREE, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioDmaBaseTest, AudioDmaBaseTest_DmaRequestChannel, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDMAREQUESTCHANNEL, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioDmaBaseTest, AudioDmaBaseTest_DmaConfigChannel, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDMACONFIGCHANNEL, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioDmaBaseTest, AudioDmaBaseTest_DmaPrep, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDMAPREP, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioDmaBaseTest, AudioDmaBaseTest_DmaSubmit, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDMASUBMIT, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioDmaBaseTest, AudioDmaBaseTest_DmaPending, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDMAPENDING, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioDmaBaseTest, AudioDmaBaseTest_DmaPause, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDMAPAUSE, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioDmaBaseTest, AudioDmaBaseTest_DmaResume, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDMARESUME, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioDmaBaseTest, AudioDmaBaseTest_DmaPointer, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDMAPOINTER, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} +} diff --git a/model/audio/dispatch/test/unittest/common/audio_stream_dispatch_test.cpp b/model/audio/common/test/unittest/common/audio_dsp_base_test.cpp old mode 100755 new mode 100644 similarity index 53% rename from model/audio/dispatch/test/unittest/common/audio_stream_dispatch_test.cpp rename to model/audio/common/test/unittest/common/audio_dsp_base_test.cpp index 68b415642..253c23b6d --- a/model/audio/dispatch/test/unittest/common/audio_stream_dispatch_test.cpp +++ b/model/audio/common/test/unittest/common/audio_dsp_base_test.cpp @@ -11,8 +11,9 @@ #include "hdf_uhdf_test.h" using namespace testing::ext; + namespace { -class AudioStreamDispatchTest : public testing::Test { +class AudioDspBaseTest : public testing::Test { public: static void SetUpTestCase(); static void TearDownTestCase(); @@ -20,27 +21,33 @@ public: void TearDown(); }; -void AudioStreamDispatchTest::SetUpTestCase() +void AudioDspBaseTest::SetUpTestCase() { HdfTestOpenService(); } -void AudioStreamDispatchTest::TearDownTestCase() +void AudioDspBaseTest::TearDownTestCase() { HdfTestCloseService(); } -void AudioStreamDispatchTest::SetUp() +void AudioDspBaseTest::SetUp() { } -void AudioStreamDispatchTest::TearDown() +void AudioDspBaseTest::TearDown() { } -HWTEST_F(AudioStreamDispatchTest, AudioStreamDispatchTest001, TestSize.Level1) +HWTEST_F(AudioDspBaseTest, AudioDspBaseTest_DspGetServiceName, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDSPGETSERVICENAME, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioDspBaseTest, AudioDspBaseTest_DspGetDaiName, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTSTREAMDISPATCH, -1}; + struct HdfTestMsg msg = {g_testAudioType, TESTDSPGETDAINAME, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } } diff --git a/model/audio/common/test/unittest/common/audio_platform_base_test.cpp b/model/audio/common/test/unittest/common/audio_platform_base_test.cpp new file mode 100644 index 000000000..552423763 --- /dev/null +++ b/model/audio/common/test/unittest/common/audio_platform_base_test.cpp @@ -0,0 +1,167 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * + * HDF is dual licensed: you can use it either under the terms of + * the GPL, or the BSD license, at your option. + * See the LICENSE file in the root of this repository for complete details. + */ + +#include "audio_common_test.h" +#include +#include "hdf_uhdf_test.h" + +using namespace testing::ext; + +namespace { +class AudioPlatformBaseTest : public testing::Test { +public: + static void SetUpTestCase(); + static void TearDownTestCase(); + void SetUp(); + void TearDown(); +}; + +void AudioPlatformBaseTest::SetUpTestCase() +{ + HdfTestOpenService(); +} + +void AudioPlatformBaseTest::TearDownTestCase() +{ + HdfTestCloseService(); +} + +void AudioPlatformBaseTest::SetUp() +{ +} + +void AudioPlatformBaseTest::TearDown() +{ +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_PlatformDataFromCardTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDATAFROMCARD, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioBytesToFramesTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTBYTESTOFRAMES, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioDataBigEndianChangeTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTDATABIGENDIANCHANGE, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioFramatToBitWidthTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTFRAMATTOBITWIDTH, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioSetPcmInfoTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTSETPCMINFO, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioSetRenderBufInfoTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTSETRENDERBUFINFO, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioSetCaptureBufInfoTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTSETCAPTUREBUFINFO, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioPcmWriteTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTPCMWRITE, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioPcmReadTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTPCMREAD, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioPcmMmapWriteTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTPCMMMAPWRITE, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioPcmMmapReadTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTPCMMMAPREAD, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioRenderOpenTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTRENDEROPEN, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioCaptureOpenTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTCAPTUREOPEN, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioRenderCloseTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTRENDERCLOSE, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioPcmPointerTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTPCMPOINTER, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioCaptureCloseTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTCAPTURECLOSE, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioHwParamsTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTHWPARAMS, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioRenderPrepareTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTRENDERPREPARE, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioCapturePrepareTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTCAPTUREPREPARE, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioRenderTriggerTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTRENDERTRIGGER, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioPlatformBaseTest, AudioPlatformBaseTest_AudioCaptureTriggerTest, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TESTCAPTURETRIGGER, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} +} diff --git a/model/audio/core/include/audio_control.h b/model/audio/core/include/audio_control.h index fe418c87e..a8fa1034b 100755 --- a/model/audio/core/include/audio_control.h +++ b/model/audio/core/include/audio_control.h @@ -36,11 +36,6 @@ struct AudioCtrlElemValue { uint32_t value[2]; }; -struct AudioKcontrol; -typedef int32_t (*KconfigInfo_t)(const struct AudioKcontrol *kcontrol, struct AudioCtrlElemInfo *elemInfo); -typedef int32_t (*KconfigGet_t)(const struct AudioKcontrol *kcontrol, struct AudioCtrlElemValue *elemValue); -typedef int32_t (*KconfigSet_t)(const struct AudioKcontrol *kcontrol, const struct AudioCtrlElemValue *elemValue); - /* mixer control */ struct AudioMixerControl { int32_t min; @@ -58,9 +53,9 @@ struct AudioMixerControl { struct AudioKcontrol { const char *name; /* ASCII name of item */ int32_t iface; - KconfigInfo_t Info; - KconfigGet_t Get; - KconfigSet_t Set; + int32_t (*Info)(const struct AudioKcontrol *kcontrol, struct AudioCtrlElemInfo *elemInfo); + int32_t (*Get)(const struct AudioKcontrol *kcontrol, struct AudioCtrlElemValue *elemValue); + int32_t (*Set)(const struct AudioKcontrol *kcontrol, const struct AudioCtrlElemValue *elemValue); void *privateData; void *pri; unsigned long privateValue; diff --git a/model/audio/core/include/audio_core.h b/model/audio/core/include/audio_core.h index 762e56be1..d35765667 100755 --- a/model/audio/core/include/audio_core.h +++ b/model/audio/core/include/audio_core.h @@ -23,44 +23,28 @@ extern "C" { #endif #endif /* __cplusplus */ -#define CHANNEL_MAX_NUM 2 -#define CHANNEL_MIN_NUM 1 - -#define AUDIO_DAI_LINK_COMPLETE 1 -#define AUDIO_DAI_LINK_UNCOMPLETE 0 - -enum AudioDeviceType { - AUDIO_DAI_DEVICE, - AUDIO_DSP_DEVICE, - AUDIO_PLATFORM_DEVICE, - AUDIO_CODEC_DEVICE, - AUDIO_ACCESSORY_DEVICE, - AUDIO_DEVICE_BUTT, -}; - -enum PlayStatus { - STREAM_START = 4, - STREAM_STOP, -}; - -/* Dai registration interface */ -int32_t AudioSocRegisterDai(struct HdfDeviceObject *device, struct DaiData *data); -/* Platform registration interface */ -int32_t AudioSocRegisterPlatform(struct HdfDeviceObject *device, struct PlatformData *data); -/* Codec registration interface */ +int32_t AudioDeviceReadReg(unsigned long virtualAddress, uint32_t reg, uint32_t *value); +int32_t AudioDeviceWriteReg(unsigned long virtualAddress, uint32_t reg, uint32_t value); + +int32_t AudioSocRegisterPlatform(struct HdfDeviceObject *device, struct PlatformData *platformData); +int32_t AudioSocRegisterDai(struct HdfDeviceObject *device, struct DaiData *daiData); +int32_t AudioRegisterDsp(struct HdfDeviceObject *device, struct DspData *dspData, struct DaiData *DaiData); int32_t AudioRegisterCodec(struct HdfDeviceObject *device, struct CodecData *codecData, struct DaiData *daiData); +int32_t AudioRegisterAccessory(struct HdfDeviceObject *device, + struct AccessoryData *accessoryData, struct DaiData *daiData); + int32_t AudioBindDaiLink(struct AudioCard *audioCard, const struct AudioConfigData *configData); -int32_t AudioSocDeviceRegister(struct HdfDeviceObject *device, void *data, enum AudioDeviceType deviceType); -int32_t AudioSocRegisterDsp(struct HdfDeviceObject *device, struct DaiData *data); -int32_t AudioRegisterAccessory(struct HdfDeviceObject *device, struct AccessoryData *data, struct DaiData *daiData); + int32_t AudioUpdateCodecRegBits(struct CodecDevice *codec, const struct AudioMixerControl *mixerControl, uint32_t value); int32_t AudioUpdateAccessoryRegBits(struct AccessoryDevice *accessory, const struct AudioMixerControl *mixerControl, uint32_t value); int32_t AudioUpdateDaiRegBits(const struct DaiDevice *dai, struct AudioMixerControl *mixerControl, uint32_t value); + +struct DaiDevice *AudioKcontrolGetCpuDai(const struct AudioKcontrol *kcontrol); struct CodecDevice *AudioKcontrolGetCodec(const struct AudioKcontrol *kcontrol); struct AccessoryDevice *AudioKcontrolGetAccessory(const struct AudioKcontrol *kcontrol); -struct DaiDevice *AudioKcontrolGetCpuDai(const struct AudioKcontrol *kcontrol); + int32_t AudioAddControls(struct AudioCard *audioCard, const struct AudioKcontrol *controls, int32_t controlMaxNum); struct AudioKcontrol *AudioAddControl(const struct AudioCard *audioCard, const struct AudioKcontrol *ctl); @@ -73,6 +57,7 @@ int32_t AudioSetCtrlOpsReg(const struct AudioKcontrol *kcontrol, const struct Au const struct AudioMixerControl *mixerCtrl, uint32_t *value); int32_t AudioSetCtrlOpsRReg(const struct AudioCtrlElemValue *elemValue, struct AudioMixerControl *mixerCtrl, uint32_t *rvalue, bool *updateRReg); + int32_t AudioDaiReadReg(const struct DaiDevice *dai, uint32_t reg, uint32_t *val); int32_t AudioDaiWriteReg(const struct DaiDevice *dai, uint32_t reg, uint32_t val); @@ -82,11 +67,13 @@ int32_t AudioAccessoryReadReg(const struct AccessoryDevice *accessory, uint32_t int32_t AudioAccessoryWriteReg(const struct AccessoryDevice *accessory, uint32_t reg, uint32_t val); int32_t AudioInfoCtrlOps(const struct AudioKcontrol *kcontrol, struct AudioCtrlElemInfo *elemInfo); + int32_t AudioCodecGetCtrlOps(const struct AudioKcontrol *kcontrol, struct AudioCtrlElemValue *elemValue); int32_t AudioCodecSetCtrlOps(const struct AudioKcontrol *kcontrol, const struct AudioCtrlElemValue *elemValue); + int32_t AudioAccessoryGetCtrlOps(const struct AudioKcontrol *kcontrol, struct AudioCtrlElemValue *elemValue); int32_t AudioAccessorySetCtrlOps(const struct AudioKcontrol *kcontrol, const struct AudioCtrlElemValue *elemValue); -int32_t AudioRegisterDsp(struct HdfDeviceObject *device, struct DspData *dspData, struct DaiData *DaiData); + int32_t AudioCpuDaiSetCtrlOps(const struct AudioKcontrol *kcontrol, const struct AudioCtrlElemValue *elemValue); int32_t AudioCpuDaiGetCtrlOps(const struct AudioKcontrol *kcontrol, struct AudioCtrlElemValue *elemValue); diff --git a/model/audio/core/include/audio_host.h b/model/audio/core/include/audio_host.h index b4d1aa276..58585e2e7 100755 --- a/model/audio/core/include/audio_host.h +++ b/model/audio/core/include/audio_host.h @@ -24,8 +24,6 @@ extern "C" { #endif #endif /* __cplusplus */ -#define BUFF_SIZE_MAX 64 - #define AUDIO_LIST_HEAD_INIT(name) { &(name), &(name) } #define AUDIO_LIST_HEAD(name) \ @@ -207,16 +205,6 @@ struct AudioRuntimeDeivces { struct AudioHost *AudioHostCreateAndBind(struct HdfDeviceObject *device); -static inline struct HdfDeviceObject *AudioHostToDevice(struct AudioHost *host) -{ - return (host == NULL) ? NULL : host->device; -} - -static inline struct AudioHost *AudioHostFromDevice(struct HdfDeviceObject *device) -{ - return (device == NULL) ? NULL : (struct AudioHost *)device->service; -} - /* Get a sound card instance */ struct AudioCard *GetCardInstance(const char *serviceName); diff --git a/model/audio/core/include/audio_parse.h b/model/audio/core/include/audio_parse.h index cd7c96f06..bba9a8279 100755 --- a/model/audio/core/include/audio_parse.h +++ b/model/audio/core/include/audio_parse.h @@ -42,6 +42,7 @@ enum AudioRegOpsType { AUDIO_CTRL_SAPM_PATAM_GROUP, AUDIO_DAI_STARTUP_PATAM_GROUP, AUDIO_DAI_PATAM_GROUP, + AUDIO_DAI_TRIGGER_GROUP, AUDIO_CTRL_CFG_GROUP, AUDIO_SAPM_COMP_GROUP, AUDIO_SAPM_CFG_GROUP, diff --git a/model/audio/core/src/audio_core.c b/model/audio/core/src/audio_core.c index fa6c5f00f..b1b4b53d5 100755 --- a/model/audio/core/src/audio_core.c +++ b/model/audio/core/src/audio_core.c @@ -12,12 +12,34 @@ #define HDF_LOG_TAG audio_core +#define CHANNEL_MAX_NUM 2 +#define CHANNEL_MIN_NUM 1 +#define AUDIO_DAI_LINK_COMPLETE 1 +#define AUDIO_DAI_LINK_UNCOMPLETE 0 + AUDIO_LIST_HEAD(daiController); AUDIO_LIST_HEAD(platformController); AUDIO_LIST_HEAD(codecController); AUDIO_LIST_HEAD(dspController); AUDIO_LIST_HEAD(accessoryController); +int32_t AudioDeviceReadReg(unsigned long virtualAddress, uint32_t reg, uint32_t *val) +{ + if (val == NULL) { + AUDIO_DRIVER_LOG_ERR("param val is null."); + return HDF_FAILURE; + } + + *val = OSAL_READL((void *)((uintptr_t)(virtualAddress + reg))); + return HDF_SUCCESS; +} + +int32_t AudioDeviceWriteReg(unsigned long virtualAddress, uint32_t reg, uint32_t value) +{ + OSAL_WRITEL(value, (void *)((uintptr_t)(virtualAddress + reg))); + return HDF_SUCCESS; +} + int32_t AudioSocRegisterPlatform(struct HdfDeviceObject *device, struct PlatformData *platformData) { struct PlatformDevice *platformDevice = NULL; @@ -42,12 +64,12 @@ int32_t AudioSocRegisterPlatform(struct HdfDeviceObject *device, struct Platform return HDF_SUCCESS; } -int32_t AudioSocRegisterDai(struct HdfDeviceObject *device, struct DaiData *data) +int32_t AudioSocRegisterDai(struct HdfDeviceObject *device, struct DaiData *daiData) { struct DaiDevice *dai = NULL; - if ((device == NULL) || (data == NULL)) { - ADM_LOG_ERR("Input params check error: device=%p, data=%p.", device, data); + if ((device == NULL) || (daiData == NULL)) { + ADM_LOG_ERR("Input params check error: device=%p, daiData=%p.", device, daiData); return HDF_ERR_INVALID_OBJECT; } @@ -57,8 +79,8 @@ int32_t AudioSocRegisterDai(struct HdfDeviceObject *device, struct DaiData *data return HDF_ERR_MALLOC_FAIL; } - dai->devDaiName = data->drvDaiName; - dai->devData = data; + dai->devDaiName = daiData->drvDaiName; + dai->devData = daiData; dai->device = device; DListInsertHead(&dai->list, &daiController); ADM_LOG_INFO("Register [%s] success.", dai->devDaiName); @@ -66,13 +88,14 @@ int32_t AudioSocRegisterDai(struct HdfDeviceObject *device, struct DaiData *data return HDF_SUCCESS; } -int32_t AudioRegisterAccessory(struct HdfDeviceObject *device, struct AccessoryData *data, struct DaiData *daiData) +int32_t AudioRegisterAccessory(struct HdfDeviceObject *device, + struct AccessoryData *accessoryData, struct DaiData *daiData) { struct AccessoryDevice *accessory = NULL; int32_t ret; - if (device == NULL || data == NULL || daiData == NULL) { - ADM_LOG_ERR("Input params check error: device=%p, data=%p, daiData=%p.", device, data, daiData); + if (device == NULL || accessoryData == NULL || daiData == NULL) { + ADM_LOG_ERR("Input params check error: device=%p, accessoryData=%p, daiData=%p.", device, accessoryData, daiData); return HDF_ERR_INVALID_OBJECT; } @@ -83,11 +106,11 @@ int32_t AudioRegisterAccessory(struct HdfDeviceObject *device, struct AccessoryD } OsalMutexInit(&accessory->mutex); - accessory->devAccessoryName = data->drvAccessoryName; - accessory->devData = data; + accessory->devAccessoryName = accessoryData->drvAccessoryName; + accessory->devData = accessoryData; accessory->device = device; - ret = AudioSocDeviceRegister(device, (void *)daiData, AUDIO_DAI_DEVICE); + ret = AudioSocRegisterDai(device, daiData); if (ret != HDF_SUCCESS) { OsalMemFree(accessory); ADM_LOG_ERR("Register accessory device fail ret=%d", ret); @@ -121,7 +144,7 @@ int32_t AudioRegisterCodec(struct HdfDeviceObject *device, struct CodecData *cod codec->devData = codecData; codec->device = device; - ret = AudioSocDeviceRegister(device, (void *)daiData, AUDIO_DAI_DEVICE); + ret = AudioSocRegisterDai(device, daiData); if (ret != HDF_SUCCESS) { OsalIoUnmap((void *)((uintptr_t)(void*)&(codec->devData->virtualAddress))); OsalMemFree(codec); @@ -155,7 +178,7 @@ int32_t AudioRegisterDsp(struct HdfDeviceObject *device, struct DspData *dspData dspDev->devData = dspData; dspDev->device = device; - ret = AudioSocDeviceRegister(device, (void *)DaiData, AUDIO_DAI_DEVICE); + ret = AudioSocRegisterDai(device, DaiData ); if (ret != HDF_SUCCESS) { OsalMemFree(dspDev); ADM_LOG_ERR("Register dai device fail ret=%d", ret); @@ -167,47 +190,7 @@ int32_t AudioRegisterDsp(struct HdfDeviceObject *device, struct DspData *dspData return HDF_SUCCESS; } -int32_t AudioSocDeviceRegister(struct HdfDeviceObject *device, void *data, enum AudioDeviceType deviceType) -{ - struct PlatformData *platformData = NULL; - struct DaiData *daiData = NULL; - int32_t ret; - - if ((device == NULL) || (data == NULL) || (deviceType >= AUDIO_DEVICE_BUTT) || (deviceType < 0)) { - ADM_LOG_ERR("Input params check error: device=%p, data=%p, deviceType=%d.", - device, data, deviceType); - return HDF_ERR_INVALID_OBJECT; - } - - switch (deviceType) { - case AUDIO_DAI_DEVICE: { - daiData = (struct DaiData *)data; - ret = AudioSocRegisterDai(device, daiData); - if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("Register dai device fail ret=%d", ret); - return HDF_FAILURE; - } - break; - } - case AUDIO_PLATFORM_DEVICE: { - platformData = (struct PlatformData *)data; - ret = AudioSocRegisterPlatform(device, platformData); - if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("Register dma device fail ret=%d", ret); - return HDF_FAILURE; - } - break; - } - default: { - ADM_LOG_ERR("Invalid device type."); - return HDF_FAILURE; - } - } - - return HDF_SUCCESS; -} - -int32_t AudioSeekPlatformDevice(struct AudioRuntimeDeivces *rtd, const struct AudioConfigData *configData) +static int32_t AudioSeekPlatformDevice(struct AudioRuntimeDeivces *rtd, const struct AudioConfigData *configData) { struct PlatformDevice *platform = NULL; if (rtd == NULL || configData == NULL) { @@ -230,7 +213,7 @@ int32_t AudioSeekPlatformDevice(struct AudioRuntimeDeivces *rtd, const struct Au return HDF_SUCCESS; } -int32_t AudioSeekCpuDaiDevice(struct AudioRuntimeDeivces *rtd, const struct AudioConfigData *configData) +static int32_t AudioSeekCpuDaiDevice(struct AudioRuntimeDeivces *rtd, const struct AudioConfigData *configData) { struct DaiDevice *cpuDai = NULL; if (rtd == NULL || configData == NULL) { @@ -257,7 +240,7 @@ int32_t AudioSeekCpuDaiDevice(struct AudioRuntimeDeivces *rtd, const struct Audi return HDF_SUCCESS; } -int32_t AudioSeekCodecDevice(struct AudioRuntimeDeivces *rtd, const struct AudioConfigData *configData) +static int32_t AudioSeekCodecDevice(struct AudioRuntimeDeivces *rtd, const struct AudioConfigData *configData) { struct CodecDevice *codec = NULL; struct DaiDevice *codecDai = NULL; @@ -288,7 +271,7 @@ int32_t AudioSeekCodecDevice(struct AudioRuntimeDeivces *rtd, const struct Audio return HDF_SUCCESS; } -int32_t AudioSeekAccessoryDevice(struct AudioRuntimeDeivces *rtd, const struct AudioConfigData *configData) +static int32_t AudioSeekAccessoryDevice(struct AudioRuntimeDeivces *rtd, const struct AudioConfigData *configData) { struct AccessoryDevice *accessory = NULL; struct DaiDevice *accessoryDai = NULL; @@ -321,7 +304,7 @@ int32_t AudioSeekAccessoryDevice(struct AudioRuntimeDeivces *rtd, const struct A return HDF_SUCCESS; } -int32_t AudioSeekDspDevice(struct AudioRuntimeDeivces *rtd, const struct AudioConfigData *configData) +static int32_t AudioSeekDspDevice(struct AudioRuntimeDeivces *rtd, const struct AudioConfigData *configData) { struct DspDevice *dsp = NULL; struct DaiDevice *dspDai = NULL; @@ -608,7 +591,7 @@ int32_t AudioDaiReadReg(const struct DaiDevice *dai, uint32_t reg, uint32_t *val ADM_LOG_ERR("Input param is NULL."); return HDF_FAILURE; } - virtualAddress = dai->devData->regDaiBase; + virtualAddress = dai->devData->regVirtualAddr; ret = dai->devData->Read(virtualAddress, reg, val); if (ret != HDF_SUCCESS) { ADM_LOG_ERR("dai device read fail."); @@ -625,7 +608,7 @@ int32_t AudioDaiWriteReg(const struct DaiDevice *dai, uint32_t reg, uint32_t val ADM_LOG_ERR("Input param codec is NULL."); return HDF_FAILURE; } - virtualAddress = dai->devData->regDaiBase; + virtualAddress = dai->devData->regVirtualAddr; ret = dai->devData->Write(virtualAddress, reg, val); if (ret != HDF_SUCCESS) { ADM_LOG_ERR("dai device write fail."); diff --git a/model/audio/core/src/audio_host.c b/model/audio/core/src/audio_host.c index 22f5235cf..c43ca1dc0 100755 --- a/model/audio/core/src/audio_host.c +++ b/model/audio/core/src/audio_host.c @@ -365,7 +365,7 @@ static int32_t AudioDriverInit(struct HdfDeviceObject *device) ADM_LOG_ERR("device is NULL."); return HDF_ERR_INVALID_OBJECT; } - audioHost = AudioHostFromDevice(device); + audioHost = (struct AudioHost *)device->service; if (audioHost == NULL) { ADM_LOG_ERR("audioHost is NULL."); return HDF_FAILURE; @@ -432,7 +432,7 @@ static void AudioDriverRelease(struct HdfDeviceObject *device) ADM_LOG_ERR("device is NULL."); return; } - audioHost = AudioHostFromDevice(device); + audioHost = (struct AudioHost *)device->service; if (audioHost == NULL) { ADM_LOG_ERR("audioHost is NULL."); return; diff --git a/model/audio/core/src/audio_parse.c b/model/audio/core/src/audio_parse.c index 751b9af2b..732990d70 100755 --- a/model/audio/core/src/audio_parse.c +++ b/model/audio/core/src/audio_parse.c @@ -57,6 +57,7 @@ static char *g_audioRegGroupName[AUDIO_GROUP_MAX] = { "ctrlSapmParamsSeqConfig", "daiStartupSeqConfig", "daiParamsSeqConfig", + "daiTriggerSeqConfig", "controlsConfig", "sapmComponent", "sapmConfig" @@ -364,6 +365,7 @@ static int32_t ParseAudioRegGroup(struct DeviceResourceIface *parser, ret = ParseAudioAddrItem(parser, regCfgNode, group); break; case AUDIO_DAI_PATAM_GROUP: + case AUDIO_DAI_TRIGGER_GROUP: case AUDIO_CTRL_PATAM_GROUP: case AUDIO_CTRL_SAPM_PATAM_GROUP: case AUDIO_DAI_STARTUP_PATAM_GROUP: diff --git a/model/audio/core/test/unittest/common/audio_common_test.h b/model/audio/core/test/unittest/common/audio_common_test.h index 99441c5b4..8b88a63ab 100755 --- a/model/audio/core/test/unittest/common/audio_common_test.h +++ b/model/audio/core/test/unittest/common/audio_common_test.h @@ -14,39 +14,56 @@ const int32_t g_testAudioType = 701; // 701 is TEST_AUDIO_TYPE enum { - TESTGETCODEC, - TESTGETCARDINSTANCE, - TESTGETCCNFIGDATA, - - TESTREGISTERPLATFORM, - TESTREGISTERDAI, - TESTREGISTERACCESSORY, - TESTREGISTERCODEC, - TESTREGISTERDSP, - TESTSOCDEVICEREGISTER, - TESTBINDDAILINK, - TESTUPDATECODECREGBITS, - TESTUPDATEACCESSORYREGBITS, - TESTKCONTROLGETCODEC, - TESTKCONTROLGETACCESSORY, - TESTADDCONTROL, - TESTADDCONTROLS, - TESTCODECREADREG, - TESTACCESSORYREADREG, - TESTCODECWRITEREG, - TESTACCESSORYWRITEREG, - TESTINFOCTRLOPS, - TESTCODECGETCTRLOPS, - TESTACCESSORYGETCTRLOPS, - TESTCODECSETCTRLOPS, - TESTACCESSORYSETCTRLOPS, - - TESTNEWCOMPONENT, - TESTADDROUTES, - TESTNEWCONTROLS, - TESTPOWERCOMPONET, - TESTREFRESHTIME, - TESTSTREAMDISPATCH, + TEST_AUDIOHOSTCREATEANDBIND = 1, // audio ADM audio_host + TEST_GETCARDINSTANCE = 2, // audio ADM audio_host + + TEST_AUDIOFILLCONFIGDATA = 3, // audio ADM audio_parse + TEST_CODECGETREGCONFIG = 4, // audio ADM audio_parse + + TEST_AUDIODEVICEREADREG = 5, // audio ADM audio_core + TEST_AUDIODEVICEWRITEREG, // audio ADM audio_core + TEST_AUDIOSOCREGISTERPLATFORM, // audio ADM audio_core + TEST_AUDIOSOCREGISTERDAI, // audio ADM audio_core + TEST_AUDIOREGISTERDSP, // audio ADM audio_core + TEST_AUDIOREGISTERCODEC, // audio ADM audio_core + TEST_AUDIOREGISTERACCESSORY, // audio ADM audio_core + TEST_AUDIOBINDDAILINK, // audio ADM audio_core + TEST_AUDIOUPDATECODECREGBITS, // audio ADM audio_core + TEST_AUDIOUPDATEACCESSORYREGBITS, // audio ADM audio_core + TEST_AUDIOUPDATEDAIREGBITS, // audio ADM audio_core + TEST_AUDIOKCONTROLGETCPUDAI, // audio ADM audio_core + TEST_AUDIOKCONTROLGETCODEC, // audio ADM audio_core + TEST_AUDIOKCONTROLGETACCESSORY, // audio ADM audio_core + TEST_AUDIOADDCONTROLS, // audio ADM audio_core + TEST_AUDIOADDCONTROL, // audio ADM audio_core + TEST_AUDIOGETCTRLOPSRREG, // audio ADM audio_core + TEST_AUDIOGETCTRLOPSREG, // audio ADM audio_core + TEST_AUDIOSETCTRLOPSREG, // audio ADM audio_core + TEST_AUDIOSETCTRLOPSRREG, // audio ADM audio_core + TEST_AUDIODAIREADREG, // audio ADM audio_core + TEST_AUDIODAIWRITEREG, // audio ADM audio_core + TEST_AUDIOCODECREADREG, // audio ADM audio_core + TEST_AUDIOCODECWRITEREG, // audio ADM audio_core + TEST_AUDIOACCESSORYREADREG, // audio ADM audio_core + TEST_AUDIOACCESSORYWRITEREG, // audio ADM audio_core + TEST_AUDIOINFOCTRLOPS, // audio ADM audio_core + TEST_AUDIOCODECGETCTRLOPS, // audio ADM audio_core + TEST_AUDIOCODECSETCTRLOPS, // audio ADM audio_core + TEST_AUDIOACCESSORYGETCTRLOPS, // audio ADM audio_core + TEST_AUDIOACCESSORYSETCTRLOPS, // audio ADM audio_core + TEST_AUDIOCPUDAISETCTRLOPS, // audio ADM audio_core + TEST_AUDIOCPUDAIGETCTRLOPS = 37, // audio ADM audio_core + + TEST_AUDIOSAPMNEWCOMPONENTS = 38, // audio ADM audio_sapm + TEST_AUDIOSAPMADDROUTES, // audio ADM audio_sapm + TEST_AUDIOSAPMNEWCONTROLS, // audio ADM audio_sapm + TEST_AUDIOSAPMSLEEP, // audio ADM audio_sapm + TEST_AUDIOSAMPPOWERUP, // audio ADM audio_sapm + TEST_AUDIOSAMPSETPOWERMONITOR, // audio ADM audio_sapm + TEST_AUDIOCODECSAPMSETCTRLOPS, // audio ADM audio_sapm + TEST_AUDIOCODECSAPMGETCTRLOPS, // audio ADM audio_sapm + TEST_AUDIOACCESSORYSAPMSETCTRLOPS, // audio ADM audio_sapm + TEST_AUDIOACCESSORYSAPMGETCTRLOPS = 47, // audio ADM audio_sapm }; #endif /* AUDIO_COMMON_TEST_H */ diff --git a/model/audio/core/test/unittest/common/audio_core_test.cpp b/model/audio/core/test/unittest/common/audio_core_test.cpp index 6d653820a..349feaeb2 100755 --- a/model/audio/core/test/unittest/common/audio_core_test.cpp +++ b/model/audio/core/test/unittest/common/audio_core_test.cpp @@ -38,135 +38,201 @@ void AudioCoreTest::TearDown() { } -HWTEST_F(AudioCoreTest, AudioCoreTest_RegisterPlatform, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioDeviceReadReg, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTREGISTERPLATFORM, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIODEVICEREADREG, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_RegisterDai, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioDeviceWriteReg, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTREGISTERDAI, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIODEVICEWRITEREG, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_RegisterAccessory, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioSocRegisterPlatform, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTREGISTERACCESSORY, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOSOCREGISTERPLATFORM, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_RegisterCodec, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioSocRegisterDai, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTREGISTERCODEC, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOSOCREGISTERDAI, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_SocRegisterDsp, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioRegisterDsp, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTREGISTERDSP, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOREGISTERDSP, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_SocDeviceRegister, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioRegisterCodec, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTSOCDEVICEREGISTER, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOREGISTERCODEC, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_BindDaiLink, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioRegisterAccessory, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTBINDDAILINK, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOREGISTERACCESSORY, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_UpdateCodecRegBits, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioBindDaiLink, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTUPDATECODECREGBITS, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOBINDDAILINK, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_UpdateAccessoryRegBits, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioUpdateCodecRegBits, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTUPDATEACCESSORYREGBITS, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOUPDATECODECREGBITS, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_KcontrolGetCodec, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioUpdateAccessoryRegBits, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTKCONTROLGETCODEC, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOUPDATEACCESSORYREGBITS, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_KcontrolGetAccessory, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioUpdateDaiRegBits, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTKCONTROLGETACCESSORY, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOUPDATEDAIREGBITS, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_AddControl, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioKcontrolGetCpuDai, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTADDCONTROL, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOKCONTROLGETCPUDAI, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_AddControls, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioKcontrolGetCodec, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTADDCONTROLS, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOKCONTROLGETCODEC, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_CodecReadReg, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioKcontrolGetAccessory, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTCODECREADREG, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOKCONTROLGETACCESSORY, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_AccessoryReadReg, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioAddControls, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTACCESSORYREADREG, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOADDCONTROLS, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_CodecWriteReg, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioAddControl, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTCODECWRITEREG, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOADDCONTROL, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_AccessoryWriteReg, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioGetCtrlOpsRReg, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTACCESSORYWRITEREG, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOGETCTRLOPSRREG, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_InfoCtrlOps, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioGetCtrlOpsReg, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTINFOCTRLOPS, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOGETCTRLOPSREG, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_CodecGetCtrlOps, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioSetCtrlOpsReg, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTCODECGETCTRLOPS, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOSETCTRLOPSREG, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_AccessoryGetCtrlOps, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioSetCtrlOpsRReg, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTACCESSORYGETCTRLOPS, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOSETCTRLOPSRREG, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_CodecSetCtrlOps, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioDaiReadReg, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTCODECSETCTRLOPS, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIODAIREADREG, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioCoreTest, AudioCoreTest_AccessorySetCtrlOps, TestSize.Level1) +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioDaiWriteReg, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTACCESSORYSETCTRLOPS, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIODAIWRITEREG, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioCodecReadReg, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOCODECREADREG, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioCodecWriteReg, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOCODECWRITEREG, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioAccessoryReadReg, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOACCESSORYREADREG, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioAccessoryWriteReg, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOACCESSORYWRITEREG, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioInfoCtrlOps, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOINFOCTRLOPS, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioCodecGetCtrlOps, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOCODECGETCTRLOPS, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioCodecSetCtrlOps, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOCODECSETCTRLOPS, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioAccessoryGetCtrlOps, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOACCESSORYGETCTRLOPS, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioAccessorySetCtrlOpsTset, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOACCESSORYSETCTRLOPS, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioCpuDaiSetCtrlOps, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOCPUDAISETCTRLOPS, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioCoreTest, AudioCoreTest_AudioCpuDaiGetCtrlOps, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOCPUDAIGETCTRLOPS, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } } diff --git a/model/audio/core/test/unittest/common/audio_host_test.cpp b/model/audio/core/test/unittest/common/audio_host_test.cpp index 119ab6d6c..56b405a1e 100755 --- a/model/audio/core/test/unittest/common/audio_host_test.cpp +++ b/model/audio/core/test/unittest/common/audio_host_test.cpp @@ -39,15 +39,15 @@ void AudioHostTest::TearDown() { } -HWTEST_F(AudioHostTest, AudioHostTest_GetCodec, TestSize.Level1) +HWTEST_F(AudioHostTest, AudioHostTest_AudioHostCreateAndBind, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTGETCODEC, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOHOSTCREATEANDBIND, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioHostTest, AudioHostTest_GetAudioServiceName, TestSize.Level1) +HWTEST_F(AudioHostTest, AudioHostTest_GetCardInstance, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTGETCARDINSTANCE, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_GETCARDINSTANCE, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } } diff --git a/model/audio/core/test/unittest/common/audio_parse_test.cpp b/model/audio/core/test/unittest/common/audio_parse_test.cpp index dd0e5bf7a..2df866aac 100755 --- a/model/audio/core/test/unittest/common/audio_parse_test.cpp +++ b/model/audio/core/test/unittest/common/audio_parse_test.cpp @@ -39,9 +39,15 @@ void AudioParseTest::TearDown() { } -HWTEST_F(AudioParseTest, AudioParseTest_GetConfigData, TestSize.Level1) +HWTEST_F(AudioParseTest, AudioParseTest_AudioFillConfigData, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTGETCCNFIGDATA, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOFILLCONFIGDATA, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioParseTest, AudioParseTest_CodecGetRegConfig, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TEST_CODECGETREGCONFIG, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } } diff --git a/model/audio/dispatch/include/audio_control_dispatch.h b/model/audio/dispatch/include/audio_control_dispatch.h index 2d3959316..ec979a667 100755 --- a/model/audio/dispatch/include/audio_control_dispatch.h +++ b/model/audio/dispatch/include/audio_control_dispatch.h @@ -17,9 +17,6 @@ extern "C" { #endif #endif /* __cplusplus */ - -#define AUDIODRV_CTRL_ELEM_TYPE_INTEGER 2 /* integer type */ - enum ControlDispMethodCmd { AUDIODRV_CTRL_IOCTRL_ELEM_INFO, AUDIODRV_CTRL_IOCTRL_ELEM_READ, @@ -27,12 +24,9 @@ enum ControlDispMethodCmd { AUDIODRV_CTRL_IOCTRL_ELEM_BUTT, }; -typedef int32_t (*ControlDispCmdHandle)(const struct HdfDeviceIoClient *client, - struct HdfSBuf *data, struct HdfSBuf *reply); - struct ControlDispCmdHandleList { enum ControlDispMethodCmd cmd; - ControlDispCmdHandle func; + int32_t (*func)(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply); }; struct ControlHost { @@ -41,11 +35,6 @@ struct ControlHost { void *priv; }; -static inline struct ControlHost *ControlHostFromDevice(struct HdfDeviceObject *device) -{ - return (device == NULL) ? NULL : (struct ControlHost *)device->service; -} - #ifdef __cplusplus #if __cplusplus } diff --git a/model/audio/dispatch/include/audio_stream_dispatch.h b/model/audio/dispatch/include/audio_stream_dispatch.h index 3e9a2c654..b586e1c72 100755 --- a/model/audio/dispatch/include/audio_stream_dispatch.h +++ b/model/audio/dispatch/include/audio_stream_dispatch.h @@ -21,39 +21,37 @@ extern "C" { #endif #endif /* __cplusplus */ -#define AUDIO_SERVICE_NAME_MAX_LEN 32 - enum StreamDispMethodCmd { - AUDIO_DRV_PCM_IOCTRL_HW_PARAMS, - AUDIO_DRV_PCM_IOCTRL_RENDER_PREPARE, - AUDIO_DRV_PCM_IOCTRL_CAPTURE_PREPARE, - AUDIO_DRV_PCM_IOCTRL_WRITE, - AUDIO_DRV_PCM_IOCTRL_READ, - AUDIO_DRV_PCM_IOCTRL_RENDER_START, - AUDIO_DRV_PCM_IOCTRL_RENDER_STOP, - AUDIO_DRV_PCM_IOCTRL_CAPTURE_START, - AUDIO_DRV_PCM_IOCTRL_CAPTURE_STOP, - AUDIO_DRV_PCM_IOCTRL_RENDER_PAUSE, - AUDIO_DRV_PCM_IOCTRL_CAPTURE_PAUSE, - AUDIO_DRV_PCM_IOCTRL_RENDER_RESUME, - AUDIO_DRV_PCM_IOCTRL_CAPTURE_RESUME, + AUDIO_DRV_PCM_IOCTL_HW_PARAMS, + AUDIO_DRV_PCM_IOCTL_RENDER_PREPARE, + AUDIO_DRV_PCM_IOCTL_CAPTURE_PREPARE, + AUDIO_DRV_PCM_IOCTL_WRITE, + AUDIO_DRV_PCM_IOCTL_READ, + AUDIO_DRV_PCM_IOCTL_RENDER_START, + AUDIO_DRV_PCM_IOCTL_RENDER_STOP, + AUDIO_DRV_PCM_IOCTL_CAPTURE_START, + AUDIO_DRV_PCM_IOCTL_CAPTURE_STOP, + AUDIO_DRV_PCM_IOCTL_RENDER_PAUSE, + AUDIO_DRV_PCM_IOCTL_CAPTURE_PAUSE, + AUDIO_DRV_PCM_IOCTL_RENDER_RESUME, + AUDIO_DRV_PCM_IOCTL_CAPTURE_RESUME, AUDIO_DRV_PCM_IOCTL_MMAP_BUFFER, AUDIO_DRV_PCM_IOCTL_MMAP_BUFFER_CAPTURE, AUDIO_DRV_PCM_IOCTL_MMAP_POSITION, AUDIO_DRV_PCM_IOCTL_MMAP_POSITION_CAPTURE, - AUDIO_DRV_PCM_IOCTRL_RENDER_OPEN, - AUDIO_DRV_PCM_IOCTRL_RENDER_CLOSE, - AUDIO_DRV_PCM_IOCTRL_CAPTURE_OPEN, - AUDIO_DRV_PCM_IOCTRL_CAPTURE_CLOSE, - AUDIO_DRV_PCM_IOCTRL_BUTT, + AUDIO_DRV_PCM_IOCTL_RENDER_OPEN, + AUDIO_DRV_PCM_IOCTL_RENDER_CLOSE, + AUDIO_DRV_PCM_IOCTL_CAPTURE_OPEN, + AUDIO_DRV_PCM_IOCTL_CAPTURE_CLOSE, + AUDIO_DRV_PCM_IOCTL_DSPDECODE, + AUDIO_DRV_PCM_IOCTL_DSPENCODE, + AUDIO_DRV_PCM_IOCTL_DSPEQUALIZER, + AUDIO_DRV_PCM_IOCTL_BUTT, }; -typedef int32_t (*StreamDispCmdHandle)(const struct HdfDeviceIoClient *client, - struct HdfSBuf *data, struct HdfSBuf *reply); - struct StreamDispCmdHandleList { enum StreamDispMethodCmd cmd; - StreamDispCmdHandle func; + int32_t (*func)(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply); }; struct StreamHost { @@ -62,14 +60,6 @@ struct StreamHost { void *priv; }; -static inline struct StreamHost *StreamHostFromDevice(struct HdfDeviceObject *device) -{ - return (device == NULL) ? NULL : (struct StreamHost *)device->service; -} - -int32_t StreamDispatch(struct HdfDeviceIoClient *client, int cmdId, - struct HdfSBuf *data, struct HdfSBuf *reply); - #ifdef __cplusplus #if __cplusplus } diff --git a/model/audio/dispatch/src/audio_control_dispatch.c b/model/audio/dispatch/src/audio_control_dispatch.c index 3f8d5fa99..075641041 100755 --- a/model/audio/dispatch/src/audio_control_dispatch.c +++ b/model/audio/dispatch/src/audio_control_dispatch.c @@ -312,7 +312,7 @@ static void AudioControlRelease(struct HdfDeviceObject *device) return; } - controlHost = ControlHostFromDevice(device); + controlHost = (struct ControlHost *)device->service; if (controlHost == NULL) { ADM_LOG_ERR("controlHost is NULL."); return; diff --git a/model/audio/dispatch/src/audio_stream_dispatch.c b/model/audio/dispatch/src/audio_stream_dispatch.c index db6375b5e..504d0084e 100755 --- a/model/audio/dispatch/src/audio_stream_dispatch.c +++ b/model/audio/dispatch/src/audio_stream_dispatch.c @@ -12,7 +12,14 @@ #define HDF_LOG_TAG audio_stream_dispatch -int32_t HwCpuDaiDispatch(const struct AudioCard *audioCard, const struct AudioPcmHwParams *params) +#define BUFF_SIZE_MAX 64 + +static inline struct StreamHost *StreamHostFromDevice(struct HdfDeviceObject *device) +{ + return (device == NULL) ? NULL : (struct StreamHost *)device->service; +} + +static int32_t HwCpuDaiDispatch(const struct AudioCard *audioCard, const struct AudioPcmHwParams *params) { if ((audioCard == NULL) || (params == NULL)) { ADM_LOG_ERR("CpuDai input param is NULL."); @@ -37,7 +44,7 @@ int32_t HwCpuDaiDispatch(const struct AudioCard *audioCard, const struct AudioPc if (cpuDai->devData->ops->HwParams != NULL) { int ret = cpuDai->devData->ops->HwParams(audioCard, params); if (ret < 0) { - ADM_LOG_ERR("cpuDai hardware params fail ret=%d", ret); + ADM_LOG_ERR("cpuDai hardware params failed ret=%d", ret); return HDF_ERR_IO; } } @@ -45,7 +52,7 @@ int32_t HwCpuDaiDispatch(const struct AudioCard *audioCard, const struct AudioPc return HDF_SUCCESS; } -int32_t HwCodecDaiDispatch(const struct AudioCard *audioCard, const struct AudioPcmHwParams *params) +static int32_t HwCodecDaiDispatch(const struct AudioCard *audioCard, const struct AudioPcmHwParams *params) { if ((audioCard == NULL) || (params == NULL)) { ADM_LOG_ERR("CodecDai input param is NULL."); @@ -72,7 +79,7 @@ int32_t HwCodecDaiDispatch(const struct AudioCard *audioCard, const struct Audio if (codecDai->devData->ops->HwParams != NULL) { int ret = codecDai->devData->ops->HwParams(audioCard, params); if (ret < 0) { - ADM_LOG_ERR("codecDai hardware params fail ret=%d", ret); + ADM_LOG_ERR("codecDai hardware params failed ret=%d", ret); return HDF_ERR_IO; } } @@ -80,7 +87,33 @@ int32_t HwCodecDaiDispatch(const struct AudioCard *audioCard, const struct Audio return HDF_SUCCESS; } -int32_t HwPlatfromDispatch(const struct AudioCard *audioCard, const struct AudioPcmHwParams *params) +static int32_t HwDspDaiDispatch(const struct AudioCard *audioCard, const struct AudioPcmHwParams *params) +{ + if ((audioCard == NULL) || (params == NULL)) { + ADM_LOG_ERR("DspDai input param is NULL."); + return HDF_FAILURE; + } + struct AudioRuntimeDeivces *rtd = audioCard->rtd; + if (rtd == NULL) { + ADM_LOG_ERR("DspDai audioCard rtd is NULL."); + return HDF_FAILURE; + } + struct DaiDevice *dspDai = rtd->dspDai; + if (dspDai == NULL || dspDai->devData == NULL || dspDai->devData->ops == NULL) { + ADM_LOG_ERR("dspDai param is NULL."); + return HDF_FAILURE; + } + if (dspDai->devData->ops->HwParams != NULL) { + int ret = dspDai->devData->ops->HwParams(audioCard, params); + if (ret < 0) { + ADM_LOG_ERR("dspDai hardware params failed ret=%d", ret); + return HDF_ERR_IO; + } + } + return HDF_SUCCESS; +} + +static int32_t HwPlatfromDispatch(const struct AudioCard *audioCard, const struct AudioPcmHwParams *params) { if ((audioCard == NULL) || (params == NULL)) { ADM_LOG_ERR("Platfrom input param is NULL."); @@ -98,14 +131,14 @@ int32_t HwPlatfromDispatch(const struct AudioCard *audioCard, const struct Audio */ int ret = AudioHwParams(audioCard, params); if (ret < 0) { - ADM_LOG_ERR("platform hardware params fail ret=%d", ret); + ADM_LOG_ERR("platform hardware params failed ret=%d", ret); return HDF_ERR_IO; } return HDF_SUCCESS; } -int32_t HwParamsDispatch(const struct AudioCard *audioCard, const struct AudioPcmHwParams *params) +static int32_t HwParamsDispatch(const struct AudioCard *audioCard, const struct AudioPcmHwParams *params) { if ((audioCard == NULL) || (params == NULL)) { ADM_LOG_ERR("input param is NULL."); @@ -114,63 +147,97 @@ int32_t HwParamsDispatch(const struct AudioCard *audioCard, const struct AudioPc /* Traverse through each driver method; Enter if you have, if not, exectue in order */ if (HwCodecDaiDispatch(audioCard, params) != HDF_SUCCESS) { - ADM_LOG_ERR("codec dai hardware params fail."); + ADM_LOG_ERR("codec dai hardware params failed."); return HDF_FAILURE; } if (HwCpuDaiDispatch(audioCard, params) != HDF_SUCCESS) { - ADM_LOG_ERR("cpu dai hardware params fail."); + ADM_LOG_ERR("cpu dai hardware params failed."); return HDF_FAILURE; } if (HwPlatfromDispatch(audioCard, params) != HDF_SUCCESS) { - ADM_LOG_ERR("platform dai hardware params fail."); + ADM_LOG_ERR("platform dai hardware params failed."); return HDF_FAILURE; } + + if (HwDspDaiDispatch(audioCard, params) != HDF_SUCCESS) { + ADM_LOG_ERR("dsp dai hardware params failed."); + return HDF_FAILURE; + } + return HDF_SUCCESS; } -static int32_t AudioDaiDeviceStartup(struct AudioCard *audioCard) +static int32_t CpuDaiDevStartup(struct AudioCard *audioCard, struct DaiDevice *cpuDai) { - struct DaiDevice *cpuDai = NULL; - struct DaiDevice *codecDai = NULL; - struct DaiDevice *accessoryDai = NULL; - int ret; - - if (audioCard == NULL || audioCard->rtd == NULL) { - ADM_LOG_ERR("audioCard is null."); - return HDF_FAILURE; - } - cpuDai = audioCard->rtd->cpuDai; + int32_t ret; if (cpuDai != NULL && cpuDai->devData != NULL && cpuDai->devData->ops != NULL && cpuDai->devData->ops->Startup != NULL) { ret = cpuDai->devData->ops->Startup(audioCard, cpuDai); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("cpuDai Startup fail."); + ADM_LOG_ERR("cpuDai Startup failed."); return HDF_FAILURE; } } else { ADM_LOG_DEBUG("cpu dai startup is null."); } + return HDF_SUCCESS; +} - codecDai = audioCard->rtd->codecDai; +static int32_t CodecDaiDevStartup(struct AudioCard *audioCard, struct DaiDevice *codecDai) +{ + int32_t ret; + if (audioCard == NULL || audioCard->rtd == NULL) { + ADM_LOG_ERR("audioCard is null."); + return HDF_FAILURE; + } if (codecDai != NULL && codecDai->devData != NULL && codecDai->devData->ops != NULL && codecDai->devData->ops->Startup != NULL) { ret = codecDai->devData->ops->Startup(audioCard, codecDai); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("codecDai Startup fail."); + ADM_LOG_ERR("codecDai Startup failed."); return HDF_FAILURE; } } else { ADM_LOG_DEBUG("codec dai startup is null."); } - accessoryDai = audioCard->rtd->accessoryDai; + return HDF_SUCCESS; +} + +static int32_t DspDaiDevStartup(struct AudioCard *audioCard, struct DaiDevice *dspDai) +{ + int32_t ret; + if (audioCard == NULL || audioCard->rtd == NULL) { + ADM_LOG_ERR("audioCard is null."); + return HDF_FAILURE; + } + if (dspDai != NULL && dspDai->devData != NULL && dspDai->devData->ops != NULL && + dspDai->devData->ops->Startup != NULL) { + ret = dspDai->devData->ops->Startup(audioCard, dspDai); + if (ret != HDF_SUCCESS) { + ADM_LOG_ERR("dspDai Startup failed."); + return HDF_FAILURE; + } + } else { + ADM_LOG_DEBUG("dsp dai startup is null."); + } + return HDF_SUCCESS; +} + +static int32_t AccessoryDaiDevStartup(struct AudioCard *audioCard, struct DaiDevice *accessoryDai) +{ + int32_t ret; + if (audioCard == NULL || audioCard->rtd == NULL) { + ADM_LOG_ERR("audioCard is null."); + return HDF_FAILURE; + } if (accessoryDai != NULL && accessoryDai->devData != NULL && accessoryDai->devData->ops != NULL && accessoryDai->devData->ops->Startup != NULL) { ret = accessoryDai->devData->ops->Startup(audioCard, accessoryDai); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("accessoryDai Startup fail."); + ADM_LOG_ERR("accessoryDai Startup failed."); return HDF_FAILURE; } } else { @@ -179,6 +246,45 @@ static int32_t AudioDaiDeviceStartup(struct AudioCard *audioCard) return HDF_SUCCESS; } +static int32_t AudioDaiDeviceStartup(struct AudioCard *audioCard) +{ + struct DaiDevice *cpuDai = NULL; + struct DaiDevice *codecDai = NULL; + struct DaiDevice *dspDai = NULL; + struct DaiDevice *accessoryDai = NULL; + int32_t ret; + + if (audioCard == NULL || audioCard->rtd == NULL) { + ADM_LOG_ERR("audioCard is null."); + return HDF_FAILURE; + } + cpuDai = audioCard->rtd->cpuDai; + ret = CpuDaiDevStartup(audioCard, cpuDai); + if (ret != HDF_SUCCESS) { + ADM_LOG_ERR("CpuDaiDevStartup failed."); + return HDF_FAILURE; + } + codecDai = audioCard->rtd->codecDai; + ret = CodecDaiDevStartup(audioCard, codecDai); + if (ret != HDF_SUCCESS) { + ADM_LOG_ERR("CodecDaiDevStartup failed."); + return HDF_FAILURE; + } + dspDai = audioCard->rtd->dspDai; + ret = DspDaiDevStartup(audioCard, dspDai); + if (ret != HDF_SUCCESS) { + ADM_LOG_ERR("DspDaiDevStartup failed."); + return HDF_FAILURE; + } + accessoryDai = audioCard->rtd->accessoryDai; + ret = AccessoryDaiDevStartup(audioCard, accessoryDai); + if (ret != HDF_SUCCESS) { + ADM_LOG_ERR("AccessoryDaiDevStartup failed."); + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + static int32_t HwParamsDataAnalysis(struct HdfSBuf *reqData, struct AudioPcmHwParams *params) { if ((reqData == NULL) || (params == NULL)) { @@ -252,7 +358,7 @@ static int32_t HwParamsDataAnalysis(struct HdfSBuf *reqData, struct AudioPcmHwPa return HDF_SUCCESS; } -int32_t StreamHostHwParams(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, +static int32_t StreamHostHwParams(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { struct AudioPcmHwParams params; @@ -273,13 +379,11 @@ int32_t StreamHostHwParams(const struct HdfDeviceIoClient *client, struct HdfSBu ADM_LOG_ERR("hwparams data analysis failed ret=%d", ret); return HDF_FAILURE; } - audioCard = GetCardInstance(params.cardServiceName); if (audioCard == NULL) { - ADM_LOG_ERR("get card instance fail."); + ADM_LOG_ERR("get card instance failed."); return HDF_FAILURE; } - ret = HwParamsDispatch(audioCard, ¶ms); if (ret != HDF_SUCCESS) { ADM_LOG_ERR("hwparams dispatch failed ret=%d", ret); @@ -314,14 +418,14 @@ static struct AudioCard *StreamHostGetCardInstance(const struct HdfDeviceIoClien audioCard = GetCardInstance(cardName); if (audioCard == NULL) { - ADM_LOG_ERR("get card instance fail."); + ADM_LOG_ERR("get card instance failed."); return NULL; } return audioCard; } -int32_t StreamHostCapturePrepare(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, +static int32_t StreamHostCapturePrepare(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { struct AudioCard *audioCard = NULL; @@ -338,13 +442,13 @@ int32_t StreamHostCapturePrepare(const struct HdfDeviceIoClient *client, struct audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL) { - ADM_LOG_ERR("CapturePrepare get card instance or rtd fail."); + ADM_LOG_ERR("CapturePrepare get card instance or rtd failed."); return HDF_FAILURE; } ret = AudioCapturePrepare(audioCard); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("platform CapturePrepare fail ret=%d", ret); + ADM_LOG_ERR("platform CapturePrepare failed ret=%d", ret); return HDF_ERR_IO; } @@ -352,7 +456,7 @@ int32_t StreamHostCapturePrepare(const struct HdfDeviceIoClient *client, struct return HDF_SUCCESS; } -int32_t StreamHostCaptureOpen(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, +static int32_t StreamHostCaptureOpen(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { char *cardName = NULL; @@ -371,7 +475,7 @@ int32_t StreamHostCaptureOpen(const struct HdfDeviceIoClient *client, struct Hdf cardName = (char *)OsalMemCalloc(sizeof(char) * BUFF_SIZE_MAX); if (cardName == NULL) { - ADM_LOG_ERR("malloc cardServiceName fail!"); + ADM_LOG_ERR("malloc cardServiceName failed!"); return HDF_FAILURE; } @@ -398,17 +502,17 @@ int32_t StreamHostCaptureOpen(const struct HdfDeviceIoClient *client, struct Hdf audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL) { - ADM_LOG_ERR("StreamHostCaptureOpen get card instance or rtd fail."); + ADM_LOG_ERR("StreamHostCaptureOpen get card instance or rtd failed."); return HDF_FAILURE; } if (AudioCaptureOpen(audioCard) != HDF_SUCCESS) { - ADM_LOG_ERR("platform CaptureOpen fail"); + ADM_LOG_ERR("platform CaptureOpen failed"); return HDF_ERR_IO; } if (AudioDaiDeviceStartup(audioCard) != HDF_SUCCESS) { - ADM_LOG_ERR("Dai Device Startup fail."); + ADM_LOG_ERR("Dai Device Startup failed."); return HDF_FAILURE; } @@ -416,7 +520,7 @@ int32_t StreamHostCaptureOpen(const struct HdfDeviceIoClient *client, struct Hdf return HDF_SUCCESS; } -int32_t StreamHostRenderPrepare(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, +static int32_t StreamHostRenderPrepare(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { struct AudioCard *audioCard = NULL; @@ -433,13 +537,13 @@ int32_t StreamHostRenderPrepare(const struct HdfDeviceIoClient *client, struct H audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL || audioCard->rtd == NULL) { - ADM_LOG_ERR("RenderPrepare get card instance or rtd fail."); + ADM_LOG_ERR("RenderPrepare get card instance or rtd failed."); return HDF_FAILURE; } ret = AudioRenderPrepare(audioCard); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("platform RenderPrepare fail ret=%d", ret); + ADM_LOG_ERR("platform RenderPrepare failed ret=%d", ret); return HDF_ERR_IO; } @@ -447,7 +551,7 @@ int32_t StreamHostRenderPrepare(const struct HdfDeviceIoClient *client, struct H return HDF_SUCCESS; } -int32_t StreamHostRenderOpen(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, +static int32_t StreamHostRenderOpen(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { char *cardName = NULL; @@ -466,7 +570,7 @@ int32_t StreamHostRenderOpen(const struct HdfDeviceIoClient *client, struct HdfS cardName = (char *)OsalMemCalloc(sizeof(char) * BUFF_SIZE_MAX); if (cardName == NULL) { - ADM_LOG_ERR("malloc cardServiceName fail!"); + ADM_LOG_ERR("malloc cardServiceName failed!"); return HDF_FAILURE; } @@ -495,17 +599,17 @@ int32_t StreamHostRenderOpen(const struct HdfDeviceIoClient *client, struct HdfS audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL || audioCard->rtd == NULL) { - ADM_LOG_ERR("StreamHostRenderOpen get card instance or rtd fail."); + ADM_LOG_ERR("StreamHostRenderOpen get card instance or rtd failed."); return HDF_FAILURE; } if (AudioRenderOpen(audioCard) != HDF_SUCCESS) { - ADM_LOG_ERR("platform RenderOpen fail."); + ADM_LOG_ERR("platform RenderOpen failed."); return HDF_FAILURE; } if (AudioDaiDeviceStartup(audioCard) != HDF_SUCCESS) { - ADM_LOG_ERR("Dai Device Startup fail."); + ADM_LOG_ERR("Dai Device Startup failed."); return HDF_FAILURE; } @@ -524,7 +628,7 @@ static int32_t StreamTransferWrite(const struct AudioCard *audioCard, struct Aud ret = AudioPcmWrite(audioCard, transfer); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("pcm write fail ret=%d", ret); + ADM_LOG_ERR("pcm write failed ret=%d", ret); return HDF_FAILURE; } @@ -543,7 +647,7 @@ static int32_t StreamTransferMmapWrite(const struct AudioCard *audioCard, const ret = AudioPcmMmapWrite(audioCard, txMmapData); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("platform write fail ret=%d", ret); + ADM_LOG_ERR("platform write failed ret=%d", ret); return HDF_FAILURE; } @@ -563,7 +667,7 @@ static int32_t StreamTransferMmapRead(const struct AudioCard *audioCard, const s ret = AudioPcmMmapRead(audioCard, rxMmapData); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("platform read fail ret=%d", ret); + ADM_LOG_ERR("platform read failed ret=%d", ret); return HDF_FAILURE; } @@ -571,7 +675,7 @@ static int32_t StreamTransferMmapRead(const struct AudioCard *audioCard, const s return HDF_SUCCESS; } -int32_t StreamHostWrite(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) +static int32_t StreamHostWrite(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { struct AudioTxData transfer; struct AudioCard *audioCard = NULL; @@ -595,13 +699,13 @@ int32_t StreamHostWrite(const struct HdfDeviceIoClient *client, struct HdfSBuf * audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL || audioCard->rtd == NULL) { - ADM_LOG_ERR("get card instance or rtd fail."); + ADM_LOG_ERR("get card instance or rtd failed."); return HDF_FAILURE; } ret = StreamTransferWrite(audioCard, &transfer); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("write reg value fail ret=%d", ret); + ADM_LOG_ERR("write reg value failed ret=%d", ret); return HDF_FAILURE; } @@ -613,7 +717,7 @@ int32_t StreamHostWrite(const struct HdfDeviceIoClient *client, struct HdfSBuf * return HDF_SUCCESS; } -int32_t StreamHostRead(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) +static int32_t StreamHostRead(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { struct AudioCard *audioCard = NULL; struct AudioRxData rxData; @@ -628,13 +732,13 @@ int32_t StreamHostRead(const struct HdfDeviceIoClient *client, struct HdfSBuf *d audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL) { - ADM_LOG_ERR("get card instance or rtd fail."); + ADM_LOG_ERR("get card instance or rtd failed."); return HDF_FAILURE; } ret = AudioPcmRead(audioCard, &rxData); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("pcm read fail ret=%d", ret); + ADM_LOG_ERR("pcm read failed ret=%d", ret); return HDF_FAILURE; } @@ -643,21 +747,23 @@ int32_t StreamHostRead(const struct HdfDeviceIoClient *client, struct HdfSBuf *d return HDF_FAILURE; } - if (!HdfSbufWriteBuffer(reply, rxData.buf, (uint32_t)(rxData.bufSize))) { - ADM_LOG_ERR("write request data buf failed!"); - return HDF_FAILURE; - } + if (rxData.bufSize !=0) { + if (!HdfSbufWriteBuffer(reply, rxData.buf, (uint32_t)(rxData.bufSize))) { + ADM_LOG_ERR("write request data buf failed!"); + return HDF_FAILURE; + } - if (!HdfSbufWriteUint32(reply, (uint32_t)(rxData.frames))) { - ADM_LOG_ERR("write frames failed!"); - return HDF_FAILURE; + if (!HdfSbufWriteUint32(reply, (uint32_t)(rxData.frames))) { + ADM_LOG_ERR("write frames failed!"); + return HDF_FAILURE; + } } ADM_LOG_DEBUG("success."); return HDF_SUCCESS; } -int32_t StreamHostMmapWrite(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) +static int32_t StreamHostMmapWrite(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { struct AudioMmapData txMmapData; struct AudioCard *audioCard = NULL; @@ -696,13 +802,13 @@ int32_t StreamHostMmapWrite(const struct HdfDeviceIoClient *client, struct HdfSB } audioCard = StreamHostGetCardInstance(client); if (StreamTransferMmapWrite(audioCard, &txMmapData) != HDF_SUCCESS) { - ADM_LOG_ERR("render mmap write reg value fail!"); + ADM_LOG_ERR("render mmap write reg value failed!"); return HDF_FAILURE; } ADM_LOG_DEBUG("success."); return HDF_SUCCESS; } -int32_t StreamHostMmapPositionWrite(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) +static int32_t StreamHostMmapPositionWrite(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { struct AudioCard *audioCard = NULL; ADM_LOG_DEBUG("entry."); @@ -721,14 +827,14 @@ int32_t StreamHostMmapPositionWrite(const struct HdfDeviceIoClient *client, stru return HDF_FAILURE; } if (!HdfSbufWriteUint64(reply, platformData->renderBufInfo.framesPosition)) { - ADM_LOG_ERR("render mmap write position fail!"); + ADM_LOG_ERR("render mmap write position failed!"); return HDF_FAILURE; } ADM_LOG_DEBUG("success."); return HDF_SUCCESS; } -int32_t StreamHostMmapRead(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) +static int32_t StreamHostMmapRead(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { uint64_t mAddress = 0; struct AudioCard *audioCard = NULL; @@ -766,14 +872,14 @@ int32_t StreamHostMmapRead(const struct HdfDeviceIoClient *client, struct HdfSBu } audioCard = StreamHostGetCardInstance(client); if (StreamTransferMmapRead(audioCard, &rxMmapData) != HDF_SUCCESS) { - ADM_LOG_ERR("capture mmap read reg value fail!"); + ADM_LOG_ERR("capture mmap read reg value failed!"); return HDF_FAILURE; } ADM_LOG_DEBUG("success."); return HDF_SUCCESS; } -int32_t StreamHostMmapPositionRead(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) +static int32_t StreamHostMmapPositionRead(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { struct AudioCard *audioCard = NULL; ADM_LOG_DEBUG("entry."); @@ -792,84 +898,116 @@ int32_t StreamHostMmapPositionRead(const struct HdfDeviceIoClient *client, struc return HDF_FAILURE; } if (!HdfSbufWriteUint64(reply, platformData->captureBufInfo.framesPosition)) { - ADM_LOG_ERR("render mmap write position fail!"); + ADM_LOG_ERR("render mmap write position failed!"); return HDF_FAILURE; } ADM_LOG_DEBUG("success."); return HDF_SUCCESS; } -int32_t StreamHostRenderStart(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) +static int32_t StreamTriggerRouteImpl(struct AudioCard *audioCard, struct AudioRuntimeDeivces *rtd, + enum StreamDispMethodCmd methodCmd) { - struct AudioRuntimeDeivces *rtd = NULL; + int32_t ret = HDF_SUCCESS; struct DaiDevice *cpuDai = NULL; struct DaiDevice *codecDai = NULL; + struct DaiDevice *dspDai = NULL; + if (audioCard == NULL || rtd == NULL) { + ADM_LOG_ERR("input param is NULL."); + return HDF_FAILURE; + } + cpuDai = rtd->cpuDai; + if (cpuDai != NULL && cpuDai->devData != NULL && cpuDai->devData->ops != NULL && + cpuDai->devData->ops->Trigger != NULL) { + ret = cpuDai->devData->ops->Trigger(audioCard, methodCmd, cpuDai); + if (ret != HDF_SUCCESS) { + ADM_LOG_ERR("cpuDai Trigger failed."); + return HDF_FAILURE; + } + } + codecDai = rtd->codecDai; + if (codecDai != NULL && codecDai->devData != NULL && codecDai->devData->ops != NULL && + codecDai->devData->ops->Trigger != NULL) { + ret = codecDai->devData->ops->Trigger(audioCard, methodCmd, codecDai); + if (ret != HDF_SUCCESS) { + ADM_LOG_ERR("codecDai Trigger failed."); + return HDF_FAILURE; + } + } + dspDai = rtd->dspDai; + if (dspDai != NULL && dspDai->devData != NULL && dspDai->devData->ops != NULL && + dspDai->devData->ops->Trigger != NULL) { + ret = dspDai->devData->ops->Trigger(audioCard, methodCmd, dspDai); + if (ret != HDF_SUCCESS) { + ADM_LOG_ERR("dspDai Trigger failed."); + return HDF_FAILURE; + } + } + ADM_LOG_DEBUG("success."); + return HDF_SUCCESS; +} + + +static int32_t StreamHostRenderStart(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) +{ + struct AudioRuntimeDeivces *rtd = NULL; struct AudioCard *audioCard = NULL; int ret = HDF_SUCCESS; ADM_LOG_DEBUG("entry."); - if (client == NULL) { ADM_LOG_ERR("RenderStart input param is NULL."); return HDF_FAILURE; } - (void)data; (void)reply; - audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL || audioCard->rtd == NULL) { - ADM_LOG_ERR("RenderStart get card instance or rtd fail."); + ADM_LOG_ERR("RenderStart get card instance or rtd failed."); return HDF_FAILURE; } rtd = audioCard->rtd; audioCard->standbyMode = AUDIO_SAPM_TURN_STANDBY_LATER; - - cpuDai = rtd->cpuDai; - if (cpuDai != NULL && cpuDai->devData != NULL && cpuDai->devData->ops != NULL && - cpuDai->devData->ops->Trigger != NULL) { - cpuDai->devData->ops->Trigger(audioCard, AUDIO_DRV_PCM_IOCTRL_RENDER_START, cpuDai); - } - - codecDai = rtd->codecDai; - if (codecDai != NULL && codecDai->devData != NULL && codecDai->devData->ops != NULL && - codecDai->devData->ops->Trigger != NULL) { - codecDai->devData->ops->Trigger(audioCard, AUDIO_DRV_PCM_IOCTRL_RENDER_START, codecDai); + ret = StreamTriggerRouteImpl(audioCard, rtd, AUDIO_DRV_PCM_IOCTL_RENDER_START); + if (ret != HDF_SUCCESS) { + ADM_LOG_ERR("StreamTriggerRouteImpl failed"); + return HDF_FAILURE; } - - ret = AudioRenderTrigger(audioCard, AUDIO_DRV_PCM_IOCTRL_RENDER_START); + ret = AudioRenderTrigger(audioCard, AUDIO_DRV_PCM_IOCTL_RENDER_START); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("platform render start fail ret=%d", ret); + ADM_LOG_ERR("platform render start failed ret=%d", ret); return HDF_ERR_IO; } - ADM_LOG_DEBUG("success."); return HDF_SUCCESS; } -int32_t StreamHostCaptureStart(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) +static int32_t StreamHostCaptureStart(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { + struct AudioRuntimeDeivces *rtd = NULL; struct AudioCard *audioCard = NULL; int ret = HDF_SUCCESS; ADM_LOG_DEBUG("entry."); - if (client == NULL) { ADM_LOG_ERR("CaptureStart input param is NULL."); return HDF_FAILURE; } - (void)data; (void)reply; - audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL || audioCard->rtd == NULL) { - ADM_LOG_ERR("CaptureStart get card instance or rtd fail."); + ADM_LOG_ERR("CaptureStart get card instance or rtd failed."); return HDF_FAILURE; } audioCard->standbyMode = AUDIO_SAPM_TURN_STANDBY_LATER; - - ret = AudioCaptureTrigger(audioCard, AUDIO_DRV_PCM_IOCTRL_CAPTURE_START); + rtd = audioCard->rtd; + ret = StreamTriggerRouteImpl(audioCard, rtd, AUDIO_DRV_PCM_IOCTL_CAPTURE_START); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("platform capture start fail ret=%d", ret); + ADM_LOG_ERR("StreamTriggerRouteImpl failed"); + return HDF_FAILURE; + } + ret = AudioCaptureTrigger(audioCard, AUDIO_DRV_PCM_IOCTL_CAPTURE_START); + if (ret != HDF_SUCCESS) { + ADM_LOG_ERR("platform capture start failed ret=%d", ret); return HDF_ERR_IO; } @@ -877,34 +1015,36 @@ int32_t StreamHostCaptureStart(const struct HdfDeviceIoClient *client, struct Hd return HDF_SUCCESS; } -int32_t StreamHostRenderStop(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, +static int32_t StreamHostRenderStop(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { + struct AudioRuntimeDeivces *rtd = NULL; struct AudioCard *audioCard = NULL; int ret = HDF_SUCCESS; ADM_LOG_DEBUG("entry."); - if (client == NULL) { ADM_LOG_ERR("RenderStop input param is NULL."); return HDF_FAILURE; } - (void)reply; - audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL || audioCard->rtd == NULL) { - ADM_LOG_ERR("RenderStop get card instance or rtd fail."); + ADM_LOG_ERR("RenderStop get card instance or rtd failed."); return HDF_FAILURE; } - if (!HdfSbufReadUint32(data, &audioCard->standbyMode)) { ADM_LOG_ERR("read request streamType failed!"); return HDF_FAILURE; } - - ret = AudioRenderTrigger(audioCard, AUDIO_DRV_PCM_IOCTRL_RENDER_STOP); + rtd = audioCard->rtd; + ret = StreamTriggerRouteImpl(audioCard, rtd, AUDIO_DRV_PCM_IOCTL_RENDER_STOP); + if (ret != HDF_SUCCESS) { + ADM_LOG_ERR("StreamTriggerRouteImpl failed"); + return HDF_FAILURE; + } + ret = AudioRenderTrigger(audioCard, AUDIO_DRV_PCM_IOCTL_RENDER_STOP); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("platform render stop fail ret=%d", ret); + ADM_LOG_ERR("platform render stop failed ret=%d", ret); return HDF_ERR_IO; } @@ -912,7 +1052,7 @@ int32_t StreamHostRenderStop(const struct HdfDeviceIoClient *client, struct HdfS return HDF_SUCCESS; } -int32_t StreamHostRenderClose(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, +static int32_t StreamHostRenderClose(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { struct AudioCard *audioCard = NULL; @@ -929,13 +1069,13 @@ int32_t StreamHostRenderClose(const struct HdfDeviceIoClient *client, struct Hdf audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL || audioCard->rtd == NULL) { - ADM_LOG_ERR("RenderStop get card instance or rtd fail."); + ADM_LOG_ERR("RenderStop get card instance or rtd failed."); return HDF_FAILURE; } ret = AudioRenderClose(audioCard); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("platform RenderClose fail ret=%d", ret); + ADM_LOG_ERR("platform RenderClose failed ret=%d", ret); return HDF_ERR_IO; } @@ -944,8 +1084,9 @@ int32_t StreamHostRenderClose(const struct HdfDeviceIoClient *client, struct Hdf } -int32_t StreamHostCaptureStop(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) +static int32_t StreamHostCaptureStop(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { + struct AudioRuntimeDeivces *rtd = NULL; struct AudioCard *audioCard = NULL; int ret = HDF_SUCCESS; ADM_LOG_DEBUG("entry."); @@ -959,7 +1100,7 @@ int32_t StreamHostCaptureStop(const struct HdfDeviceIoClient *client, struct Hdf audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL || audioCard->rtd == NULL) { - ADM_LOG_ERR("CaptureStop get card instance or rtd fail."); + ADM_LOG_ERR("CaptureStop get card instance or rtd failed."); return HDF_FAILURE; } @@ -967,10 +1108,15 @@ int32_t StreamHostCaptureStop(const struct HdfDeviceIoClient *client, struct Hdf ADM_LOG_ERR("read request streamType failed!"); return HDF_FAILURE; } - - ret = AudioCaptureTrigger(audioCard, AUDIO_DRV_PCM_IOCTRL_CAPTURE_STOP); + rtd = audioCard->rtd; + ret = StreamTriggerRouteImpl(audioCard, rtd, AUDIO_DRV_PCM_IOCTL_CAPTURE_STOP); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("platform capture stop fail ret=%d", ret); + ADM_LOG_ERR("StreamTriggerRouteImpl failed"); + return HDF_FAILURE; + } + ret = AudioCaptureTrigger(audioCard, AUDIO_DRV_PCM_IOCTL_CAPTURE_STOP); + if (ret != HDF_SUCCESS) { + ADM_LOG_ERR("platform capture stop failed ret=%d", ret); return HDF_ERR_IO; } @@ -978,7 +1124,7 @@ int32_t StreamHostCaptureStop(const struct HdfDeviceIoClient *client, struct Hdf return HDF_SUCCESS; } -int32_t StreamHostCaptureClose(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) +static int32_t StreamHostCaptureClose(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { struct AudioCard *audioCard = NULL; int ret; @@ -994,13 +1140,13 @@ int32_t StreamHostCaptureClose(const struct HdfDeviceIoClient *client, struct Hd audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL || audioCard->rtd == NULL) { - ADM_LOG_ERR("CaptureStop get card instance or rtd fail."); + ADM_LOG_ERR("CaptureStop get card instance or rtd failed."); return HDF_FAILURE; } ret = AudioCaptureClose(audioCard); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("platform capture close fail ret=%d", ret); + ADM_LOG_ERR("platform capture close failed ret=%d", ret); return HDF_ERR_IO; } @@ -1009,8 +1155,9 @@ int32_t StreamHostCaptureClose(const struct HdfDeviceIoClient *client, struct Hd } -int32_t StreamHostRenderPause(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) +static int32_t StreamHostRenderPause(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { + struct AudioRuntimeDeivces *rtd = NULL; struct AudioCard *audioCard = NULL; int ret = HDF_SUCCESS; ADM_LOG_DEBUG("entry."); @@ -1025,13 +1172,18 @@ int32_t StreamHostRenderPause(const struct HdfDeviceIoClient *client, struct Hdf audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL || audioCard->rtd == NULL) { - ADM_LOG_ERR("RenderPause get card instance or rtd fail."); + ADM_LOG_ERR("RenderPause get card instance or rtd failed."); return HDF_FAILURE; } - - ret = AudioRenderTrigger(audioCard, AUDIO_DRV_PCM_IOCTRL_RENDER_PAUSE); + rtd = audioCard->rtd; + ret = StreamTriggerRouteImpl(audioCard, rtd, AUDIO_DRV_PCM_IOCTL_RENDER_PAUSE); + if (ret != HDF_SUCCESS) { + ADM_LOG_ERR("StreamTriggerRouteImpl failed"); + return HDF_FAILURE; + } + ret = AudioRenderTrigger(audioCard, AUDIO_DRV_PCM_IOCTL_RENDER_PAUSE); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("platform render pause fail ret=%d", ret); + ADM_LOG_ERR("platform render pause failed ret=%d", ret); return HDF_ERR_IO; } @@ -1039,9 +1191,10 @@ int32_t StreamHostRenderPause(const struct HdfDeviceIoClient *client, struct Hdf return HDF_SUCCESS; } -int32_t StreamHostCapturePause(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, +static int32_t StreamHostCapturePause(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { + struct AudioRuntimeDeivces *rtd = NULL; struct AudioCard *audioCard = NULL; int ret = HDF_SUCCESS; ADM_LOG_DEBUG("entry."); @@ -1056,13 +1209,18 @@ int32_t StreamHostCapturePause(const struct HdfDeviceIoClient *client, struct Hd audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL || audioCard->rtd == NULL) { - ADM_LOG_ERR("CapturePause get card instance or rtd fail."); + ADM_LOG_ERR("CapturePause get card instance or rtd failed."); return HDF_FAILURE; } - - ret = AudioCaptureTrigger(audioCard, AUDIO_DRV_PCM_IOCTRL_CAPTURE_PAUSE); + rtd = audioCard->rtd; + ret = StreamTriggerRouteImpl(audioCard, rtd, AUDIO_DRV_PCM_IOCTL_CAPTURE_PAUSE); + if (ret != HDF_SUCCESS) { + ADM_LOG_ERR("StreamTriggerRouteImpl failed"); + return HDF_FAILURE; + } + ret = AudioCaptureTrigger(audioCard, AUDIO_DRV_PCM_IOCTL_CAPTURE_PAUSE); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("platform captur pause fail ret=%d", ret); + ADM_LOG_ERR("platform captur pause failed ret=%d", ret); return HDF_ERR_IO; } @@ -1070,9 +1228,10 @@ int32_t StreamHostCapturePause(const struct HdfDeviceIoClient *client, struct Hd return HDF_SUCCESS; } -int32_t StreamHostRenderResume(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, +static int32_t StreamHostRenderResume(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { + struct AudioRuntimeDeivces *rtd = NULL; struct AudioCard *audioCard = NULL; int ret; ADM_LOG_DEBUG("entry."); @@ -1087,13 +1246,18 @@ int32_t StreamHostRenderResume(const struct HdfDeviceIoClient *client, struct Hd audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL || audioCard->rtd == NULL) { - ADM_LOG_ERR("RenderResume get card instance or rtd fail."); + ADM_LOG_ERR("RenderResume get card instance or rtd failed."); return HDF_FAILURE; } - - ret = AudioRenderTrigger(audioCard, AUDIO_DRV_PCM_IOCTRL_RENDER_RESUME); + rtd = audioCard->rtd; + ret = StreamTriggerRouteImpl(audioCard, rtd, AUDIO_DRV_PCM_IOCTL_RENDER_RESUME); + if (ret != HDF_SUCCESS) { + ADM_LOG_ERR("StreamTriggerRouteImpl failed"); + return HDF_FAILURE; + } + ret = AudioRenderTrigger(audioCard, AUDIO_DRV_PCM_IOCTL_RENDER_RESUME); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("platform RenderResume fail ret=%d", ret); + ADM_LOG_ERR("platform RenderResume failed ret=%d", ret); return HDF_ERR_IO; } @@ -1101,9 +1265,10 @@ int32_t StreamHostRenderResume(const struct HdfDeviceIoClient *client, struct Hd return HDF_SUCCESS; } -int32_t StreamHostCaptureResume(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, +static int32_t StreamHostCaptureResume(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { + struct AudioRuntimeDeivces *rtd = NULL; struct AudioCard *audioCard = NULL; int ret = HDF_SUCCESS; ADM_LOG_DEBUG("entry."); @@ -1118,13 +1283,18 @@ int32_t StreamHostCaptureResume(const struct HdfDeviceIoClient *client, struct H audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL || audioCard->rtd == NULL) { - ADM_LOG_ERR("CaptureResume get card instance or rtd fail."); + ADM_LOG_ERR("CaptureResume get card instance or rtd failed."); return HDF_FAILURE; } - - ret = AudioCaptureTrigger(audioCard, AUDIO_DRV_PCM_IOCTRL_CAPTURE_RESUME); + rtd = audioCard->rtd; + ret = StreamTriggerRouteImpl(audioCard, rtd, AUDIO_DRV_PCM_IOCTL_CAPTURE_RESUME); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("platform CaptureResume fail ret=%d", ret); + ADM_LOG_ERR("StreamTriggerRouteImpl failed"); + return HDF_FAILURE; + } + ret = AudioCaptureTrigger(audioCard, AUDIO_DRV_PCM_IOCTL_CAPTURE_RESUME); + if (ret != HDF_SUCCESS) { + ADM_LOG_ERR("platform CaptureResume failed ret=%d", ret); return HDF_ERR_IO; } @@ -1132,7 +1302,7 @@ int32_t StreamHostCaptureResume(const struct HdfDeviceIoClient *client, struct H return HDF_SUCCESS; } -int32_t StreamHostDspDecode(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, +static int32_t StreamHostDspDecode(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { struct AudioRuntimeDeivces *rtd = NULL; @@ -1150,7 +1320,7 @@ int32_t StreamHostDspDecode(const struct HdfDeviceIoClient *client, struct HdfSB audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL || audioCard->rtd == NULL) { - ADM_LOG_ERR("DspDecode get card instance or rtd fail."); + ADM_LOG_ERR("DspDecode get card instance or rtd failed."); return HDF_FAILURE; } rtd = audioCard->rtd; @@ -1163,7 +1333,7 @@ int32_t StreamHostDspDecode(const struct HdfDeviceIoClient *client, struct HdfSB ret = dspDev->devData->decode(audioCard, (void*)data, dspDev); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("DeCode render pause fail ret=%d", ret); + ADM_LOG_ERR("DeCode render pause failed ret=%d", ret); return HDF_ERR_IO; } @@ -1171,7 +1341,7 @@ int32_t StreamHostDspDecode(const struct HdfDeviceIoClient *client, struct HdfSB return HDF_SUCCESS; } -int32_t StreamHostDspEncode(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, +static int32_t StreamHostDspEncode(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { struct AudioRuntimeDeivces *rtd = NULL; @@ -1189,7 +1359,7 @@ int32_t StreamHostDspEncode(const struct HdfDeviceIoClient *client, struct HdfSB audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL || audioCard->rtd == NULL) { - ADM_LOG_ERR("DspEncode get card instance or rtd fail."); + ADM_LOG_ERR("DspEncode get card instance or rtd failed."); return HDF_FAILURE; } rtd = audioCard->rtd; @@ -1202,7 +1372,7 @@ int32_t StreamHostDspEncode(const struct HdfDeviceIoClient *client, struct HdfSB ret = dspDev->devData->encode(audioCard, (void*)data, dspDev); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("EnCode render pause fail ret=%d", ret); + ADM_LOG_ERR("EnCode render pause failed ret=%d", ret); return HDF_ERR_IO; } @@ -1210,7 +1380,7 @@ int32_t StreamHostDspEncode(const struct HdfDeviceIoClient *client, struct HdfSB return HDF_SUCCESS; } -int32_t StreamHostDspEqualizer(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, +static int32_t StreamHostDspEqualizer(const struct HdfDeviceIoClient *client, struct HdfSBuf *data, struct HdfSBuf *reply) { struct AudioRuntimeDeivces *rtd = NULL; @@ -1228,7 +1398,7 @@ int32_t StreamHostDspEqualizer(const struct HdfDeviceIoClient *client, struct Hd audioCard = StreamHostGetCardInstance(client); if (audioCard == NULL || audioCard->rtd == NULL) { - ADM_LOG_ERR("DspEqualizer get card instance or rtd fail."); + ADM_LOG_ERR("DspEqualizer get card instance or rtd failed."); return HDF_FAILURE; } rtd = audioCard->rtd; @@ -1241,7 +1411,7 @@ int32_t StreamHostDspEqualizer(const struct HdfDeviceIoClient *client, struct Hd ret = dspDev->devData->Equalizer(audioCard, (void*)data, dspDev); if (ret != HDF_SUCCESS) { - ADM_LOG_ERR("Equalizer render pause fail ret=%d", ret); + ADM_LOG_ERR("Equalizer render pause failed ret=%d", ret); return HDF_ERR_IO; } @@ -1250,48 +1420,42 @@ int32_t StreamHostDspEqualizer(const struct HdfDeviceIoClient *client, struct Hd } static struct StreamDispCmdHandleList g_streamDispCmdHandle[] = { - {AUDIO_DRV_PCM_IOCTRL_HW_PARAMS, StreamHostHwParams}, - {AUDIO_DRV_PCM_IOCTRL_RENDER_PREPARE, StreamHostRenderPrepare}, - {AUDIO_DRV_PCM_IOCTRL_CAPTURE_PREPARE, StreamHostCapturePrepare}, - {AUDIO_DRV_PCM_IOCTRL_RENDER_OPEN, StreamHostRenderOpen}, - {AUDIO_DRV_PCM_IOCTRL_RENDER_CLOSE, StreamHostRenderClose}, - {AUDIO_DRV_PCM_IOCTRL_WRITE, StreamHostWrite}, - {AUDIO_DRV_PCM_IOCTRL_READ, StreamHostRead}, - {AUDIO_DRV_PCM_IOCTRL_RENDER_START, StreamHostRenderStart}, - {AUDIO_DRV_PCM_IOCTRL_RENDER_STOP, StreamHostRenderStop}, - {AUDIO_DRV_PCM_IOCTRL_CAPTURE_OPEN, StreamHostCaptureOpen}, - {AUDIO_DRV_PCM_IOCTRL_CAPTURE_CLOSE, StreamHostCaptureClose}, - {AUDIO_DRV_PCM_IOCTRL_CAPTURE_START, StreamHostCaptureStart}, - {AUDIO_DRV_PCM_IOCTRL_CAPTURE_STOP, StreamHostCaptureStop}, - {AUDIO_DRV_PCM_IOCTRL_RENDER_PAUSE, StreamHostRenderPause}, - {AUDIO_DRV_PCM_IOCTRL_CAPTURE_PAUSE, StreamHostCapturePause}, - {AUDIO_DRV_PCM_IOCTRL_RENDER_RESUME, StreamHostRenderResume}, - {AUDIO_DRV_PCM_IOCTRL_CAPTURE_RESUME, StreamHostCaptureResume}, + {AUDIO_DRV_PCM_IOCTL_WRITE, StreamHostWrite}, + {AUDIO_DRV_PCM_IOCTL_READ, StreamHostRead}, + {AUDIO_DRV_PCM_IOCTL_HW_PARAMS, StreamHostHwParams}, + {AUDIO_DRV_PCM_IOCTL_RENDER_PREPARE, StreamHostRenderPrepare}, + {AUDIO_DRV_PCM_IOCTL_CAPTURE_PREPARE, StreamHostCapturePrepare}, + {AUDIO_DRV_PCM_IOCTL_RENDER_OPEN, StreamHostRenderOpen}, + {AUDIO_DRV_PCM_IOCTL_RENDER_CLOSE, StreamHostRenderClose}, + {AUDIO_DRV_PCM_IOCTL_RENDER_START, StreamHostRenderStart}, + {AUDIO_DRV_PCM_IOCTL_RENDER_STOP, StreamHostRenderStop}, + {AUDIO_DRV_PCM_IOCTL_CAPTURE_OPEN, StreamHostCaptureOpen}, + {AUDIO_DRV_PCM_IOCTL_CAPTURE_CLOSE, StreamHostCaptureClose}, + {AUDIO_DRV_PCM_IOCTL_CAPTURE_START, StreamHostCaptureStart}, + {AUDIO_DRV_PCM_IOCTL_CAPTURE_STOP, StreamHostCaptureStop}, + {AUDIO_DRV_PCM_IOCTL_RENDER_PAUSE, StreamHostRenderPause}, + {AUDIO_DRV_PCM_IOCTL_CAPTURE_PAUSE, StreamHostCapturePause}, + {AUDIO_DRV_PCM_IOCTL_RENDER_RESUME, StreamHostRenderResume}, + {AUDIO_DRV_PCM_IOCTL_CAPTURE_RESUME, StreamHostCaptureResume}, {AUDIO_DRV_PCM_IOCTL_MMAP_BUFFER, StreamHostMmapWrite}, {AUDIO_DRV_PCM_IOCTL_MMAP_BUFFER_CAPTURE, StreamHostMmapRead}, {AUDIO_DRV_PCM_IOCTL_MMAP_POSITION, StreamHostMmapPositionWrite}, {AUDIO_DRV_PCM_IOCTL_MMAP_POSITION_CAPTURE, StreamHostMmapPositionRead}, + {AUDIO_DRV_PCM_IOCTL_DSPDECODE, StreamHostDspDecode}, + {AUDIO_DRV_PCM_IOCTL_DSPENCODE,StreamHostDspEncode}, + {AUDIO_DRV_PCM_IOCTL_DSPEQUALIZER,StreamHostDspEqualizer}, }; -int32_t StreamDispatch(struct HdfDeviceIoClient *client, int cmdId, +static int32_t StreamDispatch(struct HdfDeviceIoClient *client, int cmdId, struct HdfSBuf *data, struct HdfSBuf *reply) { - unsigned int i = 0; - - if ((client == NULL) || (data == NULL) || (reply == NULL)) { - return HDF_ERR_INVALID_PARAM; - } - - if (cmdId >= AUDIO_DRV_PCM_IOCTRL_BUTT || cmdId < 0) { - ADM_LOG_ERR("invalid [cmdId=%d]", cmdId); - return HDF_FAILURE; - } - - for (i = 0; i < sizeof(g_streamDispCmdHandle) / sizeof(g_streamDispCmdHandle[0]); ++i) { + unsigned int count = sizeof(g_streamDispCmdHandle) / sizeof(g_streamDispCmdHandle[0]); + for (int i = 0; i < count; ++i) { if ((cmdId == (int)(g_streamDispCmdHandle[i].cmd)) && (g_streamDispCmdHandle[i].func != NULL)) { return g_streamDispCmdHandle[i].func(client, data, reply); } } + ADM_LOG_ERR("invalid [cmdId=%d]", cmdId); return HDF_FAILURE; } @@ -1303,7 +1467,7 @@ static struct StreamHost *StreamHostCreateAndBind(struct HdfDeviceObject *device struct StreamHost *streamHost = (struct StreamHost *)OsalMemCalloc(sizeof(*streamHost)); if (streamHost == NULL) { - ADM_LOG_ERR("malloc host fail!"); + ADM_LOG_ERR("malloc host failed!"); return NULL; } streamHost->device = device; diff --git a/model/audio/sapm/include/audio_sapm.h b/model/audio/sapm/include/audio_sapm.h index 7d39f43e9..20c0f6568 100755 --- a/model/audio/sapm/include/audio_sapm.h +++ b/model/audio/sapm/include/audio_sapm.h @@ -17,23 +17,6 @@ extern "C" { #endif #endif /* __cplusplus */ -#define SAPM_POLL_TIME 10000 /* 10s */ -#define SAPM_SLEEP_TIME (3 * 60000) /* 3min */ - -#define MIXER_REG_ADDR 10 /* mixer address -- Temporarily defined as this value */ - -#define SAPM_POWER_DOWN 0 -#define SAPM_POWER_UP 1 - -#define CONNECT_CODEC_PIN 1 -#define UNCONNECT_CODEC_PIN 0 - -#define EXIST_EXTERNAL_WIDGET 1 -#define UNEXIST_EXTERNAL_WIDGET 1 - -#define CONNECT_SINK_AND_SOURCE 1 -#define UNCONNECT_SINK_AND_SOURCE 0 - /* sapm widget types */ enum AudioSapmType { AUDIO_SAPM_INPUT = 0, /* input pin */ @@ -66,27 +49,6 @@ enum AudioSapmType { AUDIO_SAPM_SINK, }; -/* component has no PM register bit */ -#define AUDIO_SAPM_NOPM (-1) - -/* dapm stream operations */ -#define AUDIO_SAPM_STREAM_NOP 0x0 -#define AUDIO_SAPM_STREAM_START 0x1 -#define AUDIO_SAPM_STREAM_STOP 0x2 -#define AUDIO_SAPM_STREAM_SUSPEND 0x4 -#define AUDIO_SAPM_STREAM_RESUME 0x8 -#define AUDIO_SAPM_STREAM_PAUSE_PUSH 0x10 -#define AUDIO_SAPM_STREAM_PAUSE_RELEASE 0x20 - -/* sapm event types */ -#define AUDIO_SAPM_PRE_PMU 0x1 /* before component power up */ -#define AUDIO_SAPM_POST_PMU 0x2 /* after component power up */ -#define AUDIO_SAPM_PRE_PMD 0x4 /* before component power down */ -#define AUDIO_SAPM_POST_PMD 0x8 /* after component power down */ -#define AUDIO_SAPM_PRE_REG 0x10 /* before audio path setup */ -#define AUDIO_SAPM_POST_REG 0x20 /* after audio path setup */ -#define AUDIO_SAPM_PRE_POST_PMD (AUDIO_SAPM_PRE_PMD | AUDIO_SAPM_POST_PMD) - enum AudioBiasLevel { AUDIO_BIAS_OFF = 0, AUDIO_BIAS_STANDBY = 1, @@ -206,9 +168,7 @@ int32_t AudioSapmNewComponents(struct AudioCard *audioCard, int32_t AudioSapmAddRoutes(struct AudioCard *audioCard, const struct AudioSapmRoute *route, int32_t routeMaxNum); int32_t AudioSapmNewControls(struct AudioCard *audioCard); -int AudioSapmPowerComponents(struct AudioCard *audioCard); int32_t AudioSapmSleep(const struct AudioCard *audioCard); -uint64_t AudioSapmRefreshTime(bool bRefresh); int32_t AudioSampPowerUp(const struct AudioCard *card); int32_t AudioSampSetPowerMonitor(struct AudioCard *card, bool powerMonitorState); diff --git a/model/audio/sapm/src/audio_sapm.c b/model/audio/sapm/src/audio_sapm.c index a0d26e327..da7f723bd 100755 --- a/model/audio/sapm/src/audio_sapm.c +++ b/model/audio/sapm/src/audio_sapm.c @@ -14,7 +14,23 @@ #define HDF_LOG_TAG audio_sapm +#define SAPM_POLL_TIME 10000 /* 10s */ +#define SAPM_SLEEP_TIME (3 * 60000) /* 3min */ + +#define SAPM_POWER_DOWN 0 +#define SAPM_POWER_UP 1 + +#define CONNECT_CODEC_PIN 1 +#define UNCONNECT_CODEC_PIN 0 + +#define EXIST_EXTERNAL_WIDGET 1 +#define UNEXIST_EXTERNAL_WIDGET 1 + +#define CONNECT_SINK_AND_SOURCE 1 +#define UNCONNECT_SINK_AND_SOURCE 0 + static void AudioSapmEnterSleep(uintptr_t para); +static uint64_t AudioSapmRefreshTime(bool bRefresh); /* power up sequences */ static int32_t g_audioSapmPowerUpSeq[] = { @@ -940,7 +956,7 @@ static void AudioSapmPowerDownSeqRun(const struct DListHead *list) return; } -int AudioSapmPowerComponents(struct AudioCard *audioCard) +static int AudioSapmPowerComponents(struct AudioCard *audioCard) { struct AudioSapmComponent *sapmComponent = NULL; struct DListHead upList; @@ -1254,13 +1270,14 @@ int32_t AudioAccessorySapmSetCtrlOps(const struct AudioKcontrol *kcontrol, const return HDF_SUCCESS; } -uint64_t AudioSapmRefreshTime(bool bRefresh) +static uint64_t AudioSapmRefreshTime(bool bRefresh) { static uint64_t time = 0; if (bRefresh) { time = OsalGetSysTimeMs(); g_audioSapmIsSleep = false; + g_audioSapmIsStandby = false; } return time; } diff --git a/model/audio/sapm/test/unittest/common/audio_sapm_test.cpp b/model/audio/sapm/test/unittest/common/audio_sapm_test.cpp index d56b40374..a58531925 100755 --- a/model/audio/sapm/test/unittest/common/audio_sapm_test.cpp +++ b/model/audio/sapm/test/unittest/common/audio_sapm_test.cpp @@ -38,33 +38,64 @@ void AudioSapmTest::TearDown() { } -HWTEST_F(AudioSapmTest, AudioSapmTest001, TestSize.Level1) +HWTEST_F(AudioSapmTest, AudioSapmTest_AudioSapmNewComponents, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTNEWCOMPONENT, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOSAPMNEWCOMPONENTS, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioSapmTest, AudioSapmTest002, TestSize.Level1) +HWTEST_F(AudioSapmTest, AudioSapmTest_AudioSapmAddRoutes, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTADDROUTES, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOSAPMADDROUTES, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioSapmTest, AudioSapmTest003, TestSize.Level1) +HWTEST_F(AudioSapmTest, AudioSapmTest_AudioSapmNewControls, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTNEWCONTROLS, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOSAPMNEWCONTROLS, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioSapmTest, AudioSapmTest004, TestSize.Level1) +HWTEST_F(AudioSapmTest, AudioSapmTest_AudioSapmSleep, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTPOWERCOMPONET, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOSAPMSLEEP, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } -HWTEST_F(AudioSapmTest, AudioSapmTest005, TestSize.Level1) +HWTEST_F(AudioSapmTest, AudioSapmTest_AudioSampPowerUp, TestSize.Level1) { - struct HdfTestMsg msg = {g_testAudioType, TESTREFRESHTIME, -1}; + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOSAMPPOWERUP, -1}; EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); } + +HWTEST_F(AudioSapmTest, AudioSapmTest_AudioSampSetPowerMonitor, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOSAMPSETPOWERMONITOR, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioSapmTest, AudioSapmTest_AudioCodecSapmSetCtrlOps, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOCODECSAPMSETCTRLOPS, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioSapmTest, AudioSapmTest_AudioCodecSapmGetCtrlOps, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOCODECSAPMGETCTRLOPS, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioSapmTest, AudioSapmTest_AudioAccessorySapmSetCtrlOps, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOACCESSORYSAPMSETCTRLOPS, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + +HWTEST_F(AudioSapmTest, AudioSapmTest_AudioAccessorySapmGetCtrlOps, TestSize.Level1) +{ + struct HdfTestMsg msg = {g_testAudioType, TEST_AUDIOACCESSORYSAPMGETCTRLOPS, -1}; + EXPECT_EQ(0, HdfTestSendMsgToService(&msg)); +} + } diff --git a/test/unittest/model/audio/include/audio_accessory_base_test.h b/test/unittest/model/audio/include/audio_accessory_base_test.h new file mode 100644 index 000000000..b717401cb --- /dev/null +++ b/test/unittest/model/audio/include/audio_accessory_base_test.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * + * HDF is dual licensed: you can use it either under the terms of + * the GPL, or the BSD license, at your option. + * See the LICENSE file in the root of this repository for complete details. + */ + +#ifndef AUDIO_ACCESSORY_BASE_TEST_H +#define AUDIO_ACCESSORY_BASE_TEST_H + +#include "hdf_types.h" + +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif +#endif /* __cplusplus */ + +int32_t AccessoryI2cReadWriteTest(void); +int32_t AccessoryRegBitsReadTest(void); +int32_t AccessoryRegBitsUpdateTest(void); + +int32_t AcessoryDeviceFrequencyParseTest(void); +int32_t AccessoryDaiParamsUpdateTest(void); +int32_t AccessoryDeviceCfgGetTest(void); +int32_t AccessoryDeviceCtrlRegInitTest(void); +int32_t AccessoryDeviceRegReadTest(void); +int32_t AccessoryDeviceRegWriteTest(void); +int32_t AccessoryGetConfigInfoTest(void); + +#ifdef __cplusplus +#if __cplusplus +} +#endif +#endif /* __cplusplus */ + +#endif /* AUDIO_ACCESSORY_BASE_TEST_H */ diff --git a/test/unittest/model/audio/src/audio_stream_dispatch_test.c b/test/unittest/model/audio/include/audio_codec_base_test.h old mode 100755 new mode 100644 similarity index 30% rename from test/unittest/model/audio/src/audio_stream_dispatch_test.c rename to test/unittest/model/audio/include/audio_codec_base_test.h index 2d0f1c89f..c91aa271f --- a/test/unittest/model/audio/src/audio_stream_dispatch_test.c +++ b/test/unittest/model/audio/include/audio_codec_base_test.h @@ -5,25 +5,28 @@ * the GPL, or the BSD license, at your option. * See the LICENSE file in the root of this repository for complete details. */ -#include "audio_stream_dispatch_test.h" -#include "audio_stream_dispatch.h" -#define HDF_LOG_TAG audio_host_test +#ifndef AUDIO_CODEC_BASE_TEST_H +#define AUDIO_CODEC_BASE_TEST_H -int32_t AudioControlDispatchTestStreamDispatch(void) -{ - struct HdfDeviceIoClient *client = NULL; - struct HdfSBuf *data = NULL; - struct HdfSBuf *reply = NULL; - int32_t cmdId = 0; - int32_t ret; - HDF_LOGI("%s: enter", __func__); +#include "hdf_types.h" - ret = StreamDispatch(client, cmdId, data, reply); - if (ret != HDF_SUCCESS) { - HDF_LOGE("%s: (client || cmdId || data ||reply) is NULL", __func__); - } +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif +#endif /* __cplusplus */ - HDF_LOGI("%s: success", __func__); - return HDF_SUCCESS; +int32_t CodecGetServiceNameTest(void); +int32_t CodecGetDaiNameTest(void); +int32_t CodecGetConfigInfoTest(void); +int32_t CodecSetConfigInfoTest(void); +int32_t CodecSetCtlFuncTest(void); + +#ifdef __cplusplus +#if __cplusplus } +#endif +#endif /* __cplusplus */ + +#endif /* AUDIO_CODEC_BASE_TEST_H */ diff --git a/test/unittest/model/audio/include/audio_core_test.h b/test/unittest/model/audio/include/audio_core_test.h index 0481e9271..5f4b72a1e 100755 --- a/test/unittest/model/audio/include/audio_core_test.h +++ b/test/unittest/model/audio/include/audio_core_test.h @@ -17,28 +17,39 @@ extern "C" { #endif #endif /* __cplusplus */ -int32_t AudioSocTestRegisterPlatform(void); -int32_t AudioSocTestRegisterDai(void); -int32_t AudioTestRegisterAccessory(void); -int32_t AudioTestRegisterCodec(void); -int32_t AudioTestRegisterDsp(void); -int32_t AudioTestSocDeviceRegister(void); -int32_t AudioTestBindDaiLink(void); -int32_t AudioTestUpdateCodecRegBits(void); -int32_t AudioTestUpdateAccessoryRegBits(void); -int32_t AudioTestKcontrolGetCodec(void); -int32_t AudioTestKcontrolGetAccessory(void); -int32_t AudioTestAddControl(void); -int32_t AudioTestAddControls(void); -int32_t AudioTestCodecReadReg(void); -int32_t AudioTestAccessoryReadReg(void); -int32_t AudioTestCodecWriteReg(void); -int32_t AudioTestAccessoryWriteReg(void); -int32_t AudioTestInfoCtrlOps(void); -int32_t AudioTestCodecGetCtrlOps(void); -int32_t AudioTestAccessoryGetCtrlOps(void); -int32_t AudioTestCodecSetCtrlOps(void); -int32_t AudioTestAccessorySetCtrlOps(void); +int32_t AudioDeviceReadRegTest(void); +int32_t AudioDeviceWriteRegTest(void); +int32_t AudioSocRegisterPlatformTest(void); +int32_t AudioSocRegisterDaiTest(void); +int32_t AudioRegisterDspTest(void); +int32_t AudioRegisterCodecTest(void); +int32_t AudioRegisterAccessoryTest(void); +int32_t AudioBindDaiLinkTest(void); +int32_t AudioUpdateCodecRegBitsTest(void); +int32_t AudioUpdateAccessoryRegBitsTest(void); +int32_t AudioUpdateDaiRegBitsTest(void); +int32_t AudioKcontrolGetCpuDaiTest(void); +int32_t AudioKcontrolGetCodecTest(void); +int32_t AudioKcontrolGetAccessoryTest(void); +int32_t AudioAddControlsTest(void); +int32_t AudioAddControlTest(void); +int32_t AudioGetCtrlOpsRRegTest(void); +int32_t AudioGetCtrlOpsRegTest(void); +int32_t AudioSetCtrlOpsRegTest(void); +int32_t AudioSetCtrlOpsRRegTest(void); +int32_t AudioDaiReadRegTest(void); +int32_t AudioDaiWriteRegTest(void); +int32_t AudioCodecReadRegTest(void); +int32_t AudioCodecWriteRegTest(void); +int32_t AudioAccessoryReadRegTest(void); +int32_t AudioAccessoryWriteRegTest(void); +int32_t AudioInfoCtrlOpsTest(void); +int32_t AudioCodecGetCtrlOpsTest(void); +int32_t AudioCodecSetCtrlOpsTest(void); +int32_t AudioAccessoryGetCtrlOpsTest(void); +int32_t AudioAccessorySetCtrlOpsTset(void); +int32_t AudioCpuDaiSetCtrlOpsTest(void); +int32_t AudioCpuDaiGetCtrlOpsTest(void); #ifdef __cplusplus #if __cplusplus diff --git a/test/unittest/model/audio/include/audio_dai_base_test.h b/test/unittest/model/audio/include/audio_dai_base_test.h new file mode 100644 index 000000000..ce1e0d4a0 --- /dev/null +++ b/test/unittest/model/audio/include/audio_dai_base_test.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * + * HDF is dual licensed: you can use it either under the terms of + * the GPL, or the BSD license, at your option. + * See the LICENSE file in the root of this repository for complete details. + */ + +#ifndef AUDIO_DAI_BASE_TEST_H +#define AUDIO_DAI_BASE_TEST_H + +#include "hdf_types.h" + +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif +#endif /* __cplusplus */ + +int32_t DaiDataFromCardTest(void); +int32_t DaiGetConfigInfoTest(void); +int32_t DaiCheckSampleRateTest(void); +int32_t DaiSetConfigInfoTest(void); + +#ifdef __cplusplus +#if __cplusplus +} +#endif +#endif /* __cplusplus */ + +#endif /* AUDIO_DAI_BASE_TEST_H */ diff --git a/test/unittest/model/audio/include/audio_dma_base_test.h b/test/unittest/model/audio/include/audio_dma_base_test.h new file mode 100644 index 000000000..84cb7f95a --- /dev/null +++ b/test/unittest/model/audio/include/audio_dma_base_test.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * + * HDF is dual licensed: you can use it either under the terms of + * the GPL, or the BSD license, at your option. + * See the LICENSE file in the root of this repository for complete details. + */ + +#ifndef AUDIO_DMA_BASE_TEST_H +#define AUDIO_DMA_BASE_TEST_H + +#include "hdf_types.h" + +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif +#endif /* __cplusplus */ + +int32_t AudioDmaBufAllocTest(void); +int32_t AudioDmaBufFreeTest(void); +int32_t AudioDmaRequestChannelTest(void); +int32_t AudioDmaConfigChannelTest(void); +int32_t AudioDmaPrepTest(void); +int32_t AudioDmaSubmitTest(void); +int32_t AudioDmaPendingTest(void); +int32_t AudioDmaPauseTest(void); +int32_t AudioDmaResumeTest(void); +int32_t AudioDmaPointerTest(void); + +#ifdef __cplusplus +#if __cplusplus +} +#endif +#endif /* __cplusplus */ + +#endif /* AUDIO_DMA_BASE_TEST_H */ diff --git a/test/unittest/model/audio/include/audio_stream_dispatch_test.h b/test/unittest/model/audio/include/audio_dsp_base_test.h old mode 100755 new mode 100644 similarity index 61% rename from test/unittest/model/audio/include/audio_stream_dispatch_test.h rename to test/unittest/model/audio/include/audio_dsp_base_test.h index 5891ff424..3a30a0d7f --- a/test/unittest/model/audio/include/audio_stream_dispatch_test.h +++ b/test/unittest/model/audio/include/audio_dsp_base_test.h @@ -6,24 +6,24 @@ * See the LICENSE file in the root of this repository for complete details. */ -#ifndef AUDIO_STREAM_DISPATCH_TEST_H -#define AUDIO_STREAM_DISPATCH_TEST_H +#ifndef AUDIO_DSP_BASE_TEST_H +#define AUDIO_DSP_BASE_TEST_H #include "hdf_types.h" #ifdef __cplusplus #if __cplusplus -extern "C" -{ +extern "C" { #endif -#endif -int32_t AudioControlDispatchTestStreamDispatch(void); -int32_t AudioControlDispatchTestStreamHostDestroy(void); +#endif /* __cplusplus */ + +int32_t DspGetServiceNameTest(void); +int32_t DspGetDaiNameTest(void); #ifdef __cplusplus #if __cplusplus } #endif -#endif +#endif /* __cplusplus */ -#endif +#endif /* AUDIO_DSP_BASE_TEST_H */ diff --git a/test/unittest/model/audio/include/audio_host_test.h b/test/unittest/model/audio/include/audio_host_test.h index abb05d3ac..c4e88e6dd 100755 --- a/test/unittest/model/audio/include/audio_host_test.h +++ b/test/unittest/model/audio/include/audio_host_test.h @@ -17,8 +17,8 @@ extern "C" { #endif #endif /* __cplusplus */ -int32_t AudioKcontrolTestGetCodec(void); -int32_t GetCardTestInstance(void); +int32_t AudioHostCreateAndBindTest(void); +int32_t GetCardInstanceTest(void); #ifdef __cplusplus #if __cplusplus diff --git a/test/unittest/model/audio/include/audio_parse_test.h b/test/unittest/model/audio/include/audio_parse_test.h index 1e070050b..30aa73443 100755 --- a/test/unittest/model/audio/include/audio_parse_test.h +++ b/test/unittest/model/audio/include/audio_parse_test.h @@ -17,7 +17,8 @@ extern "C" { #endif #endif /* __cplusplus */ -int32_t AudioFillTestConfigData(void); +int32_t AudioFillConfigDataTest(void); +int32_t CodecGetRegConfigTest(void); #ifdef __cplusplus #if __cplusplus diff --git a/test/unittest/model/audio/include/audio_platform_base_test.h b/test/unittest/model/audio/include/audio_platform_base_test.h new file mode 100644 index 000000000..f88a37be7 --- /dev/null +++ b/test/unittest/model/audio/include/audio_platform_base_test.h @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * + * HDF is dual licensed: you can use it either under the terms of + * the GPL, or the BSD license, at your option. + * See the LICENSE file in the root of this repository for complete details. + */ + +#ifndef AUDIO_PLATFORM_BASE_TEST_H +#define AUDIO_PLATFORM_BASE_TEST_H + +#include "hdf_types.h" + +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif +#endif /* __cplusplus */ + +int32_t PlatformDataFromCardTest(void); +int32_t AudioBytesToFramesTest(void); +int32_t AudioDataBigEndianChangeTest(void); +int32_t AudioFramatToBitWidthTest(void); +int32_t AudioSetPcmInfoTest(void); +int32_t AudioSetRenderBufInfoTest(void); +int32_t AudioSetCaptureBufInfoTest(void); +int32_t AudioPcmWriteTest(void); +int32_t AudioPcmReadTest(void); +int32_t AudioPcmMmapWriteTest(void); +int32_t AudioPcmMmapReadTest(void); +int32_t AudioRenderOpenTest(void); +int32_t AudioCaptureOpenTest(void); +int32_t AudioRenderCloseTest(void); +int32_t AudioPcmPointerTest(void); +int32_t AudioCaptureCloseTest(void); +int32_t AudioHwParamsTest(void); +int32_t AudioRenderPrepareTest(void); +int32_t AudioCapturePrepareTest(void); +int32_t AudioRenderTriggerTest(void); +int32_t AudioCaptureTriggerTest(void); + +#ifdef __cplusplus +#if __cplusplus +} +#endif +#endif /* __cplusplus */ + +#endif /* AUDIO_PLATFORM_BASE_TEST_H */ diff --git a/test/unittest/model/audio/include/audio_sapm_test.h b/test/unittest/model/audio/include/audio_sapm_test.h index f3666c028..3248b3231 100755 --- a/test/unittest/model/audio/include/audio_sapm_test.h +++ b/test/unittest/model/audio/include/audio_sapm_test.h @@ -17,11 +17,17 @@ extern "C" { #endif #endif -int32_t AudioSapmTestNewComponents(void); -int32_t AudioSapmTestAddRoutes(void); -int32_t AudioSapmTestNewControls(void); -int32_t AudioSapmTestPowerComponents(void); -int32_t AudioSapmTestRefreshTime(void); + +int32_t AudioSapmNewComponentsTest(void); +int32_t AudioSapmAddRoutesTest(void); +int32_t AudioSapmNewControlsTest(void); +int32_t AudioSapmSleepTest(void); +int32_t AudioSampPowerUpTest(void); +int32_t AudioSampSetPowerMonitorTest(void); +int32_t AudioCodecSapmSetCtrlOpsTest(void); +int32_t AudioCodecSapmGetCtrlOpsTest(void); +int32_t AudioAccessorySapmSetCtrlOpsTest(void); +int32_t AudioAccessorySapmGetCtrlOpsTest(void); #ifdef __cplusplus #if __cplusplus diff --git a/test/unittest/model/audio/include/hdf_audio_test.h b/test/unittest/model/audio/include/hdf_audio_test.h index 9da3251a5..572998e1b 100755 --- a/test/unittest/model/audio/include/hdf_audio_test.h +++ b/test/unittest/model/audio/include/hdf_audio_test.h @@ -18,47 +18,114 @@ extern "C" { #endif /* __cplusplus */ typedef enum { - AUDIO_DRIVER_TESTGETCODEC, - AUDIO_DRIVER_TESTGETCARDINSTANCE, - AUDIO_DRIVER_TESTGETCCNFIGDATA, - AUDIO_DRIVER_TESTREGISTERPLATFORM, - AUDIO_DRIVER_TESTREGISTERDAI, - AUDIO_DRIVER_TESTREGISTERACCESSORY, - AUDIO_DRIVER_TESTREGISTERCODEC, - AUDIO_DRIVER_TESTREGISTERDSP, - AUDIO_DRIVER_TESTSOCDEVICEREGISTER, - AUDIO_DRIVER_TESTBINDDAILINK, - AUDIO_DRIVER_TESTUPDATECODECREGBITS, - AUDIO_DRIVER_TESTUPDATEACCESSORYREGBITS, - AUDIO_DRIVER_TESTUPDATECODECAIAOREGBITS, - AUDIO_DRIVER_TESTUPDATEACCESSORYAIAOREGBITS, - AUDIO_DRIVER_TESTKCONTROLGETCODEC, - AUDIO_DRIVER_TESTKCONTROLGETACCESSORY, - AUDIO_DRIVER_TESTADDCONTROL, - AUDIO_DRIVER_TESTADDCONTROLS, - AUDIO_DRIVER_TESTCODECREADREG, - AUDIO_DRIVER_TESTACCESSORYREADREG, - AUDIO_DRIVER_TESTCODECAIAOREADREG, - AUDIO_DRIVER_TESTACCESSORYAIAOREADREG, - AUDIO_DRIVER_TESTCODECWRITEREG, - AUDIO_DRIVER_TESTACCESSORYWRITEREG, - AUDIO_DRIVER_TESTCODECAIAOWRITEREG, - AUDIO_DRIVER_TESTACCESSORYAIAOWRITEREG, - AUDIO_DRIVER_TESTINFOCTRLOPS, - AUDIO_DRIVER_TESTCODECGETCTRLOPS, - AUDIO_DRIVER_TESTACCESSORYGETCTRLOPS, - AUDIO_DRIVER_TESTCODECAIAOGETCTRLOPS, - AUDIO_DRIVER_TESTACCESSORYAIAOGETCTRLOPS, - AUDIO_DRIVER_TESTCODECSETCTRLOPS, - AUDIO_DRIVER_TESTACCESSORYSETCTRLOPS, - AUDIO_DRIVER_TESTCODECAIAOSETCTRLOPS, - AUDIO_DRIVER_TESTACCESSORYAIAOSETCTRLOPS, - AUDIO_DRIVER_TESTNEWCOMPONENT, - AUDIO_DRIVER_TESTADDROUTES, - AUDIO_DRIVER_TESTNEWCONTROLS, - AUDIO_DRIVER_TESTPOWERCOMPONET, - AUDIO_DRIVER_TESTREFRESHTIME, - AUDIO_DRIVER_TESTSTREAMDISPATCH, + AUDIO_ADM_TEST_AUDIOHOSTCREATEANDBIND = 1, // audio ADM audio_host + AUDIO_ADM_TEST_GETCARDINSTANCE = 2, // audio ADM audio_host + + AUDIO_ADM_TEST_AUDIOFILLCONFIGDATA = 3, // audio ADM audio_parse + AUDIO_ADM_TEST_CODECGETREGCONFIG = 4, // audio ADM audio_parse + + AUDIO_ADM_TEST_AUDIODEVICEREADREG = 5, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIODEVICEWRITEREG, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOSOCREGISTERPLATFORM, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOSOCREGISTERDAI, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOREGISTERDSP, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOREGISTERCODEC, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOREGISTERACCESSORY, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOBINDDAILINK, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOUPDATECODECREGBITS, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOUPDATEACCESSORYREGBITS, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOUPDATEDAIREGBITS, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOKCONTROLGETCPUDAI, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOKCONTROLGETCODEC, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOKCONTROLGETACCESSORY, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOADDCONTROLS, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOADDCONTROL, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOGETCTRLOPSRREG, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOGETCTRLOPSREG, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOSETCTRLOPSREG, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOSETCTRLOPSRREG, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIODAIREADREG, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIODAIWRITEREG, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOCODECREADREG, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOCODECWRITEREG, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOACCESSORYREADREG, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOACCESSORYWRITEREG, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOINFOCTRLOPS, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOCODECGETCTRLOPS, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOCODECSETCTRLOPS, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOACCESSORYGETCTRLOPS, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOACCESSORYSETCTRLOPS, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOCPUDAISETCTRLOPS, // audio ADM audio_core + AUDIO_ADM_TEST_AUDIOCPUDAIGETCTRLOPS = 37, // audio ADM audio_core + + AUDIO_ADM_TEST_AUDIOSAPMNEWCOMPONENTS = 38, // audio ADM audio_sapm + AUDIO_ADM_TEST_AUDIOSAPMADDROUTES, // audio ADM audio_sapm + AUDIO_ADM_TEST_AUDIOSAPMNEWCONTROLS, // audio ADM audio_sapm + AUDIO_ADM_TEST_AUDIOSAPMSLEEP, // audio ADM audio_sapm + AUDIO_ADM_TEST_AUDIOSAMPPOWERUP, // audio ADM audio_sapm + AUDIO_ADM_TEST_AUDIOSAMPSETPOWERMONITOR, // audio ADM audio_sapm + AUDIO_ADM_TEST_AUDIOCODECSAPMSETCTRLOPS, // audio ADM audio_sapm + AUDIO_ADM_TEST_AUDIOCODECSAPMGETCTRLOPS, // audio ADM audio_sapm + AUDIO_ADM_TEST_AUDIOACCESSORYSAPMSETCTRLOPS, // audio ADM audio_sapm + AUDIO_ADM_TEST_AUDIOACCESSORYSAPMGETCTRLOPS = 47, // audio ADM audio_sapm + + AUDIO_ADM_TEST_I2CREADWRITE, // audio ADM audio_accessory_base + AUDIO_ADM_TEST_REGBITSREAD, + AUDIO_ADM_TEST_REGBITSUPDATE, + AUDIO_ADM_TEST_DEVICEFREQUENCYPARSE, + AUDIO_ADM_TEST_DAIPARAMSUPDATE, + AUDIO_ADM_TEST_DEVICECFGGET, + AUDIO_ADM_TEST_DEVICECTRLREGINIT, + AUDIO_ADM_TEST_DEVICEREGREAD, + AUDIO_ADM_TEST_DEVICEREGWRITE, + AUDIO_ADM_TEST_AGETCONFIGINFO, + + AUDIO_ADM_TEST_GETSERVICENAME, // audio ADM audio_codec_base + AUDIO_ADM_TEST_GETDAINAME, + AUDIO_ADM_TEST_GETCONFIGINFO, + AUDIO_ADM_TEST_SETCONFIGINFO, + AUDIO_ADM_TEST_SETCTLFUNC, + + AUDIO_ADM_TEST_DAIDATAFROMCARD, // audio ADM audio_dai_base + AUDIO_ADM_TEST_DAIGETCONFIGINFO, + AUDIO_ADM_TEST_DAICHECKSAMPLERATE, + AUDIO_ADM_TEST_DAISETCONFIGINFO, + + AUDIO_ADM_TEST_DMABUFALLOC, // audio ADM audio_dma_base + AUDIO_ADM_TEST_DMABUFFREE, + AUDIO_ADM_TEST_DMAREQUESTCHANNEL, + AUDIO_ADM_TEST_DMACONFIGCHANNEL, + AUDIO_ADM_TEST_DMAPREP, + AUDIO_ADM_TEST_DMASUBMIT, + AUDIO_ADM_TEST_DMAPENDING, + AUDIO_ADM_TEST_DMAPAUSE, + AUDIO_ADM_TEST_DMARESUME, + AUDIO_ADM_TEST_DMAPOINTER, + + AUDIO_ADM_TEST_DSPGETSERVICENAME, // audio ADM audio_dsp_base + AUDIO_ADM_TEST_DSPGETDAINAME, + + AUDIO_ADM_TEST_DATAFROMCARD, // audio ADM audio_platform_base + AUDIO_ADM_TEST_BYTESTOFRAMES, + AUDIO_ADM_TEST_DATABIGENDIANCHANGE, + AUDIO_ADM_TEST_FRAMATTOBITWIDTH, + AUDIO_ADM_TEST_SETPCMINFO, + AUDIO_ADM_TEST_SETRENDERBUFINFO, + AUDIO_ADM_TEST_SETCAPTUREBUFINFO, + AUDIO_ADM_TEST_PCMWRITE, + AUDIO_ADM_TEST_PCMREAD, + AUDIO_ADM_TEST_PCMMMAPWRITE, + AUDIO_ADM_TEST_PCMMMAPREAD, + AUDIO_ADM_TEST_RENDEROPEN, + AUDIO_ADM_TEST_CAPTUREOPEN, + AUDIO_ADM_TEST_RENDERCLOSE, + AUDIO_ADM_TEST_PCMPOINTER, + AUDIO_ADM_TEST_CAPTURECLOSE, + AUDIO_ADM_TEST_HWPARAMS, + AUDIO_ADM_TEST_RENDERPREPARE, + AUDIO_ADM_TEST_CAPTUREPREPARE, + AUDIO_ADM_TEST_RENDERTRIGGER, + AUDIO_ADM_TEST_CAPTURETRIGGER, } HdfAudioTestCaseCmd; int32_t HdfAudioEntry(HdfTestMsg *msg); diff --git a/test/unittest/model/audio/src/audio_accessory_base_test.c b/test/unittest/model/audio/src/audio_accessory_base_test.c new file mode 100644 index 000000000..7227108c8 --- /dev/null +++ b/test/unittest/model/audio/src/audio_accessory_base_test.c @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * + * HDF is dual licensed: you can use it either under the terms of + * the GPL, or the BSD license, at your option. + * See the LICENSE file in the root of this repository for complete details. + */ + +#include "audio_accessory_base_test.h" +#include "audio_accessory_base.h" +#include "audio_driver_log.h" + +#define HDF_LOG_TAG audio_accessory_base_test + +int32_t AccessoryI2cReadWriteTest(void) +{ + struct AudioAddrConfig addrConfig; + + if (AccessoryI2cReadWrite(NULL, 0) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AccessoryI2cReadWrite(&addrConfig, 0) == HDF_SUCCESS) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +int32_t AccessoryRegBitsReadTest(void) +{ + struct AudioMixerControl reg; + uint32_t regValue = 0; + + if (AccessoryRegBitsRead(NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AccessoryRegBitsRead(®, ®Value) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AccessoryRegBitsUpdateTest(void) +{ + struct AudioMixerControl reg; + + if (AccessoryRegBitsUpdate(reg) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + + +int32_t AcessoryDeviceFrequencyParseTest(void) +{ + uint16_t freq = 0; + if (AcessoryDeviceFrequencyParse(0, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AcessoryDeviceFrequencyParse(0, &freq) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AccessoryDaiParamsUpdateTest(void) +{ + struct DaiParamsVal value; + if (AccessoryDaiParamsUpdate(value) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AccessoryDeviceCfgGetTest(void) +{ + if (AccessoryDeviceCfgGet(NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + struct AccessoryData accessoryData; + struct AccessoryTransferData accessoryTransferData; + + memset(&accessoryData, 0, sizeof(struct AccessoryData)); + memset(&accessoryTransferData, 0, sizeof(struct AccessoryTransferData)); + if (AccessoryDeviceCfgGet(&accessoryData, &accessoryTransferData) == HDF_SUCCESS) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +int32_t AccessoryDeviceCtrlRegInitTest(void) +{ + if (AccessoryDeviceCtrlRegInit() == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AccessoryDeviceRegReadTest(void) +{ + if (AccessoryDeviceRegRead(NULL, 0, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + uint32_t val; + struct AccessoryDevice codec; + if (AccessoryDeviceRegRead(&codec, 0, &val) == HDF_SUCCESS) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +int32_t AccessoryDeviceRegWriteTest(void) +{ + if (AccessoryDeviceRegWrite(NULL, 0, 0) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + struct AccessoryDevice codec; + if (AccessoryDeviceRegWrite(&codec, 0, 0) == HDF_SUCCESS) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +int32_t AccessoryGetConfigInfoTest(void) +{ + struct HdfDeviceObject device; + struct AccessoryData codecData; + + if (AccessoryGetConfigInfo(NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AccessoryGetConfigInfo(&device, &codecData) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + diff --git a/test/unittest/model/audio/src/audio_codec_base_test.c b/test/unittest/model/audio/src/audio_codec_base_test.c new file mode 100644 index 000000000..7c90f655a --- /dev/null +++ b/test/unittest/model/audio/src/audio_codec_base_test.c @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * + * HDF is dual licensed: you can use it either under the terms of + * the GPL, or the BSD license, at your option. + * See the LICENSE file in the root of this repository for complete details. + */ + +#include "audio_codec_base_test.h" +#include "audio_codec_base.h" +#include "audio_driver_log.h" + +#define HDF_LOG_TAG audio_codec_base_test + +int32_t CodecGetServiceNameTest(void) +{ + struct HdfDeviceObject device; + const char *drvCodecName = ""; + + if (CodecGetServiceName(NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (CodecGetServiceName(&device, &drvCodecName) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t CodecGetDaiNameTest(void) +{ + struct HdfDeviceObject device; + const char *drvCodecName = ""; + + if (CodecGetDaiName(NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (CodecGetDaiName(&device, &drvCodecName) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t CodecGetConfigInfoTest(void) +{ + struct HdfDeviceObject device; + struct CodecData codecData; + + if (CodecGetConfigInfo(NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (CodecGetConfigInfo(&device, &codecData) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t CodecSetConfigInfoTest(void) +{ + struct DaiData device; + struct CodecData codecData; + + memset(&device, 0, sizeof(struct DaiData)); + memset(&codecData, 0, sizeof(struct CodecData)); + if (CodecSetConfigInfo(NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (CodecSetConfigInfo(&codecData, &device) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t CodecSetCtlFuncTest(void) +{ + struct CodecData codeData; + + if (CodecSetCtlFunc(NULL, NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (CodecSetCtlFunc(&codeData, NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} diff --git a/test/unittest/model/audio/src/audio_core_test.c b/test/unittest/model/audio/src/audio_core_test.c index 4d10e3390..1d5b7682e 100755 --- a/test/unittest/model/audio/src/audio_core_test.c +++ b/test/unittest/model/audio/src/audio_core_test.c @@ -12,13 +12,8 @@ #include "devsvc_manager_clnt.h" #define HDF_LOG_TAG audio_core_test -#define AUDIO_CORE_SERVICE_TEST_NAME "hdf_audio_codec_dev0" -#define PLATFORM_TEST_NAME "codec_service_1" -#define PLATFORM_CODEC_TEST_NAME "codec_service_0" -#define ACCESSORY_DAI_TEST_NAME "accessory_dai" -#define DSP_TEST_NAME "dsp_service_0" -const struct AudioMixerControl g_audioMixerRegParams = { +static struct AudioMixerControl g_audioTestReg = { .reg = 0x2004, /* [0] output volume */ .rreg = 0x2004, /* register value */ .shift = 8, /* offset */ @@ -29,29 +24,56 @@ const struct AudioMixerControl g_audioMixerRegParams = { .invert = 0, /* invert */ }; -int32_t AudioSocTestRegisterPlatform(void) +static int32_t AudioDeviceReadRegMock(unsigned long virtualAddress, uint32_t reg, uint32_t *value) +{ + return HDF_SUCCESS; +} + +static int32_t AudioDeviceWriteRegMock(unsigned long virtualAddress, uint32_t reg, uint32_t value) +{ + return HDF_SUCCESS; +} + +int32_t AudioDeviceReadRegTest(void) +{ + int value; + HDF_LOGI("%s: enter", __func__); + return AudioDeviceReadRegMock(0 ,0, &value); + HDF_LOGI("%s: success", __func__); +} + +int32_t AudioDeviceWriteRegTest(void) { HDF_LOGI("%s: enter", __func__); + return AudioDeviceWriteRegMock(0 ,0, 0);; + HDF_LOGI("%s: success", __func__); +} + +int32_t AudioSocRegisterPlatformTest(void) +{ + struct HdfDeviceObject *device = NULL; + struct PlatformData platformData; + HDF_LOGI("%s: enter", __func__); if (AudioSocRegisterPlatform(NULL, NULL) == HDF_SUCCESS) { HDF_LOGE("%s_[%d] AudioSocRegisterPlatform fail", __func__, __LINE__); return HDF_FAILURE; } - struct HdfDeviceObject *device = DevSvcManagerClntGetDeviceObject(AUDIO_CORE_SERVICE_TEST_NAME); - struct PlatformData data = { - .drvPlatformName = PLATFORM_TEST_NAME, - }; - if (AudioSocRegisterPlatform(device, &data) != HDF_SUCCESS) { + device = DevSvcManagerClntGetDeviceObject("hdf_audio_codec_dev0"); + (void)memset_s(&platformData, sizeof(struct PlatformData), 0, sizeof(struct PlatformData)); + platformData.drvPlatformName = "dma_service_0"; + if (AudioSocRegisterPlatform(device, &platformData) != HDF_SUCCESS) { HDF_LOGE("%s_[%d] AudioSocRegisterPlatform fail", __func__); return HDF_FAILURE; } HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; } - -int32_t AudioSocTestRegisterDai(void) +int32_t AudioSocRegisterDaiTest(void) { + struct HdfDeviceObject *device = NULL; + struct DaiData data; HDF_LOGI("%s: enter", __func__); if (AudioSocRegisterDai(NULL, NULL) == HDF_SUCCESS) { @@ -59,10 +81,9 @@ int32_t AudioSocTestRegisterDai(void) return HDF_FAILURE; } - struct HdfDeviceObject *device = DevSvcManagerClntGetDeviceObject(AUDIO_CORE_SERVICE_TEST_NAME); - struct DaiData data = { - .drvDaiName = ACCESSORY_DAI_TEST_NAME, - }; + device = DevSvcManagerClntGetDeviceObject("hdf_audio_codec_dev0"); + (void)memset_s(&data, sizeof(struct DaiData), 0, sizeof(struct DaiData)); + data.drvDaiName = "dai_service"; if (AudioSocRegisterDai(device, &data) != HDF_SUCCESS) { HDF_LOGE("%s_[%d] AudioSocRegisterDai fail", __func__, __LINE__); return HDF_FAILURE; @@ -72,33 +93,37 @@ int32_t AudioSocTestRegisterDai(void) return HDF_SUCCESS; } -int32_t AudioTestRegisterAccessory(void) +int32_t AudioRegisterDspTest(void) { + struct HdfDeviceObject *device = NULL; + struct DaiData daiData; + struct DspData dspData; HDF_LOGI("%s: enter", __func__); - if (AudioRegisterAccessory(NULL, NULL, NULL) == HDF_SUCCESS) { - HDF_LOGE("%s_[%d] AudioRegisterAccessory fail", __func__, __LINE__); + if (AudioRegisterDsp(NULL, NULL, NULL) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioSocRegisterDsp fail", __func__, __LINE__); return HDF_FAILURE; } - struct HdfDeviceObject *device = DevSvcManagerClntGetDeviceObject(AUDIO_CORE_SERVICE_TEST_NAME); - struct AccessoryData data = { - .drvAccessoryName = ACCESSORY_DAI_TEST_NAME, - }; - struct DaiData daiData = { - .drvDaiName = ACCESSORY_DAI_TEST_NAME, - }; - - if (AudioRegisterAccessory(device, &data, &daiData) != HDF_SUCCESS) { - HDF_LOGE("%s_[%d] AudioRegisterAccessory fail", __func__, __LINE__); + device = DevSvcManagerClntGetDeviceObject("hdf_audio_codec_dev0"); + (void)memset_s(&daiData, sizeof(struct DspData), 0, sizeof(struct DspData)); + (void)memset_s(&daiData, sizeof(struct DaiData), 0, sizeof(struct DaiData)); + dspData.drvDspName = "dsp_service_0", + daiData.drvDaiName = "dai_service"; + if (AudioRegisterDsp(device, &dspData, &daiData) != HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioSocRegisterDsp fail", __func__, __LINE__); return HDF_FAILURE; } + HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; } -int32_t AudioTestRegisterCodec(void) +int32_t AudioRegisterCodecTest(void) { + struct HdfDeviceObject *device = NULL; + struct DaiData daiData; + struct CodecData codecData; HDF_LOGI("%s: enter", __func__); if (AudioRegisterCodec(NULL, NULL, NULL) == HDF_SUCCESS) { @@ -106,13 +131,11 @@ int32_t AudioTestRegisterCodec(void) return HDF_FAILURE; } - struct HdfDeviceObject *device = DevSvcManagerClntGetDeviceObject(AUDIO_CORE_SERVICE_TEST_NAME); - struct CodecData codecData = { - .drvCodecName = ACCESSORY_DAI_TEST_NAME, - }; - struct DaiData daiData = { - .drvDaiName = ACCESSORY_DAI_TEST_NAME, - }; + device = DevSvcManagerClntGetDeviceObject("hdf_audio_codec_dev0"); + (void)memset_s(&codecData, sizeof(struct CodecData), 0, sizeof(struct CodecData)); + (void)memset_s(&daiData, sizeof(struct DaiData), 0, sizeof(struct DaiData)); + codecData.drvCodecName = "codec_dai"; + daiData.drvDaiName = "dai_service"; if (AudioRegisterCodec(device, &codecData, &daiData) != HDF_SUCCESS) { HDF_LOGE("%s_[%d] AudioRegisterCodec fail", __func__, __LINE__); return HDF_FAILURE; @@ -122,159 +145,155 @@ int32_t AudioTestRegisterCodec(void) return HDF_SUCCESS; } -int32_t AudioTestRegisterDsp(void) +int32_t AudioRegisterAccessoryTest(void) { + struct HdfDeviceObject *device = NULL; + struct DaiData daiData; + struct AccessoryData accessoryData; HDF_LOGI("%s: enter", __func__); - if (AudioRegisterDsp(NULL, NULL, NULL) == HDF_SUCCESS) { - HDF_LOGE("%s_[%d] AudioSocRegisterDsp fail", __func__, __LINE__); + if (AudioRegisterAccessory(NULL, NULL, NULL) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioRegisterAccessory fail", __func__, __LINE__); return HDF_FAILURE; } - struct HdfDeviceObject *device = DevSvcManagerClntGetDeviceObject(AUDIO_CORE_SERVICE_TEST_NAME); - struct DaiData daiData = { - .drvDaiName = ACCESSORY_DAI_TEST_NAME, - }; - struct DspData dspData = { - .drvDspName = DSP_TEST_NAME, - }; - - if (AudioRegisterDsp(device, &dspData, &daiData) != HDF_SUCCESS) { - HDF_LOGE("%s_[%d] AudioSocRegisterDsp fail", __func__, __LINE__); + device = DevSvcManagerClntGetDeviceObject("hdf_audio_codec_dev0"); + (void)memset_s(&accessoryData, sizeof(struct AccessoryData), 0, sizeof(struct AccessoryData)); + (void)memset_s(&daiData, sizeof(struct DaiData), 0, sizeof(struct DaiData)); + accessoryData.drvAccessoryName = "accessory_dai"; + daiData.drvDaiName = "dai_service"; + if (AudioRegisterAccessory(device, &accessoryData, &daiData) != HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioRegisterAccessory fail", __func__, __LINE__); return HDF_FAILURE; } - HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; + } -int32_t AudioTestSocDeviceRegister(void) +int32_t AudioBindDaiLinkTest(void) { - struct { - char *name; - } data; - - enum AudioDeviceType deviceType = AUDIO_DAI_DEVICE; + struct AudioCard *card = NULL; + struct AudioConfigData configData; HDF_LOGI("%s: enter", __func__); - if (AudioSocDeviceRegister(NULL, NULL, deviceType) == HDF_SUCCESS) { - HDF_LOGE("%s_[%d] AudioSocDeviceRegister fail", __func__, __LINE__); + if (AudioBindDaiLink(NULL, NULL) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioBindDaiLink fail", __func__, __LINE__); return HDF_FAILURE; } - struct HdfDeviceObject *device = DevSvcManagerClntGetDeviceObject(AUDIO_CORE_SERVICE_TEST_NAME); - data.name = ACCESSORY_DAI_TEST_NAME; - if (AudioSocDeviceRegister(device, &data, deviceType) != HDF_SUCCESS) { - HDF_LOGE("%s_[%d] AudioSocDeviceRegister fail", __func__, __LINE__); + card = GetCardInstance("hdf_audio_codec_dev0"); + if (card == NULL) { + HDF_LOGE("%s_[%d] git audioCard fail!", __func__, __LINE__); return HDF_FAILURE; } - deviceType = AUDIO_PLATFORM_DEVICE; - data.name = PLATFORM_TEST_NAME; - if (AudioSocDeviceRegister(device, &data, deviceType) != HDF_SUCCESS) { - HDF_LOGE("%s_[%d] AudioSocDeviceRegister fail", __func__, __LINE__); + (void)memset_s(&configData, sizeof(struct AudioConfigData), 0, sizeof(struct AudioConfigData)); + configData.platformName = "dma_service_0"; + configData.cpuDaiName = "dai_service"; + configData.codecName = "codec_service_0"; + configData.accessoryName = "codec_service_1"; + configData.dspName = "dsp_service_0"; + if (AudioBindDaiLink(card, &configData) != HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioBindDaiLink fail", __func__, __LINE__); return HDF_FAILURE; } + HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; } -int32_t AudioTestBindDaiLink(void) +int32_t AudioUpdateCodecRegBitsTest(void) { + struct CodecData codecData; + struct CodecDevice codec; HDF_LOGI("%s: enter", __func__); - if (AudioBindDaiLink(NULL, NULL) == HDF_SUCCESS) { - HDF_LOGE("%s_[%d] AudioBindDaiLink fail", __func__, __LINE__); + if (AudioUpdateCodecRegBits(NULL, NULL, 0) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioUpdateCodecRegBits fail", __func__, __LINE__); return HDF_FAILURE; } - struct AudioCard *card = (struct AudioCard *)OsalMemCalloc(sizeof(struct AudioCard)); - if (card == NULL) { - ADM_LOG_ERR("%s_[%d] Malloc audioCard fail!", __func__, __LINE__); - return HDF_FAILURE; - } - struct HdfDeviceObject *device = DevSvcManagerClntGetDeviceObject(AUDIO_CORE_SERVICE_TEST_NAME); - if (AudioFillConfigData(device, &(card->configData)) != HDF_SUCCESS) { - ADM_LOG_ERR("%s_[%d] AudioFillConfigData fail", __func__, __LINE__); - OsalMemFree(card); - card = NULL; + (void)memset_s(&codecData, sizeof(struct CodecData), 0, sizeof(struct CodecData)); + (void)memset_s(&codec, sizeof(struct CodecDevice), 0, sizeof(struct CodecDevice)); + codecData.Read = AudioDeviceReadRegMock; + codecData.Write = AudioDeviceWriteRegMock, + codec.devCodecName = "codec_service_0"; + OsalMutexInit(&codec.mutex); + codec.devData = &codecData; + if (AudioUpdateCodecRegBits(&codec, &g_audioTestReg, g_audioTestReg.min + 1) != HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioUpdateCodecRegBits fail", __func__, __LINE__); + OsalMutexDestroy(&codec.mutex); return HDF_FAILURE; } - if (AudioBindDaiLink(card, &(card->configData)) != HDF_SUCCESS) { - HDF_LOGE("%s_[%d] AudioBindDaiLink fail", __func__, __LINE__); - OsalMemFree(card); - card = NULL; - return HDF_FAILURE; - } - OsalMemFree(card->rtd); - card->rtd = NULL; - OsalMemFree(card); - card = NULL; + OsalMutexDestroy(&codec.mutex); HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; } -int32_t ReadCodecReg(unsigned long virtualAddress, uint32_t reg, uint32_t *val) +int32_t AudioUpdateAccessoryRegBitsTest(void) { - return HDF_SUCCESS; -} + struct AccessoryDevice accessory; + HDF_LOGI("%s: enter", __func__); -int32_t WriteCodecReg(unsigned long virtualAddress, uint32_t reg, uint32_t val) -{ + if (AudioUpdateAccessoryRegBits(NULL, NULL, 0) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioUpdateAccessoryRegBits fail", __func__, __LINE__); + return HDF_FAILURE; + } + + (void)memset_s(&accessory, sizeof(struct AccessoryDevice), 0, sizeof(struct AccessoryDevice)); + accessory.devAccessoryName = "codec_service_1"; + OsalMutexInit(&accessory.mutex); + if (AudioUpdateAccessoryRegBits(&accessory, &g_audioTestReg, g_audioTestReg.min + 1) != HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioUpdateAccessoryRegBits fail", __func__, __LINE__); + OsalMutexDestroy(&accessory.mutex); + } + + OsalMutexDestroy(&accessory.mutex); + HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; } -int32_t AudioTestUpdateCodecRegBits(void) + +int32_t AudioUpdateDaiRegBitsTest(void) { - int32_t value = 0; - if (AudioUpdateCodecRegBits(NULL, NULL, value) == HDF_SUCCESS) { - HDF_LOGE("%s_[%d] AudioUpdateCodecRegBits fail", __func__, __LINE__); + struct DaiDevice dai; + HDF_LOGI("%s: enter", __func__); + + if (AudioUpdateDaiRegBits(NULL, NULL, 0) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioUpdateDaiRegBits fail", __func__, __LINE__); return HDF_FAILURE; } - struct CodecData codecData = { - .Read = ReadCodecReg, - .Write = WriteCodecReg, - }; - struct CodecDevice codec; - codec.devCodecName = PLATFORM_CODEC_TEST_NAME; - OsalMutexInit(&codec.mutex); - codec.devData = &codecData; - value = g_audioMixerRegParams.min + 1; - if (AudioUpdateCodecRegBits(&codec, &g_audioMixerRegParams, value) != HDF_SUCCESS) { - HDF_LOGE("%s_[%d] AudioUpdateCodecRegBits fail", __func__, __LINE__); - OsalMutexDestroy(&codec.mutex); - return HDF_FAILURE; + (void)memset_s(&dai, sizeof(struct DaiDevice), 0, sizeof(struct DaiDevice)); + dai.devDaiName = "dai_service"; + if (AudioUpdateDaiRegBits(&dai, &g_audioTestReg, g_audioTestReg.min + 1) != HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioUpdateAccessoryRegBits fail", __func__, __LINE__); } - OsalMutexDestroy(&codec.mutex); HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; } -int32_t AudioTestUpdateAccessoryRegBits(void) +int32_t AudioKcontrolGetCpuDaiTest(void) { - struct AccessoryDevice *accessory = NULL; - struct AudioMixerControl *mixerControl = NULL; - int32_t value = 0; + struct AudioKcontrol *kcontrol = NULL; + HDF_LOGI("%s: enter", __func__); - int32_t ret = AudioUpdateAccessoryRegBits(accessory, mixerControl, value); - if (ret != HDF_SUCCESS) { - HDF_LOGE("%s_[%d] AudioTestUpdateAccessoryRegBits fail", __func__, __LINE__); + if (AudioKcontrolGetCpuDai(kcontrol) == NULL) { + HDF_LOGE("%s_[%d] AudioKcontrolGetCpuDai fail!", __func__, __LINE__); } HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; } -int32_t AudioTestKcontrolGetCodec(void) +int32_t AudioKcontrolGetCodecTest(void) { - struct CodecDevice *codecDevice = NULL; - const struct AudioKcontrol *kcontrol = NULL; + struct AudioKcontrol *kcontrol = NULL; HDF_LOGI("%s: enter", __func__); - codecDevice = AudioKcontrolGetCodec(kcontrol); - if (codecDevice == NULL) { + if (AudioKcontrolGetCodec(kcontrol) == NULL) { HDF_LOGE("%s_[%d] AudioKcontrolGetCodec fail!", __func__, __LINE__); } @@ -282,11 +301,12 @@ int32_t AudioTestKcontrolGetCodec(void) return HDF_SUCCESS; } -int32_t AudioTestKcontrolGetAccessory(void) +int32_t AudioKcontrolGetAccessoryTest(void) { struct AudioKcontrol *kcontrol = NULL; - struct AccessoryDevice *accessory = AudioKcontrolGetAccessory(kcontrol); - if (accessory == NULL) { + HDF_LOGI("%s: enter", __func__); + + if (AudioKcontrolGetAccessory(kcontrol) == NULL) { HDF_LOGE("%s_[%d] AudioKcontrolGetAccessory fail!", __func__, __LINE__); } @@ -294,106 +314,201 @@ int32_t AudioTestKcontrolGetAccessory(void) return HDF_SUCCESS; } -int32_t AudioTestAddControl(void) +int32_t AudioAddControlsTest(void) +{ + HDF_LOGI("%s: enter", __func__); + + if (AudioAddControls(NULL, NULL, 0) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioUpdateDaiRegBits fail", __func__, __LINE__); + return HDF_FAILURE; + } + + HDF_LOGI("%s: success", __func__); + return HDF_SUCCESS; +} + +int32_t AudioAddControlTest(void) { struct AudioCard *audioCard = NULL; - const struct AudioKcontrol *control = NULL; - struct AudioKcontrol *audioKcontrol = NULL; + struct AudioKcontrol control; HDF_LOGI("%s: enter", __func__); - audioKcontrol = AudioAddControl(audioCard, control); - if (audioKcontrol == NULL) { + audioCard = GetCardInstance("hdf_audio_codec_dev0"); + (void)memset_s(&control, sizeof(struct AudioKcontrol), 0, sizeof(struct AudioKcontrol)); + if (AudioAddControl(audioCard, &control) == NULL) { HDF_LOGE("%s_[%d] AudioAddControl fail!", __func__, __LINE__); } + HDF_LOGI("%s: success", __func__); + return HDF_SUCCESS; +} + +int32_t AudioGetCtrlOpsRRegTest(void) +{ + struct AudioCtrlElemValue elemValue; + struct AudioMixerControl mixerCtrl; + HDF_LOGI("%s: enter", __func__); + + (void)memset_s(&elemValue, sizeof(struct AudioCtrlElemValue), 0, sizeof(struct AudioCtrlElemValue)); + (void)memset_s(&mixerCtrl, sizeof(struct AudioMixerControl), 0, sizeof(struct AudioMixerControl)); + AudioGetCtrlOpsRReg(&elemValue, &mixerCtrl, 0); HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; } -int32_t AudioTestAddControls(void) +int32_t AudioGetCtrlOpsRegTest(void) { - struct AudioCard *audioCard = NULL; - const struct AudioKcontrol *controls = NULL; - int32_t controlMaxNum = 0x03; - int32_t ret; + struct AudioCtrlElemValue elemValue; + struct AudioMixerControl mixerCtrl; + HDF_LOGI("%s: enter", __func__); + + (void)memset_s(&elemValue, sizeof(struct AudioCtrlElemValue), 0, sizeof(struct AudioCtrlElemValue)); + (void)memset_s(&mixerCtrl, sizeof(struct AudioMixerControl), 0, sizeof(struct AudioMixerControl)); + AudioGetCtrlOpsReg(&elemValue, &mixerCtrl, 0); + + HDF_LOGI("%s: success", __func__); + return HDF_SUCCESS; +} + +int32_t AudioSetCtrlOpsRegTest(void) +{ + uint32_t value; + struct AudioKcontrol kcontrol; + struct AudioCtrlElemValue elemValue; + struct AudioMixerControl mixerCtrl; + HDF_LOGI("%s: enter", __func__); + + (void)memset_s(&kcontrol, sizeof(struct AudioKcontrol), 0, sizeof(struct AudioKcontrol)); + (void)memset_s(&elemValue, sizeof(struct AudioCtrlElemValue), 0, sizeof(struct AudioCtrlElemValue)); + (void)memset_s(&mixerCtrl, sizeof(struct AudioMixerControl), 0, sizeof(struct AudioMixerControl)); + AudioSetCtrlOpsReg(&kcontrol, &elemValue, &mixerCtrl, &value); + + HDF_LOGI("%s: success", __func__); + return HDF_SUCCESS; +} + +int32_t AudioSetCtrlOpsRRegTest(void) +{ + uint32_t value; + bool updateRReg; + struct AudioCtrlElemValue elemValue; + struct AudioMixerControl mixerCtrl; HDF_LOGI("%s: enter", __func__); - ret = AudioAddControls(audioCard, controls, controlMaxNum); - if (ret != HDF_SUCCESS) { - HDF_LOGE("%s_[%d] AudioAddControls fail", __func__, __LINE__); + (void)memset_s(&elemValue, sizeof(struct AudioCtrlElemValue), 0, sizeof(struct AudioCtrlElemValue)); + (void)memset_s(&mixerCtrl, sizeof(struct AudioMixerControl), 0, sizeof(struct AudioMixerControl)); + AudioSetCtrlOpsRReg(&elemValue, &mixerCtrl, &value, &updateRReg); + + HDF_LOGI("%s: success", __func__); + return HDF_SUCCESS; +} + +int32_t AudioDaiReadRegTest(void) +{ + uint32_t val; + struct DaiDevice dai; + HDF_LOGI("%s: enter", __func__); + + (void)memset_s(&dai, sizeof(struct DaiDevice), 0, sizeof(struct DaiDevice)); + if (AudioDaiReadReg(&dai, 0, &val) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioDaiReadReg fail", __func__, __LINE__); + return HDF_FAILURE; } HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; } -int32_t AudioTestCodecReadReg(void) +int32_t AudioDaiWriteRegTest(void) { - struct CodecDevice *codec = NULL; - uint32_t reg = 0; - uint32_t val = 0; + struct DaiDevice dai; + HDF_LOGI("%s: enter", __func__); - int32_t ret = AudioCodecReadReg(codec, reg, &val); - if (ret != HDF_SUCCESS) { - HDF_LOGE("%s_[%d] AudioCodecReadReg fail", __func__, __LINE__); + (void)memset_s(&dai, sizeof(struct DaiDevice), 0, sizeof(struct DaiDevice)); + if (AudioDaiWriteReg(&dai, 0, 0) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioDaiWriteReg fail", __func__, __LINE__); + return HDF_FAILURE; } HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; } -int32_t AudioTestAccessoryReadReg(void) +int32_t AudioCodecReadRegTest(void) { - struct AccessoryDevice *accessory = NULL; - uint32_t reg = 0; - uint32_t val = 0; + uint32_t val; + struct CodecDevice codec; + HDF_LOGI("%s: enter", __func__); - int32_t ret = AudioAccessoryReadReg(accessory, reg, &val); - if (ret != HDF_SUCCESS) { - HDF_LOGE("%s_[%d] AudioAccessoryReadReg fail", __func__, __LINE__); + (void)memset_s(&codec, sizeof(struct CodecDevice), 0, sizeof(struct CodecDevice)); + if (AudioCodecReadReg(&codec, 0, &val) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioCodecReadReg fail", __func__, __LINE__); + return HDF_FAILURE; } HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; } -int32_t AudioTestCodecWriteReg(void) +int32_t AudioCodecWriteRegTest(void) { - struct CodecDevice *codec = NULL; - uint32_t reg = 0; - uint32_t val = 0; + struct CodecDevice codec; + HDF_LOGI("%s: enter", __func__); - int32_t ret = AudioCodecWriteReg(codec, reg, val); - if (ret != HDF_SUCCESS) { + (void)memset_s(&codec, sizeof(struct CodecDevice), 0, sizeof(struct CodecDevice)); + if (AudioCodecWriteReg(&codec, 0, 0) == HDF_SUCCESS) { HDF_LOGE("%s_[%d] AudioCodecWriteReg fail", __func__, __LINE__); + return HDF_FAILURE; } HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; } -int32_t AudioTestAccessoryWriteReg(void) +int32_t AudioAccessoryReadRegTest(void) { - struct AccessoryDevice *accessory = NULL; - uint32_t reg = 0; - uint32_t val = 0; + uint32_t val; + struct AccessoryDevice accessory; + HDF_LOGI("%s: enter", __func__); - int32_t ret = AudioAccessoryWriteReg(accessory, reg, val); - if (ret != HDF_SUCCESS) { + (void)memset_s(&accessory, sizeof(struct AccessoryDevice), 0, sizeof(struct AccessoryDevice)); + if (AudioAccessoryReadReg(&accessory, 0, &val) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioAccessoryReadReg fail", __func__, __LINE__); + return HDF_FAILURE; + } + + HDF_LOGI("%s: success", __func__); + return HDF_SUCCESS; +} + +int32_t AudioAccessoryWriteRegTest(void) +{ + struct AccessoryDevice accessory; + HDF_LOGI("%s: enter", __func__); + + (void)memset_s(&accessory, sizeof(struct AccessoryDevice), 0, sizeof(struct AccessoryDevice)); + if (AudioAccessoryWriteReg(&accessory, 0, 0) == HDF_SUCCESS) { HDF_LOGE("%s_[%d] AudioAccessoryWriteReg fail", __func__, __LINE__); + return HDF_FAILURE; } HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; } -int32_t AudioTestInfoCtrlOps(void) +int32_t AudioInfoCtrlOpsTest(void) { - struct AudioKcontrol *kcontrol = NULL; - struct AudioCtrlElemInfo *elemInfo = NULL; + struct AudioKcontrol kcontrol; + struct AudioCtrlElemInfo elemInfo; + HDF_LOGI("%s: enter", __func__); - int32_t ret = AudioInfoCtrlOps(kcontrol, elemInfo); - if (ret != HDF_SUCCESS) { + if (AudioInfoCtrlOps(NULL, NULL) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioInfoCtrlOps fail", __func__, __LINE__); + return HDF_FAILURE; + } + (void)memset_s(&kcontrol, sizeof(struct AudioKcontrol), 0, sizeof(struct AudioKcontrol)); + (void)memset_s(&elemInfo, sizeof(struct AudioCtrlElemInfo), 0, sizeof(struct AudioCtrlElemInfo)); + if (AudioInfoCtrlOps(&kcontrol, &elemInfo) == HDF_SUCCESS) { HDF_LOGE("%s_[%d] AudioInfoCtrlOps fail", __func__, __LINE__); } @@ -401,13 +516,19 @@ int32_t AudioTestInfoCtrlOps(void) return HDF_SUCCESS; } -int32_t AudioTestCodecGetCtrlOps(void) +int32_t AudioCodecGetCtrlOpsTest(void) { - struct AudioKcontrol *kcontrol = NULL; - struct AudioCtrlElemValue *elemValue = NULL; + struct AudioKcontrol kcontrol; + struct AudioCtrlElemValue elemValue; + HDF_LOGI("%s: enter", __func__); - int32_t ret = AudioCodecGetCtrlOps(kcontrol, elemValue); - if (ret != HDF_SUCCESS) { + if (AudioCodecGetCtrlOps(NULL, NULL) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioCodecGetCtrlOps fail", __func__, __LINE__); + return HDF_FAILURE; + } + (void)memset_s(&kcontrol, sizeof(struct AudioKcontrol), 0, sizeof(struct AudioKcontrol)); + (void)memset_s(&elemValue, sizeof(struct AudioCtrlElemValue), 0, sizeof(struct AudioCtrlElemValue)); + if (AudioCodecGetCtrlOps(&kcontrol, &elemValue) == HDF_SUCCESS) { HDF_LOGE("%s_[%d] AudioCodecGetCtrlOps fail", __func__, __LINE__); } @@ -415,42 +536,100 @@ int32_t AudioTestCodecGetCtrlOps(void) return HDF_SUCCESS; } -int32_t AudioTestAccessoryGetCtrlOps(void) +int32_t AudioCodecSetCtrlOpsTest(void) { - struct AudioKcontrol *kcontrol = NULL; - struct AudioCtrlElemValue *elemValue = NULL; + struct AudioKcontrol kcontrol; + struct AudioCtrlElemValue elemValue; + HDF_LOGI("%s: enter", __func__); - int32_t ret = AudioAccessoryGetCtrlOps(kcontrol, elemValue); - if (ret != HDF_SUCCESS) { - HDF_LOGE("%s_[%d] AudioAccessoryGetCtrlOps fail", __func__, __LINE__); + if (AudioCodecSetCtrlOps(NULL, NULL) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioCodecSetCtrlOps fail", __func__, __LINE__); + return HDF_FAILURE; + } + (void)memset_s(&kcontrol, sizeof(struct AudioKcontrol), 0, sizeof(struct AudioKcontrol)); + (void)memset_s(&elemValue, sizeof(struct AudioCtrlElemValue), 0, sizeof(struct AudioCtrlElemValue)); + if (AudioCodecSetCtrlOps(&kcontrol, &elemValue) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioCodecSetCtrlOps fail", __func__, __LINE__); } HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; } -int32_t AudioTestCodecSetCtrlOps(void) +int32_t AudioAccessoryGetCtrlOpsTest(void) { - struct AudioKcontrol *kcontrol = NULL; - struct AudioCtrlElemValue *elemValue = NULL; + struct AudioKcontrol kcontrol; + struct AudioCtrlElemValue elemValue; + HDF_LOGI("%s: enter", __func__); - int32_t ret = AudioCodecSetCtrlOps(kcontrol, elemValue); - if (ret != HDF_SUCCESS) { - HDF_LOGE("%s_[%d] AudioCodecSetCtrlOps fail", __func__, __LINE__); + if (AudioAccessoryGetCtrlOps(NULL, NULL) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioAccessoryGetCtrlOps fail", __func__, __LINE__); + return HDF_FAILURE; + } + (void)memset_s(&kcontrol, sizeof(struct AudioKcontrol), 0, sizeof(struct AudioKcontrol)); + (void)memset_s(&elemValue, sizeof(struct AudioCtrlElemValue), 0, sizeof(struct AudioCtrlElemValue)); + if (AudioAccessoryGetCtrlOps(&kcontrol, &elemValue) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioAccessoryGetCtrlOps fail", __func__, __LINE__); } HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; } -int32_t AudioTestAccessorySetCtrlOps(void) +int32_t AudioAccessorySetCtrlOpsTset(void) { - struct AudioKcontrol *kcontrol = NULL; - struct AudioCtrlElemValue *elemValue = NULL; + struct AudioKcontrol kcontrol; + struct AudioCtrlElemValue elemValue; + HDF_LOGI("%s: enter", __func__); - int32_t ret = AudioAccessorySetCtrlOps(kcontrol, elemValue); - if (ret != HDF_SUCCESS) { + if (AudioAccessorySetCtrlOps(NULL, NULL) == HDF_SUCCESS) { HDF_LOGE("%s_[%d] AudioAccessorySetCtrlOps fail", __func__, __LINE__); + return HDF_FAILURE; + } + (void)memset_s(&kcontrol, sizeof(struct AudioKcontrol), 0, sizeof(struct AudioKcontrol)); + (void)memset_s(&elemValue, sizeof(struct AudioCtrlElemValue), 0, sizeof(struct AudioCtrlElemValue)); + if (AudioAccessorySetCtrlOps(&kcontrol, &elemValue) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioAccessorySetCtrlOps fail", __func__, __LINE__); + } + + HDF_LOGI("%s: success", __func__); + return HDF_SUCCESS; +} + +int32_t AudioCpuDaiSetCtrlOpsTest(void) +{ + struct AudioKcontrol kcontrol; + struct AudioCtrlElemValue elemValue; + HDF_LOGI("%s: enter", __func__); + + if (AudioCpuDaiSetCtrlOps(NULL, NULL) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioCpuDaiSetCtrlOps fail", __func__, __LINE__); + return HDF_FAILURE; + } + (void)memset_s(&kcontrol, sizeof(struct AudioKcontrol), 0, sizeof(struct AudioKcontrol)); + (void)memset_s(&elemValue, sizeof(struct AudioCtrlElemValue), 0, sizeof(struct AudioCtrlElemValue)); + if (AudioCpuDaiSetCtrlOps(&kcontrol, &elemValue) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioCpuDaiSetCtrlOps fail", __func__, __LINE__); + } + + HDF_LOGI("%s: success", __func__); + return HDF_SUCCESS; +} + +int32_t AudioCpuDaiGetCtrlOpsTest(void) +{ + struct AudioKcontrol kcontrol; + struct AudioCtrlElemValue elemValue; + HDF_LOGI("%s: enter", __func__); + + if (AudioCpuDaiGetCtrlOps(NULL, NULL) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioCpuDaiGetCtrlOps fail", __func__, __LINE__); + return HDF_FAILURE; + } + (void)memset_s(&kcontrol, sizeof(struct AudioKcontrol), 0, sizeof(struct AudioKcontrol)); + (void)memset_s(&elemValue, sizeof(struct AudioCtrlElemValue), 0, sizeof(struct AudioCtrlElemValue)); + if (AudioCpuDaiGetCtrlOps(&kcontrol, &elemValue) == HDF_SUCCESS) { + HDF_LOGE("%s_[%d] AudioCpuDaiGetCtrlOps fail", __func__, __LINE__); } HDF_LOGI("%s: success", __func__); diff --git a/test/unittest/model/audio/src/audio_dai_base_test.c b/test/unittest/model/audio/src/audio_dai_base_test.c new file mode 100644 index 000000000..f5b32112b --- /dev/null +++ b/test/unittest/model/audio/src/audio_dai_base_test.c @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * + * HDF is dual licensed: you can use it either under the terms of + * the GPL, or the BSD license, at your option. + * See the LICENSE file in the root of this repository for complete details. + */ + +#include "audio_dai_base_test.h" +#include "audio_dai_base.h" +#include "audio_driver_log.h" + +#define HDF_LOG_TAG audio_dai_base_test + +int32_t DaiDataFromCardTest(void) +{ + if (DaiDataFromCard(NULL) != NULL) { + return HDF_FAILURE; + } + + struct AudioCard card; + memset(&card, 0, sizeof(struct AudioCard)); + if (DaiDataFromCard(&card) != NULL) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +int32_t DaiGetConfigInfoTest(void) +{ + if (DaiGetConfigInfo(NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + struct HdfDeviceObject device; + struct DaiData data; + if (DaiGetConfigInfo(&device, &data) == HDF_SUCCESS) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +int32_t DaiCheckSampleRateTest(void) +{ + if (DaiCheckSampleRate(0) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (DaiCheckSampleRate(AUDIO_SAMPLE_RATE_8000) != HDF_SUCCESS) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +int32_t DaiSetConfigInfoTest(void) +{ + if (DaiSetConfigInfo(NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + struct DaiData data; + memset(&data, 0, sizeof(struct DaiData)); + if (DaiSetConfigInfo(&data) == HDF_SUCCESS) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + diff --git a/test/unittest/model/audio/src/audio_dma_base_test.c b/test/unittest/model/audio/src/audio_dma_base_test.c new file mode 100644 index 000000000..1a9b72a76 --- /dev/null +++ b/test/unittest/model/audio/src/audio_dma_base_test.c @@ -0,0 +1,171 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * + * HDF is dual licensed: you can use it either under the terms of + * the GPL, or the BSD license, at your option. + * See the LICENSE file in the root of this repository for complete details. + */ + +#include "audio_dma_base_test.h" +#include "audio_platform_if.h" +#include "audio_dma_base.h" +#include "audio_driver_log.h" + +#define HDF_LOG_TAG audio_dma_base_test + +int32_t AudioDmaBufAllocTest(void) +{ + struct PlatformData data; + enum AudioStreamType streamType; + + memset(&data, 0, sizeof(struct PlatformData)); + + if (AudioDmaBufAlloc(NULL, 0) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioDmaBufAlloc(&data, 0) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AudioDmaBufFreeTest(void) +{ + struct PlatformData data; + enum AudioStreamType streamType; + + memset(&data, 0, sizeof(struct PlatformData)); + + if (AudioDmaBufFree(NULL, 0) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioDmaBufFree(&data, 0) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AudioDmaRequestChannelTest(void) +{ + struct PlatformData data; + memset(&data, 0, sizeof(struct PlatformData)); + if (AudioDmaRequestChannel(NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioDmaRequestChannel(&data) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AudioDmaConfigChannelTest(void) +{ + struct PlatformData data; + memset(&data, 0, sizeof(struct PlatformData)); + if (AudioDmaConfigChannel(NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioDmaConfigChannel(&data) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AudioDmaPrepTest(void) +{ + struct PlatformData data; + memset(&data, 0, sizeof(struct PlatformData)); + if (AudioDmaPrep(NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioDmaPrep(&data) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AudioDmaSubmitTest(void) +{ + struct PlatformData data; + memset(&data, 0, sizeof(struct PlatformData)); + if (AudioDmaSubmit(NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioDmaSubmit(&data) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AudioDmaPendingTest(void) +{ + struct PlatformData data; + memset(&data, 0, sizeof(struct PlatformData)); + if (AudioDmaPending(NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioDmaPending(&data) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AudioDmaPauseTest(void) +{ + struct PlatformData data; + memset(&data, 0, sizeof(struct PlatformData)); + if (AudioDmaPause(NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioDmaPause(&data) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AudioDmaResumeTest(void) +{ + struct PlatformData data; + memset(&data, 0, sizeof(struct PlatformData)); + if (AudioDmaResume(NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioDmaResume(&data) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AudioDmaPointerTest(void) +{ + struct PlatformData data; + uint32_t pointer = 0; + memset(&data, 0, sizeof(struct PlatformData)); + if (AudioDmaPointer(NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioDmaPointer(&data, &pointer) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} diff --git a/test/unittest/model/audio/src/audio_dsp_base_test.c b/test/unittest/model/audio/src/audio_dsp_base_test.c new file mode 100644 index 000000000..ff8fd3ad3 --- /dev/null +++ b/test/unittest/model/audio/src/audio_dsp_base_test.c @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * + * HDF is dual licensed: you can use it either under the terms of + * the GPL, or the BSD license, at your option. + * See the LICENSE file in the root of this repository for complete details. + */ + +#include "audio_dsp_base_test.h" +#include "audio_dsp_base.h" +#include "audio_driver_log.h" + +#define HDF_LOG_TAG audio_dsp_base_test +#define KCONTROL_TEST_SERVICE_NAME "dsp_service_0" + +int32_t DspGetServiceNameTest(void) +{ + if (DspGetServiceName(NULL, NULL) == HDF_SUCCESS) { + AUDIO_DRIVER_LOG_ERR("TestDspGetServiceName fail"); + return HDF_FAILURE; + } + + struct DeviceResourceAttr attr; + attr.value = KCONTROL_TEST_SERVICE_NAME; + attr.name = "serviceName"; + + struct DeviceResourceNode node; + node.attrData = &attr; + + struct HdfDeviceObject device; + device.property = &node; + + if (DspGetServiceName(&device, NULL) == HDF_SUCCESS) { + AUDIO_DRIVER_LOG_ERR("TestDspGetServiceName fail"); + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t DspGetDaiNameTest(void) +{ + if (DspGetDaiName(NULL, NULL) == HDF_SUCCESS) { + AUDIO_DRIVER_LOG_ERR("TestDspGetDaiName fail"); + return HDF_FAILURE; + } + + struct DeviceResourceAttr attr; + attr.value = KCONTROL_TEST_SERVICE_NAME; + attr.name = "dspDaiName"; + + struct DeviceResourceNode node; + node.attrData = &attr; + + struct HdfDeviceObject device; + device.property = &node; + + if (DspGetDaiName(&device, NULL) == HDF_SUCCESS) { + AUDIO_DRIVER_LOG_ERR("TestDspGetDaiName fail"); + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + diff --git a/test/unittest/model/audio/src/audio_host_test.c b/test/unittest/model/audio/src/audio_host_test.c index 283c2cf02..2f79b1170 100755 --- a/test/unittest/model/audio/src/audio_host_test.c +++ b/test/unittest/model/audio/src/audio_host_test.c @@ -11,22 +11,36 @@ #include "devsvc_manager_clnt.h" #define HDF_LOG_TAG audio_host_test -#define KCONTROL_TEST_SERVICE_NAME "dsp_service_0" -int32_t AudioKcontrolTestGetCodec(void) +const static char *g_audioServiceName[] = { + "codec_service_0", + "codec_service_1", + "dma_service_0", + "dai_service", + "audio_service_0", + "audio_service_1", + "render_service", + "capture_service", + "control_service", +}; + +int32_t AudioHostCreateAndBindTest(void) { - HDF_LOGI("%s: enter", __func__); + int i; + struct HdfDeviceObject *device = NULL; + struct AudioHost *audioHost = NULL; + HDF_LOGI("%s: enter", __func__); if (AudioHostCreateAndBind(NULL) != NULL) { HDF_LOGE("%s_[%d] codecDevice is not NULL", __func__, __LINE__); return HDF_FAILURE; } - struct HdfDeviceObject *device = DevSvcManagerClntGetDeviceObject(KCONTROL_TEST_SERVICE_NAME); - struct AudioHost *audioHost = AudioHostCreateAndBind(device); - if (audioHost == NULL) { - HDF_LOGE("%s_[%d] codecDevice is NULL", __func__, __LINE__); - return HDF_FAILURE; + for (i = 0; i < sizeof(g_audioServiceName) / sizeof(g_audioServiceName[0]); ++i) { + device = DevSvcManagerClntGetDeviceObject(g_audioServiceName[i]); + if (AudioHostCreateAndBind(device) == NULL) { + HDF_LOGE("audiohost:%s create and bind fail!", g_audioServiceName[i]); + } } OsalMemFree(audioHost); @@ -34,25 +48,15 @@ int32_t AudioKcontrolTestGetCodec(void) return HDF_SUCCESS; } -int32_t GetCardTestInstance(void) +int32_t GetCardInstanceTest(void) { int i; - const char *audioServiceName[] = { - "codec_service_0", - "codec_service_1", - "dma_service_0", - "dai_service", - "audio_service_0", - "audio_service_1", - "render_service", - "capture_service", - "control_service", - }; + HDF_LOGI("%s: enter", __func__); - for (i = 0; i < sizeof(audioServiceName) / sizeof(audioServiceName[0]); ++i) { - if (GetCardInstance(audioServiceName[i]) == NULL) { - HDF_LOGE("%s: get %s fail!", __func__, audioServiceName[i]); + for (i = 0; i < sizeof(g_audioServiceName) / sizeof(g_audioServiceName[0]); ++i) { + if (GetCardInstance(g_audioServiceName[i]) == NULL) { + HDF_LOGE("%s: get %s fail!", __func__, g_audioServiceName[i]); } } diff --git a/test/unittest/model/audio/src/audio_parse_test.c b/test/unittest/model/audio/src/audio_parse_test.c index 24ab294cb..d324e6815 100755 --- a/test/unittest/model/audio/src/audio_parse_test.c +++ b/test/unittest/model/audio/src/audio_parse_test.c @@ -10,24 +10,44 @@ #include "devsvc_manager_clnt.h" #define HDF_LOG_TAG audio_parse_test -#define TEST_PARSE_SERVICE_NAME "hdf_audio_codec_dev0" -int32_t AudioFillTestConfigData(void) +int32_t AudioFillConfigDataTest(void) { - HDF_LOGI("%s: enter", __func__); + struct HdfDeviceObject *device = NULL; + struct AudioConfigData configData; + HDF_LOGI("enter"); if (AudioFillConfigData(NULL, NULL) == HDF_SUCCESS) { - HDF_LOGE("%s_[%d]: AudioFillConfigData fail", __func__, __LINE__); + HDF_LOGE("AudioFillConfigData fail"); return HDF_FAILURE; } - struct HdfDeviceObject *device = DevSvcManagerClntGetDeviceObject(TEST_PARSE_SERVICE_NAME); - struct AudioConfigData configData; + device = DevSvcManagerClntGetDeviceObject("hdf_audio_codec_dev0"); if (AudioFillConfigData(device, &configData) != HDF_SUCCESS) { - HDF_LOGE("%s_[%d]: AudioFillConfigData fail", __func__, __LINE__); + HDF_LOGE("AudioFillConfigData fail"); + return HDF_FAILURE; + } + + HDF_LOGI("success"); + return HDF_SUCCESS; +} + +int32_t CodecGetRegConfigTest(void) +{ + struct HdfDeviceObject *device = NULL; + struct AudioRegCfgData regCfgData; + HDF_LOGI("enter"); + + if (CodecGetRegConfig(NULL, NULL) == HDF_SUCCESS) { + HDF_LOGE("AudioFillConfigData fail"); return HDF_FAILURE; } - HDF_LOGI("%s: success", __func__); + device = DevSvcManagerClntGetDeviceObject("hdf_audio_codec_dev0"); + if (CodecGetRegConfig(device, ®CfgData) != HDF_SUCCESS) { + HDF_LOGE("AudioFillConfigData fail"); + } + + HDF_LOGI("success"); return HDF_SUCCESS; } diff --git a/test/unittest/model/audio/src/audio_platform_base_test.c b/test/unittest/model/audio/src/audio_platform_base_test.c new file mode 100644 index 000000000..7bf217fa6 --- /dev/null +++ b/test/unittest/model/audio/src/audio_platform_base_test.c @@ -0,0 +1,403 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * + * HDF is dual licensed: you can use it either under the terms of + * the GPL, or the BSD license, at your option. + * See the LICENSE file in the root of this repository for complete details. + */ + +#include "audio_platform_base_test.h" +#include "audio_stream_dispatch.h" +#include "audio_platform_base.h" +#include "audio_driver_log.h" + +#define HDF_LOG_TAG audio_dsp_base_test + +int32_t PlatformDataFromCardTest(void) +{ + struct AudioCard card; + memset(&card, 0, sizeof(struct AudioCard)); + + if (PlatformDataFromCard(NULL) != NULL) { + return HDF_FAILURE; + } + + if (PlatformDataFromCard(&card) != NULL) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +int32_t AudioBytesToFramesTest(void) +{ + if (AudioBytesToFrames(0, 0) != 0) { + return HDF_FAILURE; + } + + if (AudioBytesToFrames(1, 1) != 1) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +int32_t AudioDataBigEndianChangeTest(void) +{ + char test[32]; + memset(&test, 1, 32); + + if (AudioDataBigEndianChange(NULL, 0, 0) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioDataBigEndianChange(test, 32, DATA_BIT_WIDTH8) != HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioDataBigEndianChange(test, 32, DATA_BIT_WIDTH24) != HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioDataBigEndianChange(test, 32, DATA_BIT_WIDTH16) != HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AudioFramatToBitWidthTest(void) +{ + unsigned int bitWidth = 0; + + if (AudioFramatToBitWidth(1, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioFramatToBitWidth(AUDIO_FORMAT_PCM_16_BIT, &bitWidth) != HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (bitWidth != DATA_BIT_WIDTH16) { + return HDF_FAILURE; + } + + bitWidth = 0; + if (AudioFramatToBitWidth(AUDIO_FORMAT_PCM_24_BIT, &bitWidth) != HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (bitWidth != DATA_BIT_WIDTH24) { + return HDF_FAILURE; + } + + if (AudioFramatToBitWidth(AUDIO_FORMAT_AAC_HE_V1, &bitWidth) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AudioSetPcmInfoTest(void) +{ + struct PlatformData platformData; + struct AudioPcmHwParams param; + memset(&platformData, 0, sizeof(struct PlatformData)); + memset(¶m, 0, sizeof(struct AudioPcmHwParams)); + + if (AudioSetPcmInfo(NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioSetPcmInfo(&platformData, ¶m) != HDF_SUCCESS) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +int32_t AudioSetRenderBufInfoTest(void) +{ + struct PlatformData data; + struct AudioPcmHwParams param; + memset(&data, 0, sizeof(struct PlatformData)); + memset(¶m, 0, sizeof(struct AudioPcmHwParams)); + + if (AudioSetRenderBufInfo(NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioSetRenderBufInfo(&data, ¶m) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AudioSetCaptureBufInfoTest(void) +{ + struct PlatformData data; + struct AudioPcmHwParams param; + memset(&data, 0, sizeof(struct PlatformData)); + memset(¶m, 0, sizeof(struct AudioPcmHwParams)); + + if (AudioSetCaptureBufInfo(NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioSetCaptureBufInfo(&data, ¶m) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AudioPcmWriteTest(void) +{ + struct AudioCard card; + struct AudioTxData txData; + memset(&card, 0, sizeof(struct AudioCard)); + memset(&txData, 0, sizeof(struct AudioTxData)); + + if (AudioPcmWrite(NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioPcmWrite(&card, &txData) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AudioPcmReadTest(void) +{ + struct AudioCard card; + struct AudioRxData rxData; + memset(&card, 0, sizeof(struct AudioCard)); + memset(&rxData, 0, sizeof(struct AudioRxData)); + + if (AudioPcmRead(NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioPcmRead(&card, &rxData) == HDF_SUCCESS) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +int32_t AudioPcmMmapWriteTest(void) +{ + struct AudioCard card; + struct AudioMmapData txMmapData; + memset(&card, 0, sizeof(struct AudioCard)); + memset(&txMmapData, 0, sizeof(struct AudioMmapData)); + + if (AudioPcmMmapWrite(NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioPcmMmapWrite(&card, &txMmapData) == HDF_SUCCESS) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +int32_t AudioPcmMmapReadTest(void) +{ + struct AudioCard card; + struct AudioMmapData rxMmapData; + memset(&card, 0, sizeof(struct AudioCard)); + memset(&rxMmapData, 0, sizeof(struct AudioMmapData)); + + if (AudioPcmMmapRead(NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioPcmMmapRead(&card, &rxMmapData) == HDF_SUCCESS) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +int32_t AudioRenderOpenTest(void) +{ + struct AudioCard card; + memset(&card, 0, sizeof(struct AudioCard)); + + if (AudioRenderOpen(NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioRenderOpen(&card) == HDF_SUCCESS) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +int32_t AudioCaptureOpenTest(void) +{ + struct AudioCard card; + memset(&card, 0, sizeof(struct AudioCard)); + + if (AudioCaptureOpen(NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioCaptureOpen(&card) == HDF_SUCCESS) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +int32_t AudioRenderCloseTest(void) +{ + struct AudioCard card; + memset(&card, 0, sizeof(struct AudioCard)); + + if (AudioRenderClose(NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioRenderClose(&card) == HDF_SUCCESS) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +int32_t AudioPcmPointerTest(void) +{ + uint32_t pointer = 0; + struct AudioCard card; + memset(&card, 0, sizeof(struct AudioCard)); + + if (AudioPcmPointer(NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioPcmPointer(&card, &pointer) == HDF_SUCCESS) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +int32_t AudioCaptureCloseTest(void) +{ + struct AudioCard card; + memset(&card, 0, sizeof(struct AudioCard)); + + if (AudioCaptureClose(NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioCaptureClose(&card) == HDF_SUCCESS) { + return HDF_FAILURE; + } + return HDF_SUCCESS; +} + +int32_t AudioHwParamsTest(void) +{ + struct AudioCard card; + struct AudioPcmHwParams param; + memset(&card, 0, sizeof(struct AudioCard)); + memset(¶m, 0, sizeof(struct AudioPcmHwParams)); + + if (AudioHwParams(NULL, NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioHwParams(&card, ¶m) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AudioRenderPrepareTest(void) +{ + struct AudioCard card; + memset(&card, 0, sizeof(struct AudioCard)); + + if (AudioRenderPrepare(NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioRenderPrepare(&card) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AudioCapturePrepareTest(void) +{ + struct AudioCard card; + memset(&card, 0, sizeof(struct AudioCard)); + + if (AudioCapturePrepare(NULL) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioCapturePrepare(&card) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AudioRenderTriggerTest(void) +{ + struct AudioCard card; + memset(&card, 0, sizeof(struct AudioCard)); + + if (AudioRenderTrigger(NULL, AUDIO_DRV_PCM_IOCTL_RENDER_START) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioRenderTrigger(&card, AUDIO_DRV_PCM_IOCTL_RENDER_START) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioRenderTrigger(&card, AUDIO_DRV_PCM_IOCTL_RENDER_STOP) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioRenderTrigger(&card, AUDIO_DRV_PCM_IOCTL_RENDER_PAUSE) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioRenderTrigger(&card, AUDIO_DRV_PCM_IOCTL_RENDER_RESUME) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; +} + +int32_t AudioCaptureTriggerTest(void) +{ + struct AudioCard card; + memset(&card, 0, sizeof(struct AudioCard)); + + if (AudioCaptureTrigger(NULL, AUDIO_DRV_PCM_IOCTL_CAPTURE_START) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioCaptureTrigger(&card, AUDIO_DRV_PCM_IOCTL_CAPTURE_START) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioCaptureTrigger(&card, AUDIO_DRV_PCM_IOCTL_CAPTURE_STOP) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioCaptureTrigger(&card, AUDIO_DRV_PCM_IOCTL_CAPTURE_PAUSE) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + if (AudioCaptureTrigger(&card, AUDIO_DRV_PCM_IOCTL_CAPTURE_RESUME) == HDF_SUCCESS) { + return HDF_FAILURE; + } + + return HDF_SUCCESS; + +} + diff --git a/test/unittest/model/audio/src/audio_sapm_test.c b/test/unittest/model/audio/src/audio_sapm_test.c index 40a20d48c..999cd9533 100755 --- a/test/unittest/model/audio/src/audio_sapm_test.c +++ b/test/unittest/model/audio/src/audio_sapm_test.c @@ -10,7 +10,7 @@ #define HDF_LOG_TAG audio_host_test -int32_t AudioSapmTestNewComponents(void) +int32_t AudioSapmNewComponentsTest(void) { struct AudioCard *audioCard = NULL; struct AudioSapmComponent *component = NULL; @@ -27,7 +27,7 @@ int32_t AudioSapmTestNewComponents(void) return HDF_SUCCESS; } -int32_t AudioSapmTestAddRoutes(void) +int32_t AudioSapmAddRoutesTest(void) { struct AudioCard *audioCard = NULL; struct AudioSapmRoute *route = NULL; @@ -44,7 +44,7 @@ int32_t AudioSapmTestAddRoutes(void) return HDF_SUCCESS; } -int32_t AudioSapmTestNewControls(void) +int32_t AudioSapmNewControlsTest(void) { struct AudioCard *audioCard = NULL; int32_t ret; @@ -58,35 +58,111 @@ int32_t AudioSapmTestNewControls(void) HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; } +int32_t AudioSapmSleepTest(void) +{ + struct AudioCard *audioCard = NULL; + int32_t ret; + HDF_LOGI("%s: enter", __func__); -int32_t AudioSapmTestPowerComponents(void) + ret = AudioSapmSleep(audioCard); + if (ret != HDF_SUCCESS) { + HDF_LOGE("%s: AudioSapmSleep is NULL", __func__); + } + + HDF_LOGI("%s: success", __func__); + return HDF_SUCCESS; +} + +int32_t AudioSampPowerUpTest(void) { struct AudioCard *audioCard = NULL; int32_t ret; HDF_LOGI("%s: enter", __func__); - ret = AudioSapmPowerComponents(audioCard); + ret = AudioSampPowerUp(audioCard); if (ret != HDF_SUCCESS) { - HDF_LOGE("%s: audioCard is NULL", __func__); + HDF_LOGE("%s: AudioSampPowerUp is NULL", __func__); } HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; } +int32_t AudioSampSetPowerMonitorTest(void) +{ + struct AudioCard *audioCard = NULL; + int32_t ret; + HDF_LOGI("%s: enter", __func__); + + ret = AudioSampSetPowerMonitor(audioCard, 0); + if (ret != HDF_SUCCESS) { + HDF_LOGE("%s: AudioSampSetPowerMonitor is NULL", __func__); + } + + HDF_LOGI("%s: success", __func__); + return HDF_SUCCESS; +} -int32_t AudioSapmTestRefreshTime(void) +int32_t AudioCodecSapmSetCtrlOpsTest(void) { - bool bRefresh = true; - u64 time; + int32_t ret; + struct AudioKcontrol *kcontrol = NULL; + struct AudioCtrlElemValue *elemValue = NULL; HDF_LOGI("%s: enter", __func__); - time = AudioSapmRefreshTime(bRefresh); - if (time == 0) { - HDF_LOGE("%s: error", __func__); + ret = AudioCodecSapmSetCtrlOps(kcontrol, elemValue); + if (ret != HDF_SUCCESS) { + HDF_LOGE("%s: AudioCodecSapmSetCtrlOps is NULL", __func__); } HDF_LOGI("%s: success", __func__); return HDF_SUCCESS; } +int32_t AudioCodecSapmGetCtrlOpsTest(void) +{ + int32_t ret; + struct AudioKcontrol *kcontrol = NULL; + struct AudioCtrlElemValue *elemValue = NULL; + HDF_LOGI("%s: enter", __func__); + + ret = AudioCodecSapmGetCtrlOps(kcontrol, elemValue); + if (ret != HDF_SUCCESS) { + HDF_LOGE("%s: AudioCodecSapmGetCtrlOps is NULL", __func__); + } + + HDF_LOGI("%s: success", __func__); + return HDF_SUCCESS; +} + +int32_t AudioAccessorySapmSetCtrlOpsTest(void) +{ + int32_t ret; + struct AudioKcontrol *kcontrol = NULL; + struct AudioCtrlElemValue *elemValue = NULL; + HDF_LOGI("%s: enter", __func__); + + ret = AudioAccessorySapmSetCtrlOps(kcontrol, elemValue); + if (ret != HDF_SUCCESS) { + HDF_LOGE("%s: AudioAccessorySapmSetCtrlOps is NULL", __func__); + } + + HDF_LOGI("%s: success", __func__); + return HDF_SUCCESS; +} + +int32_t AudioAccessorySapmGetCtrlOpsTest(void) +{ + int32_t ret; + struct AudioKcontrol *kcontrol = NULL; + struct AudioCtrlElemValue *elemValue = NULL; + HDF_LOGI("%s: enter", __func__); + + ret = AudioAccessorySapmGetCtrlOps(kcontrol, elemValue); + if (ret != HDF_SUCCESS) { + HDF_LOGE("%s: AudioAccessorySapmGetCtrlOps is NULL", __func__); + } + + HDF_LOGI("%s: success", __func__); + return HDF_SUCCESS; +} diff --git a/test/unittest/model/audio/src/hdf_audio_test.c b/test/unittest/model/audio/src/hdf_audio_test.c index 4af3765bd..44ade0ff0 100755 --- a/test/unittest/model/audio/src/hdf_audio_test.c +++ b/test/unittest/model/audio/src/hdf_audio_test.c @@ -12,45 +12,126 @@ #include "audio_core_test.h" #include "audio_parse_test.h" #include "audio_sapm_test.h" -#include "audio_stream_dispatch_test.h" +#include "audio_dai_base_test.h" +#include "audio_dma_base_test.h" +#include "audio_dsp_base_test.h" +#include "audio_codec_base_test.h" +#include "audio_platform_base_test.h" +#include "audio_accessory_base_test.h" #define HDF_LOG_TAG hdf_audio_test // add test case entry static HdfTestCaseList g_hdfAudioTestCaseList[] = { - {AUDIO_DRIVER_TESTGETCODEC, AudioKcontrolTestGetCodec}, - {AUDIO_DRIVER_TESTGETCARDINSTANCE, GetCardTestInstance}, - {AUDIO_DRIVER_TESTGETCCNFIGDATA, AudioFillTestConfigData}, - - {AUDIO_DRIVER_TESTREGISTERPLATFORM, AudioSocTestRegisterPlatform}, - {AUDIO_DRIVER_TESTREGISTERDAI, AudioSocTestRegisterDai}, - {AUDIO_DRIVER_TESTREGISTERACCESSORY, AudioTestRegisterAccessory}, - {AUDIO_DRIVER_TESTREGISTERCODEC, AudioTestRegisterCodec}, - {AUDIO_DRIVER_TESTREGISTERDSP, AudioTestRegisterDsp}, - {AUDIO_DRIVER_TESTSOCDEVICEREGISTER, AudioTestSocDeviceRegister}, - {AUDIO_DRIVER_TESTBINDDAILINK, AudioTestBindDaiLink}, - {AUDIO_DRIVER_TESTUPDATECODECREGBITS, AudioTestUpdateCodecRegBits}, - {AUDIO_DRIVER_TESTUPDATEACCESSORYREGBITS, AudioTestUpdateAccessoryRegBits}, - {AUDIO_DRIVER_TESTKCONTROLGETCODEC, AudioTestKcontrolGetCodec}, - {AUDIO_DRIVER_TESTKCONTROLGETACCESSORY, AudioTestKcontrolGetAccessory}, - {AUDIO_DRIVER_TESTADDCONTROL, AudioTestAddControl}, - {AUDIO_DRIVER_TESTADDCONTROLS, AudioTestAddControls}, - {AUDIO_DRIVER_TESTCODECREADREG, AudioTestCodecReadReg}, - {AUDIO_DRIVER_TESTACCESSORYREADREG, AudioTestAccessoryReadReg}, - {AUDIO_DRIVER_TESTCODECWRITEREG, AudioTestCodecWriteReg}, - {AUDIO_DRIVER_TESTACCESSORYWRITEREG, AudioTestAccessoryWriteReg}, - {AUDIO_DRIVER_TESTINFOCTRLOPS, AudioTestInfoCtrlOps}, - {AUDIO_DRIVER_TESTCODECGETCTRLOPS, AudioTestCodecGetCtrlOps}, - {AUDIO_DRIVER_TESTACCESSORYGETCTRLOPS, AudioTestAccessoryGetCtrlOps}, - {AUDIO_DRIVER_TESTCODECSETCTRLOPS, AudioTestCodecSetCtrlOps}, - {AUDIO_DRIVER_TESTACCESSORYSETCTRLOPS, AudioTestAccessorySetCtrlOps}, - - {AUDIO_DRIVER_TESTNEWCOMPONENT, AudioSapmTestNewComponents}, - {AUDIO_DRIVER_TESTADDROUTES, AudioSapmTestAddRoutes}, - {AUDIO_DRIVER_TESTNEWCONTROLS, AudioSapmTestNewControls}, - {AUDIO_DRIVER_TESTPOWERCOMPONET, AudioSapmTestPowerComponents}, - {AUDIO_DRIVER_TESTREFRESHTIME, AudioSapmTestRefreshTime}, - {AUDIO_DRIVER_TESTSTREAMDISPATCH, AudioControlDispatchTestStreamDispatch}, + {AUDIO_ADM_TEST_AUDIOHOSTCREATEANDBIND, AudioHostCreateAndBindTest}, // audio ADM audio_host + {AUDIO_ADM_TEST_GETCARDINSTANCE, GetCardInstanceTest}, // audio ADM audio_host + + {AUDIO_ADM_TEST_AUDIOFILLCONFIGDATA, AudioFillConfigDataTest}, // audio ADM audio_parse + {AUDIO_ADM_TEST_CODECGETREGCONFIG , CodecGetRegConfigTest}, // audio ADM audio_parse + + {AUDIO_ADM_TEST_AUDIODEVICEREADREG, AudioDeviceReadRegTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIODEVICEWRITEREG, AudioDeviceWriteRegTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOSOCREGISTERPLATFORM, AudioSocRegisterPlatformTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOSOCREGISTERDAI, AudioSocRegisterDaiTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOREGISTERDSP, AudioRegisterDspTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOREGISTERCODEC, AudioRegisterCodecTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOREGISTERACCESSORY, AudioRegisterAccessoryTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOBINDDAILINK, AudioBindDaiLinkTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOUPDATECODECREGBITS, AudioUpdateCodecRegBitsTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOUPDATEACCESSORYREGBITS, AudioUpdateAccessoryRegBitsTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOUPDATEDAIREGBITS, AudioUpdateDaiRegBitsTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOKCONTROLGETCPUDAI, AudioKcontrolGetCpuDaiTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOKCONTROLGETCODEC, AudioKcontrolGetCodecTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOKCONTROLGETACCESSORY, AudioKcontrolGetAccessoryTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOADDCONTROLS, AudioAddControlsTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOADDCONTROL, AudioAddControlTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOGETCTRLOPSRREG, AudioGetCtrlOpsRRegTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOGETCTRLOPSREG, AudioGetCtrlOpsRegTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOSETCTRLOPSREG, AudioSetCtrlOpsRegTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOSETCTRLOPSRREG, AudioSetCtrlOpsRRegTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIODAIREADREG, AudioDaiReadRegTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIODAIWRITEREG, AudioDaiWriteRegTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOCODECREADREG, AudioCodecReadRegTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOCODECWRITEREG, AudioCodecWriteRegTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOACCESSORYREADREG, AudioAccessoryReadRegTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOACCESSORYWRITEREG, AudioAccessoryWriteRegTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOINFOCTRLOPS, AudioInfoCtrlOpsTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOCODECGETCTRLOPS, AudioCodecGetCtrlOpsTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOCODECSETCTRLOPS, AudioCodecSetCtrlOpsTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOACCESSORYGETCTRLOPS, AudioAccessoryGetCtrlOpsTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOACCESSORYSETCTRLOPS, AudioAccessorySetCtrlOpsTset}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOCPUDAISETCTRLOPS, AudioCpuDaiSetCtrlOpsTest}, // audio ADM audio_core + {AUDIO_ADM_TEST_AUDIOCPUDAIGETCTRLOPS, AudioCpuDaiGetCtrlOpsTest}, // audio ADM audio_core + + {AUDIO_ADM_TEST_AUDIOSAPMNEWCOMPONENTS, AudioSapmNewComponentsTest}, // audio ADM audio_sapm + {AUDIO_ADM_TEST_AUDIOSAPMADDROUTES, AudioSapmAddRoutesTest}, // audio ADM audio_sapm + {AUDIO_ADM_TEST_AUDIOSAPMNEWCONTROLS, AudioSapmNewControlsTest}, // audio ADM audio_sapm + {AUDIO_ADM_TEST_AUDIOSAPMSLEEP, AudioSapmSleepTest}, // audio ADM audio_sapm + {AUDIO_ADM_TEST_AUDIOSAMPPOWERUP, AudioSampPowerUpTest}, // audio ADM audio_sapm + {AUDIO_ADM_TEST_AUDIOSAMPSETPOWERMONITOR, AudioSampSetPowerMonitorTest}, // audio ADM audio_sapm + {AUDIO_ADM_TEST_AUDIOCODECSAPMSETCTRLOPS, AudioCodecSapmSetCtrlOpsTest}, // audio ADM audio_sapm + {AUDIO_ADM_TEST_AUDIOCODECSAPMGETCTRLOPS, AudioCodecSapmGetCtrlOpsTest}, // audio ADM audio_sapm + {AUDIO_ADM_TEST_AUDIOACCESSORYSAPMSETCTRLOPS, AudioAccessorySapmSetCtrlOpsTest}, // audio ADM audio_sapm + {AUDIO_ADM_TEST_AUDIOACCESSORYSAPMGETCTRLOPS, AudioAccessorySapmGetCtrlOpsTest}, // audio ADM audio_sapm + + + {AUDIO_ADM_TEST_I2CREADWRITE, AccessoryI2cReadWriteTest}, + {AUDIO_ADM_TEST_REGBITSREAD, AccessoryRegBitsReadTest}, + {AUDIO_ADM_TEST_REGBITSUPDATE, AccessoryRegBitsUpdateTest}, + {AUDIO_ADM_TEST_DEVICEFREQUENCYPARSE, AcessoryDeviceFrequencyParseTest}, + {AUDIO_ADM_TEST_DAIPARAMSUPDATE, AccessoryDaiParamsUpdateTest}, + {AUDIO_ADM_TEST_DEVICECFGGET, AccessoryDeviceCfgGetTest}, + {AUDIO_ADM_TEST_DEVICECTRLREGINIT, AccessoryDeviceCtrlRegInitTest}, + {AUDIO_ADM_TEST_DEVICEREGREAD, AccessoryDeviceRegReadTest}, + {AUDIO_ADM_TEST_DEVICEREGWRITE, AccessoryDeviceRegWriteTest}, + {AUDIO_ADM_TEST_AGETCONFIGINFO, AccessoryGetConfigInfoTest}, + + {AUDIO_ADM_TEST_GETSERVICENAME, CodecGetServiceNameTest}, + {AUDIO_ADM_TEST_GETDAINAME, CodecGetDaiNameTest}, + {AUDIO_ADM_TEST_GETCONFIGINFO, CodecGetConfigInfoTest}, + {AUDIO_ADM_TEST_SETCONFIGINFO, CodecSetConfigInfoTest}, + {AUDIO_ADM_TEST_SETCTLFUNC, CodecSetCtlFuncTest}, + + {AUDIO_ADM_TEST_DAIDATAFROMCARD, DaiDataFromCardTest}, + {AUDIO_ADM_TEST_DAIGETCONFIGINFO, DaiGetConfigInfoTest}, + {AUDIO_ADM_TEST_DAICHECKSAMPLERATE, DaiCheckSampleRateTest}, + {AUDIO_ADM_TEST_DAISETCONFIGINFO, DaiSetConfigInfoTest}, + + {AUDIO_ADM_TEST_DMABUFALLOC, AudioDmaBufAllocTest}, + {AUDIO_ADM_TEST_DMABUFFREE, AudioDmaBufFreeTest}, + {AUDIO_ADM_TEST_DMAREQUESTCHANNEL, AudioDmaRequestChannelTest}, + {AUDIO_ADM_TEST_DMACONFIGCHANNEL, AudioDmaConfigChannelTest}, + {AUDIO_ADM_TEST_DMAPREP, AudioDmaPrepTest}, + {AUDIO_ADM_TEST_DMASUBMIT, AudioDmaSubmitTest}, + {AUDIO_ADM_TEST_DMAPENDING, AudioDmaPendingTest}, + {AUDIO_ADM_TEST_DMAPAUSE, AudioDmaPauseTest}, + {AUDIO_ADM_TEST_DMARESUME, AudioDmaResumeTest}, + {AUDIO_ADM_TEST_DMAPOINTER, AudioDmaPointerTest}, + + {AUDIO_ADM_TEST_DSPGETSERVICENAME, DspGetServiceNameTest}, + {AUDIO_ADM_TEST_DSPGETDAINAME, DspGetDaiNameTest}, + + {AUDIO_ADM_TEST_DATAFROMCARD, PlatformDataFromCardTest}, + {AUDIO_ADM_TEST_BYTESTOFRAMES, AudioBytesToFramesTest}, + {AUDIO_ADM_TEST_DATABIGENDIANCHANGE, AudioDataBigEndianChangeTest}, + {AUDIO_ADM_TEST_FRAMATTOBITWIDTH, AudioFramatToBitWidthTest}, + {AUDIO_ADM_TEST_SETPCMINFO, AudioSetPcmInfoTest}, + {AUDIO_ADM_TEST_SETRENDERBUFINFO, AudioSetRenderBufInfoTest}, + {AUDIO_ADM_TEST_SETCAPTUREBUFINFO, AudioSetCaptureBufInfoTest}, + {AUDIO_ADM_TEST_PCMWRITE, AudioPcmWriteTest}, + {AUDIO_ADM_TEST_PCMREAD, AudioPcmReadTest}, + {AUDIO_ADM_TEST_PCMMMAPWRITE, AudioPcmMmapWriteTest}, + {AUDIO_ADM_TEST_PCMMMAPREAD, AudioPcmMmapReadTest}, + {AUDIO_ADM_TEST_RENDEROPEN, AudioRenderOpenTest}, + {AUDIO_ADM_TEST_CAPTUREOPEN, AudioCaptureOpenTest}, + {AUDIO_ADM_TEST_RENDERCLOSE, AudioRenderCloseTest}, + {AUDIO_ADM_TEST_PCMPOINTER, AudioPcmPointerTest}, + {AUDIO_ADM_TEST_CAPTURECLOSE, AudioCaptureCloseTest}, + {AUDIO_ADM_TEST_HWPARAMS, AudioHwParamsTest}, + {AUDIO_ADM_TEST_RENDERPREPARE, AudioRenderPrepareTest}, + {AUDIO_ADM_TEST_CAPTUREPREPARE, AudioCapturePrepareTest}, + {AUDIO_ADM_TEST_RENDERTRIGGER, AudioRenderTriggerTest}, + {AUDIO_ADM_TEST_CAPTURETRIGGER, AudioCaptureTriggerTest} }; int32_t HdfAudioEntry(HdfTestMsg *msg) -- Gitee