[PATCH] ASoC: Intel: bytcr_rt5640: Fix HP Pavilion x2 Detachable quirks

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Wed Nov 18 18:21:26 CET 2020



On 11/18/20 6:15 AM, Hans de Goede wrote:
> The HP Pavilion x2 Detachable line comes in many variants:
> 
> 1. Bay Trail SoC + AXP288 PMIC, Micro-USB charging (10-k010nz, ...)
>     DMI_SYS_VENDOR: "Hewlett-Packard"
>     DMI_PRODUCT_NAME: "HP Pavilion x2 Detachable PC 10"
>     DMI_BOARD_NAME: "8021"
> 
> 2. Bay Trail SoC + AXP288 PMIC, Type-C charging (10-n000nd, 10-n010nl, ...)
>     DMI_SYS_VENDOR: "Hewlett-Packard"
>     DMI_PRODUCT_NAME: "HP Pavilion x2 Detachable"
>     DMI_BOARD_NAME: "815D"
> 
> 3. Cherry Trail SoC + AXP288 PMIC, Type-C charging (10-n101ng, ...)
>     DMI_SYS_VENDOR: "HP"
>     DMI_PRODUCT_NAME: "HP Pavilion x2 Detachable"
>     DMI_BOARD_NAME: "813E"
> 
> 4. Cherry Trail SoC + TI PMIC, Type-C charging (10-p002nd, 10-p018wm, ...)
>     DMI_SYS_VENDOR: "HP"
>     DMI_PRODUCT_NAME: "HP x2 Detachable 10-p0XX"
>     DMI_BOARD_NAME: "827C"
> 
> 5. Cherry Trail SoC + TI PMIC, Type-C charging (x2-210-g2, ...)
>     DMI_SYS_VENDOR: "HP"
>     DMI_PRODUCT_NAME: "HP x2 210 G2"
>     DMI_BOARD_NAME: "82F4"
> 
> Variant 1 needs the exact same quirk as variant 2, so relax the DMI check
> for the existing quirk a bit so that it matches both variant 1 and 2
> (note the other variants will still not match).
> 
> Variant 2 already has an existing quirk (which now also matches variant 1)
> 
> Variant 3 uses a cx2072x codec, so is not applicable here.
> 
> Variant 4 almost works with the defaults, but it also needs a quirk to
> fix jack-detection, add a new quirk for this.
> 
> Variant 5 does use a RT5640 codec (based on old dmesg output), but was
> otherwise not tested, keep using the defaults for this variant.
> 
> BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1896924
> Fixes: ec8e8418ff7d ("ASoC: Intel: bytcr_rt5640: Add quirks for various devices")
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
Thank you Hans! I honestly don't know how you managed to keep track of 
so many hardware variants.

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

> ---
>   sound/soc/intel/boards/bytcr_rt5640.c | 17 ++++++++++++++---
>   1 file changed, 14 insertions(+), 3 deletions(-)
> 
> diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
> index 9dadf6561444..f790514a147d 100644
> --- a/sound/soc/intel/boards/bytcr_rt5640.c
> +++ b/sound/soc/intel/boards/bytcr_rt5640.c
> @@ -520,10 +520,10 @@ static const struct dmi_system_id byt_rt5640_quirk_table[] = {
>   		.driver_data = (void *)(BYT_RT5640_IN1_MAP |
>   					BYT_RT5640_MCLK_EN),
>   	},
> -	{	/* HP Pavilion x2 10-n000nd */
> +	{	/* HP Pavilion x2 10-k0XX, 10-n0XX */
>   		.matches = {
> -			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
> -			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "HP Pavilion x2 Detachable"),
> +			DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
> +			DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion x2 Detachable"),
>   		},
>   		.driver_data = (void *)(BYT_RT5640_DMIC1_MAP |
>   					BYT_RT5640_JD_SRC_JD2_IN4N |
> @@ -532,6 +532,17 @@ static const struct dmi_system_id byt_rt5640_quirk_table[] = {
>   					BYT_RT5640_SSP0_AIF1 |
>   					BYT_RT5640_MCLK_EN),
>   	},
> +	{	/* HP Pavilion x2 10-p0XX */
> +		.matches = {
> +			DMI_MATCH(DMI_SYS_VENDOR, "HP"),
> +			DMI_MATCH(DMI_PRODUCT_NAME, "HP x2 Detachable 10-p0XX"),
> +		},
> +		.driver_data = (void *)(BYT_RT5640_DMIC1_MAP |
> +					BYT_RT5640_JD_SRC_JD1_IN4P |
> +					BYT_RT5640_OVCD_TH_1500UA |
> +					BYT_RT5640_OVCD_SF_0P75 |
> +					BYT_RT5640_MCLK_EN),
> +	},
>   	{	/* HP Stream 7 */
>   		.matches = {
>   			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
> 


More information about the Alsa-devel mailing list