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. - More platforms and use cases coverage can be added once we have basic agreement in terms of the overall approach.
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: add new API snd_hda_asoc_codec_new for ASoC codec drivers ASoC: hdac_hda: add DAI, widgets and related ops ASoC: hdac_hda: add runtime PM support ASoC: patch_realtek: add ASoC based Realtek HDA codec driver patch 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_codec.c | 109 ++++- sound/pci/hda/hda_codec.h | 4 + sound/pci/hda/patch_realtek.c | 3 +- sound/soc/codecs/Kconfig | 12 + sound/soc/codecs/Makefile | 4 + sound/soc/codecs/hdac_hda.c | 628 +++++++++++++++++++++++++++ sound/soc/codecs/hdac_hda.h | 26 ++ sound/soc/codecs/patch_realtek.c | 48 ++ 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, 1311 insertions(+), 25 deletions(-) create mode 100644 sound/soc/codecs/hdac_hda.c create mode 100644 sound/soc/codecs/hdac_hda.h create mode 100644 sound/soc/codecs/patch_realtek.c 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