Re: [PATCH v2] thinkpad_acpi: Add support for dual fan control on select models

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux