If we already know that the system in question has a quirk telling us that
the system has a second fan, there's no purpose in probing the second fan -
especially when probing the second fan may not work properly with systems
relying on quirks.

Also, convert all of the conditionals here into a single group of if/else
statements. This is because there's no situations where there's more then
one quirk on a device.

Signed-off-by: Lyude Paul <ly...@redhat.com>
Fixes: bf779aaf56ea ("platform/x86: thinkpad_acpi: Add dual fan probe")
Cc: Mark Pearson <markpear...@lenovo.com>
Cc: Hans de Goede <hdego...@redhat.com>
Cc: Henrique de Moraes Holschuh <h...@hmh.eng.br>
Cc: Mark Gross <markgr...@kernel.org>
Cc: ibm-acpi-devel@lists.sourceforge.net
Cc: platform-driver-...@vger.kernel.org
---
 drivers/platform/x86/thinkpad_acpi.c | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/drivers/platform/x86/thinkpad_acpi.c 
b/drivers/platform/x86/thinkpad_acpi.c
index 9067fd0a945c..677822b5d4b4 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -8747,26 +8747,25 @@ static int __init fan_init(struct ibm_init_struct *iibm)
                        unsigned int speed;
 
                        fan_status_access_mode = TPACPI_FAN_RD_TPEC;
-                       if (quirks & TPACPI_FAN_Q1)
+                       if (quirks & TPACPI_FAN_Q1) {
                                fan_quirk1_setup();
-                       if (quirks & TPACPI_FAN_2FAN) {
+                       } else if (quirks & TPACPI_FAN_2FAN) {
                                tp_features.second_fan = 1;
                                pr_info("secondary fan support enabled\n");
-                       }
-                       if (quirks & TPACPI_FAN_2CTL) {
+                       } else if (quirks & TPACPI_FAN_2CTL) {
                                tp_features.second_fan = 1;
                                tp_features.second_fan_ctl = 1;
                                pr_info("secondary fan control enabled\n");
+                       } else {
+                               /* Try and probe the 2nd fan */
+                               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");
+                               }
                        }
-                       /* Try and probe the 2nd fan */
-                       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 {
                        pr_err("ThinkPad ACPI EC access misbehaving, fan status 
and control unavailable\n");
                        return -ENODEV;
-- 
2.35.1



_______________________________________________
ibm-acpi-devel mailing list
ibm-acpi-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ibm-acpi-devel

Reply via email to