diff --git sys/dev/iwlwifi/iwl-drv.c sys/dev/iwlwifi/iwl-drv.c index b09d55e33650..fe72097c1629 100644 --- sys/dev/iwlwifi/iwl-drv.c +++ sys/dev/iwlwifi/iwl-drv.c @@ -1721,6 +1721,7 @@ struct iwl_mod_params iwlwifi_mod_params = { .disable_11n = 1, .disable_11ac = true, .disable_11ax = true, + .disable_msix = true, #endif /* the rest are 0 by default */ }; @@ -1884,3 +1885,6 @@ MODULE_PARM_DESC(remove_when_gone, module_param_named(disable_11ax, iwlwifi_mod_params.disable_11ax, bool, S_IRUGO); MODULE_PARM_DESC(disable_11ax, "Disable HE capabilities (default: false)"); + +module_param_named(disable_msix, iwlwifi_mod_params.disable_msix, bool, 0444); +MODULE_PARM_DESC(disable_msix, "Disable MSI-X capabilities (default: false)"); diff --git sys/dev/iwlwifi/iwl-modparams.h sys/dev/iwlwifi/iwl-modparams.h index 32fabd80656c..a2503a29052c 100644 --- sys/dev/iwlwifi/iwl-modparams.h +++ sys/dev/iwlwifi/iwl-modparams.h @@ -87,6 +87,7 @@ struct iwl_mod_params { bool disable_11ax; bool remove_when_gone; bool enable_ini; + bool disable_msix; }; static inline bool iwl_enable_rx_ampdu(void) diff --git sys/dev/iwlwifi/pcie/trans.c sys/dev/iwlwifi/pcie/trans.c index 714ce2441fdb..c98d3b3583e5 100644 --- sys/dev/iwlwifi/pcie/trans.c +++ sys/dev/iwlwifi/pcie/trans.c @@ -1562,6 +1562,9 @@ iwl_pcie_set_interrupt_capa(struct pci_dev *pdev, u16 pci_cmd; u32 max_rx_queues = IWL_MAX_RX_HW_QUEUES; + if (iwlwifi_mod_params.disable_msix) + goto enable_msi; + if (!cfg_trans->mq_rx_supported) goto enable_msi;