commit 06736ea2d52b122abbcc7cff7674f50cf31761d4
parent be6076811f712b9b9c84cceca072e3cd2dedafd8
Author: umhau <umhau@example.invalid>
Date: Wed, 21 Oct 2026 12:00:09 +0000
NOTES: appledptx-hot_unplug_delay_ms candidate to ride through HPD blips
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat:
1 file changed, 14 insertions(+), 0 deletions(-)
diff --git a/NOTES.md b/NOTES.md
@@ -45,3 +45,17 @@ Run `tools/verify.sh` (boot-args + log summaries only; no ioreg/system_profiler)
- RETRACTED: "only a physical replug recovers it"; "deeper off state"; "HRST untested/unsupported" claims made
before the byte order was fixed. With correct encoding HRST is rejected by the firmware (!CMD), DRST works.
- HID screen_off (0x04 0x00) reliably induces the stuck state; screen_on / full wake alone do not undo it.
+
+## Candidate: ride through brief HPD drops (millisecond-level, no display REMOVE) — static, UNTESTED
+DCP firmware (FUD/DCP.img4, t8103) AppleDCPDPTXController config, verified in disassembly:
+- 0x56c0c: key `hot_unplug_delay_ms` -> boot-arg `appledptx-hot_unplug_delay_ms` (prefix + "-" + key, see above).
+- 0x56c1c-0x56c28: default = (0x4bc5c(this) ? 0 : 200) ms; 0x4bc5c = (port-type vmethod +0x1a0 == 1), true for our
+ USB-C alt-mode port => default 0 => macOS removes the display the instant HPD drops ("HPD Lost period over").
+- 0x573f0: stores the boot-arg's numeric value if present, else the default. Property `hot-unplug-delay-ms` (8 bytes)
+ may override afterwards if present (it is not in our device tree).
+- handleUnplugEvent (0x55134) logs "HPD Lost, delay = %llu" from this field when non-zero.
+The headset's HPD=0 self-heals restored HPD in ~120 ms ([time redacted] -> .997). With
+`appledptx-hot_unplug_delay_ms=300` those would not reach macOS at all. Does NOT cover the IRQ_HPD/INTERLANE retrain
+mode (that path calls handleRemoveInterfaces directly). Needs a reboot; proposed boot-args:
+`amfi_get_out_of_my_way=1 hdcp-fuse-mask=0 appledptx-hot_unplug_delay_ms=300` (optionally `appledptx-max_link_rate=0x14`
+for 60 Hz-only operation).