|
|
@@ -150,6 +150,26 @@ static bool iwl_mvm_temp_notif_wait(struct iwl_notif_wait_data *notif_wait,
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+int iwl_mvm_temp_notif(struct iwl_mvm *mvm,
|
|
|
+ struct iwl_rx_cmd_buffer *rxb,
|
|
|
+ struct iwl_device_cmd *cmd)
|
|
|
+{
|
|
|
+ struct iwl_rx_packet *pkt = rxb_addr(rxb);
|
|
|
+ int temp;
|
|
|
+
|
|
|
+ /* the notification is handled synchronously in ctkill, so skip here */
|
|
|
+ if (test_bit(IWL_MVM_STATUS_HW_CTKILL, &mvm->status))
|
|
|
+ return 0;
|
|
|
+
|
|
|
+ temp = iwl_mvm_temp_notif_parse(mvm, pkt);
|
|
|
+ if (temp < 0)
|
|
|
+ return 0;
|
|
|
+
|
|
|
+ iwl_mvm_tt_temp_changed(mvm, temp);
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
static int iwl_mvm_get_temp_cmd(struct iwl_mvm *mvm)
|
|
|
{
|
|
|
struct iwl_dts_measurement_cmd cmd = {
|