Skip to content

Consolidate our Linux WIP into aurora-wip - #534

Merged
RyanTheTide merged 437 commits into
aurora-wipfrom
consolidate/aurora-wip-20261028
Oct 28, 2026
Merged

RyanTheTide merged 437 commits into
aurora-wipfrom
consolidate/aurora-wip-20261028

Conversation

@RyanTheTide

Copy link
Copy Markdown
Contributor

This consolidates our open Linux work into aurora-wip, drafts included, so the WIP lives in one place. The gate for aurora-wip is a clean build with the universal config plus the host selftests. Hardware testing of the tested head happens on #533.

What it brings in

Conflict resolution

Left out

Testing

  • Built with the universal config, WERROR and FORTIFY (release 7.3.0-aurora-awip-consol1).
  • apple-dcp host selftests: 80/80.
  • asahi-m4 golden and MMU suites and the G17 resource tests pass, as on aurora-wip. The DART range harness fails to build its controls fixture on aurora-wip already and still does here.

🤖 Generated with Claude Code

RyanTheTide and others added 30 commits October 26, 2026 18:20
Device::parent is a public API in the carried Asahi abstractions, and AOP service lookup uses it with AUXILIARY_BUS disabled. The inherited expectation described the upstream crate-private helper and becomes unfulfilled in the built-in Asahi/firmware KUnit recipe. WERROR correctly rejects it.

Remove the obsolete dead_code expectation from the public method. Keep warning enforcement and the minimal test config; do not enable an unrelated bus to hide the warning. Production behavior is unchanged.

Assisted-by: LLM
(cherry picked from commit e7843a8)
With SCHEDSTATS disabled, stock bindgen loses the alignment of the empty sched_statistics member and shifts task_struct.mm. A current-MM read can then pass a scheduler-list pointer to the RSS helpers. Keep unconditional size, alignment and offset checks in production builds and document the corrected generator and command-line BINDGEN selection.
Keep defconfig plus the single shared fragment while restoring SELinux and its LSM policy order, nftables and NAT, container and systemd requirements, filesystems, hardening, desktop compatibility and attached USB peripherals. Do not enable scheduler statistics to hide an invalid Rust binding layout.
Prepare the pinned generator at a stable source-tree entry point and prefer it for in-tree and O= builds. Keep every generated layout assertion mandatory and retain stock-tool rejection coverage. Document upstream status and the scope of aligned empty records.

Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>

Assisted-by: LLM
Asahi dracut loads vfat and mounts the system ESP without charset options before unpacking vendor firmware. Match Fedora codepage 437 and ASCII defaults with built-in converters so the mount does not depend on a modular ISO-8859-1 converter absent from initramfs. Retain XZ and Zstd firmware loading for distribution firmware packages.

Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>

Assisted-by: LLM
…t record

When a compute command fails on the GPU the firmware writes a
zero-duration completion record for it, which quarantines its queue,
and reports the failure with a firmware event of type 7 carrying the
queue and the stamp the command would have stored. It never stores
that stamp. The driver ignored the event, so the quarantine waited for
a retirement witness that could not arrive, and the queue kept its
pool, its traversal scratch and its share of the lower GPU VA window
for as long as the module stayed loaded.

Under ray query stress that fails this way every few seconds (for
example ray_query.stress.geometry_shader beside other clients) the
retained queues filled the lower window within minutes. Every later
allocation there failed: publications returned EBUSY, and gnome-shell
crashed on ENOMEM creating a 16K texture after about 7 minutes.

Decode the event as ComputeFault and accept its stamp as the faulted
command's completion stamp for the quarantine's retirement witness,
while it is newer than the stored one. The witness still requires the
queue's ring to be fully consumed, so commands published after the
failed one keep waiting for their own stamp.
Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
The J616s panel has no adj-height-mm property in the r5g DT. With its
notch hidden, probe therefore leaves height_mm zero and the panel EDID
builder returns EINVAL. Read the full height before the optional adjusted
height and describe the 216 mm viewport in DT.

Even with dimensions repaired, the real 118-line vertical porch and
82-line notch-expanded pulse cannot fit in a base EDID DTD. Bound those
fields only in the synthetic identity summary, retaining resolution,
clock and blanking. Enumerate and program the unchanged DCP catalogue.
Restore exact connector millimetres after DRM's EDID update.

Test the absent ADT panel nodes with synthetic machine-level properties,
real mode geometry, missing adjusted height, and the actual iomfb probe
and DRM EDID blob allocation. The publication KUnit case fails on r5g's
builder even after repairing the height read.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Keep numeric serial zero when no panel identity source provides one, but
use an explicit "unspecified" text descriptor instead of eight zeroes.
Both remain non-null to userspace, and edid-decode no longer warns about
a dummy serial on the generic J616s fallback. Do not invent an identity.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
The shared timestamp writer delegates to TimestampVmap after the G17
mapping reuse change. Compile that production helper in the host test
instead of providing a Map without write(), so the stores, cache clean
and overlapping-destination checks run again.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Update the host adapters for the shared availability notifications and
compute source loans introduced by the G17 submission changes. Exercise
the production ReaderHint predicate and verify a loan prevents sharing,
reuse and rearming until its last reader leaves.

Keep the close, recovery, growth and first-publication negative controls.
Point the sharing mutations at the current shareable predicate so both
retirement and kill guards are still tested.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Use valid sixteen-slot handoffs in the calibration KUnit fixture, with
both eleven-state maps ending at raw OPP 15. Check the highest state's
second voltage lane as well as the intermediate-state ordering and
relative-frequency consistency.

The former 0..10 fixture could not pass the production map reader and
never exercised the final five raw operating points.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Run both dynamic compute growth and the full logical queue budget checks
with the 25G83 floor of 32, alongside the existing floors. This checks
render headroom and firmware-owned QID exclusion on the M4 Pro layout.

Bring the host resource runner forward to the shared reserve_for helper
and current render reserve, retaining its capacity and stale-ID controls.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Follow the split reusable-binding, raw publication and domain-wait helpers
when checking scheduler-release ordering. Keep the timeout check at the
shared wait helper. Update growth and pool-admission adapters for source
loans, reserve_for and the off-lock compute slot allocation boundary.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Adapt the controlled-clock tests to the progress-domain waits and bound
compute fast-path fallback. Keep one admission budget across retries,
growth and work-state waits, with cancellation and VM-status checks.

Replace the obsolete single-check mutation with a disabled shared-deadline
control: release waits now perform additional admission checks. Retain
negative controls for renewed budgets, gate wake storms and alias lifetime.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Update the host DART adapter for the firmware mirror/handoff dispatch,
DCP domain flush and managed-stream quarantine. Verify that a failed
page-table publication still issues invalidation, its first error wins,
and a power failure does not skip a second reachable DART.

Keep the device-address offset, locked/unlocked and legacy controls.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Trace calibration, firmware admission, queueing, power, recovery and
memory paths against the shared Neo backend. Separate changes already
present through #463 and #423 from firmware ABI restrictions and missing
hardware measurements. Record the public-source boundary for M5 Pro.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
The parameter accessor now returns a copied integer. Update the host
adapter so the production priority selection compiles with the same API.
This retains the existing firmware/version and explicit-policy controls.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Add the missing module description so the shared Fedora build no longer
reports a modpost warning for pmp-report-test. Test behavior is unchanged.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
The Rust kunit_tests macro emits its test modules only for KUNIT=y.
With the shared Fedora config's KUNIT=m, the helper constructors and
compute-floor constant were still compiled and failed WERROR as dead
code. Use the macro's exact condition for these four test-only helpers.

Keep both the shipping config and warning policy unchanged.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Record why the shipping KUNIT=m config exposed unused G17 test helpers
and why matching Rust's built-in KUnit guard fixes it without changing
hardware policy or weakening warning checks.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Record the startup, lead-command, pointer-block and topology differences
alongside the shared submission path. MMIO pair registration on 25G83
and other fused core counts remain unqualified rather than inferred from
Neo's different hardware and firmware interface.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Apply DjDeveloperr's GPU-demand mechanism from d69f14f to T6040.
The CPU-only policy can leave the fabric low during GPU-only work. Enable
its graphics demand input and describe the existing graphics PMGR state
in DT, as T8140 and T8132 already do.

Use T6040's existing DCS 5 / fabric 2 table, not T8140's state numbers.
CPU demand keeps its three-sample sustain rule; graphics demand uses the
shared hold and idle release. No voltage, ceiling, parameter or new
platform option is introduced. Confirm powered-state tracking and idle
floor release on J616s before qualifying the performance result.

Link: #440
Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Compile the production rail tables, sample, hold and floor encoder with
controlled PMGR reads and time. Check T6040 DCS 5/fabric 2, unchanged
T8140/T8132 floors, release after 32 ms, partial power state, read failure,
CPU demand composition and vote errors. Use the real PMC rail encoding.

Negative controls remove GPU demand, release too early or retain the
floor at idle. These are CPU controls; J616s PMGR tracking, idle power,
PMP cooperation and performance still need hardware qualification.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
…r binds

The T6040 PMC description still excludes PMP agent 0 from the earlier
bring-up, when the firmware did not run and iBoot's top-state floor would
have stayed in force. PMP startup is now supported and the GPU's report
entry follows its power lifetime, but the PMC cannot honour that demand
while the agent remains disabled.

Use the existing apple,pmp supplier dependency before enabling static
PMP, CLPC and AP voters, as in the Neo voter integration. The T6040 match
data continues to restrict them to the established DCS/SOC rail mask;
no display rail, voltage, power ceiling or new control is introduced.

Confirm live PMP votes, idle release and sustained GPU/CPU thermal
behaviour on J616s before qualifying this candidate.

Link: #219
Link: #402
Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
The M4 Pro (T6040/T6041) SPI controllers are register compatible with
T8103, like the T6020 and T8140 ones.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Sensors whose enclave session needs a signed root key (the J700 and
J616s part, 0x3356) take it as per-device factory data, like the
calibration. Let firmware-name carry it as an optional second entry so
the board description names it.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
RyanTheTide and others added 19 commits October 28, 2026 14:06
#516, #519 and #451

This is the tree of the J616s test kernel 7.3.0-aurora-j616s-batch5, built
from these parents:

- wip/j616s-batch1-20261027 (e1a25b5): the J616s bring-up series
- integration/aurora 647f084 (includes #498, #512, #523 and DJ's G17 merges)
- #518 ad14f2d: 25G83 tiler growth fix (Jonathan Goyvaerts)
- #516 31340ab: T6040 two-lane DP pin D beside USB3
- #519 d769aaf: tipd reconcile of firmware-entered J616s DP Alt Mode
- #451 0d43a7f: J616s external displays (František Balázsy)

Resolution notes:
- #451's display code supersedes the older #451 copy carried by batch1,
  including its desktop 26.6 adaptive sync. Batch1's callback guard,
  ProMotion presentation timestamps, minRR=0 restore and swap watchdog stay.
- The display gate finds a Type-C route's PHY by its typecN name, so #451's
  dcpext0 route@0 is not enabled on a tether whose ATC0 PHY is disabled.
- #516's pin D and #519's tipd reconcile are kept as in the J616s series.
  Batch2's selftest fixture reconcile for the G17 owner and CLPC fixtures is
  part of this tree.

Tested on the J616s with the follow-up commits: boots with 0 WARN, external
display at 1920x1080@180 through DP Alt Mode, 20/20 mode switches and
15/15 DPMS cycles with no new kernel errors.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
dcp_peer_hints_26_6() clears the 32-byte allocation block of the display
hints (primary and peer endpoint IDs, extra pipe count, flags and the
reserved bytes) with memset(&r->primary_id, 0, 32). FORTIFY_SOURCE sees a
write of 32 bytes into the 4-byte primary_id field and fails the build
with -Werror (__write_overflow_field), so dcp.o does not compile with the
Fedora-based release configuration.

Group the allocation fields with struct_group_attr(), keeping the packed
layout, and clear the group by its size. The offsets are unchanged and a
new static_assert pins the group at 32 bytes.

Fixes: e3e7131 ("drm/apple: drive a display wider than one pipe with two desktop 26.6 pipes")
Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
(cherry picked from commit e2f5382def10e2b927edcd79a55120c9b1cbac4d)
The actual-DCP route fixtures compile the real dcp_typec_route_set(),
dcp_typec_route_deactivate() and dcp_typec_route_available(). The
J616s series added hybrid hand-over state to them. Deactivation now
clears peer_starved and typec_narrow, releases a desktop 26.6 peer and
restores the fixed output through its own fixed_xbar. A port leaving
DP clears typec_yielded and dcp_hybrid_fails and hands every yielded
hybrid on the port's routes back to HDMI. Availability asks
dcp_typec_hybrid_first(). The mock struct apple_dcp and port had none
of this, so seven units no longer compiled.

Add the fields and a counter. Extract the real dcp_typec_hybrid_first()
over the production defaults (module parameter -1, no DT opt-in), so
the policy is as before. Stub the peer release to assert, since no
scenario is on desktop 26.6. Let the single-port list walk yield the
port's one route when it walks routes.

Probe now records the fixed output's crossbar in fixed_xbar as well
as xbar (7b99095), and deactivation restores the fixed route
through fixed_xbar. The mux-release-stages fixed-restore case set
only xbar, so set both as probe does. Its assertions are unchanged:
the restore is retried once after its failure and the deselect stays
balanced.

Fixes: 7b99095 ("drm/apple: fabric: keep the hybrid pipeline's HDMI crossbar apart from its Type-C route's")
Fixes: 0d43a7f ("drm/apple: fabric: hand the hybrid between an HDMI and a two-pipe Type-C display")
Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
(cherry picked from commit e549591ec26d877731f574c98b82b8fd1052cd8d)
Desktop 26.6 now takes adaptive sync with a mode set. 562eb4c
removed dcp_mode_vrr_supported(), which the publication fixture
extracted unconditionally. 6477da6 made dcp_crtc_atomic_check()
turn a VRR_ENABLED change on that firmware into a mode set, through
drm_atomic_get_old_crtc_state() and crtc_state->mode_changed, which
the VRR admission fixture did not model. So publication-hpd failed
to build its unit and vrr-rejection did not compile.

Extract the VRR filter only where the source still has it. Give the
VRR fixture the desktop firmware value, mode_changed and an old-state
lookup that counts its calls. The existing 72 admission cases run
unchanged and now also check that no other firmware looks at the old
state or forces a mode set. Where the source has the desktop path, 12
more cases pin it: an enabled CRTC whose VRR_ENABLED differs from its
old state gets mode_changed, and nothing else does (a disabled CRTC,
an unchanged VRR_ENABLED, no old state).

Fixes: 562eb4c ("drm/apple: enable adaptive sync on desktop 26.6 external displays")
Fixes: 6477da6 ("drm/apple: enable adaptive sync on the desktop 26.6 internal panel")
Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
(cherry picked from commit 6822701ad2722a56da72ac27cfb0e6561b901029)
The batch5 merge takes #451's desktop 26.6 adaptive sync and removes the
J616s series' parameter sequence (dcp_modeset_sync(), its fixed-refresh
fallback on a rejected VRR mode set) and its admission gate
(dcp_desktop_vrr_check(), dcp_desktop_vrr_supported()).

