Align SOF HDA implementation with snd-hda-intel driver and enable
sync_write flag for all supported Intel platforms in SOF. When set,
a sync is issued after each verb write.
Sync after write has helped to overcome intermittent delays in
system resume flow on Intel Coffee Lake systems, and most recently
probe errors related to the HDMI codec on Ice Lake systems.
Matches the snd-hda-intel driver change done in commit 2756d9143aa5
("ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips").
Signed-off-by: Kai Vehmanen <email address hidden>
Signed-off-by: Pierre-Louis Bossart <email address hidden>
Link: https://<email address hidden>
Signed-off-by: Mark Brown <email address hidden>
(cherry picked from commit f3416e7144f5d4ba0fc5dcef6ebfff891266c46a)
Signed-off-by: Hui Wang <email address hidden>
Signed-off-by: Timo Aaltonen <email address hidden>
Add support to implement HDMI/DP audio by using the common
snd-hda-codec-hdmi driver.
Change of codec driver affects user-space as the two
drivers expose different mixer controls. A new kernel
module option "use_common_hdmi" is added to user-space
to indicate which interface should be used. The default
driver can be selected via a Kconfig option.
Signed-off-by: Kai Vehmanen <email address hidden>
Reviewed-by: Takashi Iwai <email address hidden>
Reviewed-by: Pierre-Louis Bossart <email address hidden>
Link: https://<email address hidden>
Signed-off-by: Mark Brown <email address hidden>
(backported from commit 139c7febad1afa221c687f3314560284e482a1f4)
Signed-off-by: Hui Wang <email address hidden>
Signed-off-by: Timo Aaltonen <email address hidden>
Match the include guard define to actual filename. The source
directory now has an actual hda_dsp_common.h header, so the old
include guard may cause confusion.
Signed-off-by: Kai Vehmanen <email address hidden>
Reviewed-by: Takashi Iwai <email address hidden>
Reviewed-by: Pierre-Louis Bossart <email address hidden>
Reviewed-by: Pierre-Louis Bossart <email address hidden>
Link: https://<email address hidden>
Signed-off-by: Mark Brown <email address hidden>
(cherry picked from commit 0f163110256ac91aee562da149838fcb8a39d518)
Signed-off-by: Hui Wang <email address hidden>
Signed-off-by: Timo Aaltonen <email address hidden>
Add support for using snd-hda-codec-hdmi driver for HDMI/DP
instead of ASoC hdac-hdmi. This is aligned with how other
HDA codecs are already handled.
When snd-hda-codec-hdmi is used, the PCM device numbers are
parsed from card topology and passed to the codec driver.
This needs to be done at runtime as topology changes may
affect PCM device allocation.
Signed-off-by: Kai Vehmanen <email address hidden>
Reviewed-by: Takashi Iwai <email address hidden>
Reviewed-by: Pierre-Louis Bossart <email address hidden>
Link: https://<email address hidden>
Signed-off-by: Mark Brown <email address hidden>
(cherry picked from commit 7de9a47c8971bdec07cc9a62e948382003c5908f)
Signed-off-by: Hui Wang <email address hidden>
Signed-off-by: Timo Aaltonen <email address hidden>
To support the DP-MST multiple streams via single connector feature,
the HDMI driver was extended with the concept of backup PCMs. See
commit 9152085defb6 ("ALSA: hda - add DP MST audio support").
This implementation works fine with snd_hda_intel.c as PCM topology
is fully managed within the single driver.
When the HDA codec driver is used from ASoC components, the concept
of backup PCMs no longer fits. For ASoC topologies, the physical
HDMI converters are presented as backend DAIs and these should match
with hardware capabilities. The ASoC topology may define arbitrary
PCMs (i.e. frontend DAIs) and have processing elements before eventual
routing to the HDMI BE DAIs. With backup PCMs, the link between
FE and BE DAIs would become dynamic and change when monitors are
(un)plugged. This would lead to modifying the topology every time
hotplug events happen, which is not currently possible in ASoC and
there does not seem to be any obvious benefits from this design.
To overcome above problems and enable the HDMI driver to be used
from ASoC, this patch adds a new mode (mst_no_extra_pcms flags) to
patch_hdmi.c. In this mode, the codec driver does not assume
the backup PCMs to be created.
Signed-off-by: Kai Vehmanen <email address hidden>
Reviewed-by: Takashi Iwai <email address hidden>
Reviewed-by: Pierre-Louis Bossart <email address hidden>
Link: https://<email address hidden>
Signed-off-by: Mark Brown <email address hidden>
(cherry picked from commit 2a2edfbbfee47947dd05f5860c66c0e80ee5e09d)
Signed-off-by: Hui Wang <email address hidden>
Signed-off-by: Timo Aaltonen <email address hidden>