Unverified Commit 086d0960 authored by Mark Brown's avatar Mark Brown
Browse files

ASoC: sdw_utils: generate combined spk components

Merge series from Bard Liao <yung-chuan.liao@linux.intel.com>:

The series adds support for combined speaker components with one "spk:"
tag in the card->components string. This is a UCM request.
parents 51c18d4d 0f60ecff
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ struct asoc_sdw_codec_info;
struct asoc_sdw_dai_info {
	const bool direction[2]; /* playback & capture support */
	const char *dai_name;
	const char *component_name;
	const int dai_type;
	const int dailink[2]; /* dailink id for each direction */
	const struct snd_kcontrol_new *controls;
+0 −10
Original line number Diff line number Diff line
@@ -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;
+0 −9
Original line number Diff line number Diff line
@@ -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);
+0 −6
Original line number Diff line number Diff line
@@ -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);
+0 −7
Original line number Diff line number Diff line
@@ -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)
Loading