Skip to content

[2/5] soc: apple: Resolve radio PERST through the sleep controller PCIe phandle - #1381

Closed
erikwb wants to merge 1 commit into
j713/radio-s2r-dartfrom
j713/radio-s2r-perst
Closed

erikwb wants to merge 1 commit into
j713/radio-s2r-dartfrom
j713/radio-s2r-perst

Conversation

@erikwb

@erikwb erikwb commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

The shared sleep path searches for a T8140-compatible PCIe host, so it misses the T8132 host on J713. Follow the sleep controller's apple,apcie phandle instead. This lets the existing sleep sequence assert the shared radio PERST before removing PCIe clocks.

Part 2/5 of J713 native radio S2R, stacked on #1314 at 00f5d3e3f848. stack/j713-radio-pr1314 mirrors that PR's head so each subsystem has a separate review diff in this repository.

Series order: #1378 → #1381 → #1382 → #1383 → #1384.

Depends on #1378.

Validation on this base:

  • Full arm64 Image, modules and DTBs; DART/PCIe module and no-provider build configurations.
  • Nine focused host suites, including callback-lifetime interleavings and four rejected mutations; ASan/UBSan lifetime run; checkpatch clean for all five commits.
  • J713: clean boot, one suspend-abort/unwind test and three consecutive 31-second RTC deep sleeps on one boot. Wi-Fi gateway traffic and Bluetooth Read Local Version succeeded after every wake; all ten CPUs, internal panel, root storage and thermal checks passed without kernel warnings or taint.

Qualification covers radio recovery in the minimal sleep profile. GPU, external displays and SIO/audio were excluded, SLC allocation remained off, and paired Bluetooth traffic was not tested.

Use the apple,apcie phandle instead of searching for a T8140-compatible
controller. This allows the shared sleep path to assert J713 radio PERST
before removing the native PCIe clocks.

Signed-off-by: Erik Bourget <erik@ebourget.net>

@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.

The change itself is fine: both t8140.dtsi and t8132.dtsi already give the sleep node apple,apcie = <&pcie0>, the binding documents it, and of_parse_phandle() returns a reference the existing of_node_put() drops, as of_find_compatible_node() did.

The failing kunit job (https://github.com/aurora-silicon/linux/actions/runs/42695306042) is not caused by this commit. It fails to link with undefined symbol: t8132_spmi_va: arch/arm64/kernel/sleep.S on the base (b6f4482, from #1314) references a symbol that only exists with CONFIG_APPLE_T8140_SLEEP=y. It has to be fixed on the base.

This can land only after #1314 and #1378.

@erikwb

erikwb commented Nov 11, 2026

Copy link
Copy Markdown
Contributor Author

Folded into #1314 (authorship kept), which carries the J713 radio sleep work from here on. Closing in favour of it.

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