[alsa-devel] [PATCH V3] ASoC: Intel: Baytrail: add quirk for Aegex 10 (RU2) tablet

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Fri May 31 19:49:14 CEST 2019


On 5/31/19 12:22 PM, Kovács Tamás wrote:
> This tablet has an incorrect acpi identifier just like
> Thinkpad10 tablet, which is why it is trying to load the RT5640 driver
> instead of the RT5762 driver. The RT5640 driver, on the other hand, checks
> the hardware ID, so no driver are loaded during boot. This fix resolves to
> load the RT5672 driver on this tablet during boot. It also provides the
> correct IO configuration, like the jack detect mode 3, for 1.8V pullup. I
> would like to thank Pierre-Louis Bossart for helping with this patch.
> 
> Signed-off-by: Kovács Tamás <kepszlok at zohomail.eu>

Thanks, looks good now!

Acked-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>



> ---
>   sound/soc/codecs/rt5670.c                       | 12 ++++++++++++
>   .../soc/intel/common/soc-acpi-intel-byt-match.c | 17 +++++++++++++++++
>   2 files changed, 29 insertions(+)
> 
> diff --git a/sound/soc/codecs/rt5670.c b/sound/soc/codecs/rt5670.c
> index 9a037108b1ae..a746e11ccfe3 100644
> --- a/sound/soc/codecs/rt5670.c
> +++ b/sound/soc/codecs/rt5670.c
> @@ -2882,6 +2882,18 @@ static const struct dmi_system_id dmi_platform_intel_quirks[] = {
>   						 RT5670_DEV_GPIO |
>   						 RT5670_JD_MODE3),
>   	},
> +	{
> +		.callback = rt5670_quirk_cb,
> +		.ident = "Aegex 10 tablet (RU2)",
> +		.matches = {
> +			DMI_MATCH(DMI_SYS_VENDOR, "AEGEX"),
> +			DMI_MATCH(DMI_PRODUCT_VERSION, "RU2"),
> +		},
> +		.driver_data = (unsigned long *)(RT5670_DMIC_EN |
> +						 RT5670_DMIC2_INR |
> +						 RT5670_DEV_GPIO |
> +						 RT5670_JD_MODE3),
> +	},
>   	{}
>   };
>   
> diff --git a/sound/soc/intel/common/soc-acpi-intel-byt-match.c b/sound/soc/intel/common/soc-acpi-intel-byt-match.c
> index 0cfab247876a..9fb58f1f095f 100644
> --- a/sound/soc/intel/common/soc-acpi-intel-byt-match.c
> +++ b/sound/soc/intel/common/soc-acpi-intel-byt-match.c
> @@ -22,6 +22,7 @@ static unsigned long byt_machine_id;
>   
>   #define BYT_THINKPAD_10  1
>   #define BYT_POV_P1006W   2
> +#define BYT_AEGEX_10     3
>   
>   static int byt_thinkpad10_quirk_cb(const struct dmi_system_id *id)
>   {
> @@ -35,6 +36,12 @@ static int byt_pov_p1006w_quirk_cb(const struct dmi_system_id *id)
>   	return 1;
>   }
>   
> +static int byt_aegex10_quirk_cb(const struct dmi_system_id *id)
> +{
> +	byt_machine_id = BYT_AEGEX_10;
> +	return 1;
> +}
> +
>   static const struct dmi_system_id byt_table[] = {
>   	{
>   		.callback = byt_thinkpad10_quirk_cb,
> @@ -75,9 +82,18 @@ static const struct dmi_system_id byt_table[] = {
>   			DMI_EXACT_MATCH(DMI_BOARD_NAME, "0E57"),
>   		},
>   	},
> +	{
> +		/* Aegex 10 tablet (RU2) */
> +		.callback = byt_aegex10_quirk_cb,
> +		.matches = {
> +			DMI_MATCH(DMI_SYS_VENDOR, "AEGEX"),
> +			DMI_MATCH(DMI_PRODUCT_VERSION, "RU2"),
> +		},
> +	},
>   	{ }
>   };
>   
> +/* The Thinkapd 10 and Aegex 10 tablets have the same ID problem */
>   static struct snd_soc_acpi_mach byt_thinkpad_10 = {
>   	.id = "10EC5640",
>   	.drv_name = "cht-bsw-rt5672",
> @@ -104,6 +120,7 @@ static struct snd_soc_acpi_mach *byt_quirk(void *arg)
>   
>   	switch (byt_machine_id) {
>   	case BYT_THINKPAD_10:
> +	case BYT_AEGEX_10:
>   		return &byt_thinkpad_10;
>   	case BYT_POV_P1006W:
>   		return &byt_pov_p1006w;
> 
> 



More information about the Alsa-devel mailing list