From 18daa8bd89fe6d55069be1c65557225db919f542 Mon Sep 17 00:00:00 2001 From: Nikolaos Karaolidis Date: Mon, 21 Jul 2025 18:39:51 +0100 Subject: [PATCH] Add iwlwifi patch Signed-off-by: Nikolaos Karaolidis --- hosts/himalia/hardware/default.nix | 4 +++ .../iwlwifi-no-disable-all-chans.patch | 26 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 hosts/himalia/hardware/iwlwifi/iwlwifi-no-disable-all-chans.patch diff --git a/hosts/himalia/hardware/default.nix b/hosts/himalia/hardware/default.nix index 4935a95..10abd53 100644 --- a/hosts/himalia/hardware/default.nix +++ b/hosts/himalia/hardware/default.nix @@ -58,6 +58,10 @@ name = "alc285-fixup"; patch = ./gu605c-spi-cs-gpio/alc285-fixup.patch; } + { + name = "iwlwifi-no-disable-all-chans"; + patch = ./iwlwifi/iwlwifi-no-disable-all-chans.patch; + } ]; initrd = { diff --git a/hosts/himalia/hardware/iwlwifi/iwlwifi-no-disable-all-chans.patch b/hosts/himalia/hardware/iwlwifi/iwlwifi-no-disable-all-chans.patch new file mode 100644 index 0000000..accc485 --- /dev/null +++ b/hosts/himalia/hardware/iwlwifi/iwlwifi-no-disable-all-chans.patch @@ -0,0 +1,26 @@ +diff --git a/drivers/net/wireless/intel/iwlwifi/fw/regulatory.c b/drivers/net/wireless/intel/iwlwifi/fw/regulatory.c +index 6adcfa6e214a..4512d846629c 100644 +--- a/drivers/net/wireless/intel/iwlwifi/fw/regulatory.c ++++ b/drivers/net/wireless/intel/iwlwifi/fw/regulatory.c +@@ -622,7 +622,7 @@ int iwl_fill_lari_config(struct iwl_fw_runtime *fwrt, + cmd->oem_uhb_allow_bitmap = cpu_to_le32(value); + + ret = iwl_bios_get_dsm(fwrt, DSM_FUNC_FORCE_DISABLE_CHANNELS, &value); +- if (!ret) ++ if (!ret && value != 0xFFFFFFFF) + cmd->force_disable_channels_bitmap = cpu_to_le32(value); + + ret = iwl_bios_get_dsm(fwrt, DSM_FUNC_ENERGY_DETECTION_THRESHOLD, +diff --git a/drivers/net/wireless/intel/iwlwifi/mld/regulatory.c b/drivers/net/wireless/intel/iwlwifi/mld/regulatory.c +index a75af8c1e8ab..e055a946b9e6 100644 +--- a/drivers/net/wireless/intel/iwlwifi/mld/regulatory.c ++++ b/drivers/net/wireless/intel/iwlwifi/mld/regulatory.c +@@ -259,7 +259,7 @@ void iwl_mld_configure_lari(struct iwl_mld *mld) + cmd.oem_uhb_allow_bitmap = cpu_to_le32(value); + + ret = iwl_bios_get_dsm(fwrt, DSM_FUNC_FORCE_DISABLE_CHANNELS, &value); +- if (!ret) ++ if (!ret && value != 0xFFFFFFFF) + cmd.force_disable_channels_bitmap = cpu_to_le32(value); + + ret = iwl_bios_get_dsm(fwrt, DSM_FUNC_ENERGY_DETECTION_THRESHOLD,