In newer devices, the same HDAudio controller can handle both local accessories and HDMI/DP interfaces. However, SOF is not always supported on those platforms.
When the Intel DSP is not enabled in the BIOS (OEM choice), audio
interfaces are handled by the snd-hda-intel
driver. The platform only
exposes PCM devices and no audio processing capabilities.
When OEM platforms integrate digital microphones attached directly
to the Intel chipset (aka DMIC), or they use I2C/I2S or SoundWire
interfaces, the DSP must be enabled by the BIOS. There is, however, one
more option. On Skylake and Kaby Lake platforms, the Intel DSP is handled by
the snd-soc-skl
module which relies on closed-source firmware.
SOF is available on Intel PCI devices starting with Gemini Lake, and has since been the only solution provided by Intel for the following platforms: Comet Lake, Ice Lake, and Tiger Lake.
Since multiple drivers can register for the same PCI ID, it was (until
recently) common for users and distributions to use the wrong
driver, which could only be resolved by changing the Linux .config
file
or deselecting drivers in the /etc/modprobe.d
configuration files.
The snd-intel-dspcfg
module introduced in early 2020 exposes an API
used by all drivers, and the user can now override default choices by
setting the dsp_driver
parameter. For example, setting
options snd-intel-dspcfg dsp_driver=1
will allow for the HDaudio legacy driver to be used. This will typically work for speakers and headphones/headsets, but will not allow DMIC capture.
Conversely, when a platform does not require a DSP-based platform, but the DSP is still enabled by the OEM, the user or integration can force the SOF Linux driver to be used.
options snd-intel-dspcfg dsp_driver=3
snd-intel-dspcfg.dsp_driver=3
nvme.sgl_threshold=1
https://linux-hardware.org/?probe=cc2dcd8258&log=lsmod
firmware file
/lib/firmware/intel/sof/sof-tgl.ri
Topology file
UCM file
alsaucm
command but
will typically be used by audio servers such as PulseAudio or
PipeWire. UCM files released by Intel are compatible with different
drivers and should work when changing the dsp_driver
parameter.
The selection of firmware, topology, and UCM files is based on platform
capabilities, codec names, and DMI options.
Comments
Post a Comment