I agree. Lemme amend the patch. I was confused about function of TPACPI_Q_LNV and TPACPI_Q_LNV3. On Wednesday, April 22, 2020, 7:28:51 AM PDT, Stefan Assmann <sassmann@xxxxxxxxx> wrote: On 22.04.20 15:50, Andy Shevchenko wrote: > +Cc: people who lately involved in 2nd fan discussions here and there > > Lars, also one question regarding the code below. > > On Fri, Apr 17, 2020 at 11:15 PM Lars <larsh@xxxxxxxxxx> wrote: >> >> This patch allows controlling multiple fans as if they were a single fan. >> >> This adds P52, P72, X1E, and X1E gen2 to dual fan quirks. Both fans are controlled together. >> >> Tested on an X1 Extreme Gen2. >> >> The patch is defensive, it adds only specific supported machines, and falls back to the old behavior if both fans cannot be controlled. >> However, it does attempt single fan control for all previously white-listed Thinkpads. >> >> Background: >> I tested the BIOS default behavior on my X1E gen2 and both fans are always changed together. >> So rather than adding controls for each fan, this controls both fans together as the BIOS would do. >> >> This was inspired by a discussion on dual fan support for the thinkfan tool (https://github.com/vmatare/thinkfan/issues/58). >> (Thanks to Github users voidworker, and civic9.) >> >> The BIOS ids for P52/P72 and X1E are taken from there. The X1E gen2 id is verified on my machine. >> >> (In the first version my mail client botched the white-spacing - my apologies, this is my first Kernel patch. Used git send-email and gmail this time.) >> >> Signed-off-by: Lars <larsh@xxxxxxxxxx> >> --- >> drivers/platform/x86/thinkpad_acpi.c | 33 +++++++++++++++++++++++----- >> 1 file changed, 27 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c >> index 8eaadbaf8ffa..cbc0e85d89d2 100644 [...] >> @@ -8771,6 +8790,9 @@ static const struct tpacpi_quirk fan_quirk_table[] __initconst = { >> TPACPI_QEC_IBM('7', '0', TPACPI_FAN_Q1), >> TPACPI_QEC_LNV('7', 'M', TPACPI_FAN_2FAN), >> TPACPI_Q_LNV('N', '1', TPACPI_FAN_2FAN), >> + TPACPI_Q_LNV3('N', '2', 'C', TPACPI_FAN_2FAN), /* P52 / P72 */ >> + TPACPI_Q_LNV3('N', '2', 'E', TPACPI_FAN_2FAN), /* X1 Extreme (1st gen) */ >> + TPACPI_Q_LNV3('N', '2', 'O', TPACPI_FAN_2FAN), /* X1 Extreme (2nd gen) */ Please add TPACPI_Q_LNV3('N', '1', 'E', TPACPI_FAN_2FAN), /* P50 */ for the P50 in the next revision. I've tested the P50 today. Thanks! Stefan