[alsa-devel] [RFC PATCH 0/6] ALSA/HDA: abort probe when DMICs are detected

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Fri May 24 01:39:45 CEST 2019


This is the second take on same problem of detecting when the HDaudio
legacy driver can be used and when the SST or SOF drivers are
required.

The previous attempt based on a the PCI Class information was a
resounding failure and broke audio on Linus' laptop, so we need
additional information to avoid enabling a DSP-based driver without a
good reason to do so.

This patchset suggests the use of the NHLT information which *in
theory* exposes DMIC endpoints. The legacy HDaudio driver cannot
handle DMICs and will not provide any capture capabilities. Since it's
typically the first one to probe due to the Makefile order, aborting
the probe will let the PCI subsystem look for the next driver which
hopefully will support this capability.

I tested this patch on 5 devices (SKL, KBL, APL, GLK, WHL), three
without DMICs and two with, and the detection seems to work as
planned. I would appreciate it if HDaudio integrators and folks at
Google/Canonical/Endless can give this a try. As usual I expect that
we will have to use quirks and work-arounds, but it'd be a better idea
than a build-time mutual exclusion. We could also make this optional
(Kconfig and/or module parameters) if people prefer to muck with
blacklists.

Feedback and comments welcome!

Pierre-Louis Bossart (6):
  ASoC: Intel: boards: remove unnecessary inclusion of skl.h
  ASoC: Intel: Skylake: move NHLT header to common directory
  ASoC: Intel: common: move parts of NHLT code to new module
  ASoC: Intel: Skylake: use common NHLT module
  ALSA / hda: stop probe if DMICS are detected on Skylake+ platforms
  [HACK] ASoC: Intel: NHLT: handle VENDOR_DEFINED DMIC geometry

 sound/pci/hda/Kconfig                         |   1 +
 sound/pci/hda/hda_intel.c                     |  30 ++++++
 sound/soc/intel/Kconfig                       |   3 +
 sound/soc/intel/boards/glk_rt5682_max98357a.c |   1 -
 sound/soc/intel/boards/kbl_da7219_max98357a.c |   1 -
 sound/soc/intel/boards/kbl_da7219_max98927.c  |   1 -
 sound/soc/intel/boards/skl_hda_dsp_common.c   |   1 -
 sound/soc/intel/common/Makefile               |   3 +
 sound/soc/intel/common/intel-nhlt.c           | 101 ++++++++++++++++++
 .../skl-nhlt.h => common/intel-nhlt.h}        |  28 +++++
 sound/soc/intel/skylake/skl-nhlt.c            |  91 +---------------
 sound/soc/intel/skylake/skl-ssp-clk.c         |   1 +
 sound/soc/intel/skylake/skl-topology.c        |   1 +
 sound/soc/intel/skylake/skl.c                 |  11 +-
 sound/soc/intel/skylake/skl.h                 |   4 -
 15 files changed, 176 insertions(+), 102 deletions(-)
 create mode 100644 sound/soc/intel/common/intel-nhlt.c
 rename sound/soc/intel/{skylake/skl-nhlt.h => common/intel-nhlt.h} (83%)

-- 
2.20.1



More information about the Alsa-devel mailing list