Retire panel-adaptive-fallback, which drove only that removed sequence;
vrr-rejection now pins #451's VRR_ENABLED-to-mode-set admission.
Drop the stubs other fixtures kept for the removed functions
(desktop-unknown-modeset-recovery, vrr-rejection), which no longer
compile as unused. In the publication fixture, take lookup_mode() by
its definition: the J616s takeover check starts a line with a
lookup_mode() call, which the line-start pattern matched first.

panel-adaptive-watchdog is unchanged: the fixed-refresh latch after an
adaptive swap times out remains.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
The external display processors of the M4 Pro/Max (apple,t6041-dcpext,
desktop 26.6 IOMFB) announce no dcpav-service-epic, so the EDID read
through the DCPAV service never runs and every connector they drive has
an empty EDID. Userspace then names the monitor "Unknown".

The firmware still exports the TimingElements and DisplayAttributes of
each sink it drives, including the sink's ProductAttributes. Build the
base EDID block from them as the T8140 (H17P) external path already
does: enable the firmware metadata for the desktop external processors,
check the property extent and parse the sink identity from
DisplayAttributes, and read the IsPreferred, IsInterlaced, SyncPolarity
and PixelRepetition keys of each timing so the preferred timing can be
described. The published modes keep their flags; only the EDID's
detailed timing takes the polarity.

These processors have no cable generation of their own (their HDMI
output has no Type-C session), so count sinks instead: the first is
the one found at boot, and each cable attach or detach, Type-C route
change or HDMI unplug starts a new one, which an earlier sink's
metadata can never match. A firmware HPD loss alone does not drop it,
as the link can bounce without the sink being described again.

