aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/mvm/tt.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/tt.c')
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/tt.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/tt.c b/drivers/net/wireless/iwlwifi/mvm/tt.c
index fe7145c2c98a..cadfc0460597 100644
--- a/drivers/net/wireless/iwlwifi/mvm/tt.c
+++ b/drivers/net/wireless/iwlwifi/mvm/tt.c
@@ -176,17 +176,34 @@ static int iwl_mvm_get_temp_cmd(struct iwl_mvm *mvm)
176 struct iwl_dts_measurement_cmd cmd = { 176 struct iwl_dts_measurement_cmd cmd = {
177 .flags = cpu_to_le32(DTS_TRIGGER_CMD_FLAGS_TEMP), 177 .flags = cpu_to_le32(DTS_TRIGGER_CMD_FLAGS_TEMP),
178 }; 178 };
179 struct iwl_ext_dts_measurement_cmd extcmd = {
180 .control_mode = cpu_to_le32(DTS_AUTOMATIC),
181 };
182 u32 cmdid;
183
184 if (fw_has_api(&mvm->fw->ucode_capa, IWL_UCODE_TLV_API_WIDE_CMD_HDR))
185 cmdid = iwl_cmd_id(CMD_DTS_MEASUREMENT_TRIGGER_WIDE,
186 PHY_OPS_GROUP, 0);
187 else
188 cmdid = CMD_DTS_MEASUREMENT_TRIGGER;
179 189
180 return iwl_mvm_send_cmd_pdu(mvm, CMD_DTS_MEASUREMENT_TRIGGER, 0, 190 if (!fw_has_capa(&mvm->fw->ucode_capa,
181 sizeof(cmd), &cmd); 191 IWL_UCODE_TLV_CAPA_EXTENDED_DTS_MEASURE))
192 return iwl_mvm_send_cmd_pdu(mvm, cmdid, 0, sizeof(cmd), &cmd);
193
194 return iwl_mvm_send_cmd_pdu(mvm, cmdid, 0, sizeof(extcmd), &extcmd);
182} 195}
183 196
184int iwl_mvm_get_temp(struct iwl_mvm *mvm) 197int iwl_mvm_get_temp(struct iwl_mvm *mvm)
185{ 198{
186 struct iwl_notification_wait wait_temp_notif; 199 struct iwl_notification_wait wait_temp_notif;
187 static const u16 temp_notif[] = { DTS_MEASUREMENT_NOTIFICATION }; 200 static u16 temp_notif[] = { WIDE_ID(PHY_OPS_GROUP,
201 DTS_MEASUREMENT_NOTIF_WIDE) };
188 int ret, temp; 202 int ret, temp;
189 203
204 if (!fw_has_api(&mvm->fw->ucode_capa, IWL_UCODE_TLV_API_WIDE_CMD_HDR))
205 temp_notif[0] = DTS_MEASUREMENT_NOTIFICATION;
206
190 lockdep_assert_held(&mvm->mutex); 207 lockdep_assert_held(&mvm->mutex);
191 208
192 iwl_init_notification_wait(&mvm->notif_wait, &wait_temp_notif, 209 iwl_init_notification_wait(&mvm->notif_wait, &wait_temp_notif,