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
40 lines
1.7 KiB
Diff
40 lines
1.7 KiB
Diff
Log the raw HTC header of every received message.
|
|
|
|
Diagnostic-only, for the rtwo WiFi bring-up. ath12k_mac_start() dies on
|
|
the second WMI command with -EAGAIN out of ath12k_htc_send()'s
|
|
"insufficient credits" path, and the endpoint's credits are only ever
|
|
replenished by an ATH12K_HTC_RECORD_CREDITS record carried in the
|
|
*trailer* of a received HTC message -- there is no dedicated credit
|
|
event. /proc/interrupts shows ce2 (target->host WMI) taking real
|
|
interrupts, so messages do arrive; what cannot be seen from outside is
|
|
whether any of them ever carries a trailer at all.
|
|
|
|
The existing "htc rx completion ep %d" debug line does not answer that:
|
|
it is printed at the very end of the handler, so it misses both the EP0
|
|
control traffic and the "zero length packet with trailer data, just drop
|
|
these" early return -- which is exactly the shape a pure credit-report
|
|
message has. Print the decoded header right where the fields are read
|
|
instead, before anything can return early.
|
|
|
|
Sits under the existing ATH12K_DBG_HTC (0x4) mask, so it costs one
|
|
branch per RX when the mask is unset and disappears entirely without
|
|
CONFIG_ATH12K_DEBUG. Drop this patch once WiFi works.
|
|
|
|
--- a/drivers/net/wireless/ath/ath12k/htc.c
|
|
+++ b/drivers/net/wireless/ath/ath12k/htc.c
|
|
@@ -292,6 +292,14 @@
|
|
trailer_present = le32_get_bits(hdr->htc_info, HTC_HDR_FLAGS) &
|
|
ATH12K_HTC_FLAG_TRAILER_PRESENT;
|
|
|
|
+ ath12k_dbg(ab, ATH12K_DBG_HTC,
|
|
+ "htc rx hdr eid %d payload_len %d flags 0x%02x trailer %d trailer_len %d\n",
|
|
+ eid, payload_len,
|
|
+ (u8)le32_get_bits(hdr->htc_info, HTC_HDR_FLAGS),
|
|
+ trailer_present ? 1 : 0,
|
|
+ trailer_present ?
|
|
+ (int)le32_get_bits(hdr->ctrl_info, HTC_HDR_CONTROLBYTES0) : 0);
|
|
+
|
|
if (trailer_present) {
|
|
u8 *trailer;
|
|
|