On 10/21/20 2:26 AM, Brent Lu wrote:
The default quirk data of sof_rt5682 is for tgl platform. For cml platforms to reuse this driver, the flag SOF_RT5682_MCLK_24MHZ is necessary to setup codec asrc correctly.
Signed-off-by: Brent Lu brent.lu@intel.com
sound/soc/intel/boards/sof_rt5682.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/sound/soc/intel/boards/sof_rt5682.c b/sound/soc/intel/boards/sof_rt5682.c index ddbb9fe7cc06..fa2c226a444a 100644 --- a/sound/soc/intel/boards/sof_rt5682.c +++ b/sound/soc/intel/boards/sof_rt5682.c @@ -768,6 +768,11 @@ static int sof_audio_probe(struct platform_device *pdev) /* default number of HDMI DAI's */ if (!hdmi_num) hdmi_num = 3;
if (soc_intel_is_cml()) {
/* default quirk for sof_rt5682 is for tgl platform */
sof_rt5682_quirk |= SOF_RT5682_MCLK_24MHZ;
}
That setting is not wrong, but is it sufficient?
see e.g. what we set for existing platforms which need 24 Mhz in this driver:
DMI quirks:
{ .callback = sof_rt5682_quirk_cb, .matches = { DMI_MATCH(DMI_PRODUCT_FAMILY, "Google_Hatch"), }, .driver_data = (void *)(SOF_RT5682_MCLK_EN | SOF_RT5682_MCLK_24MHZ | SOF_RT5682_SSP_CODEC(0) | SOF_SPEAKER_AMP_PRESENT | SOF_RT5682_SSP_AMP(1)), },
Board-id quirks:
{ .name = "jsl_rt5682_rt1015", .driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN | SOF_RT5682_MCLK_24MHZ | SOF_RT5682_SSP_CODEC(0) | SOF_SPEAKER_AMP_PRESENT | SOF_RT1015_SPEAKER_AMP_PRESENT | SOF_RT5682_SSP_AMP(1)), },
You probably need a board-id quirk dedicated to CML, rather than override the TGL one?