Bring-up of the Moto Edge 40 Pro (rtwo) on the SM8550 kernel: - dts: NT37705 DSI panel with DSC, Goodix GT9916P touch, ADSP/CDSP with pmic-glink (battery, UCSI), Adreno 740, WiFi (WCN7850/ath12k), physical keys, and USB-C DisplayPort (pmic-glink altmode -> PS5169 redriver -> FSA4480 -> QMP combo PHY -> mdss_dp0) following the sm8550-qrd layout. - DP link capped at HBR (link-frequencies on &mdss_dp0_out): the DP->HDMI converter of a common USB-C hub trains fine at HBR2 but its HDMI output flickers and drops HPD; HBR x2 still covers 1080p60. - new drivers: typec-mux-ps5169.c (Parade PS5169 redriver as typec switch/retimer), panel-novatek-nt37705.c. - patches: msm DP invalid LTTPR caps + no push_idle with the link down (hardware reset on unplug), msm DSI keeps the panel DSC config, ath12k regd fixes and MHI keep-awake, ICC keepalive for the MDP fetch path. - rtwo.config / config-motorola-rtwo.aarch64: options for all of the above. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnHwDU5yL8L6qgPEN5CV5m
42 lines
2.1 KiB
Diff
42 lines
2.1 KiB
Diff
Fix regulatory range for wideband radios (carried by OpenWrt/Quectel
|
|
trees for WCN7850 and wideband QCN9274; NOT in v7.2 mainline).
|
|
|
|
ath12k_regd_update() assumes that a radio advertising 6 GHz cannot also
|
|
operate on 5 GHz. For the rtwo the WCN7850 is a single SMM radio whose
|
|
5 GHz band spans [4900-7125] (hw_mode 5, 2.4+5+6 GHz in one pdev), so
|
|
this old check picks only the 6 GHz portion of the band and drops the
|
|
real 5 GHz half from ar->freq_range. ath12k_mac_update_freq_range()
|
|
unions multiple calls, so the fixed conditions do not overwrite -- they
|
|
extend the advertised range to cover both portions.
|
|
|
|
Diagnostic build 2026-09-22 (same experiment as the wcn7850-pmu pinctrl
|
|
DT change): determines whether the cropped regulatory range sent to the
|
|
WCN7850 WMI path is what stalls the firmware at ath12k_mac_start()
|
|
("wmi command 16387 timeout", -EAGAIN on insufficient HTC credits after
|
|
the WMI channel list).
|
|
|
|
Blame/author: Robert Marko <robert.marko@sartura.hr>
|
|
From: https://git-03.infra.openwrt.org/openwrt/staging/stintel/plain/package/kernel/mac80211/patches/ath12k/104-wifi-ath12k-fix-regulatory-range-for-wideband-radios.patch
|
|
--- a/drivers/net/wireless/ath/ath12k/reg.c
|
|
+++ b/drivers/net/wireless/ath/ath12k/reg.c
|
|
@@ -310,7 +310,8 @@ int ath12k_regd_update(struct ath12k *ar, bool init)
|
|
ath12k_mac_update_freq_range(ar, freq_low, freq_high);
|
|
}
|
|
|
|
- if (supported_bands & WMI_HOST_WLAN_5GHZ_CAP && !ar->supports_6ghz) {
|
|
+ if (supported_bands & WMI_HOST_WLAN_5GHZ_CAP &&
|
|
+ reg_cap->low_5ghz_chan < ATH12K_MIN_6GHZ_FREQ) {
|
|
if (ab->hw_params->single_pdev_only) {
|
|
phy_id = ar->pdev->cap.band[WMI_HOST_WLAN_5GHZ_CAP].phy_id;
|
|
reg_cap = &ab->hal_reg_cap[phy_id];
|
|
@@ -322,7 +323,8 @@ int ath12k_regd_update(struct ath12k *ar, bool init)
|
|
ath12k_mac_update_freq_range(ar, freq_low, freq_high);
|
|
}
|
|
|
|
- if (supported_bands & WMI_HOST_WLAN_5GHZ_CAP && ar->supports_6ghz) {
|
|
+ if (supported_bands & WMI_HOST_WLAN_5GHZ_CAP &&
|
|
+ reg_cap->high_5ghz_chan >= ATH12K_MIN_6GHZ_FREQ) {
|
|
freq_low = max(reg_cap->low_5ghz_chan, ab->reg_freq_6ghz.start_freq);
|
|
freq_high = min(reg_cap->high_5ghz_chan, ab->reg_freq_6ghz.end_freq);
|
|
|