Commit a10d5098 authored by Jelle van der Waa's avatar Jelle van der Waa Committed by Hans de Goede

platform/x86: thinkpad_acpi: Fix reporting a non present second fan on some models

thinkpad_acpi was reporting 2 fans on a ThinkPad T14s gen 1, even though
the laptop has only 1 fan.

The second, not present fan always reads 65535 (-1 in 16 bit signed),
ignore fans which report 65535 to avoid reporting the non present fan.
Signed-off-by: default avatarJelle van der Waa <jvanderwaa@redhat.com>
Link: https://lore.kernel.org/r/20221019194751.5392-1-jvanderwaa@redhat.comReviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
parent 36abde8d
...@@ -263,6 +263,8 @@ enum tpacpi_hkey_event_t { ...@@ -263,6 +263,8 @@ enum tpacpi_hkey_event_t {
#define TPACPI_DBG_BRGHT 0x0020 #define TPACPI_DBG_BRGHT 0x0020
#define TPACPI_DBG_MIXER 0x0040 #define TPACPI_DBG_MIXER 0x0040
#define FAN_NOT_PRESENT 65535
#define strlencmp(a, b) (strncmp((a), (b), strlen(b))) #define strlencmp(a, b) (strncmp((a), (b), strlen(b)))
...@@ -8876,7 +8878,7 @@ static int __init fan_init(struct ibm_init_struct *iibm) ...@@ -8876,7 +8878,7 @@ static int __init fan_init(struct ibm_init_struct *iibm)
/* Try and probe the 2nd fan */ /* Try and probe the 2nd fan */
tp_features.second_fan = 1; /* needed for get_speed to work */ tp_features.second_fan = 1; /* needed for get_speed to work */
res = fan2_get_speed(&speed); res = fan2_get_speed(&speed);
if (res >= 0) { if (res >= 0 && speed != FAN_NOT_PRESENT) {
/* It responded - so let's assume it's there */ /* It responded - so let's assume it's there */
tp_features.second_fan = 1; tp_features.second_fan = 1;
tp_features.second_fan_ctl = 1; tp_features.second_fan_ctl = 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment