Message ID | 20201118121515.11441-1-hdegoede@redhat.com |
---|---|
State | Accepted |
Commit | fbdae7d6d04d2db36c687723920f612e93b2cbda |
Headers | show |
Series | ASoC: Intel: bytcr_rt5640: Fix HP Pavilion x2 Detachable quirks | expand |
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@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@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"), >
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"),
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@redhat.com> --- sound/soc/intel/boards/bytcr_rt5640.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-)