[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