[PATCH v1] ASoC: Intel: cirrus-common: Use UID to map correct amp to prefix

Lu, Brent brent.lu at intel.com
Tue Jul 26 18:58:04 CEST 2022


> >
> >  static int cs35l41_init(struct snd_soc_pcm_runtime *rtd)  { @@
> > -117,10 +82,10 @@ static int cs35l41_init(struct snd_soc_pcm_runtime
> > *rtd)  static const struct {
> >  	unsigned int rx[2];
> >  } cs35l41_channel_map[] = {
> > -	{.rx = {0, 1}}, /* TL */
> >  	{.rx = {0, 1}}, /* WL */
> > -	{.rx = {1, 0}}, /* TR */
> >  	{.rx = {1, 0}}, /* WR */
> > +	{.rx = {0, 1}}, /* TL */
> > +	{.rx = {1, 0}}, /* TR */
> >  };
> >
> >  static int cs35l41_hw_params(struct snd_pcm_substream *substream,
> @@
> > -175,8 +140,32 @@ static const struct snd_soc_ops cs35l41_ops = {
> >  	.hw_params = cs35l41_hw_params,
> >  };
> >
> > +static const char * const cs35l41_name_prefixes[] = { "WL", "WR",
> > +"TL", "TR" };
> > +
> > +static const char * const cs35l41_uid_strings[] = { "0", "1", "2",
> > +"3" };
> 
> I must admit not understanding why you changed the order.
> 
> I vaguely recall Brent Lu added this on TL, WL, TR, WR order on purpose and
> that it matches the order in the SOF topology. Brent, can you please
> comment on this?
> 
> I don't really care about the order selected, just want to make sure we don't
> introduce a channel swap with what the firmware does.
> 
The order here does not related to SOF topology or firmware. This is smart amp
so the SSP port is using I2S format to send data.

The order TL/WL/TR/WR is to match the enumeration order in SSDT table. Since
this patch is using UID to specify the amplifier, the order change should be fine.


Brent




More information about the Alsa-devel mailing list