Skip to content

HID: dockchannel-hid: settle 50 ms after releasing the AFE reset - #1083

Merged
RyanTheTide merged 1 commit into
aurora-silicon:integration/aurorafrom
rolotrealanis98:pr/dockchannel-afe-settle
Nov 8, 2026
Merged

RyanTheTide merged 1 commit into
aurora-silicon:integration/aurorafrom
rolotrealanis98:pr/dockchannel-afe-settle

Conversation

@rolotrealanis98

Copy link
Copy Markdown
Contributor

With power method 2 and a host-driven AFE reset the driver releases the line and sends HasChanged at once. On the J716s (MacBook Pro 16-inch, M5 Pro; MTP firmware 6320.86.1; reset on SMC gp1c, active low) the trackpad only came up reliably with a 50 ms settle after the release, which the driver already waits for a firmware-managed reset. This adds the same wait to the host-driven path.

It also logs assert and release at info level (and a failure to drive the line as an error), so a boot log shows whether the reset ran at all.

Tested on: J716s: "Touch MT ready" on 3 of 3 boots when introduced (round R3-R), and on every boot since; R3-SERIES and R3-S (2026-11-07): "Touch MT ready" at 1.34 s, multi-touch working. dockchannel-hid.o builds clean with W=1 on integration/aurora 7aee01a.

Dependencies: none to build. Applies on its own and on top of #491. On hardware the J716s reset line is the SMC's second GPIO bank (described in the J716s DT PR).

Reviewers: authors of 6a411d0 (power method 2) and 3661ab4 (firmware-managed M5 trackpad power).

Open questions:

  • Are the two info-level lines acceptable, or should they be dev_dbg?
  • Is 50 ms right for other host-driven boards, or should the settle time come from the DT?

@RyanTheTide RyanTheTide left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merge-train pre-review (11-08). It isn't on our merge list yet, so a maintainer decides. The settle wait looks right. The new dev_info on every AFE reset assert/release logs on each power transition (open/close, suspend/resume), which adds lines to every boot and sleep log; we keep boot logs clean. Could it be dev_dbg, keeping the dev_err on failure?

Power method 2 with a host-driven AFE reset releases the line for a
power-on and sends HasChanged immediately. The sequence validated on the
J716s (MacBook Pro 16-inch, M5 Pro, MTP firmware 6320.86.1; "Touch MT
ready" on 3 of 3 boots, with the reset on SMC gp1c, active low) waits
50 ms after the release before HasChanged, as this driver already does
for a firmware-managed reset. Do the same for the host-driven line.

Log a failure to drive the line as an error. Each assert and release is
logged at debug level only, so dynamic debug can trace the line without
adding a message to the boot log on every power transition.

Signed-off-by: Rolando Trevino <rolotrealanis@gmail.com>
Assisted-by: LLM Claude
@rolotrealanis98
rolotrealanis98 force-pushed the pr/dockchannel-afe-settle branch from 227703b to 00768a7 Compare November 7, 2026 15:32
@rolotrealanis98

Copy link
Copy Markdown
Contributor Author

Good point. In v2 (00768a7) the assert/release line is dev_dbg, so dynamic debug can still trace the reset. A failure to drive the line stays dev_err.

That is the only code change; the 50 ms settle is the same. dockchannel-hid.o builds clean with W=1. The settle itself is tested on the J716s ("Touch MT ready" on every boot since R3-R).

@RyanTheTide
RyanTheTide merged commit 284d476 into aurora-silicon:integration/aurora Nov 8, 2026
1 check passed
@RyanTheTide

Copy link
Copy Markdown
Contributor

Tested before merging, silent: one-shot test kernel 7.3.0-aurora-f4mtr3x/y = integration/aurora 36d9198 plus this PR, #1082, #1083, #1084, #1060 and the Touch ID series, all merged onto the current tip. It was booted once on each of the four fleet Macs (M2 J413, M1 Pro J316s, J616s M4 Pro, MacBook Neo J700), and our regression suite was compared with the fleet30 rows on the same Macs:

  • boot err-level lines and AVC: 0 on every Mac;
  • 12 suspend/resume cycles with speaker regrant;
  • Wi-Fi/BT reconnect, camera and display;
  • AVD decode bit-exact (fps within ±2%);
  • ANE runs and resumes.
    No regression came from these PRs.

For this PR in particular: dockchannel HID came up as before on the M2, the J616s and the Neo, with no dockchannel-hid warnings or errors and no change in boot or resume timing beyond the added 50 ms settle.

Thank you, Rolando!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants