diff mbox series

[v5,1/2] ASoC: Intel - use control components to describe card config

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

Commit Message

Jaroslav Kysela Nov. 25, 2019, 2:36 p.m. UTC
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(-)

Comments

Pierre-Louis Bossart Nov. 25, 2019, 3:26 p.m. UTC | #1
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 mbox series

Patch

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 */