Commit cc8f81c7 authored by Pierre-Louis Bossart's avatar Pierre-Louis Bossart Committed by Takashi Iwai

ALSA: hda: fix intel DSP config

Reshuffle list of devices by historical order and add correct
information as needed.
Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
Link: https://lore.kernel.org/r/20191022174313.29087-2-perex@perex.czSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 82d9d54a
...@@ -30,45 +30,98 @@ struct config_entry { ...@@ -30,45 +30,98 @@ struct config_entry {
* - the first successful match will win * - the first successful match will win
*/ */
static const struct config_entry config_table[] = { static const struct config_entry config_table[] = {
/* Cometlake-LP */ /* Merrifield */
#if IS_ENABLED(CONFIG_SND_SOC_INTEL_CML_LP) #if IS_ENABLED(CONFIG_SND_SOC_SOF_MERRIFIELD)
{ {
/* prefer SST */ .flags = FLAG_SOF,
.flags = FLAG_SST, .device = 0x119a,
.device = 0x02c8,
}, },
#elif IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_LP) #endif
/* Broxton-T */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE)
{ {
.flags = FLAG_SOF, .flags = FLAG_SOF,
.device = 0x02c8, .device = 0x1a98,
}, },
#endif #endif
/* Cometlake-H */ /*
#if IS_ENABLED(CONFIG_SND_SOC_INTEL_CML_H) * Apollolake (Broxton-P)
* the legacy HDaudio driver is used except on Up Squared (SOF) and
* Chromebooks (SST)
*/
#if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE)
{ {
.flags = FLAG_SST, .flags = FLAG_SOF,
.device = 0x06c8, .device = 0x5a98,
.dmi_table = (const struct dmi_system_id []) {
{
.ident = "Up Squared",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "AAEON"),
DMI_MATCH(DMI_BOARD_NAME, "UP-APL01"),
}
},
{}
}
}, },
#elif IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_H) #endif
#if IS_ENABLED(CONFIG_SND_SOC_INTEL_APL)
{ {
.flags = FLAG_SOF, .flags = FLAG_SST,
.device = 0x06c8, .device = 0x5a98,
.dmi_table = (const struct dmi_system_id []) {
{
.ident = "Google Chromebooks",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Google"),
}
},
{}
}
}, },
#endif #endif
/* Merrifield */ /*
#if IS_ENABLED(CONFIG_SND_SOC_SOF_MERRIFIELD) * Skylake and Kabylake use legacy HDaudio driver except for Google
* Chromebooks (SST)
*/
/* Sunrise Point-LP */
#if IS_ENABLED(CONFIG_SND_SOC_INTEL_SKL)
{ {
.flags = FLAG_SOF, .flags = FLAG_SST,
.device = 0x119a, .device = 0x9d70,
.dmi_table = (const struct dmi_system_id []) {
{
.ident = "Google Chromebooks",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Google"),
}
},
{}
}
}, },
#endif #endif
/* Broxton-T */ /* Kabylake-LP */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE) #if IS_ENABLED(CONFIG_SND_SOC_INTEL_KBL)
{ {
.flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC, .flags = FLAG_SST,
.device = 0x1a98, .device = 0x9d71,
.dmi_table = (const struct dmi_system_id []) {
{
.ident = "Google Chromebooks",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Google"),
}
},
{}
}
}, },
#endif #endif
/*
* Geminilake uses legacy HDaudio driver except for Google
* Chromebooks
*/
/* Geminilake */ /* Geminilake */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_GEMINILAKE) #if IS_ENABLED(CONFIG_SND_SOC_SOF_GEMINILAKE)
{ {
...@@ -85,84 +138,139 @@ static const struct config_entry config_table[] = { ...@@ -85,84 +138,139 @@ static const struct config_entry config_table[] = {
} }
}, },
#endif #endif
#if IS_ENABLED(CONFIG_SND_SOC_INTEL_GLK)
/*
* CoffeeLake, CannonLake, CometLake, IceLake, TigerLake use legacy
* HDaudio driver except for Google Chromebooks and when DMICs are
* present. Two cases are required since Coreboot does not expose NHLT
* tables.
*
* When the Chromebook quirk is not present, it's based on information
* that no such device exists. When the quirk is present, it could be
* either based on product information or a placeholder.
*/
/* Cannonlake */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_CANNONLAKE)
{ {
.flags = FLAG_SST, .flags = FLAG_SOF,
.device = 0x3198, .device = 0x9dc8,
.dmi_table = (const struct dmi_system_id []) {
{
.ident = "Google Chromebooks",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Google"),
}
},
{}
}
}, },
#endif
/* Icelake */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_ICELAKE)
{ {
.flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC, .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
.device = 0x34c8, .device = 0x9dc8,
}, },
#endif #endif
/* Elkhart Lake */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_ELKHARTLAKE) /* Coffelake */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_COFFEELAKE)
{
.flags = FLAG_SOF,
.device = 0xa348,
.dmi_table = (const struct dmi_system_id []) {
{
.ident = "Google Chromebooks",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Google"),
}
},
{}
}
},
{ {
.flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC, .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
.device = 0x4b55, .device = 0xa348,
}, },
#endif #endif
/* Appololake (Broxton-P) */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE) /* Cometlake-LP */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_LP)
{ {
.flags = FLAG_SOF, .flags = FLAG_SOF,
.device = 0x5a98, .device = 0x02c8,
.dmi_table = (const struct dmi_system_id []) { .dmi_table = (const struct dmi_system_id []) {
{ {
.ident = "Up Squared", .ident = "Google Chromebooks",
.matches = { .matches = {
DMI_MATCH(DMI_SYS_VENDOR, "AAEON"), DMI_MATCH(DMI_SYS_VENDOR, "Google"),
DMI_MATCH(DMI_BOARD_NAME, "UP-APL01"),
} }
}, },
{} {}
} }
}, },
#endif
#if IS_ENABLED(CONFIG_SND_SOC_INTEL_APL)
{ {
.flags = FLAG_SST, .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
.device = 0x5a98, .device = 0x02c8,
}, },
#endif #endif
/* Cannonlake */ /* Cometlake-H */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_CANNONLAKE) #if IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_H)
{ {
.flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC, .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
.device = 0x9dc8, .device = 0x06c8,
}, },
#endif #endif
/* Sunrise Point-LP */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_SKYLAKE) /* Icelake */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_ICELAKE)
{ {
.flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC, .flags = FLAG_SOF,
.device = 0x9d70, .device = 0x34c8,
.dmi_table = (const struct dmi_system_id []) {
{
.ident = "Google Chromebooks",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Google"),
}
},
{}
}
}, },
#endif
/* Kabylake-LP */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_KABYLAKE)
{ {
.flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC, .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
.device = 0x9d71, .device = 0x34c8,
}, },
#endif #endif
/* Tigerlake */ /* Tigerlake */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_TIGERLAKE) #if IS_ENABLED(CONFIG_SND_SOC_SOF_TIGERLAKE)
{
.flags = FLAG_SOF,
.device = 0xa0c8,
.dmi_table = (const struct dmi_system_id []) {
{
.ident = "Google Chromebooks",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Google"),
}
},
{}
}
},
{ {
.flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC, .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
.device = 0xa0c8, .device = 0xa0c8,
}, },
#endif #endif
/* Coffelake */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_COFFEELAKE) /* Elkhart Lake */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_ELKHARTLAKE)
{ {
.flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC, .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
.device = 0xa348, .device = 0x4b55,
}, },
#endif #endif
}; };
static const struct config_entry *snd_intel_dsp_find_config static const struct config_entry *snd_intel_dsp_find_config
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment