On 12/8/18 1:56 AM, Takashi Iwai wrote:
On Sat, 08 Dec 2018 01:00:38 +0100, Pierre-Louis Bossart wrote:
Now that the SST/Skylake driver supports per platform selectors, we can add logic to automatically select the right driver.
If the Skylake driver is selected, and the DSP is enable, the legacy HDaudio driver aborts the probe. This will result in a single driver probing and remove the need for modprobe blacklists.
Follow-up patches will add a module parameter to bypass the logic if this automatic detection fails, or if the Skylake driver is unable to actually support the platform (firmware authentication, missing topology file, hardware issue, etc).
Signed-off-by: Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com
sound/pci/hda/Kconfig | 46 ++++++++++++++++++++++++++++++++++ sound/pci/hda/hda_controller.h | 2 +- sound/pci/hda/hda_intel.c | 34 +++++++++++++++++++------ sound/soc/intel/Kconfig | 6 +++++ 4 files changed, 80 insertions(+), 8 deletions(-)
diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig index 4235907b7858..634b7fe6a936 100644 --- a/sound/pci/hda/Kconfig +++ b/sound/pci/hda/Kconfig @@ -226,6 +226,52 @@ config SND_HDA_POWER_SAVE_DEFAULT The default time-out value in seconds for HD-audio automatic power-save mode. 0 means to disable the power-save mode.
+if SND_HDA_INTEL
+config SND_HDA_INTEL_DISABLE_SKL
- bool
- help
This option disables HD-audio legacy for
Skylake machines
I'm not sure whether we need the selection of this disablement for each model. Distros would choose these unlikely, and individual users don't have to select multiple of them but only for their machine's model. So, in the end, the choice would be either yes or no.
Ah yes, maybe I wasn't clear. This wasn't intended to be selected by the user, but selected when when the SND_SOC_INTEL_KBL or SND_SOC_SOF_CNL options are set. See the conditions below.
The main idea what to only deal with the conflict resolution when we indeed have a conflict. I also introduced this option on the sound/pci/hda side so that SOF can use the same mechanisms, i.e. it's the legacy driver doesn't need to know if the conflict happens with the SST/Skylake or SOF driver.
@@ -188,6 +188,12 @@ config SND_SOC_INTEL_SKYLAKE_COMMON select SND_SOC_TOPOLOGY select SND_SOC_INTEL_SST select SND_SOC_HDAC_HDA if SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC
- select SND_HDA_INTEL_DISABLE_SKL if SND_SOC_INTEL_SKL
- select SND_HDA_INTEL_DISABLE_APL if SND_SOC_INTEL_APL
- select SND_HDA_INTEL_DISABLE_KBL if SND_SOC_INTEL_KBL
- select SND_HDA_INTEL_DISABLE_GLK if SND_SOC_INTEL_GLK
- select SND_HDA_INTEL_DISABLE_CNL if SND_SOC_INTEL_CNL
- select SND_HDA_INTEL_DISABLE_CFL if SND_SOC_INTEL_CFL select SND_SOC_ACPI_INTEL_MATCH help If you have a Intel Skylake/Broxton/ApolloLake/KabyLake/
-- 2.17.1