The H17P external, the other DCPs and the internal panels are
unchanged. The firmware 27 path of t6050/dcp gets its EDID through the
DCPAV service and its display product query only identifies an Apple
display, so there was nothing there to port to 26.6.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
(cherry picked from commit 221e2ac)
Brings the J616s batch5 kernel (the tree running on the M4 Pro) up to the
current integration/aurora, which adds #524 (J713 T8132 energy model), #526
(the T6041 display fabric carry, whose peer allocation field group batch5
already has) and #529 (J713 USB-C idle power).

Conflict resolution:
- selftests apple-dcp rate.py: keep batch5's version. Its fixtures follow
  #451's desktop adaptive sync and the T6041 external EDID. The
  integration/aurora side only changed how the lookup_mode() definition is
  found; its line-start pattern also matches the indented
  "lookup_mode(dcp, ..." call that batch5's iomfb.c has before the
  definition, while batch5's 'bool lookup_mode(' marker finds the
  definition in either form.

#529's ATC and dwc3 changes merge cleanly beside #516's two-lane DP pin D.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Brings the integration/aurora tip and the J616s batch5 kernel (#451's
external displays, #516 pin D, #519's DP Alt Mode reconcile, #518, the
T6041 external EDID and the batch1 J616s series) into aurora-wip.

Conflict resolution, all in tests and host fixtures:
- drm/apple av-lifetime-test.c: keep aurora-wip's compact_tx_lock init.
  The merged afk keeps that lock.
- tools/asahi apple-dart-range-tests.py: keep aurora-wip's fixture whole.
  The merged apple-dart.c is aurora-wip's, with the DCP domain flush.
- tools/asahi g17-resource-tests.py: take the J616s side. The merged
  QueueIds has no publication field.
- asahi-m4 check-channels.rs and run-golden-tests.py: keep aurora-wip's
  FIRMWARE_BUILD extraction, which tolerates a tree without fwid.rs.
- asahi-m4 test-mmu-retention.py: keep aurora-wip's UatQuirks model, and
  drop the J616s side's static pgtable stub, which aurora-wip injects with
  its own quirk-aware version.
- asahi-m4 abi.py: the J616s side compares only the 600-byte
  params_global prefix, assuming frozen bindings without the capacity
  tail. aurora-wip's frozen bindings already carry it, so compare the
  prefix only when they lack it and keep the tail's static asserts.

The asahi-m4 golden and MMU suites and the G17 resource tests pass as on
aurora-wip. The DART range harness fails to build its controls fixture on
aurora-wip already and still does.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
asahi.config: keep #470's trimmed list. #465 is the base of the stack
#470 mirrors on aurora-wip, and the options it restores are now either
inherited from the base config (ENERGY_MODEL), chosen by match data
(APPLE_SIO_T6030 no longer exists) or selected by their users (APPLE_AOP
and RUST_FW_LOADER_ABSTRACTIONS by the AOP sensors, KEYS by TRUSTED_KEYS).

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
asahi.config: keep #470's list. #438 enabled the power allocator and its
energy model for a Fedora base. The governor and default are already in
the fragment, and #470 found both bases enable ENERGY_MODEL and
ARM_APPLE_SOC_CPUFREQ, so the resolved configs do not change.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
asahi.config: keep #470's list. #394's 48-bit VA, 4K userspace and
power allocator requests are already in it. The choice negations it adds
(64K pages, step-wise default) are decided by the 16K page and power
allocator default requests, which #470 trimmed as redundant.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
t6040.dtsi and t6040-j616s.dts: keep the external display chain from
#451 (t6040-j616s-extdisp*.dtsi), which supersedes #506's disabled
dcpext0/dcpext1 descriptions and the HDMI bridge stanza. Taking both
would define the same labels twice. #506's other J616s hardware,
console supply and loader placeholder descriptions merge as they are,
and every Apple DTB still builds.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tion

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…fixtures

#519 makes the CD321x update publish the DisplayPort mode the firmware
entered as a partner altmode, and drop it with the partner. The probe now
takes the connector from a "displayport" reference when the port has one.
The tipd host fixtures did not know either, so 24 of them stopped building.

- lifecycle: carry partner_altmode_dp and the DP mode VDO, and count
  partner altmode registration against removal.
- quiesce and the transaction fixtures built on it: carry
  partner_altmode_dp. They never enter DP on the partner, so the altmode
  helpers assert they are not reached.
- pm: report a "displayport" reference, which the probe fixtures already
  resolve, and assert the port-node fallback is not taken.

No assertion is relaxed. apple-dcp host selftests: 80/80.

Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Assisted-by: LLM
Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

5 participants