This patchset solves a known issue with ES8336 platforms wrt MCLK selection. Most of the devices use the MCLK0 signal, but some devices do use the MCLK1 signal.
The MCLK is defined in the topology, it would be a nightmare to generate more topology files just for one MCLK difference. With a minor extension to the intel-nhlt library, the MCLK information can be found by parsing the NHLT table, and we can override the mclk_id at boot time.
The only known issues for this platform remain the detection of GPIO and microphone connections, currently only possible with manual quirks.
Thanks to Eugene J. Markow for testing this patchset.
v2: addressed comments from Takashi and Amadeusz Better error handling for the 1.5 case Report error at the library level when 2 mclks are used
Pierre-Louis Bossart (4): ASoC: SOF: Intel: hda: refine SSP count support ASoC: SOF: add quirk to override topology mclk_id ALSA: hda: intel-nhlt: add intel_nhlt_ssp_mclk_mask() ASoC: SOF: Intel: hda: override mclk_id after parsing NHLT SSP blob
include/sound/intel-nhlt.h | 7 ++++ sound/hda/intel-nhlt.c | 79 +++++++++++++++++++++++++++++++++++ sound/soc/sof/intel/hda.c | 39 +++++++++++++++++ sound/soc/sof/intel/hda.h | 2 + sound/soc/sof/intel/mtl.c | 2 +- sound/soc/sof/intel/tgl.c | 8 ++-- sound/soc/sof/ipc3-topology.c | 7 ++++ sound/soc/sof/sof-priv.h | 4 ++ 8 files changed, 143 insertions(+), 5 deletions(-)