aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/iwm
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2019-11-07 23:36:25 +0000
committerMark Johnston <markj@FreeBSD.org>2019-11-07 23:36:25 +0000
commitb1a48ccc18d4c4e07c218d72583092ec20103274 (patch)
treede1d17e49f220695dd6061641c094924ad9d6da9 /sys/dev/iwm
parent1809534a1aee5f09392d95f909a6d2355e6818d1 (diff)
Notes
Diffstat (limited to 'sys/dev/iwm')
-rw-r--r--sys/dev/iwm/if_iwm_pcie_trans.c4
-rw-r--r--sys/dev/iwm/if_iwmreg.h4
2 files changed, 8 insertions, 0 deletions
diff --git a/sys/dev/iwm/if_iwm_pcie_trans.c b/sys/dev/iwm/if_iwm_pcie_trans.c
index 36c4da6f458f..19ceb7ff0d3f 100644
--- a/sys/dev/iwm/if_iwm_pcie_trans.c
+++ b/sys/dev/iwm/if_iwm_pcie_trans.c
@@ -616,6 +616,10 @@ iwm_start_hw(struct iwm_softc *sc)
if ((error = iwm_apm_init(sc)) != 0)
return error;
+ /* On newer chipsets MSI is disabled by default. */
+ if (sc->cfg->mqrx_supported)
+ iwm_write_prph(sc, IWM_UREG_CHICK, IWM_UREG_CHICK_MSI_ENABLE);
+
iwm_enable_rfkill_int(sc);
iwm_check_rfkill(sc);
diff --git a/sys/dev/iwm/if_iwmreg.h b/sys/dev/iwm/if_iwmreg.h
index be43eb0e1a13..bde46229870f 100644
--- a/sys/dev/iwm/if_iwmreg.h
+++ b/sys/dev/iwm/if_iwmreg.h
@@ -457,6 +457,10 @@ enum iwm_secure_boot_status_reg {
#define IWM_LMPM_CHICK 0xa01ff8
#define IWM_LMPM_CHICK_EXTENDED_ADDR_SPACE 0x01
+#define IWM_UREG_CHICK 0xa05c00
+#define IWM_UREG_CHICK_MSI_ENABLE 0x01000000
+#define IWM_UREG_CHICK_MSIX_ENABLE 0x02000000
+
#define IWM_FH_TCSR_0_REG0 (0x1D00)
/*