[Sound-open-firmware] [PATCH 16/25] volume: volume_params(): set the sink buffer params depending on its sink
Jie, Yang
yang.jie at intel.com
Thu Feb 9 03:17:51 CET 2017
> -----Original Message-----
> From: Liam Girdwood [mailto:liam.r.girdwood at linux.intel.com]
> Sent: Wednesday, February 8, 2017 8:08 PM
> To: Keyon Jie <yang.jie at linux.intel.com>
> Cc: sound-open-firmware at alsa-project.org; Jie, Yang <yang.jie at intel.com>;
> Ingalsuo, Seppo <seppo.ingalsuo at intel.com>
> Subject: Re: [Sound-open-firmware] [PATCH 16/25] volume: volume_params():
> set the sink buffer params depending on its sink
>
> On Tue, 2017-02-07 at 22:03 +0800, Keyon Jie wrote:
> > If its sink is host, we need set it to 16bit(hard coded ATM); if its
> > sink is dai, we need set it to 32bit SSP format; otherwise, for
> > internal component, we uses STREAM_FORMAT_S32_LE.
> >
> > Signed-off-by: Keyon Jie <yang.jie at linux.intel.com>
> > ---
> > src/audio/volume.c | 20 +++++++++++++++++++-
> > 1 file changed, 19 insertions(+), 1 deletion(-)
> >
> > diff --git a/src/audio/volume.c b/src/audio/volume.c index
> > 24a9d11..ddab23b 100644
> > --- a/src/audio/volume.c
> > +++ b/src/audio/volume.c
> > @@ -341,8 +341,26 @@ static void volume_free(struct comp_dev *dev)
> > /* set component audio stream paramters */ static int
> > volume_params(struct comp_dev *dev, struct stream_params *params) {
> > + struct stream_params sink_params = *params;
> > + struct comp_buffer *sink;
> > +
> > + /* volume components will only ever have 1 source and 1 sink buffer */
> > + sink = list_first_item(&dev->bsink_list, struct comp_buffer,
> > +source_list);
> > +
> > + /* hard coded now */
>
> /* hard coded until new IPC is ready */
OK.
Thanks,
~Keyon
>
> > + if (sink->sink->is_host) {
> > + sink_params.pcm.format = STREAM_FORMAT_S16_LE;
> > + sink_params.frame_size = 2 * params->channels; /* 16bit
> container */
> > + } else if (sink->sink->is_dai) {
> > + sink_params.pcm.format = PLATFORM_SSP_STREAM_FORMAT;
> > + sink_params.frame_size = 4 * params->channels; /* 32bit
> container */
> > + } else {
> > + sink_params.pcm.format = STREAM_FORMAT_S32_LE;
> > + sink_params.frame_size = 4 * params->channels; /* 32bit
> container */
> > + }
> > +
> > /* dont do any data transformation */
> > - comp_set_sink_params(dev, params);
> > + comp_set_sink_params(dev, &sink_params);
> >
> > return 0;
> > }
>
More information about the Sound-open-firmware
mailing list