diff mbox series

[3/7] ASoC: SOF: intel: hda: support also devices with 1 and 3 dmics

Message ID 20200825235040.1586478-4-ranjani.sridharan@linux.intel.com (mailing list archive)
State Accepted
Commit 3dca35e35b42b3405ddad7ee95c02a2d8cf28592
Headers show
Series SOF fixes and updates | expand

Commit Message

Ranjani Sridharan Aug. 25, 2020, 11:50 p.m. UTC
From: Jaska Uimonen <jaska.uimonen@linux.intel.com>

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: Jaska Uimonen <jaska.uimonen@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
---
 sound/soc/sof/intel/hda.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Pierre-Louis Bossart Sept. 18, 2020, 3:10 p.m. UTC | #1
On 8/25/20 6:50 PM, Ranjani Sridharan wrote:
> From: Jaska Uimonen <jaska.uimonen@linux.intel.com>
> 
> 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: Jaska Uimonen <jaska.uimonen@linux.intel.com>
> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
> Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>

we now have multiple reports of devices with a single microphone where 
audio is broken without this patch, e.g. 
https://github.com/thesofproject/linux/issues/2451

This patch should be applied to -stable versions all the way to 5.6. It 
would be desirable for 5.5 and 5.4 as well but it will not apply 
cleanly. It's be trivial to provide a modified patch for these earlier 
kernel versions but I don't know what the process might be here?
Mark Brown Sept. 18, 2020, 3:14 p.m. UTC | #2
On Fri, Sep 18, 2020 at 10:10:24AM -0500, Pierre-Louis Bossart wrote:

> This patch should be applied to -stable versions all the way to 5.6. It
> would be desirable for 5.5 and 5.4 as well but it will not apply cleanly.
> It's be trivial to provide a modified patch for these earlier kernel
> versions but I don't know what the process might be here?

Send a backport to Greg & stable with a note explaining what's going on.
diff mbox series

Patch

diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c
index b8157c1f37f3..0e8285b34a7d 100644
--- a/sound/soc/sof/intel/hda.c
+++ b/sound/soc/sof/intel/hda.c
@@ -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;