Unverified Commit 3dca35e3 authored by Jaska Uimonen's avatar Jaska Uimonen Committed by Mark Brown
Browse files

ASoC: SOF: intel: hda: support also devices with 1 and 3 dmics



Currently the dmic check code supports only devices with 2 or 4 dmics.
With other dmic counts the function will return 0. Lately we've seen
devices with only 1 dmic thus enable also configurations with 1, and
possibly 3, dmics. Add also topology postfix -1ch and -3ch for new dmic
configuration.

Signed-off-by: default avatarJaska Uimonen <jaska.uimonen@linux.intel.com>
Reviewed-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20200825235040.1586478-4-ranjani.sridharan@linux.intel.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 6c63c954
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -544,7 +544,7 @@ static int check_nhlt_dmic(struct snd_sof_dev *sdev)
	if (nhlt) {
		dmic_num = intel_nhlt_get_dmic_geo(sdev->dev, nhlt);
		intel_nhlt_free(nhlt);
		if (dmic_num == 2 || dmic_num == 4)
		if (dmic_num >= 1 && dmic_num <= 4)
			return dmic_num;
	}

@@ -992,9 +992,15 @@ static int hda_generic_machine_select(struct snd_sof_dev *sdev)
				dmic_num = hda_dmic_num;

			switch (dmic_num) {
			case 1:
				dmic_str = "-1ch";
				break;
			case 2:
				dmic_str = "-2ch";
				break;
			case 3:
				dmic_str = "-3ch";
				break;
			case 4:
				dmic_str = "-4ch";
				break;