Bug 216753 - 6e 6 ghz bands are disabled since 5.16 on intel ax211
Summary: 6e 6 ghz bands are disabled since 5.16 on intel ax211
Status: NEW
Alias: None
Product: Networking
Classification: Unclassified
Component: Wireless (show other bugs)
Hardware: Intel Linux
: P1 normal
Assignee: networking_wireless@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-11-30 05:07 UTC by Dave
Modified: 2023-11-20 10:28 UTC (History)
2 users (show)

See Also:
Kernel Version: 6.0.9
Subsystem:
Regression: Yes
Bisected commit-id:


Attachments
iw, lshw, dmidecode, dmesg output (151.33 KB, text/plain)
2022-11-30 05:08 UTC, Dave
Details
Add wifi6e_enable module parameter to enable 6Ghz (2.07 KB, patch)
2023-01-09 18:22 UTC, Walt Holman
Details | Diff

Description Dave 2022-11-30 05:07:34 UTC
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.
Comment 1 Dave 2022-11-30 05:08:12 UTC
Created attachment 303330 [details]
iw, lshw, dmidecode, dmesg output
Comment 2 Walt Holman 2022-12-03 16:05:55 UTC
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,
Comment 3 Walt Holman 2023-01-09 18:21:07 UTC
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.
Comment 4 Walt Holman 2023-01-09 18:22:52 UTC
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)
Comment 5 Andrew Yong 2023-11-20 10:28:45 UTC
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.

Note You need to log in before you can comment on or make changes to this bug.