diff mbox series

ASoC: Intel: sof_rt5682: update quirk for cml boards

Message ID 20201021072646.7980-1-brent.lu@intel.com (mailing list archive)
State New, archived
Headers show
Series ASoC: Intel: sof_rt5682: update quirk for cml boards | expand

Commit Message

Brent Lu Oct. 21, 2020, 7:26 a.m. UTC
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(+)

Comments

Pierre-Louis Bossart Oct. 21, 2020, 1:56 p.m. UTC | #1
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?
Brent Lu Oct. 21, 2020, 2:20 p.m. UTC | #2
> 
> 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)),
> 	},
> 

Hi Pierre,

CML chromebox is using DMI quirk so we don't need this patch. Sorry
for not noticing it.

Handle 0x0001, DMI type 1, 27 bytes
System Information
        Manufacturer: Google
        Product Name: Duffy
        Version: rev3
        Serial Number: 123456789
        UUID: Not Settable
        Wake-up Type: Reserved
        SKU Number: sku33554439
        Family: Google_Hatch
diff mbox series

Patch

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;
+		}
 	}
 
 	/* need to get main clock from pmc */