[alsa-devel] [RFC v3 00/11] Enable HDA Codec support on Intel Platforms (Series2)

Rakesh Ughreja rakesh.a.ughreja at intel.com
Fri Dec 15 12:30:37 CET 2017


Many Intel platforms (SKL, KBL) etc. in the market supports enhanced 
audio capabilities which also includes DSP processing. This patch carry
forwards the works that is done in the previous series to enable HD Audio
codecs on such platforms.

This patch series adds ASoC HDA codec driver for Intel platforms. It is
written by reusing the legacy HDA ALSA codec driver. Intention is to
maximize the reuse and minimize the changes in the legacy HDA codec driver.

I would like to receive feedback before proceeding further on this
direction.

INFO:
- This series is tested on KBL based product (Dell XPS 13).
- Basic playback is working with headset and speakers.
- HDMI playback is working.
- Capture operation is not tested.
- Playback using legacy drivers is tested.
- More platforms and use cases coverage can be added once we have basic
  agreement in terms of the overall approach.

Changes in v3:
- snd_hda_codec_new API is split into two, so that it can be used by
  legacy as well as ASoC codec drivers. API is split into two to avoid bus
  registration when called by ASoC drivers.
- Moved the __hda_codec_driver_register and hda_codec_driver_unregister APIs
  into generic driver and it performs registration for ASoC codec drivers
  also. So now there is only one kernel image for ASoC as well as legacy codec
  drivers. Registration functions had to moved to generic driver to resolve the
  circular dependency between hdac_hda and hda_codec drivers.
- There is a Kconfig entry added to compile the ASoC version of HDA codec
  driver. For now only the Realtek codec entry is added. Same thing needs to be
  done for rest of the codec drivers also.

Changes in v2:
- Using Topology framework to create DAIs and DAI Links
- Moved most commonly used functions into a separate file for machine driver
- Implemented separate Realtek ASoC HDA Driver driver for Realtek HDA codecs.
  It is just a driver registration wrapper which reuses the legacy HDA codec
  driver. This allows the removes the limitation that was present in v1.
- Implemented the review feedback.

Rakesh Ughreja (11):
  ASoC: Intel: Boards: Machine driver for Intel platforms
  ASoC: Intel: Skylake: Add entry in sst_acpi_mach for HDA codecs
  ASoC: Intel: Skylake: add HDA BE DAIs
  ASoC: Intel: Skylake: use hda_bus instead of hdac_bus
  ALSA: hda - make some of the functions externally visible
  ASoC: hdac_hda: add ASoC based HDA codec driver
  ALSA: hda: split API snd_hda_codec_new for using it from ASoC codec
    drivers
  ASoC: hdac_hda: add DAI, widgets and related ops
  ASoC: hdac_hda: add runtime PM support
  ASoC: codec: Support for ASoC Realtek HDA codec Driver
  ASoC: Intel: Boards: add support for HDA codecs

 include/sound/hdaudio_ext.h                  |   3 +-
 sound/hda/ext/hdac_ext_bus.c                 |   9 +-
 sound/pci/hda/hda_bind.c                     |  10 +-
 sound/pci/hda/hda_codec.c                    |  88 +++-
 sound/pci/hda/hda_codec.h                    |  11 +-
 sound/pci/hda/hda_generic.c                  |  38 ++
 sound/soc/codecs/Kconfig                     |  12 +
 sound/soc/codecs/Makefile                    |   2 +
 sound/soc/codecs/hdac_hda.c                  | 629 +++++++++++++++++++++++++++
 sound/soc/codecs/hdac_hda.h                  |  22 +
 sound/soc/intel/boards/Kconfig               |  11 +
 sound/soc/intel/boards/Makefile              |   2 +
 sound/soc/intel/boards/skl_hda_dsp_common.c  | 173 ++++++++
 sound/soc/intel/boards/skl_hda_dsp_common.h  |  42 ++
 sound/soc/intel/boards/skl_hda_dsp_generic.c | 141 ++++++
 sound/soc/intel/skylake/skl-pcm.c            |  32 +-
 sound/soc/intel/skylake/skl.c                |  79 +++-
 sound/soc/intel/skylake/skl.h                |  10 +-
 18 files changed, 1268 insertions(+), 46 deletions(-)
 create mode 100644 sound/soc/codecs/hdac_hda.c
 create mode 100644 sound/soc/codecs/hdac_hda.h
 create mode 100644 sound/soc/intel/boards/skl_hda_dsp_common.c
 create mode 100644 sound/soc/intel/boards/skl_hda_dsp_common.h
 create mode 100644 sound/soc/intel/boards/skl_hda_dsp_generic.c

-- 
2.7.4



More information about the Alsa-devel mailing list