The taimen-v7.2 tree was ten venus patches behind its own aport series, and a venus_core built from it wedges the SoC
scope: device:google-taimen · severity: trap · confidence: proven · subsystem: media
Symptom – porthole build mod venus-core.ko venus_core --yes refuses
with “does not share an ABI … CONFIG skew”, the config diff against
/proc/config.gz is empty, a hand check with ph-modcrc.py reports zero
CRC mismatches, and after a hand insmod of the tree’s module the phone
logs rtkit-daemon: The canary thread is apparently starving six seconds
later and comes back with bootreason=watchdog.
Cause – two traps stacked. The tree linux-ws (branch taimen-v7.2)
had 197 commits over v7.2.2 while the aport series had 210: the ten venus
bring-up patches (0181-0199: stop_at/clk_limit/boot_stage knobs, the
wrapper clock auto-gating unlock, subcore clocks and GDSCs, the TZ
threshold restore, no power collapse, hfi_trace) and three others never
became commits. A venus_core built without the wrapper unlock touches the
VBIF page and stalls the MMSS NoC – the exact signature of
the-venus-wedge-was-wrapper-clock-auto-gating. Separately, the mod
rung’s refusal was a false alarm: ph-modcrc.py runs inside the workspace,
where there is no llvm-objcopy, and its traceback exits 1, which the
rung reads as “CRCs disagree” (fixed: porthole 73a248d prints the checker’s
words and treats a missing tool as “cannot compare”).
Do not insmod a venus_core by hand, ever: PORTHOLE_MOD_NO_RELOAD
lists venus_core/dec/enc because the firmware does not survive a
shutdown-and-reboot in one boot (venus-decode-works-and-what-it-took).
The rung replaces the on-disk copy and the next boot runs it; that is the
designed path, and tools/ph-reboot.sh is the reboot.
The sync that fixed it (2026-09-04): export the series out of the
container-owned pmaports (porthole sandbox shell --command 'tar ... | base64'), git worktree add ../linux-series v7.2.2, git am all 210
(0189 and 0203 need git apply -C1, abuild’s patch -p1 fuzz had been
hiding the drift), keep a backup ref (taimen-v7.2-pre-sync-20260904),
git reset --hard the product branch onto the series, cherry-pick the
tree-only commits, then porthole aports patches --base v7.2.2 --yes
regenerates the series from the tree (213 patches, r31) so the two agree
again. Before any push, assert porthole aports patches (dry) reports at
least as many patches as the series holds.
