Hi all,
here's the third 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.
This is now first series without the RFC tag. The series has all machine drivers converted that are directly impacted.
v3 changes: - Merged two mst_no_extra_pcms patches (Takashi's feedback). - Use mach_params instead of module name lookups to determine which codec driver is used at runtime (Pierre's feedback). - Extended machine driver support to four more drivers. This includes now all machine drivers which are used with SOF and which support HDMI audio. With this patchset, the machine drivers continue to work with both SOF and SST DSP drivers, and can be configured to use hdac-hdmi also with SOF (via kernel module parameter -> this is for distros to provide backwards compatibility for UCM files). - Various smaller cleanups across the patchset.
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 (10): ALSA: hda/hdmi - implement mst_no_extra_pcms flag ALSA: hda/hdmi - allow control creation without a linked pcm ASoC: hdac_hda: add support for HDMI/DP as a HDA codec ASoC: SOF: Intel: add support for snd-hda-codec-hdmi ASoC: Intel: skl-hda-dsp-generic: use snd-hda-codec-hdmi ASoC: Intel: skl-hda-dsp-generic: fix include guard name 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 | 23 +++-- sound/soc/codecs/hdac_hda.c | 95 ++++++++++++++++--- sound/soc/codecs/hdac_hda.h | 12 ++- 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 | 87 +++++++++++++++++ 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 | 19 +++- sound/soc/sof/intel/hda.c | 6 ++ sound/soc/sof/intel/hda.h | 6 +- 17 files changed, 315 insertions(+), 28 deletions(-) create mode 100644 sound/soc/intel/boards/hda_dsp_common.h