diff options
| -rw-r--r-- | sound/soc/sdw_utils/soc_sdw_cs_amp.c | 10 | ||||
| -rw-r--r-- | sound/soc/sdw_utils/soc_sdw_maxim.c | 9 | ||||
| -rw-r--r-- | sound/soc/sdw_utils/soc_sdw_rt_amp.c | 6 | ||||
| -rw-r--r-- | sound/soc/sdw_utils/soc_sdw_rt_mf_sdca.c | 7 | ||||
| -rw-r--r-- | sound/soc/sdw_utils/soc_sdw_utils.c | 26 | 
5 files changed, 26 insertions, 32 deletions
| diff --git a/sound/soc/sdw_utils/soc_sdw_cs_amp.c b/sound/soc/sdw_utils/soc_sdw_cs_amp.c index 35b550bcd4de..520ea36c63ee 100644 --- a/sound/soc/sdw_utils/soc_sdw_cs_amp.c +++ b/sound/soc/sdw_utils/soc_sdw_cs_amp.c @@ -14,7 +14,6 @@  #include <sound/soc-dai.h>  #include <sound/soc_sdw_utils.h> -#define CODEC_NAME_SIZE	8  #define CS_AMP_CHANNELS_PER_AMP	4  #define CS35L56_SPK_VOLUME_0DB 400 /* 0dB Max */ @@ -38,21 +37,12 @@ EXPORT_SYMBOL_NS(asoc_sdw_cs35l56_volume_limit, "SND_SOC_SDW_UTILS");  int asoc_sdw_cs_spk_rtd_init(struct snd_soc_pcm_runtime *rtd, struct snd_soc_dai *dai)  { -	const char *dai_name = rtd->dai_link->codecs->dai_name;  	struct snd_soc_card *card = rtd->card; -	char codec_name[CODEC_NAME_SIZE];  	char widget_name[16];  	struct snd_soc_dapm_route route = { "Speaker", NULL, widget_name };  	struct snd_soc_dai *codec_dai;  	int i, ret; -	snprintf(codec_name, CODEC_NAME_SIZE, "%s", dai_name); -	card->components = devm_kasprintf(card->dev, GFP_KERNEL, -					  "%s spk:%s", -					  card->components, codec_name); -	if (!card->components) -		return -ENOMEM; -  	for_each_rtd_codec_dais(rtd, i, codec_dai) {  		if (!strstr(codec_dai->name, "cs35l56"))  			continue; diff --git a/sound/soc/sdw_utils/soc_sdw_maxim.c b/sound/soc/sdw_utils/soc_sdw_maxim.c index 5df8d9cae60c..8f9d1ed0725b 100644 --- a/sound/soc/sdw_utils/soc_sdw_maxim.c +++ b/sound/soc/sdw_utils/soc_sdw_maxim.c @@ -28,15 +28,6 @@ int asoc_sdw_maxim_spk_rtd_init(struct snd_soc_pcm_runtime *rtd, struct snd_soc_  	struct snd_soc_card *card = rtd->card;  	int ret; -	card->components = devm_kasprintf(card->dev, GFP_KERNEL, -					  "%s spk:mx%04x", -					  card->components, maxim_part_id); -	if (!card->components) -		return -ENOMEM; - -	dev_dbg(card->dev, "soundwire maxim card components assigned : %s\n", -		card->components); -  	ret = snd_soc_dapm_add_routes(&card->dapm, max_98373_dapm_routes, 2);  	if (ret)  		dev_err(rtd->dev, "failed to add first SPK map: %d\n", ret); diff --git a/sound/soc/sdw_utils/soc_sdw_rt_amp.c b/sound/soc/sdw_utils/soc_sdw_rt_amp.c index 83c2368170cb..76ee24b8eee4 100644 --- a/sound/soc/sdw_utils/soc_sdw_rt_amp.c +++ b/sound/soc/sdw_utils/soc_sdw_rt_amp.c @@ -195,12 +195,6 @@ int asoc_sdw_rt_amp_spk_rtd_init(struct snd_soc_pcm_runtime *rtd, struct snd_soc  	rt_amp_map = get_codec_name_and_route(dai, codec_name); -	card->components = devm_kasprintf(card->dev, GFP_KERNEL, -					  "%s spk:%s", -					  card->components, codec_name); -	if (!card->components) -		return -ENOMEM; -  	for_each_rtd_codec_dais(rtd, i, codec_dai) {  		if (strstr(codec_dai->component->name_prefix, "-1"))  			ret = snd_soc_dapm_add_routes(&card->dapm, rt_amp_map, 2); diff --git a/sound/soc/sdw_utils/soc_sdw_rt_mf_sdca.c b/sound/soc/sdw_utils/soc_sdw_rt_mf_sdca.c index 0161b14297d5..224b58de9084 100644 --- a/sound/soc/sdw_utils/soc_sdw_rt_mf_sdca.c +++ b/sound/soc/sdw_utils/soc_sdw_rt_mf_sdca.c @@ -73,13 +73,6 @@ int asoc_sdw_rt_mf_sdca_spk_rtd_init(struct snd_soc_pcm_runtime *rtd, struct snd  		return -EINVAL;  	} -	/* Update card components */ -	card->components = devm_kasprintf(card->dev, GFP_KERNEL, -					  "%s spk:%s", -					  card->components, codec_name); -	if (!card->components) -		return -ENOMEM; -  	/* Add routes */  	ret = snd_soc_dapm_add_routes(&card->dapm, route_map->route_map, route_map->route_size);  	if (ret) diff --git a/sound/soc/sdw_utils/soc_sdw_utils.c b/sound/soc/sdw_utils/soc_sdw_utils.c index 2e8820137c69..a744ca019378 100644 --- a/sound/soc/sdw_utils/soc_sdw_utils.c +++ b/sound/soc/sdw_utils/soc_sdw_utils.c @@ -740,6 +740,7 @@ int asoc_sdw_rtd_init(struct snd_soc_pcm_runtime *rtd)  	struct snd_soc_card *card = rtd->card;  	struct asoc_sdw_codec_info *codec_info;  	struct snd_soc_dai *dai; +	const char *spk_components="";  	int dai_index;  	int ret;  	int i; @@ -792,7 +793,32 @@ skip_add_controls_widgets:  			if (ret)  				return ret;  		} + +		/* Generate the spk component string for card->components string */ +		if (codec_info->dais[dai_index].dai_type == SOC_SDW_DAI_TYPE_AMP && +		    codec_info->dais[dai_index].component_name) { +			if (strlen (spk_components) == 0) +				spk_components = +					devm_kasprintf(card->dev, GFP_KERNEL, "%s", +						       codec_info->dais[dai_index].component_name); +			else +				/* Append component name to spk_components */ +				spk_components = +					devm_kasprintf(card->dev, GFP_KERNEL, +						       "%s+%s", spk_components, +						       codec_info->dais[dai_index].component_name); +		} +  		codec_info->dais[dai_index].rtd_init_done = true; + +	} + +	if (strlen (spk_components) > 0) { +		/* Update card components for speaker components */ +		card->components = devm_kasprintf(card->dev, GFP_KERNEL, "%s spk:%s", +						  card->components, spk_components); +		if (!card->components) +			return -ENOMEM;  	}  	return 0; | 
