[PATCH] ALSA: hda: intel-dsp-cfg: Use AVS driver on SKL/KBL/APL Chromebooks
The legacy SKL driver no longer works properly on these Chromebook platforms. Use the new AVS driver by default instead.
Signed-off-by: Brady Norander bradynorander@gmail.com --- sound/hda/intel-dsp-config.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c index 756fa0aa69bb..1045be1fd441 100644 --- a/sound/hda/intel-dsp-config.c +++ b/sound/hda/intel-dsp-config.c @@ -16,10 +16,11 @@ static int dsp_driver;
module_param(dsp_driver, int, 0444); -MODULE_PARM_DESC(dsp_driver, "Force the DSP driver for Intel DSP (0=auto, 1=legacy, 2=SST, 3=SOF)"); +MODULE_PARM_DESC(dsp_driver, "Force the DSP driver for Intel DSP (0=auto, 1=legacy, 2=SST, 3=SOF, 4=AVS)");
#define FLAG_SST BIT(0) #define FLAG_SOF BIT(1) +#define FLAG_AVS BIT(2) #define FLAG_SST_ONLY_IF_DMIC BIT(15) #define FLAG_SOF_ONLY_IF_DMIC BIT(16) #define FLAG_SOF_ONLY_IF_SOUNDWIRE BIT(17) @@ -56,7 +57,7 @@ static const struct config_entry config_table[] = { /* * Apollolake (Broxton-P) * the legacy HDAudio driver is used except on Up Squared (SOF) and - * Chromebooks (SST), as well as devices based on the ES8336 codec + * Chromebooks (AVS), as well as devices based on the ES8336 codec */ #if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE) { @@ -81,7 +82,7 @@ static const struct config_entry config_table[] = { #endif #if IS_ENABLED(CONFIG_SND_SOC_INTEL_APL) { - .flags = FLAG_SST, + .flags = FLAG_AVS, .device = PCI_DEVICE_ID_INTEL_HDA_APL, .dmi_table = (const struct dmi_system_id []) { { @@ -96,13 +97,13 @@ static const struct config_entry config_table[] = { #endif /* * Skylake and Kabylake use legacy HDAudio driver except for Google - * Chromebooks (SST) + * Chromebooks (AVS) */
/* Sunrise Point-LP */ #if IS_ENABLED(CONFIG_SND_SOC_INTEL_SKL) { - .flags = FLAG_SST, + .flags = FLAG_AVS, .device = PCI_DEVICE_ID_INTEL_HDA_SKL_LP, .dmi_table = (const struct dmi_system_id []) { { @@ -122,7 +123,7 @@ static const struct config_entry config_table[] = { /* Kabylake-LP */ #if IS_ENABLED(CONFIG_SND_SOC_INTEL_KBL) { - .flags = FLAG_SST, + .flags = FLAG_AVS, .device = PCI_DEVICE_ID_INTEL_HDA_KBL_LP, .dmi_table = (const struct dmi_system_id []) { { @@ -667,6 +668,9 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci) } }
+ if (cfg->flags & FLAG_AVS) + return SND_INTEL_DSP_DRIVER_AVS; + return SND_INTEL_DSP_DRIVER_LEGACY; } EXPORT_SYMBOL_GPL(snd_intel_dsp_driver_probe);
On 10/28/2023 2:25 PM, Brady Norander wrote:
The legacy SKL driver no longer works properly on these Chromebook platforms. Use the new AVS driver by default instead.
Signed-off-by: Brady Norander bradynorander@gmail.com
sound/hda/intel-dsp-config.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c index 756fa0aa69bb..1045be1fd441 100644 --- a/sound/hda/intel-dsp-config.c +++ b/sound/hda/intel-dsp-config.c @@ -16,10 +16,11 @@ static int dsp_driver;
module_param(dsp_driver, int, 0444); -MODULE_PARM_DESC(dsp_driver, "Force the DSP driver for Intel DSP (0=auto, 1=legacy, 2=SST, 3=SOF)"); +MODULE_PARM_DESC(dsp_driver, "Force the DSP driver for Intel DSP (0=auto, 1=legacy, 2=SST, 3=SOF, 4=AVS)");
#define FLAG_SST BIT(0) #define FLAG_SOF BIT(1) +#define FLAG_AVS BIT(2) #define FLAG_SST_ONLY_IF_DMIC BIT(15) #define FLAG_SOF_ONLY_IF_DMIC BIT(16) #define FLAG_SOF_ONLY_IF_SOUNDWIRE BIT(17) @@ -56,7 +57,7 @@ static const struct config_entry config_table[] = { /*
- Apollolake (Broxton-P)
- the legacy HDAudio driver is used except on Up Squared (SOF) and
- Chromebooks (SST), as well as devices based on the ES8336 codec
*/ #if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE) {
- Chromebooks (AVS), as well as devices based on the ES8336 codec
@@ -81,7 +82,7 @@ static const struct config_entry config_table[] = { #endif #if IS_ENABLED(CONFIG_SND_SOC_INTEL_APL) {
.flags = FLAG_SST,
.device = PCI_DEVICE_ID_INTEL_HDA_APL, .dmi_table = (const struct dmi_system_id []) { {.flags = FLAG_AVS,
@@ -96,13 +97,13 @@ static const struct config_entry config_table[] = { #endif /*
- Skylake and Kabylake use legacy HDAudio driver except for Google
- Chromebooks (SST)
- Chromebooks (AVS)
*/
/* Sunrise Point-LP */ #if IS_ENABLED(CONFIG_SND_SOC_INTEL_SKL) {
.flags = FLAG_SST,
.device = PCI_DEVICE_ID_INTEL_HDA_SKL_LP, .dmi_table = (const struct dmi_system_id []) { {.flags = FLAG_AVS,
@@ -122,7 +123,7 @@ static const struct config_entry config_table[] = { /* Kabylake-LP */ #if IS_ENABLED(CONFIG_SND_SOC_INTEL_KBL) {
.flags = FLAG_SST,
.device = PCI_DEVICE_ID_INTEL_HDA_KBL_LP, .dmi_table = (const struct dmi_system_id []) { {.flags = FLAG_AVS,
@@ -667,6 +668,9 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci) } }
- if (cfg->flags & FLAG_AVS)
return SND_INTEL_DSP_DRIVER_AVS;
- return SND_INTEL_DSP_DRIVER_LEGACY; } EXPORT_SYMBOL_GPL(snd_intel_dsp_driver_probe);
+ Cezary
On 10/28/23 07:25, Brady Norander wrote:
The legacy SKL driver no longer works properly on these Chromebook platforms. Use the new AVS driver by default instead.
shouldn't this be used only if AVS is compiled in?
Signed-off-by: Brady Norander bradynorander@gmail.com
sound/hda/intel-dsp-config.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c index 756fa0aa69bb..1045be1fd441 100644 --- a/sound/hda/intel-dsp-config.c +++ b/sound/hda/intel-dsp-config.c @@ -16,10 +16,11 @@ static int dsp_driver;
module_param(dsp_driver, int, 0444); -MODULE_PARM_DESC(dsp_driver, "Force the DSP driver for Intel DSP (0=auto, 1=legacy, 2=SST, 3=SOF)"); +MODULE_PARM_DESC(dsp_driver, "Force the DSP driver for Intel DSP (0=auto, 1=legacy, 2=SST, 3=SOF, 4=AVS)");
#define FLAG_SST BIT(0) #define FLAG_SOF BIT(1) +#define FLAG_AVS BIT(2) #define FLAG_SST_ONLY_IF_DMIC BIT(15) #define FLAG_SOF_ONLY_IF_DMIC BIT(16) #define FLAG_SOF_ONLY_IF_SOUNDWIRE BIT(17) @@ -56,7 +57,7 @@ static const struct config_entry config_table[] = { /*
- Apollolake (Broxton-P)
- the legacy HDAudio driver is used except on Up Squared (SOF) and
- Chromebooks (SST), as well as devices based on the ES8336 codec
*/
- Chromebooks (AVS), as well as devices based on the ES8336 codec
#if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE) { @@ -81,7 +82,7 @@ static const struct config_entry config_table[] = { #endif #if IS_ENABLED(CONFIG_SND_SOC_INTEL_APL) {
.flags = FLAG_SST,
.device = PCI_DEVICE_ID_INTEL_HDA_APL, .dmi_table = (const struct dmi_system_id []) { {.flags = FLAG_AVS,
@@ -96,13 +97,13 @@ static const struct config_entry config_table[] = { #endif /*
- Skylake and Kabylake use legacy HDAudio driver except for Google
- Chromebooks (SST)
*/
- Chromebooks (AVS)
/* Sunrise Point-LP */ #if IS_ENABLED(CONFIG_SND_SOC_INTEL_SKL) {
.flags = FLAG_SST,
.device = PCI_DEVICE_ID_INTEL_HDA_SKL_LP, .dmi_table = (const struct dmi_system_id []) { {.flags = FLAG_AVS,
@@ -122,7 +123,7 @@ static const struct config_entry config_table[] = { /* Kabylake-LP */ #if IS_ENABLED(CONFIG_SND_SOC_INTEL_KBL) {
.flags = FLAG_SST,
.device = PCI_DEVICE_ID_INTEL_HDA_KBL_LP, .dmi_table = (const struct dmi_system_id []) { {.flags = FLAG_AVS,
@@ -667,6 +668,9 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci) } }
- if (cfg->flags & FLAG_AVS)
return SND_INTEL_DSP_DRIVER_AVS;
- return SND_INTEL_DSP_DRIVER_LEGACY;
} EXPORT_SYMBOL_GPL(snd_intel_dsp_driver_probe);
On 10/30/23 12:08, Pierre-Louis Bossart wrote:
On 10/28/23 07:25, Brady Norander wrote:
The legacy SKL driver no longer works properly on these Chromebook platforms. Use the new AVS driver by default instead.
shouldn't this be used only if AVS is compiled in?
Good point, I'll send a v2.
Signed-off-by: Brady Norander bradynorander@gmail.com
sound/hda/intel-dsp-config.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c index 756fa0aa69bb..1045be1fd441 100644 --- a/sound/hda/intel-dsp-config.c +++ b/sound/hda/intel-dsp-config.c @@ -16,10 +16,11 @@ static int dsp_driver;
module_param(dsp_driver, int, 0444); -MODULE_PARM_DESC(dsp_driver, "Force the DSP driver for Intel DSP (0=auto, 1=legacy, 2=SST, 3=SOF)"); +MODULE_PARM_DESC(dsp_driver, "Force the DSP driver for Intel DSP (0=auto, 1=legacy, 2=SST, 3=SOF, 4=AVS)");
#define FLAG_SST BIT(0) #define FLAG_SOF BIT(1) +#define FLAG_AVS BIT(2) #define FLAG_SST_ONLY_IF_DMIC BIT(15) #define FLAG_SOF_ONLY_IF_DMIC BIT(16) #define FLAG_SOF_ONLY_IF_SOUNDWIRE BIT(17) @@ -56,7 +57,7 @@ static const struct config_entry config_table[] = { /*
- Apollolake (Broxton-P)
- the legacy HDAudio driver is used except on Up Squared (SOF) and
- Chromebooks (SST), as well as devices based on the ES8336 codec
*/ #if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE) {
- Chromebooks (AVS), as well as devices based on the ES8336 codec
@@ -81,7 +82,7 @@ static const struct config_entry config_table[] = { #endif #if IS_ENABLED(CONFIG_SND_SOC_INTEL_APL) {
.flags = FLAG_SST,
.device = PCI_DEVICE_ID_INTEL_HDA_APL, .dmi_table = (const struct dmi_system_id []) { {.flags = FLAG_AVS,
@@ -96,13 +97,13 @@ static const struct config_entry config_table[] = { #endif /*
- Skylake and Kabylake use legacy HDAudio driver except for Google
- Chromebooks (SST)
- Chromebooks (AVS)
*/
/* Sunrise Point-LP */ #if IS_ENABLED(CONFIG_SND_SOC_INTEL_SKL) {
.flags = FLAG_SST,
.device = PCI_DEVICE_ID_INTEL_HDA_SKL_LP, .dmi_table = (const struct dmi_system_id []) { {.flags = FLAG_AVS,
@@ -122,7 +123,7 @@ static const struct config_entry config_table[] = { /* Kabylake-LP */ #if IS_ENABLED(CONFIG_SND_SOC_INTEL_KBL) {
.flags = FLAG_SST,
.device = PCI_DEVICE_ID_INTEL_HDA_KBL_LP, .dmi_table = (const struct dmi_system_id []) { {.flags = FLAG_AVS,
@@ -667,6 +668,9 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci) } }
- if (cfg->flags & FLAG_AVS)
return SND_INTEL_DSP_DRIVER_AVS;
- return SND_INTEL_DSP_DRIVER_LEGACY; } EXPORT_SYMBOL_GPL(snd_intel_dsp_driver_probe);
participants (3)
-
Amadeusz Sławiński
-
Brady Norander
-
Pierre-Louis Bossart