Message ID | 20191125143636.28529-1-perex@perex.cz (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v5,1/2] ASoC: Intel - use control components to describe card config | expand |
On 11/25/19 8:36 AM, Jaroslav Kysela wrote: > Use the control interface (field 'components' in the info structure) > to pass the I/O configuration details. The goal is to replace > the card long name with this. > > Signed-off-by: Jaroslav Kysela <perex@perex.cz> > Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> For the series Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Thanks Jaroslav. > Cc: Mark Brown <broonie@kernel.org> > --- > sound/soc/intel/boards/bytcht_es8316.c | 9 ++++++++- > sound/soc/intel/boards/bytcr_rt5640.c | 6 ++++++ > sound/soc/intel/boards/bytcr_rt5651.c | 18 +++++++++++------- > 3 files changed, 25 insertions(+), 8 deletions(-) > > diff --git a/sound/soc/intel/boards/bytcht_es8316.c b/sound/soc/intel/boards/bytcht_es8316.c > index 46612331f5ea..efa33f30dcac 100644 > --- a/sound/soc/intel/boards/bytcht_es8316.c > +++ b/sound/soc/intel/boards/bytcht_es8316.c > @@ -361,6 +361,7 @@ static struct snd_soc_dai_link byt_cht_es8316_dais[] = { > /* SoC card */ > static char codec_name[SND_ACPI_I2C_ID_LEN]; > static char long_name[50]; /* = "bytcht-es8316-*-spk-*-mic" */ > +static char components_string[32]; /* = "cfg-spk:* cfg-mic:* */ > > static int byt_cht_es8316_suspend(struct snd_soc_card *card) > { > @@ -572,11 +573,17 @@ static int snd_byt_cht_es8316_mc_probe(struct platform_device *pdev) > } > } > > - /* register the soc card */ > + snprintf(components_string, sizeof(components_string), > + "cfg-spk:%s cfg-mic:%s", > + (quirk & BYT_CHT_ES8316_MONO_SPEAKER) ? "1" : "2", > + mic_name[BYT_CHT_ES8316_MAP(quirk)]); > + byt_cht_es8316_card.components = components_string; > snprintf(long_name, sizeof(long_name), "bytcht-es8316-%s-spk-%s-mic", > (quirk & BYT_CHT_ES8316_MONO_SPEAKER) ? "mono" : "stereo", > mic_name[BYT_CHT_ES8316_MAP(quirk)]); > byt_cht_es8316_card.long_name = long_name; > + > + /* register the soc card */ > snd_soc_card_set_drvdata(&byt_cht_es8316_card, priv); > > ret = devm_snd_soc_register_card(dev, &byt_cht_es8316_card); > diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c > index 9c1aa4ec9cba..0170d31e691a 100644 > --- a/sound/soc/intel/boards/bytcr_rt5640.c > +++ b/sound/soc/intel/boards/bytcr_rt5640.c > @@ -1081,6 +1081,7 @@ static char byt_rt5640_codec_name[SND_ACPI_I2C_ID_LEN]; > static char byt_rt5640_codec_aif_name[12]; /* = "rt5640-aif[1|2]" */ > static char byt_rt5640_cpu_dai_name[10]; /* = "ssp[0|2]-port" */ > static char byt_rt5640_long_name[40]; /* = "bytcr-rt5640-*-spk-*-mic" */ > +static char byt_rt5640_components[32]; /* = "cfg-spk:* cfg-mic:*" */ > > static int byt_rt5640_suspend(struct snd_soc_card *card) > { > @@ -1303,6 +1304,11 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev) > } > } > > + snprintf(byt_rt5640_components, sizeof(byt_rt5640_components), > + "cfg-spk:%s cfg-mic:%s", > + (byt_rt5640_quirk & BYT_RT5640_MONO_SPEAKER) ? "1" : "2", > + map_name[BYT_RT5640_MAP(byt_rt5640_quirk)]); > + byt_rt5640_card.components = byt_rt5640_components; > snprintf(byt_rt5640_long_name, sizeof(byt_rt5640_long_name), > "bytcr-rt5640-%s-spk-%s-mic", > (byt_rt5640_quirk & BYT_RT5640_MONO_SPEAKER) ? > diff --git a/sound/soc/intel/boards/bytcr_rt5651.c b/sound/soc/intel/boards/bytcr_rt5651.c > index 4606f6f582d6..80a5674ddb1b 100644 > --- a/sound/soc/intel/boards/bytcr_rt5651.c > +++ b/sound/soc/intel/boards/bytcr_rt5651.c > @@ -798,6 +798,7 @@ static char byt_rt5651_codec_name[SND_ACPI_I2C_ID_LEN]; > static char byt_rt5651_codec_aif_name[12]; /* = "rt5651-aif[1|2]" */ > static char byt_rt5651_cpu_dai_name[10]; /* = "ssp[0|2]-port" */ > static char byt_rt5651_long_name[50]; /* = "bytcr-rt5651-*-spk-*-mic[-swapped-hp]" */ > +static char byt_rt5651_components[50]; /* = "cfg-spk:* cfg-mic:*" */ > > static int byt_rt5651_suspend(struct snd_soc_card *card) > { > @@ -876,7 +877,6 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev) > const char *platform_name; > struct acpi_device *adev; > struct device *codec_dev; > - const char *hp_swapped; > bool is_bytcr = false; > int ret_val = 0; > int dai_index = 0; > @@ -1080,16 +1080,20 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev) > } > } > > - if (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED) > - hp_swapped = "-hp-swapped"; > - else > - hp_swapped = ""; > - > + snprintf(byt_rt5651_components, sizeof(byt_rt5651_components), > + "cfg-spk:%s cfg-mic:%s%s", > + (byt_rt5651_quirk & BYT_RT5651_MONO_SPEAKER) ? "1" : "2", > + mic_name[BYT_RT5651_MAP(byt_rt5651_quirk)], > + (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED) ? > + " cfg-hp:lrswap" : ""); > + byt_rt5651_card.components = byt_rt5651_components; > snprintf(byt_rt5651_long_name, sizeof(byt_rt5651_long_name), > "bytcr-rt5651-%s-spk-%s-mic%s", > (byt_rt5651_quirk & BYT_RT5651_MONO_SPEAKER) ? > "mono" : "stereo", > - mic_name[BYT_RT5651_MAP(byt_rt5651_quirk)], hp_swapped); > + mic_name[BYT_RT5651_MAP(byt_rt5651_quirk)], > + (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED) ? > + "-hp-swapped" : ""); > byt_rt5651_card.long_name = byt_rt5651_long_name; > > /* override plaform name, if required */ >
diff --git a/sound/soc/intel/boards/bytcht_es8316.c b/sound/soc/intel/boards/bytcht_es8316.c index 46612331f5ea..efa33f30dcac 100644 --- a/sound/soc/intel/boards/bytcht_es8316.c +++ b/sound/soc/intel/boards/bytcht_es8316.c @@ -361,6 +361,7 @@ static struct snd_soc_dai_link byt_cht_es8316_dais[] = { /* SoC card */ static char codec_name[SND_ACPI_I2C_ID_LEN]; static char long_name[50]; /* = "bytcht-es8316-*-spk-*-mic" */ +static char components_string[32]; /* = "cfg-spk:* cfg-mic:* */ static int byt_cht_es8316_suspend(struct snd_soc_card *card) { @@ -572,11 +573,17 @@ static int snd_byt_cht_es8316_mc_probe(struct platform_device *pdev) } } - /* register the soc card */ + snprintf(components_string, sizeof(components_string), + "cfg-spk:%s cfg-mic:%s", + (quirk & BYT_CHT_ES8316_MONO_SPEAKER) ? "1" : "2", + mic_name[BYT_CHT_ES8316_MAP(quirk)]); + byt_cht_es8316_card.components = components_string; snprintf(long_name, sizeof(long_name), "bytcht-es8316-%s-spk-%s-mic", (quirk & BYT_CHT_ES8316_MONO_SPEAKER) ? "mono" : "stereo", mic_name[BYT_CHT_ES8316_MAP(quirk)]); byt_cht_es8316_card.long_name = long_name; + + /* register the soc card */ snd_soc_card_set_drvdata(&byt_cht_es8316_card, priv); ret = devm_snd_soc_register_card(dev, &byt_cht_es8316_card); diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c index 9c1aa4ec9cba..0170d31e691a 100644 --- a/sound/soc/intel/boards/bytcr_rt5640.c +++ b/sound/soc/intel/boards/bytcr_rt5640.c @@ -1081,6 +1081,7 @@ static char byt_rt5640_codec_name[SND_ACPI_I2C_ID_LEN]; static char byt_rt5640_codec_aif_name[12]; /* = "rt5640-aif[1|2]" */ static char byt_rt5640_cpu_dai_name[10]; /* = "ssp[0|2]-port" */ static char byt_rt5640_long_name[40]; /* = "bytcr-rt5640-*-spk-*-mic" */ +static char byt_rt5640_components[32]; /* = "cfg-spk:* cfg-mic:*" */ static int byt_rt5640_suspend(struct snd_soc_card *card) { @@ -1303,6 +1304,11 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev) } } + snprintf(byt_rt5640_components, sizeof(byt_rt5640_components), + "cfg-spk:%s cfg-mic:%s", + (byt_rt5640_quirk & BYT_RT5640_MONO_SPEAKER) ? "1" : "2", + map_name[BYT_RT5640_MAP(byt_rt5640_quirk)]); + byt_rt5640_card.components = byt_rt5640_components; snprintf(byt_rt5640_long_name, sizeof(byt_rt5640_long_name), "bytcr-rt5640-%s-spk-%s-mic", (byt_rt5640_quirk & BYT_RT5640_MONO_SPEAKER) ? diff --git a/sound/soc/intel/boards/bytcr_rt5651.c b/sound/soc/intel/boards/bytcr_rt5651.c index 4606f6f582d6..80a5674ddb1b 100644 --- a/sound/soc/intel/boards/bytcr_rt5651.c +++ b/sound/soc/intel/boards/bytcr_rt5651.c @@ -798,6 +798,7 @@ static char byt_rt5651_codec_name[SND_ACPI_I2C_ID_LEN]; static char byt_rt5651_codec_aif_name[12]; /* = "rt5651-aif[1|2]" */ static char byt_rt5651_cpu_dai_name[10]; /* = "ssp[0|2]-port" */ static char byt_rt5651_long_name[50]; /* = "bytcr-rt5651-*-spk-*-mic[-swapped-hp]" */ +static char byt_rt5651_components[50]; /* = "cfg-spk:* cfg-mic:*" */ static int byt_rt5651_suspend(struct snd_soc_card *card) { @@ -876,7 +877,6 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev) const char *platform_name; struct acpi_device *adev; struct device *codec_dev; - const char *hp_swapped; bool is_bytcr = false; int ret_val = 0; int dai_index = 0; @@ -1080,16 +1080,20 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev) } } - if (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED) - hp_swapped = "-hp-swapped"; - else - hp_swapped = ""; - + snprintf(byt_rt5651_components, sizeof(byt_rt5651_components), + "cfg-spk:%s cfg-mic:%s%s", + (byt_rt5651_quirk & BYT_RT5651_MONO_SPEAKER) ? "1" : "2", + mic_name[BYT_RT5651_MAP(byt_rt5651_quirk)], + (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED) ? + " cfg-hp:lrswap" : ""); + byt_rt5651_card.components = byt_rt5651_components; snprintf(byt_rt5651_long_name, sizeof(byt_rt5651_long_name), "bytcr-rt5651-%s-spk-%s-mic%s", (byt_rt5651_quirk & BYT_RT5651_MONO_SPEAKER) ? "mono" : "stereo", - mic_name[BYT_RT5651_MAP(byt_rt5651_quirk)], hp_swapped); + mic_name[BYT_RT5651_MAP(byt_rt5651_quirk)], + (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED) ? + "-hp-swapped" : ""); byt_rt5651_card.long_name = byt_rt5651_long_name; /* override plaform name, if required */
Use the control interface (field 'components' in the info structure) to pass the I/O configuration details. The goal is to replace the card long name with this. Signed-off-by: Jaroslav Kysela <perex@perex.cz> Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Cc: Mark Brown <broonie@kernel.org> --- sound/soc/intel/boards/bytcht_es8316.c | 9 ++++++++- sound/soc/intel/boards/bytcr_rt5640.c | 6 ++++++ sound/soc/intel/boards/bytcr_rt5651.c | 18 +++++++++++------- 3 files changed, 25 insertions(+), 8 deletions(-)