[alsa-devel] [PATCH v4 8/8] ASoC: Intel: Skylake: add option to control HDAudio + DSP usage
Pierre-Louis Bossart
pierre-louis.bossart at linux.intel.com
Wed Jul 25 02:50:55 CEST 2018
Add two options to explicitly enable HDAudio + DSP usage and force its
use
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
---
sound/soc/intel/Kconfig | 18 ++++++++++++++++++
sound/soc/intel/skylake/skl.c | 7 ++++++-
2 files changed, 24 insertions(+), 1 deletion(-)
diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
index 0caa1f4eb94d..494cc1015207 100644
--- a/sound/soc/intel/Kconfig
+++ b/sound/soc/intel/Kconfig
@@ -117,6 +117,24 @@ config SND_SOC_INTEL_SKYLAKE
GeminiLake or CannonLake platform with the DSP enabled in the BIOS
then enable this option by saying Y or m.
+config SND_SOC_INTEL_SKYLAKE_HDA_DSP
+ tristate "Enable HDA+DSP support"
+ depends on SND_SOC_INTEL_SKYLAKE
+ help
+ If you have a Intel Skylake+ platform with the DSP enabled in the BIOS,
+ and an HDAudio codec, the enable this option by saying Y or m.
+ This option will only have an effect if there are no ACPI-enumerated audio
+ devices (I2C, SoundWire).
+
+config SND_SOC_INTEL_SKYLAKE_FORCE_HDA_DSP
+ tristate "Force HDA+DSP support"
+ depends on SND_SOC_INTEL_SKYLAKE_HDA_DSP
+ help
+ If you have a Intel Skylake+ platform with the DSP enabled in the BIOS,
+ and an HDAudio codec, the enable this option by saying Y or m.
+ This option will ignore information from the BIOS and force the use of the
+ HDaudio codec, if present. This is a debug option not recommended for distros.
+
config SND_SOC_ACPI_INTEL_MATCH
tristate
select SND_SOC_ACPI if ACPI
diff --git a/sound/soc/intel/skylake/skl.c b/sound/soc/intel/skylake/skl.c
index e8bf46cfea45..b14a47e765de 100644
--- a/sound/soc/intel/skylake/skl.c
+++ b/sound/soc/intel/skylake/skl.c
@@ -474,6 +474,7 @@ static struct skl_ssp_clk skl_ssp_clks[] = {
{.name = "ssp5_sclkfs"},
};
+#if IS_ENABLED(CONFIG_SND_SOC_INTEL_SKYLAKE_HDA_DSP)
static struct snd_soc_acpi_mach *skl_find_hda_machine(struct skl *skl,
struct snd_soc_acpi_mach *machines)
{
@@ -492,6 +493,7 @@ static struct snd_soc_acpi_mach *skl_find_hda_machine(struct skl *skl,
return mach;
}
+#endif
static int skl_find_machine(struct skl *skl, void *driver_data)
{
@@ -500,13 +502,16 @@ static int skl_find_machine(struct skl *skl, void *driver_data)
struct skl_machine_pdata *pdata;
mach = snd_soc_acpi_find_machine(mach);
- if (!mach) {
+ if (!mach || IS_ENABLED(CONFIG_SND_SOC_INTEL_SKYLAKE_FORCE_HDA_DSP)) {
dev_dbg(bus->dev, "No matching I2S machine driver found\n");
+#if IS_ENABLED(CONFIG_SND_SOC_INTEL_SKYLAKE_HDA_DSP)
mach = skl_find_hda_machine(skl, driver_data);
+#endif
if (!mach) {
dev_err(bus->dev, "No matching machine driver found\n");
return -ENODEV;
}
+
}
skl->mach = mach;
--
2.14.1
More information about the Alsa-devel
mailing list