Skip to content

Commit

Permalink
ASoC: Intel: sof_sdw: add amp number in components string for ucm
Browse files Browse the repository at this point in the history
The number of speaker amplifiers may vary between platforms. UCM
needs to check amp number to include different configuration files.
This patch keeps track of the number of speaker amplifiers and
stores it in components string of the card.

Tested on Comet Lake platforms.

Signed-off-by: randerwang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Link: https://lore.kernel.org/r/20200419183509.4134-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
  • Loading branch information
randerwang authored and Mark Brown committed Apr 27, 2020
1 parent e782ddb commit b1ca2f6
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions sound/soc/intel/boards/sof_sdw.c
Original file line number Diff line number Diff line change
Expand Up @@ -909,6 +909,7 @@ static int mc_probe(struct platform_device *pdev)
struct snd_soc_card *card = &card_sof_sdw;
struct snd_soc_acpi_mach *mach;
struct mc_private *ctx;
int amp_num = 0, i;
int ret;

dev_dbg(&pdev->dev, "Entry %s\n", __func__);
Expand All @@ -935,9 +936,18 @@ static int mc_probe(struct platform_device *pdev)

snd_soc_card_set_drvdata(card, ctx);

/*
* the default amp_num is zero for each codec and
* amp_num will only be increased for active amp
* codecs on used platform
*/
for (i = 0; i < ARRAY_SIZE(codec_info_list); i++)
amp_num += codec_info_list[i].amp_num;

card->components = devm_kasprintf(card->dev, GFP_KERNEL,
"cfg-spk:%d",
(sof_sdw_quirk & SOF_SDW_FOUR_SPK) ? 4 : 2);
"cfg-spk:%d, cfg-amp:%d",
(sof_sdw_quirk & SOF_SDW_FOUR_SPK)
? 4 : 2, amp_num);
if (!card->components)
return -ENOMEM;

Expand Down

0 comments on commit b1ca2f6

Please sign in to comment.