iwlwifi: mvm: fix build w/o CONFIG_THERMAL
authorJohannes Berg <johannes.berg@intel.com>
Wed, 18 Sep 2019 13:49:03 +0000 (16:49 +0300)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 19 Sep 2019 18:58:12 +0000 (21:58 +0300)
Without CONFIG_THERMAL, the driver fails to link as it calls
iwl_mvm_send_temp_report_ths_cmd() unconditionally. Fix this
by making that function available, but do almost nothing but
send the empty firmware command to enable CT-kill reporting.

While at it, also fix that function itself to not error out
when the thermal zone hasn't been initialized, but instead
just send the empty firmware command in this case as well.

Fixes: 242d9c8b9a93 ("iwlwifi: mvm: use FW thermal monitoring regardless of CONFIG_THERMAL")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/intel/iwlwifi/mvm/tt.c

index 32a708301cfc84ccef53a2551d751b15b734532c..f0c539b37ea7082c798ff0edb908697e6d1d46a8 100644 (file)
@@ -555,16 +555,19 @@ static int compare_temps(const void *a, const void *b)
        return ((s16)le16_to_cpu(*(__le16 *)a) -
                (s16)le16_to_cpu(*(__le16 *)b));
 }
+#endif
 
 int iwl_mvm_send_temp_report_ths_cmd(struct iwl_mvm *mvm)
 {
        struct temp_report_ths_cmd cmd = {0};
-       int ret, i, j, idx = 0;
+       int ret;
+#ifdef CONFIG_THERMAL
+       int i, j, idx = 0;
 
        lockdep_assert_held(&mvm->mutex);
 
        if (!mvm->tz_device.tzone)
-               return -EINVAL;
+               goto send;
 
        /* The driver holds array of temperature trips that are unsorted
         * and uncompressed, the FW should get it compressed and sorted
@@ -597,6 +600,7 @@ int iwl_mvm_send_temp_report_ths_cmd(struct iwl_mvm *mvm)
        }
 
 send:
+#endif
        ret = iwl_mvm_send_cmd_pdu(mvm, WIDE_ID(PHY_OPS_GROUP,
                                                TEMP_REPORTING_THRESHOLDS_CMD),
                                   0, sizeof(cmd), &cmd);
@@ -607,6 +611,7 @@ send:
        return ret;
 }
 
+#ifdef CONFIG_THERMAL
 static int iwl_mvm_tzone_get_temp(struct thermal_zone_device *device,
                                  int *temperature)
 {