It looks like the self-managed regulatory information is causing the 6ghz band to be disabled on my AX211 (in the US). iw reg get shows no 6ghz bands (output at the bottom). $ sudo iw phy0 channel ... Band 4: * 5955 MHz [1] (disabled) * 5975 MHz [5] (disabled) * 5995 MHz [9] (disabled) ....(continues with all disabled * 7115 MHz [233] (disabled) ... I was able to narrow this down to having been introduced during the 5.16 development window, as 5.15.79 linux-stable kernel works and the 5.16.12 does not (earlier builds of 5.16 kernel fail to boot on my machine for some reason). I found https://community.frame.work/t/kernel-5-16-6ghz-disabled-ax210/15675/5 and they imply that this regression was introduced by 698b166ed3464e1604a0e6a3e23cc1b529a5adc1 I haven't independently verified this commit as the definitive issue. Output from $ iw reg get $ iw phy0 channel $ sudo dmidecode $ sudo lshw -C network --numeric $ sudo dmesg are available in attached debuginfo file.
Created attachment 303330 [details] iw, lshw, dmidecode, dmesg output
Just wanted to chime in and say that I see this exact same behavior on two of my machines at home. Both have AX210 wifi and all 6Ghz bands are disabled. Applying the following in drivers/net/wireless/intel/iwlwifi/mvm/fw.c fixes the issue for me. Located in US with an Orbi 960 wifi 6E router. --- linux-rc-kernels/drivers/net/wireless/intel/iwlwifi/mvm/fw.c.old 2022-12-01 15:14:21.000000000 -0600 +++ linux-rc-kernels/drivers/net/wireless/intel/iwlwifi/mvm/fw.c 2022-12-02 18:33:46.419143605 -0600 @@ -1192,9 +1192,10 @@ cmd.chan_state_active_bitmap = cpu_to_le32(value); - ret = iwl_acpi_get_dsm_u32(mvm->fwrt.dev, 0, +/* ret = iwl_acpi_get_dsm_u32(mvm->fwrt.dev, 0, DSM_FUNC_ENABLE_6E, &iwl_guid, &value); if (!ret) cmd.oem_uhb_allow_bitmap = cpu_to_le32(value); + */ ret = iwl_acpi_get_dsm_u32(mvm->fwrt.dev, 0,
I'm attaching patch iwlwifi-wifi6e_enable.patch, which adds a module parameter: wifi6e_enable (bool) that enables the wifi 6e on the iwlwifi module. This parameter defaults to false, however, when setting it to true, it just skips running the ACPI check for the 6E enable in the current code. In testing, it has worked just fine for me.
Created attachment 303561 [details] Add wifi6e_enable module parameter to enable 6Ghz This is based on 6.1.4 version of the Linux Kernel Signed off by: Walt Holman (walt@holmansrus.com)
I am having the same issue on a ThinkPad P14s Gen 2 Intel, and it also seems to affect other OEM systems: * Lenovo P360 Tiny: https://forums.lenovo.com/t5/ThinkStation-Workstations/P360-Tiny-Bios-not-return-correct-oem-uhb-allow-bitmap-value-for-Wifi-6E-6GHz/m-p/5260797 * Framework 11th gen: https://community.frame.work/t/kernel-5-16-6ghz-disabled-ax210/15675 It seems like the DSM_FUNC_ENABLE_6E/oem_uhb_allow_bitmap flag is wrong in several major OEM BIOSes. On my particular laptop, the AX210 card is a soldered-down m.2 1216 module, that makes it impossible to work around this driver regression without a vendor BIOS update, which will take ages to obtain, with having to contact Lenovo support and wait for development + certification. Furthermore, Wi-Fi 6E enablement does not seem to be a focus area for OEMs, due to the relatively low adoption as ratification in most regulatory domains is relatively recent. Please consider rolling back the feature or adding a module parameter to bypass, as above.