Hi, On 5/2/22 21:12, Mark Pearson wrote: > There was an issue with the dual fan probe whereby the probe was > failing as it assuming that second_fan support was not available. > > Corrected the logic so the probe works correctly. Cleaned up so > quirks only used if 2nd fan not detected. > > Tested on X1 Carbon 10 (2 fans), X1 Carbon 9 (2 fans) and T490 (1 fan) > > Signed-off-by: Mark Pearson <markpearson@xxxxxxxxxx> Thank you for your patch, I've applied this patch to my review-hans branch: https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans Note it will show up in my review-hans branch once I've pushed my local branch there, which might take a while. Once I've run some tests on this branch the patches there will be added to the platform-drivers-x86/for-next branch and eventually will be included in the pdx86 pull-request to Linus for the next merge-window. Regards, Hans > --- > drivers/platform/x86/thinkpad_acpi.c | 23 +++++++++++++---------- > 1 file changed, 13 insertions(+), 10 deletions(-) > > diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c > index f385450af864..5eea6651a312 100644 > --- a/drivers/platform/x86/thinkpad_acpi.c > +++ b/drivers/platform/x86/thinkpad_acpi.c > @@ -8862,24 +8862,27 @@ static int __init fan_init(struct ibm_init_struct *iibm) > fan_status_access_mode = TPACPI_FAN_RD_TPEC; > if (quirks & TPACPI_FAN_Q1) > fan_quirk1_setup(); > - if (quirks & TPACPI_FAN_2FAN) { > - tp_features.second_fan = 1; > - pr_info("secondary fan support enabled\n"); > - } > - if (quirks & TPACPI_FAN_2CTL) { > - tp_features.second_fan = 1; > - tp_features.second_fan_ctl = 1; > - pr_info("secondary fan control enabled\n"); > - } > /* Try and probe the 2nd fan */ > + tp_features.second_fan = 1; /* needed for get_speed to work */ > res = fan2_get_speed(&speed); > if (res >= 0) { > /* It responded - so let's assume it's there */ > tp_features.second_fan = 1; > tp_features.second_fan_ctl = 1; > pr_info("secondary fan control detected & enabled\n"); > + } else { > + /* Fan not auto-detected */ > + tp_features.second_fan = 0; > + if (quirks & TPACPI_FAN_2FAN) { > + tp_features.second_fan = 1; > + pr_info("secondary fan support enabled\n"); > + } > + if (quirks & TPACPI_FAN_2CTL) { > + tp_features.second_fan = 1; > + tp_features.second_fan_ctl = 1; > + pr_info("secondary fan control enabled\n"); > + } > } > - > } else { > pr_err("ThinkPad ACPI EC access misbehaving, fan status and control unavailable\n"); > return -ENODEV;