diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/tt.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/tt.c | 23 |
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 | ||
184 | int iwl_mvm_get_temp(struct iwl_mvm *mvm) | 197 | int 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, |