From: Saikiran <bjsaikiran@gmail.com>
To: ath12k@lists.infradead.org
Cc: linux-wireless@vger.kernel.org, kvalo@kernel.org,
Saikiran <bjsaikiran@gmail.com>
Subject: [PATCH] wifi: ath12k: Initialize regulatory frequency ranges to avoid filtering all channels
Date: Fri, 23 Jan 2026 21:27:47 +0530 [thread overview]
Message-ID: <20260123155750.6007-3-bjsaikiran@gmail.com> (raw)
In-Reply-To: <20260123155750.6007-1-bjsaikiran@gmail.com>
Commit 657b0c72c4ad ("wifi: ath12k: Fix frequency range in driver")
added reg_freq_2ghz/5ghz/6ghz structures to intersect regulatory
frequency ranges with hardware capabilities. However, these structures
are never initialized for devices with self-managed regulatory (like
WCN7850).
The WCN7850 firmware manages its own regulatory domain and never calls
ath12k_reg_build_regd() which updates these structures. This leaves
them at {0, 0}, causing this logic in mac.c:
freq_high = min(reg_cap->high_5ghz_chan, ab->reg_freq_5ghz.end_freq);
// freq_high = min(6000MHz, 0) = 0
Result: ALL 5GHz channels are filtered out and 5GHz WiFi is broken.
Fix: Initialize reg_freq_* structures to full frequency ranges in
ath12k_core_alloc(). For devices with proper regulatory domain
updates, these will be overwritten by ath12k_reg_build_regd().
For WCN7850 with self-managed regulatory, these defaults allow
channels to work.
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302
Fixes: 657b0c72c4ad ("wifi: ath12k: Fix frequency range in driver")
Signed-off-by: Saikiran <bjsaikiran@gmail.com>
---
drivers/net/wireless/ath/ath12k/core.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/drivers/net/wireless/ath/ath12k/core.c b/drivers/net/wireless/ath/ath12k/core.c
index 4121dd14bbcc..99c26ba01304 100644
--- a/drivers/net/wireless/ath/ath12k/core.c
+++ b/drivers/net/wireless/ath/ath12k/core.c
@@ -2290,6 +2290,19 @@ struct ath12k_base *ath12k_core_alloc(struct device *dev, size_t priv_size,
ab->qmi.num_radios = U8_MAX;
ab->single_chip_mlo_support = false;
+ /* Initialize regulatory frequency ranges to full range.
+ * These will be updated by ath12k_reg_build_regd() when
+ * regulatory domain is set. For WCN7850 with self-managed
+ * regulatory, firmware doesn't call reg_build_regd so we
+ * need sane defaults to avoid filtering out all channels.
+ */
+ ab->reg_freq_2ghz.start_freq = 2312000; /* 2.312 GHz */
+ ab->reg_freq_2ghz.end_freq = 2732000; /* 2.732 GHz */
+ ab->reg_freq_5ghz.start_freq = 5150000; /* 5.150 GHz */
+ ab->reg_freq_5ghz.end_freq = 5945000; /* 5.945 GHz */
+ ab->reg_freq_6ghz.start_freq = 5945000; /* 5.945 GHz */
+ ab->reg_freq_6ghz.end_freq = 7125000; /* 7.125 GHz */
+
/* Device index used to identify the devices in a group.
*
* In Intra-device MLO, only one device present in a group,
--
2.51.0
next prev parent reply other threads:[~2026-01-23 15:58 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-23 15:57 [PATCH 0/5] wifi: ath12k: Fix 5 GHz Wi-Fi regression on WCN7850 Saikiran
2026-01-23 15:57 ` [PATCH] wifi: ath12k: Fix firmware stats leak on get_txpower error paths Saikiran
2026-01-26 5:22 ` Baochen Qiang
2026-01-23 15:57 ` Saikiran [this message]
2026-01-26 5:26 ` [PATCH] wifi: ath12k: Initialize regulatory frequency ranges to avoid filtering all channels Baochen Qiang
2026-01-23 15:57 ` [PATCH] wifi: ath12k: Add fallback regulatory domain for WCN7850 without SMBIOS Saikiran
2026-01-23 15:57 ` [PATCH] wifi: ath12k: Remove broken frequency range filtering Saikiran
2026-01-26 5:45 ` Baochen Qiang
[not found] ` <CAAFDt1syi0jLvrho4mnvwsv8HtraT78wP8tCLFHRw3oiTq2E5w@mail.gmail.com>
2026-01-26 6:51 ` Baochen Qiang
[not found] ` <CAAFDt1v-CBHPTMHQB2B9o3X547agCj77RF9tpp_sgUAPkUaYSw@mail.gmail.com>
2026-01-26 8:28 ` Saikiran B
2026-01-23 15:57 ` [PATCH] wifi: ath12k: Fix invalid frequency error in freq_to_idx Saikiran
2026-01-26 3:38 ` Baochen Qiang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260123155750.6007-3-bjsaikiran@gmail.com \
--to=bjsaikiran@gmail.com \
--cc=ath12k@lists.infradead.org \
--cc=kvalo@kernel.org \
--cc=linux-wireless@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox