Hey, here's the 5th round for this series that adapts SOF to use snd-hda-codec-hdmi (patch_hdmi.c) codec driver instead of hdac_hdmi (soc/codecs/hdac_hdmi.c). The primary goal is to unify the HDMI codec implementation between DSP and non-DSP HDA configurations, offer same interface to user-space and reduce maintenance load for all.
v5 changes: - Fixed a bug with codec power management at probe. To imitate snd_hda_intel driver, SOF needs to enable display power when doing codec probe for HDMI codecs. Affects patches 2 and 5.
Feature and testing info: - Tested on multiple Intel platforms supported by SOF. - Tested with ALSA console tools as well as with Pulseaudio. - requires Pulseaudio 12.x or newer, see https://lists.freedesktop.org/archives/pulseaudio-discuss/2019-August/031358... - HDMI, DP, DP-MST with multi-monitor use-scenarios work ok. - New feature for SOF: ELD /proc fs works just like in DSP-less mode. - New feature for SOF: jack detection works out-of-the-box with Pulseaudio (no need for card specific UCM for HDMI)
Kai Vehmanen (9): ALSA: hda/hdmi - implement mst_no_extra_pcms flag ASoC: hdac_hda: add support for HDMI/DP as a HDA codec ASoC: Intel: skl-hda-dsp-generic: use snd-hda-codec-hdmi ASoC: Intel: skl-hda-dsp-generic: fix include guard name ASoC: SOF: Intel: add support for snd-hda-codec-hdmi ASoC: Intel: bxt-da7219-max98357a: common hdmi codec support ASoC: Intel: glk_rt5682_max98357a: common hdmi codec support ASoC: intel: sof_rt5682: common hdmi codec support ASoC: Intel: bxt_rt298: common hdmi codec support
include/sound/hda_codec.h | 1 + include/sound/soc-acpi.h | 2 + sound/pci/hda/patch_hdmi.c | 19 ++- sound/soc/codecs/hdac_hda.c | 110 ++++++++++++++++-- sound/soc/codecs/hdac_hda.h | 13 ++- sound/soc/intel/boards/bxt_da7219_max98357a.c | 11 ++ sound/soc/intel/boards/bxt_rt298.c | 11 ++ sound/soc/intel/boards/glk_rt5682_max98357a.c | 11 ++ sound/soc/intel/boards/hda_dsp_common.h | 93 +++++++++++++++ sound/soc/intel/boards/skl_hda_dsp_common.c | 10 +- sound/soc/intel/boards/skl_hda_dsp_common.h | 27 ++++- sound/soc/intel/boards/skl_hda_dsp_generic.c | 1 + sound/soc/intel/boards/sof_rt5682.c | 11 ++ sound/soc/sof/intel/Kconfig | 10 ++ sound/soc/sof/intel/hda-codec.c | 22 +++- sound/soc/sof/intel/hda.c | 6 + sound/soc/sof/intel/hda.h | 6 +- 17 files changed, 337 insertions(+), 27 deletions(-) create mode 100644 sound/soc/intel/boards/hda_dsp_common.h