Page MenuHomeFreeBSD

D60077.id189461.diff
No OneTemporary

D60077.id189461.diff

diff --git a/sys/dev/iwm/if_iwm.c b/sys/dev/iwm/if_iwm.c
--- a/sys/dev/iwm/if_iwm.c
+++ b/sys/dev/iwm/if_iwm.c
@@ -4727,6 +4727,29 @@
return err;
}
+static int
+iwm_send_temp_report_ths_cmd(struct iwm_softc *sc)
+{
+ struct iwm_temp_report_ths_cmd cmd;
+ int err;
+
+ /*
+ * In order to give responsibility for critical-temperature-kill
+ * and TX backoff to FW we need to send an empty temperature
+ * reporting command at init time.
+ */
+ memset(&cmd, 0, sizeof(cmd));
+
+ err = iwm_send_cmd_pdu(sc,
+ IWM_WIDE_ID(IWM_PHY_OPS_GROUP, IWM_TEMP_REPORTING_THRESHOLDS_CMD),
+ 0, sizeof(cmd), &cmd);
+ if (err)
+ device_printf(sc->sc_dev,
+ "TEMP_REPORT_THS_CMD command failed (error %d)\n", err);
+
+ return err;
+}
+
static boolean_t
iwm_is_lar_supported(struct iwm_softc *sc)
{
@@ -4890,6 +4913,11 @@
goto error;
}
+ if (iwm_fw_has_capa(sc, IWM_UCODE_TLV_CAPA_CT_KILL_BY_FW)) {
+ if ((error = iwm_send_temp_report_ths_cmd(sc)) != 0)
+ goto error;
+ }
+
error = iwm_send_tx_ant_cfg(sc, iwm_get_valid_tx_ant(sc));
if (error != 0) {
device_printf(sc->sc_dev, "antenna config failed\n");

File Metadata

Mime Type
text/plain
Expires
Fri, Oct 16, 9:43 AM (16 h, 36 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
39830534
Default Alt Text
D60077.id189461.diff (1 KB)

Event Timeline