[Sound-open-firmware] [PATCH 05/10] volume: add doxygen comments
Liam Girdwood
liam.r.girdwood at linux.intel.com
Thu Jun 21 12:12:03 CEST 2018
From: Tomasz Lauda <tomasz.lauda at linux.intel.com>
Adds doxygen comments to volume implementation.
Signed-off-by: Tomasz Lauda <tomasz.lauda at linux.intel.com>
---
src/audio/volume.c | 110 +++++++++++++++++++--
src/audio/volume.h | 69 +++++++++----
src/audio/volume_generic.c | 192 ++++++++++++++++++++++++++++++-------
src/audio/volume_hifi3.c | 37 +++++++
4 files changed, 347 insertions(+), 61 deletions(-)
diff --git a/src/audio/volume.c b/src/audio/volume.c
index 9e2968d..2ac3d64 100644
--- a/src/audio/volume.c
+++ b/src/audio/volume.c
@@ -30,6 +30,14 @@
* Tomasz Lauda <tomasz.lauda at linux.intel.com>
*/
+/**
+ * \file audio/volume.c
+ * \brief Volume component implementation
+ * \authors Liam Girdwood <liam.r.girdwood at linux.intel.com>\n
+ * Keyon Jie <yang.jie at linux.intel.com>\n
+ * Tomasz Lauda <tomasz.lauda at linux.intel.com>
+ */
+
#include <stddef.h>
#include <errno.h>
#include <sof/sof.h>
@@ -41,7 +49,11 @@
#include <sof/clock.h>
#include "volume.h"
-/* synchronise host mmap() volume with real value */
+/**
+ * \brief Synchronize host mmap() volume with real value.
+ * \param[in,out] cd Volume component private data.
+ * \param[in] chan Channel number.
+ */
static void vol_sync_host(struct comp_data *cd, uint32_t chan)
{
if (cd->hvol == NULL)
@@ -55,13 +67,23 @@ static void vol_sync_host(struct comp_data *cd, uint32_t chan)
}
}
+/**
+ * \brief Update volume with target value.
+ * \param[in,out] cd Volume component private data.
+ * \param[in] chan Channel number.
+ */
static void vol_update(struct comp_data *cd, uint32_t chan)
{
cd->volume[chan] = cd->tvolume[chan];
vol_sync_host(cd, chan);
}
-/* this ramps volume changes over time */
+/**
+ * \brief Ramps volume changes over time.
+ * \param[in,out] data Volume base component device.
+ * \param[in] delay Update time.
+ * \return Time until next work.
+ */
static uint64_t vol_work(void *data, uint64_t delay)
{
struct comp_dev *dev = (struct comp_dev *)data;
@@ -119,6 +141,12 @@ static uint64_t vol_work(void *data, uint64_t delay)
return 0;
}
+/**
+ * \brief Creates volume component.
+ * \param[in,out] data Volume base component device.
+ * \param[in] delay Update time.
+ * \return Pointer to volume base component device.
+ */
static struct comp_dev *volume_new(struct sof_ipc_comp *comp)
{
struct comp_dev *dev;
@@ -157,6 +185,10 @@ static struct comp_dev *volume_new(struct sof_ipc_comp *comp)
return dev;
}
+/**
+ * \brief Frees volume component.
+ * \param[in,out] dev Volume base component device.
+ */
static void volume_free(struct comp_dev *dev)
{
struct comp_data *cd = comp_get_drvdata(dev);
@@ -167,9 +199,12 @@ static void volume_free(struct comp_dev *dev)
rfree(dev);
}
-/*
- * Set volume component audio stream parameters - All done in prepare() since
- * we need to know source and sink component params.
+/**
+ * \brief Sets volume component audio stream parameters.
+ * \param[in,out] dev Volume base component device.
+ * \return Error code.
+ *
+ * All done in prepare() since we need to know source and sink component params.
*/
static int volume_params(struct comp_dev *dev)
{
@@ -183,6 +218,12 @@ static int volume_params(struct comp_dev *dev)
return 0;
}
+/**
+ * \brief Sets channel target volume.
+ * \param[in,out] dev Volume base component device.
+ * \param[in] chan Channel number.
+ * \param[in] vol Target volume.
+ */
static inline void volume_set_chan(struct comp_dev *dev, int chan, uint32_t vol)
{
struct comp_data *cd = comp_get_drvdata(dev);
@@ -202,6 +243,11 @@ static inline void volume_set_chan(struct comp_dev *dev, int chan, uint32_t vol)
cd->tvolume[chan] = v;
}
+/**
+ * \brief Mutes channel.
+ * \param[in,out] dev Volume base component device.
+ * \param[in] chan Channel number.
+ */
static inline void volume_set_chan_mute(struct comp_dev *dev, int chan)
{
struct comp_data *cd = comp_get_drvdata(dev);
@@ -212,6 +258,11 @@ static inline void volume_set_chan_mute(struct comp_dev *dev, int chan)
cd->tvolume[chan] = 0;
}
+/**
+ * \brief Unmutes channel.
+ * \param[in,out] dev Volume base component device.
+ * \param[in] chan Channel number.
+ */
static inline void volume_set_chan_unmute(struct comp_dev *dev, int chan)
{
struct comp_data *cd = comp_get_drvdata(dev);
@@ -221,6 +272,12 @@ static inline void volume_set_chan_unmute(struct comp_dev *dev, int chan)
cd->tvolume[chan] = cd->mvolume[chan];
}
+/**
+ * \brief Sets volume control command.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] cdata Control command data.
+ * \return Error code.
+ */
static int volume_ctrl_set_cmd(struct comp_dev *dev,
struct sof_ipc_ctrl_data *cdata)
{
@@ -280,6 +337,12 @@ static int volume_ctrl_set_cmd(struct comp_dev *dev,
return 0;
}
+/**
+ * \brief Gets volume control command.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] cdata Control command data.
+ * \return Error code.
+ */
static int volume_ctrl_get_cmd(struct comp_dev *dev,
struct sof_ipc_ctrl_data *cdata)
{
@@ -311,7 +374,13 @@ static int volume_ctrl_get_cmd(struct comp_dev *dev,
return 0;
}
-/* used to pass standard and bespoke commands (with data) to component */
+/**
+ * \brief Used to pass standard and bespoke commands (with data) to component.
+ * \param[in,out] dev Volume base component device.
+ * \param[in] cmd Command type.
+ * \param[in,out] data Control command data.
+ * \return Error code.
+ */
static int volume_cmd(struct comp_dev *dev, int cmd, void *data)
{
struct sof_ipc_ctrl_data *cdata = data;
@@ -328,6 +397,12 @@ static int volume_cmd(struct comp_dev *dev, int cmd, void *data)
}
}
+/**
+ * \brief Sets volume component state.
+ * \param[in,out] dev Volume base component device.
+ * \param[in] cmd Command type.
+ * \return Error code.
+ */
static int volume_trigger(struct comp_dev *dev, int cmd)
{
trace_volume("trg");
@@ -335,7 +410,11 @@ static int volume_trigger(struct comp_dev *dev, int cmd)
return comp_set_state(dev, cmd);
}
-/* copy and process stream data from source to sink buffers */
+/**
+ * \brief Copies and processes stream data.
+ * \param[in,out] dev Volume base component device.
+ * \return Error code.
+ */
static int volume_copy(struct comp_dev *dev)
{
struct comp_data *cd = comp_get_drvdata(dev);
@@ -375,9 +454,13 @@ static int volume_copy(struct comp_dev *dev)
return dev->frames;
}
-/*
+/**
+ * \brief Prepares volume component for processing.
+ * \param[in,out] dev Volume base component device.
+ * \return Error code.
+ *
* Volume component is usually first and last in pipelines so it makes sense
- * to also do some type conversion too.
+ * to also do some type of conversion here.
*/
static int volume_prepare(struct comp_dev *dev)
{
@@ -489,6 +572,11 @@ err:
return ret;
}
+/**
+ * \brief Resets volume component.
+ * \param[in,out] dev Volume base component device.
+ * \return Error code.
+ */
static int volume_reset(struct comp_dev *dev)
{
trace_volume("res");
@@ -497,6 +585,7 @@ static int volume_reset(struct comp_dev *dev)
return 0;
}
+/** \brief Volume component definition. */
struct comp_driver comp_volume = {
.type = SOF_COMP_VOLUME,
.ops = {
@@ -511,6 +600,9 @@ struct comp_driver comp_volume = {
},
};
+/**
+ * \brief Initializes volume component.
+ */
void sys_comp_volume_init(void)
{
comp_register(&comp_volume);
diff --git a/src/audio/volume.h b/src/audio/volume.h
index f7c9b43..d130fe4 100644
--- a/src/audio/volume.h
+++ b/src/audio/volume.h
@@ -28,6 +28,14 @@
* Author: Tomasz Lauda <tomasz.lauda at linux.intel.com>
*/
+/**
+ * \file audio/volume.h
+ * \brief Volume component header file
+ * \authors Liam Girdwood <liam.r.girdwood at linux.intel.com>\n
+ * Keyon Jie <yang.jie at linux.intel.com>\n
+ * Tomasz Lauda <tomasz.lauda at linux.intel.com>
+ */
+
#ifndef VOLUME_H
#define VOLUME_H
@@ -47,49 +55,70 @@
#endif
+/** \brief Volume trace function. */
#define trace_volume(__e) trace_event(TRACE_CLASS_VOLUME, __e)
+
+/** \brief Volume trace value function. */
#define tracev_volume(__e) tracev_event(TRACE_CLASS_VOLUME, __e)
+
+/** \brief Volume trace error function. */
#define trace_volume_error(__e) trace_error(TRACE_CLASS_VOLUME, __e)
-/* this should ramp from 0dB to mute in 64ms.
- * i.e 2^16 -> 0 in 32 * 2048 steps each lasting 2ms
+/**
+ * \brief Volume ramp time in microseconds.
+ *
+ * This should ramp from 0dB to mute in 64ms.
+ * i.e. 2^16 -> 0 in 32 * 2048 steps each lasting 2ms.
*/
#define VOL_RAMP_US 2000
+
+/** \brief Volume ramp step. */
#define VOL_RAMP_STEP (1 << 11)
+
+/** \brief Volume maximum value. */
#define VOL_MAX (1 << 16)
+
+/** \brief Volume minimum value. */
#define VOL_MIN 0
-/* volume component private data */
+/**
+ * \brief Volume component private data.
+ *
+ * Gain amplitude value is between 0 (mute) ... 2^16 (0dB) ... 2^24 (~+48dB).
+ */
struct comp_data {
- uint32_t source_period_bytes;
- uint32_t sink_period_bytes;
- enum sof_ipc_frame source_format;
- enum sof_ipc_frame sink_format;
- uint32_t volume[SOF_IPC_MAX_CHANNELS]; /* current volume */
- uint32_t tvolume[SOF_IPC_MAX_CHANNELS]; /* target volume */
- uint32_t mvolume[SOF_IPC_MAX_CHANNELS]; /* mute volume */
+ uint32_t source_period_bytes; /**< source number of period bytes */
+ uint32_t sink_period_bytes; /**< sink number of period bytes */
+ enum sof_ipc_frame source_format; /**< source frame format */
+ enum sof_ipc_frame sink_format; /**< sink frame format */
+ uint32_t volume[SOF_IPC_MAX_CHANNELS]; /**< current volume */
+ uint32_t tvolume[SOF_IPC_MAX_CHANNELS]; /**< target volume */
+ uint32_t mvolume[SOF_IPC_MAX_CHANNELS]; /**< mute volume */
void (*scale_vol)(struct comp_dev *dev, struct comp_buffer *sink,
- struct comp_buffer *source);
- struct work volwork;
-
- /* host volume readback */
- struct sof_ipc_ctrl_value_chan *hvol;
+ struct comp_buffer *source); /**< volume processing function */
+ struct work volwork; /**< volume scheduled work function */
+ struct sof_ipc_ctrl_value_chan *hvol; /**< host volume readback */
};
+/** \brief Volume processing functions map. */
struct comp_func_map {
- uint16_t source; /* source format */
- uint16_t sink; /* sink format */
- uint16_t channels; /* channel number for the stream */
+ uint16_t source; /**< source frame format */
+ uint16_t sink; /**< sink frame format */
+ uint16_t channels; /**< number of stream channels */
void (*func)(struct comp_dev *dev, struct comp_buffer *sink,
- struct comp_buffer *source);
+ struct comp_buffer *source); /**< volume processing function */
};
-/* map of source and sink buffer formats to volume function */
+/** \brief Map of formats with dedicated processing functions. */
extern const struct comp_func_map func_map[];
typedef void (*scale_vol)(struct comp_dev *, struct comp_buffer *,
struct comp_buffer *);
+/**
+ * \brief Retrievies volume processing function.
+ * \param[in,out] dev Volume base component device.
+ */
scale_vol vol_get_processing_function(struct comp_dev *dev);
#endif /* VOLUME_H */
diff --git a/src/audio/volume_generic.c b/src/audio/volume_generic.c
index 200cf12..3b91ab5 100644
--- a/src/audio/volume_generic.c
+++ b/src/audio/volume_generic.c
@@ -30,13 +30,27 @@
* Tomasz Lauda <tomasz.lauda at linux.intel.com>
*/
+/**
+ * \file audio/volume_generic.c
+ * \brief Volume generic processing implementation
+ * \authors Liam Girdwood <liam.r.girdwood at linux.intel.com>\n
+ * Keyon Jie <yang.jie at linux.intel.com>\n
+ * Tomasz Lauda <tomasz.lauda at linux.intel.com>
+ */
+
#include "volume.h"
#ifdef CONFIG_GENERIC
-/* volume scaling functions for stereo input */
-
-/* copy and scale volume from 16 bit source buffer to 32 bit dest buffer */
+/**
+ * \brief Volume processing from 16 bit to 32 bit in 2 channels.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ *
+ * Copy and scale volume from 16 bit source buffer
+ * to 32 bit destination buffer for 2 channels.
+ */
static void vol_s16_to_s32_2ch(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
{
@@ -53,7 +67,15 @@ static void vol_s16_to_s32_2ch(struct comp_dev *dev, struct comp_buffer *sink,
}
}
-/* copy and scale volume from 32 bit source buffer to 16 bit dest buffer */
+/**
+ * \brief Volume processing from 32 bit to 16 bit in 2 channels.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ *
+ * Copy and scale volume from 32 bit source buffer
+ * to 16 bit destination buffer for 2 channels.
+ */
static void vol_s32_to_s16_2ch(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
{
@@ -72,7 +94,15 @@ static void vol_s32_to_s16_2ch(struct comp_dev *dev, struct comp_buffer *sink,
}
}
-/* copy and scale volume from 32 bit source buffer to 32 bit dest buffer */
+/**
+ * \brief Volume processing from 32 bit to 32 bit in 2 channels.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ *
+ * Copy and scale volume from 32 bit source buffer
+ * to 32 bit destination buffer for 2 channels.
+ */
static void vol_s32_to_s32_2ch(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
{
@@ -91,7 +121,15 @@ static void vol_s32_to_s32_2ch(struct comp_dev *dev, struct comp_buffer *sink,
}
}
-/* copy and scale volume from 16 bit source buffer to 16 bit dest buffer */
+/**
+ * \brief Volume processing from 16 bit to 16 bit in 2 channels.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ *
+ * Copy and scale volume from 16 bit source buffer
+ * to 16 bit destination buffer for 2 channels.
+ */
static void vol_s16_to_s16_2ch(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
{
@@ -110,8 +148,14 @@ static void vol_s16_to_s16_2ch(struct comp_dev *dev, struct comp_buffer *sink,
}
}
-/* copy and scale volume from 16 bit source buffer to 24 bit
- * on 32 bit boundary dest buffer
+/**
+ * \brief Volume processing from 16 bit to 24/32 bit in 2 channels.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ *
+ * Copy and scale volume from 16 bit source buffer
+ * to 24/32 bit destination buffer for 2 channels.
*/
static void vol_s16_to_s24_2ch(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
@@ -131,8 +175,14 @@ static void vol_s16_to_s24_2ch(struct comp_dev *dev, struct comp_buffer *sink,
}
}
-/* copy and scale volume from 16 bit source buffer to 24 bit
- * on 32 bit boundary dest buffer
+/**
+ * \brief Volume processing from 24/32 bit to 16 bit in 2 channels.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ *
+ * Copy and scale volume from 24/32 bit source buffer
+ * to 16 bit destination buffer for 2 channels.
*/
static void vol_s24_to_s16_2ch(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
@@ -154,8 +204,14 @@ static void vol_s24_to_s16_2ch(struct comp_dev *dev, struct comp_buffer *sink,
}
}
-/* copy and scale volume from 32 bit source buffer to 24 bit
- * on 32 bit boundary dest buffer
+/**
+ * \brief Volume processing from 32 bit to 24/32 bit in 2 channels.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ *
+ * Copy and scale volume from 32 bit source buffer
+ * to 24/32 bit destination buffer for 2 channels.
*/
static void vol_s32_to_s24_2ch(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
@@ -175,8 +231,14 @@ static void vol_s32_to_s24_2ch(struct comp_dev *dev, struct comp_buffer *sink,
}
}
-/* copy and scale volume from 16 bit source buffer to 24 bit
- * on 32 bit boundary dest buffer
+/**
+ * \brief Volume processing from 24/32 bit to 32 bit in 2 channels.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ *
+ * Copy and scale volume from 24/32 bit source buffer
+ * to 32 bit destination buffer for 2 channels.
*/
static void vol_s24_to_s32_2ch(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
@@ -198,8 +260,14 @@ static void vol_s24_to_s32_2ch(struct comp_dev *dev, struct comp_buffer *sink,
}
}
-/* copy and scale volume from 24 bit source buffer to 24 bit on 32 bit boundary
- * dest buffer.
+/**
+ * \brief Volume processing from 24/32 bit to 24/32 bit in 2 channels.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ *
+ * Copy and scale volume from 24/32 bit source buffer
+ * to 24/32 bit destination buffer for 2 channels.
*/
static void vol_s24_to_s24_2ch(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
@@ -220,9 +288,15 @@ static void vol_s24_to_s24_2ch(struct comp_dev *dev, struct comp_buffer *sink,
}
}
-/* volume scaling functions for 4-channel input */
-
-/* copy and scale volume from 16 bit source buffer to 32 bit dest buffer */
+/**
+ * \brief Volume processing from 16 bit to 32 bit in 4 channels.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ *
+ * Copy and scale volume from 16 bit source buffer
+ * to 32 bit destination buffer for 4 channels.
+ */
static void vol_s16_to_s32_4ch(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
{
@@ -241,7 +315,15 @@ static void vol_s16_to_s32_4ch(struct comp_dev *dev, struct comp_buffer *sink,
}
}
-/* copy and scale volume from 32 bit source buffer to 16 bit dest buffer */
+/**
+ * \brief Volume processing from 32 bit to 16 bit in 4 channels.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ *
+ * Copy and scale volume from 32 bit source buffer
+ * to 16 bit destination buffer for 4 channels.
+ */
static void vol_s32_to_s16_4ch(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
{
@@ -274,7 +356,15 @@ static void vol_s32_to_s16_4ch(struct comp_dev *dev, struct comp_buffer *sink,
}
}
-/* copy and scale volume from 32 bit source buffer to 32 bit dest buffer */
+/**
+ * \brief Volume processing from 32 bit to 32 bit in 4 channels.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ *
+ * Copy and scale volume from 32 bit source buffer
+ * to 32 bit destination buffer for 4 channels.
+ */
static void vol_s32_to_s32_4ch(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
{
@@ -297,7 +387,15 @@ static void vol_s32_to_s32_4ch(struct comp_dev *dev, struct comp_buffer *sink,
}
}
-/* copy and scale volume from 16 bit source buffer to 16 bit dest buffer */
+/**
+ * \brief Volume processing from 16 bit to 16 bit in 4 channels.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ *
+ * Copy and scale volume from 16 bit source buffer
+ * to 16 bit destination buffer for 4 channels.
+ */
static void vol_s16_to_s16_4ch(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
{
@@ -320,8 +418,14 @@ static void vol_s16_to_s16_4ch(struct comp_dev *dev, struct comp_buffer *sink,
}
}
-/* copy and scale volume from 16 bit source buffer to 24 bit
- * on 32 bit boundary buffer
+/**
+ * \brief Volume processing from 16 bit to 24/32 bit in 4 channels.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ *
+ * Copy and scale volume from 16 bit source buffer
+ * to 24/32 bit destination buffer for 4 channels.
*/
static void vol_s16_to_s24_4ch(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
@@ -345,8 +449,14 @@ static void vol_s16_to_s24_4ch(struct comp_dev *dev, struct comp_buffer *sink,
}
}
-/* copy and scale volume from 16 bit source buffer to 24 bit
- * on 32 bit boundary dest buffer
+/**
+ * \brief Volume processing from 24/32 bit to 16 bit in 4 channels.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ *
+ * Copy and scale volume from 24/32 bit source buffer
+ * to 16 bit destination buffer for 4 channels.
*/
static void vol_s24_to_s16_4ch(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
@@ -384,8 +494,14 @@ static void vol_s24_to_s16_4ch(struct comp_dev *dev, struct comp_buffer *sink,
}
}
-/* copy and scale volume from 32 bit source buffer to 24 bit
- * on 32 bit boundary dest buffer
+/**
+ * \brief Volume processing from 32 bit to 24/32 bit in 4 channels.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ *
+ * Copy and scale volume from 32 bit source buffer
+ * to 24/32 bit destination buffer for 4 channels.
*/
static void vol_s32_to_s24_4ch(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
@@ -409,8 +525,14 @@ static void vol_s32_to_s24_4ch(struct comp_dev *dev, struct comp_buffer *sink,
}
}
-/* copy and scale volume from 16 bit source buffer to 24 bit
- * on 32 bit boundary dest buffer
+/**
+ * \brief Volume processing from 24/32 bit to 32 bit in 4 channels.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ *
+ * Copy and scale volume from 24/32 bit source buffer
+ * to 32 bit destination buffer for 4 channels.
*/
static void vol_s24_to_s32_4ch(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
@@ -438,8 +560,14 @@ static void vol_s24_to_s32_4ch(struct comp_dev *dev, struct comp_buffer *sink,
}
}
-/* Copy and scale volume from 24 bit source buffer to 24 bit on 32 bit boundary
- * dest buffer.
+/**
+ * \brief Volume processing from 24/32 bit to 24/32 bit in 4 channels.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ *
+ * Copy and scale volume from 24/32 bit source buffer
+ * to 24/32 bit destination buffer for 4 channels.
*/
static void vol_s24_to_s24_4ch(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
diff --git a/src/audio/volume_hifi3.c b/src/audio/volume_hifi3.c
index e410de3..48e164e 100644
--- a/src/audio/volume_hifi3.c
+++ b/src/audio/volume_hifi3.c
@@ -28,14 +28,27 @@
* Author: Tomasz Lauda <tomasz.lauda at linux.intel.com>
*/
+/**
+ * \file audio/volume_hifi3.c
+ * \brief Volume HiFi3 processing implementation
+ * \authors Tomasz Lauda <tomasz.lauda at linux.intel.com>
+ */
+
#include "volume.h"
#if defined(__XCC__) && XCHAL_HAVE_HIFI3
#include <xtensa/tie/xt_hifi3.h>
+/** \brief Volume scale ratio. */
#define VOL_SCALE (uint32_t)((double)INT32_MAX / VOL_MAX)
+/**
+ * \brief HiFi3 enabled volume processing from 16 bit to 16 bit.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ */
static void vol_s16_to_s16(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
{
@@ -78,6 +91,12 @@ static void vol_s16_to_s16(struct comp_dev *dev, struct comp_buffer *sink,
}
}
+/**
+ * \brief HiFi3 enabled volume processing from 16 bit to x bit.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ */
static void vol_s16_to_sX(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
{
@@ -129,6 +148,12 @@ static void vol_s16_to_sX(struct comp_dev *dev, struct comp_buffer *sink,
}
}
+/**
+ * \brief HiFi3 enabled volume processing from x bit to 16 bit.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ */
static void vol_sX_to_s16(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
{
@@ -179,6 +204,12 @@ static void vol_sX_to_s16(struct comp_dev *dev, struct comp_buffer *sink,
}
}
+/**
+ * \brief HiFi3 enabled volume processing from 24/32 bit to 24/32 or 32 bit.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ */
static void vol_s24_to_s24_s32(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
{
@@ -228,6 +259,12 @@ static void vol_s24_to_s24_s32(struct comp_dev *dev, struct comp_buffer *sink,
}
}
+/**
+ * \brief HiFi3 enabled volume processing from 32 bit to 24/32 or 32 bit.
+ * \param[in,out] dev Volume base component device.
+ * \param[in,out] sink Destination buffer.
+ * \param[in,out] source Source buffer.
+ */
static void vol_s32_to_s24_s32(struct comp_dev *dev, struct comp_buffer *sink,
struct comp_buffer *source)
{
--
2.17.0
More information about the Sound-open-firmware
mailing list