audio_stream: eq_fir: eq_iir: src: Remove audio_stream_copy_s16/s32()

Those functions do nothing more than audio_stream_copy(), so after
change source code will be little shorter without overhelming
pass-through function switch in processing components.

Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
This commit is contained in:
Karol Trzcinski 2020-07-24 15:50:46 +02:00 committed by Marcin Maka
parent 7cfd2187c5
commit 814dc46075
6 changed files with 26 additions and 129 deletions

View File

@ -167,59 +167,16 @@ static inline int set_fir_func(struct comp_dev *dev)
return 0;
}
/* Pass-through function to replace FIR core while not configured for
/* Pass-through functions to replace FIR core while not configured for
* response.
*/
#if CONFIG_FORMAT_S16LE
static void eq_fir_s16_passthrough(struct fir_state_32x16 fir[],
const struct audio_stream *source,
struct audio_stream *sink,
int frames, int nch)
static void eq_fir_passthrough(struct fir_state_32x16 fir[],
const struct audio_stream *source,
struct audio_stream *sink,
int frames, int nch)
{
audio_stream_copy_s16(source, 0, sink, 0, frames * nch);
}
#endif /* CONFIG_FORMAT_S16LE */
#if CONFIG_FORMAT_S24LE || CONFIG_FORMAT_S32LE
static void eq_fir_s32_passthrough(struct fir_state_32x16 fir[],
const struct audio_stream *source,
struct audio_stream *sink,
int frames, int nch)
{
audio_stream_copy_s32(source, 0, sink, 0, frames * nch);
}
#endif /* CONFIG_FORMAT_S24LE || CONFIG_FORMAT_S32LE */
/* Function to select pass-trough depending on PCM format */
static inline int set_pass_func(struct comp_dev *dev)
{
struct comp_data *cd = comp_get_drvdata(dev);
struct comp_buffer *sourceb;
sourceb = list_first_item(&dev->bsource_list, struct comp_buffer,
sink_list);
switch (sourceb->stream.frame_fmt) {
#if CONFIG_FORMAT_S16LE
case SOF_IPC_FRAME_S16_LE:
comp_info(dev, "set_pass_func(), SOF_IPC_FRAME_S16_LE");
cd->eq_fir_func = eq_fir_s16_passthrough;
break;
#endif /* CONFIG_FORMAT_S32LE */
#if CONFIG_FORMAT_S24LE || CONFIG_FORMAT_S32LE
case SOF_IPC_FRAME_S24_4LE:
case SOF_IPC_FRAME_S32_LE:
comp_info(dev, "set_pass_func(), SOF_IPC_FRAME_S32_LE");
cd->eq_fir_func = eq_fir_s32_passthrough;
break;
#endif /* CONFIG_FORMAT_S24LE || CONFIG_FORMAT_S32LE */
default:
comp_err(dev, "set_pass_func(): invalid dev->params.frame_fmt");
return -EINVAL;
}
return 0;
audio_stream_copy(source, 0, sink, 0, frames * nch);
}
/*
@ -780,7 +737,8 @@ static int eq_fir_prepare(struct comp_dev *dev)
return ret;
}
ret = set_pass_func(dev);
cd->eq_fir_func = eq_fir_passthrough;
return ret;
err:

View File

@ -210,25 +210,13 @@ static void eq_iir_s32_24_default(const struct comp_dev *dev,
}
#endif /* CONFIG_FORMAT_S32LE && CONFIG_FORMAT_S24LE */
#if CONFIG_FORMAT_S16LE
static void eq_iir_s16_pass(const struct comp_dev *dev,
const struct audio_stream *source,
struct audio_stream *sink,
uint32_t frames)
static void eq_iir_pass(const struct comp_dev *dev,
const struct audio_stream *source,
struct audio_stream *sink,
uint32_t frames)
{
audio_stream_copy_s16(source, 0, sink, 0, frames * source->channels);
audio_stream_copy(source, 0, sink, 0, frames * source->channels);
}
#endif /* CONFIG_FORMAT_S16LE */
#if CONFIG_FORMAT_S24LE || CONFIG_FORMAT_S32LE
static void eq_iir_s32_pass(const struct comp_dev *dev,
const struct audio_stream *source,
struct audio_stream *sink,
uint32_t frames)
{
audio_stream_copy_s32(source, 0, sink, 0, frames * source->channels);
}
#endif /* CONFIG_FORMAT_S24LE || CONFIG_FORMAT_S32LE */
#if CONFIG_FORMAT_S16LE && CONFIG_FORMAT_S32LE
static void eq_iir_s32_s16_pass(const struct comp_dev *dev,
@ -295,7 +283,7 @@ const struct eq_iir_func_map fm_configured[] = {
const struct eq_iir_func_map fm_passthrough[] = {
#if CONFIG_FORMAT_S16LE
{SOF_IPC_FRAME_S16_LE, SOF_IPC_FRAME_S16_LE, eq_iir_s16_pass},
{SOF_IPC_FRAME_S16_LE, SOF_IPC_FRAME_S16_LE, eq_iir_pass},
#endif /* CONFIG_FORMAT_S16LE */
#if CONFIG_FORMAT_S16LE && CONFIG_FORMAT_S24LE
{SOF_IPC_FRAME_S16_LE, SOF_IPC_FRAME_S24_4LE, NULL},
@ -307,14 +295,14 @@ const struct eq_iir_func_map fm_passthrough[] = {
{SOF_IPC_FRAME_S32_LE, SOF_IPC_FRAME_S16_LE, eq_iir_s32_s16_pass},
#endif /* CONFIG_FORMAT_S16LE && CONFIG_FORMAT_S32LE*/
#if CONFIG_FORMAT_S24LE
{SOF_IPC_FRAME_S24_4LE, SOF_IPC_FRAME_S24_4LE, eq_iir_s32_pass},
{SOF_IPC_FRAME_S24_4LE, SOF_IPC_FRAME_S24_4LE, eq_iir_pass},
#endif /* CONFIG_FORMAT_S24LE */
#if CONFIG_FORMAT_S24LE && CONFIG_FORMAT_S32LE
{SOF_IPC_FRAME_S24_4LE, SOF_IPC_FRAME_S32_LE, NULL},
{SOF_IPC_FRAME_S32_LE, SOF_IPC_FRAME_S24_4LE, eq_iir_s32_s24_pass},
#endif /* CONFIG_FORMAT_S24LE */
#if CONFIG_FORMAT_S32LE
{SOF_IPC_FRAME_S32_LE, SOF_IPC_FRAME_S32_LE, eq_iir_s32_pass},
{SOF_IPC_FRAME_S32_LE, SOF_IPC_FRAME_S32_LE, eq_iir_pass},
#endif /* CONFIG_FORMAT_S32LE */
};

View File

@ -379,17 +379,17 @@ static void pcm_convert_f_to_s32(const struct audio_stream *source,
const struct pcm_func_map pcm_func_map[] = {
#if CONFIG_FORMAT_S16LE
{ SOF_IPC_FRAME_S16_LE, SOF_IPC_FRAME_S16_LE, audio_stream_copy_s16 },
{ SOF_IPC_FRAME_S16_LE, SOF_IPC_FRAME_S16_LE, audio_stream_copy },
#endif /* CONFIG_FORMAT_S16LE */
#if CONFIG_FORMAT_S24LE
{ SOF_IPC_FRAME_S24_4LE, SOF_IPC_FRAME_S24_4LE, audio_stream_copy_s32 },
{ SOF_IPC_FRAME_S24_4LE, SOF_IPC_FRAME_S24_4LE, audio_stream_copy },
#endif /* CONFIG_FORMAT_S24LE */
#if CONFIG_FORMAT_S24LE && CONFIG_FORMAT_S16LE
{ SOF_IPC_FRAME_S16_LE, SOF_IPC_FRAME_S24_4LE, pcm_convert_s16_to_s24 },
{ SOF_IPC_FRAME_S24_4LE, SOF_IPC_FRAME_S16_LE, pcm_convert_s24_to_s16 },
#endif /* CONFIG_FORMAT_S24LE && CONFIG_FORMAT_S16LE */
#if CONFIG_FORMAT_S32LE
{ SOF_IPC_FRAME_S32_LE, SOF_IPC_FRAME_S32_LE, audio_stream_copy_s32 },
{ SOF_IPC_FRAME_S32_LE, SOF_IPC_FRAME_S32_LE, audio_stream_copy },
#endif /* CONFIG_FORMAT_S32LE */
#if CONFIG_FORMAT_S32LE && CONFIG_FORMAT_S16LE
{ SOF_IPC_FRAME_S16_LE, SOF_IPC_FRAME_S32_LE, pcm_convert_s16_to_s32 },
@ -400,7 +400,7 @@ const struct pcm_func_map pcm_func_map[] = {
{ SOF_IPC_FRAME_S32_LE, SOF_IPC_FRAME_S24_4LE, pcm_convert_s32_to_s24 },
#endif /* CONFIG_FORMAT_S32LE && CONFIG_FORMAT_S24LE */
#if CONFIG_FORMAT_FLOAT
{ SOF_IPC_FRAME_FLOAT, SOF_IPC_FRAME_FLOAT, audio_stream_copy_s32 },
{ SOF_IPC_FRAME_FLOAT, SOF_IPC_FRAME_FLOAT, audio_stream_copy },
#endif /* CONFIG_FORMAT_FLOAT */
#if CONFIG_FORMAT_FLOAT && CONFIG_FORMAT_S16LE
{ SOF_IPC_FRAME_S16_LE, SOF_IPC_FRAME_FLOAT, pcm_convert_s16_to_f },

View File

@ -895,17 +895,17 @@ static void pcm_convert_f_to_s32(const struct audio_stream *source,
const struct pcm_func_map pcm_func_map[] = {
#if CONFIG_FORMAT_S16LE
{ SOF_IPC_FRAME_S16_LE, SOF_IPC_FRAME_S16_LE, audio_stream_copy_s16 },
{ SOF_IPC_FRAME_S16_LE, SOF_IPC_FRAME_S16_LE, audio_stream_copy },
#endif /* CONFIG_FORMAT_S16LE */
#if CONFIG_FORMAT_S24LE
{ SOF_IPC_FRAME_S24_4LE, SOF_IPC_FRAME_S24_4LE, audio_stream_copy_s32 },
{ SOF_IPC_FRAME_S24_4LE, SOF_IPC_FRAME_S24_4LE, audio_stream_copy },
#endif /* CONFIG_FORMAT_S24LE */
#if CONFIG_FORMAT_S24LE && CONFIG_FORMAT_S16LE
{ SOF_IPC_FRAME_S16_LE, SOF_IPC_FRAME_S24_4LE, pcm_convert_s16_to_s24 },
{ SOF_IPC_FRAME_S24_4LE, SOF_IPC_FRAME_S16_LE, pcm_convert_s24_to_s16 },
#endif /* CONFIG_FORMAT_S24LE && CONFIG_FORMAT_S16LE */
#if CONFIG_FORMAT_S32LE
{ SOF_IPC_FRAME_S32_LE, SOF_IPC_FRAME_S32_LE, audio_stream_copy_s32 },
{ SOF_IPC_FRAME_S32_LE, SOF_IPC_FRAME_S32_LE, audio_stream_copy },
#endif /* CONFIG_FORMAT_S32LE */
#if CONFIG_FORMAT_S32LE && CONFIG_FORMAT_S16LE
{ SOF_IPC_FRAME_S16_LE, SOF_IPC_FRAME_S32_LE, pcm_convert_s16_to_s32 },
@ -917,7 +917,7 @@ const struct pcm_func_map pcm_func_map[] = {
#endif /* CONFIG_FORMAT_S32LE && CONFIG_FORMAT_S24LE */
#if XCHAL_HAVE_FP
#if CONFIG_FORMAT_FLOAT
{ SOF_IPC_FRAME_FLOAT, SOF_IPC_FRAME_FLOAT, audio_stream_copy_s32 },
{ SOF_IPC_FRAME_FLOAT, SOF_IPC_FRAME_FLOAT, audio_stream_copy },
#endif /* CONFIG_FORMAT_FLOAT */
#if CONFIG_FORMAT_FLOAT && CONFIG_FORMAT_S16LE
{ SOF_IPC_FRAME_S16_LE, SOF_IPC_FRAME_FLOAT, pcm_convert_s16_to_f },

View File

@ -436,23 +436,14 @@ static void src_copy_sxx(struct comp_dev *dev,
int frames = cd->param.blk_in;
switch (sink->frame_fmt) {
#if CONFIG_FORMAT_S16LE
case SOF_IPC_FRAME_S16_LE:
audio_stream_copy_s16(source, 0, sink, 0,
frames * source->channels);
*n_read = frames;
*n_written = frames;
break;
#endif
#if CONFIG_FORMAT_S24LE || CONFIG_FORMAT_S32LE
case SOF_IPC_FRAME_S24_4LE:
case SOF_IPC_FRAME_S32_LE:
audio_stream_copy_s32(source, 0, sink, 0,
frames * source->channels);
audio_stream_copy(source, 0, sink, 0,
frames * source->channels);
*n_read = frames;
*n_written = frames;
break;
#endif
default:
*n_read = 0;
*n_written = 0;

View File

@ -584,46 +584,6 @@ static inline void audio_stream_copy(const struct audio_stream *source,
}
}
#if CONFIG_FORMAT_S16LE
/**
* Copies signed 16-bit samples from source buffer to sink buffer.
* @param source Source buffer.
* @param ioffset Offset (in samples) in source buffer to start reading from.
* @param sink Sink buffer.
* @param ooffset Offset (in samples) in sink buffer to start writing to.
* @param samples Number of samples to copy.
*/
static inline void audio_stream_copy_s16(const struct audio_stream *source,
uint32_t ioffset,
struct audio_stream *sink,
uint32_t ooffset, uint32_t samples)
{
audio_stream_copy(source, ioffset, sink, ooffset, samples);
}
#endif /* CONFIG_FORMAT_S16LE */
#if CONFIG_FORMAT_S24LE || CONFIG_FORMAT_S32LE || CONFIG_FORMAT_FLOAT
/**
* Copies signed 32-bit samples from source buffer to sink buffer.
* @param source Source buffer.
* @param ioffset Offset (in samples) in source buffer to start reading from.
* @param sink Sink buffer.
* @param ooffset Offset (in samples) in sink buffer to start writing to.
* @param samples Number of samples to copy.
*/
static inline void audio_stream_copy_s32(const struct audio_stream *source,
uint32_t ioffset,
struct audio_stream *sink,
uint32_t ooffset, uint32_t samples)
{
audio_stream_copy(source, ioffset, sink, ooffset, samples);
}
#endif /* CONFIG_FORMAT_S24LE || CONFIG_FORMAT_S32LE || CONFIG_FORMAT_FLOAT */
/** @}*/
#endif /* __SOF_AUDIO_AUDIO_STREAM_H__ */