ALSA: hda: intel-nhlt: verify config type
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Tue, 2 Mar 2021 00:01:46 +0000 (18:01 -0600)
committerTakashi Iwai <tiwai@suse.de>
Tue, 2 Mar 2021 09:22:47 +0000 (10:22 +0100)
commita864e8f159b13babf552aff14a5fbe11abc017e4
tree9fb0b7ae6805b966e6de1c99ef854f28a48e89c4
parent3531ba21f5520d0865004e7d75b6f505d08589f2
ALSA: hda: intel-nhlt: verify config type

Multiple bug reports report issues with the SOF and SST drivers when
dealing with single microphone cases.

We currently read the DMIC array information unconditionally but we
don't check that the configuration type is actually a mic array.

When the DMIC link does not rely on a mic array configuration, the
recommendation is to check the format information to infer the maximum
number of channels, and map this to the number of microphones.

This leaves a potential for a mismatch between actual microphones
available in hardware and what the ACPI table contains, but we have no
other source of information.

Note that single microphone configurations can alternatively be
handled with a 'mic array' configuration along with a 'vendor-defined'
geometry.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=201251
BugLink: https://github.com/thesofproject/linux/issues/2725
Fixes: 7a33ea70e1868 ('ALSA: hda: intel-nhlt: handle NHLT VENDOR_DEFINED DMIC geometry')
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20210302000146.1177770-1-pierre-louis.bossart@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
include/sound/intel-nhlt.h
sound/hda/intel-nhlt.c