[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