Hi Patrick,
On Sat, Apr 23, 2022 at 3:52 AM Patrick Steinhardt ps@pks.im wrote:
This revert is in fact causing problems on my machine. I have a QCA9984, which exports two network interfaces. While I was able to still use one of both NICs for 2.4GHz, I couldn't really use the other card to set up a 5GHz AP anymore because all frequencies were restricted. This has started with v5.17.1, to which this revert was backported.
Reverting this patch again fixes the issue on my system. So it seems like there still are cards out there in the wild which have a value of 0x0 as their regulatory domain.
Quoting from your other mail:
My understanding was that no QCA modules *should* be shipped with a value of 0 in this field. The instance I'm aware of was more or less a manufacturing error I think, and we got Qualcomm to patch it over in software.
This sounds like the issue should've already been fixed in firmware, right?
See the original patch: https://git.kernel.org/linus/2dc016599cfa9672a147528ca26d70c3654a5423
"Tested with QCA6174 SDIO with firmware WLAN.RMH.4.4.1-00029."
That patch was only tested for QCA6174 SDIO, and the 6174 firmware has since been updated. So none of that really applies to QCA9984. I suppose your device was also not working before v5.6 either, and IIUC, according to Qualcomm your hardware is a manufacturing error (i.e., invalid country code).
I don't know what to tell you exactly, other than that the original patch was wrong/unnecessary (and broke various existing systems) so it should be reverted. I'm not quite sure how to fix the variety of hardware out there (like yours) that may be using non-conforming EEPROM settings. It would seem to me that we might need some more targeted way of addressing broken hardware, rather than changing this particular default workaround. I'm honestly not that familiar with this Qualcomm regulatory stuff though, so my main contribution was just to suggest reverting (i.e., don't break what used to work); I'm not as savvy on providing alternative "fixes" for you.
(That said: I *think* what's happening is that in the absence of a proper EEPROM code, ath drivers fall back to a default=US country code, and without further information to know you're compliant, regulatory rules disallow initiating radiation (such as, an AP) on 5GHz.)
I've added the relevant dmesg snippets though in case I'm mistaken:
With what kernel? That looks like pre-v5.17.1. The "broken" (post-5.17.1) logs might be a bit more informative.
Sorry, Brian