mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-14 00:39:30 -04:00
ASoC: Intel: sof_sdw: correct mach_params->dmic_num
mach_params->dmic_num will be used to set the cfg-mics value of
card->components string which should be the dmic channels. However
dmic_num is dmic link number and could be set due to the SOC_SDW_PCH_DMIC
quirk. Set mach_params->dmic_num to the default value if the dmic link
is created due to the SOC_SDW_PCH_DMIC quirk.
Fixes: 7db9f63611 ("ASoC: Intel: sof_sdw: overwrite mach_params->dmic_num")
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://patch.msgid.link/20241206075903.195730-2-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
@@ -22,6 +22,8 @@ static int quirk_override = -1;
|
||||
module_param_named(quirk, quirk_override, int, 0444);
|
||||
MODULE_PARM_DESC(quirk, "Board-specific quirk override");
|
||||
|
||||
#define DMIC_DEFAULT_CHANNELS 2
|
||||
|
||||
static void log_quirks(struct device *dev)
|
||||
{
|
||||
if (SOC_SDW_JACK_JDSRC(sof_sdw_quirk))
|
||||
@@ -1106,17 +1108,19 @@ static int sof_card_dai_links_create(struct snd_soc_card *card)
|
||||
hdmi_num = SOF_PRE_TGL_HDMI_COUNT;
|
||||
|
||||
/* enable dmic01 & dmic16k */
|
||||
if (sof_sdw_quirk & SOC_SDW_PCH_DMIC || mach_params->dmic_num) {
|
||||
if (ctx->ignore_internal_dmic)
|
||||
dev_warn(dev, "Ignoring PCH DMIC\n");
|
||||
else
|
||||
dmic_num = 2;
|
||||
if (ctx->ignore_internal_dmic) {
|
||||
dev_warn(dev, "Ignoring internal DMIC\n");
|
||||
mach_params->dmic_num = 0;
|
||||
} else if (mach_params->dmic_num) {
|
||||
dmic_num = 2;
|
||||
} else if (sof_sdw_quirk & SOC_SDW_PCH_DMIC) {
|
||||
dmic_num = 2;
|
||||
/*
|
||||
* mach_params->dmic_num will be used to set the cfg-mics value of
|
||||
* card->components string. Set it to the default value.
|
||||
*/
|
||||
mach_params->dmic_num = DMIC_DEFAULT_CHANNELS;
|
||||
}
|
||||
/*
|
||||
* mach_params->dmic_num will be used to set the cfg-mics value of card->components
|
||||
* string. Overwrite it to the actual number of PCH DMICs used in the device.
|
||||
*/
|
||||
mach_params->dmic_num = dmic_num;
|
||||
|
||||
if (sof_sdw_quirk & SOF_SSP_BT_OFFLOAD_PRESENT)
|
||||
bt_num = 1;
|
||||
|
||||
Reference in New Issue
Block a user