# vb2_dma_resv release-fence — RFC v2 series Three-patch series that opts V4L2 m2m drivers into attaching real producer fences to CAPTURE-side dmabufs, so implicit-sync GPU consumers (Wayland / panfrost / panthor) wait correctly on the producer's decode-completion rather than seeing the dma_buf core's stub fence. | Patch | Subject | |---|---| | `0004` | media: videobuf2: add opt-in dma_resv producer fence helper | | `0005` | media: hantro: attach dma_resv release fence at device_run | | `0006` | media: rockchip-rga: attach dma_resv release fence at device_run | Numbered with the leading 4/5/6 because the fresnel build series carries these alongside the 3 board-scoped `0001/0002/0003` Pinebook Pro DTS patches; the numbers reflect apply-order in the PKGBUILD, not the upstream lore series ordering (which starts at 1/4..4/4 with a cover). ## Status **RFC v2.** Iterated on `lore.kernel.org/linux-media` after v1 was rejected over the dma_fence finite-time contract gap and bus-locked allocation issues. v2 attaches the fence at `device_run` instead of QBUF, which puts allocation in slept-OK context (PM and clocks up, job committed) — per Nicolas Dufresne's v1 review feedback. Cover-letter reference: `marfrit/dmabuf-modifier-triage#3` (campaign session that owns the upstream-targeting work; this directory ships the build-tree-ready form for kernel-agent fleet consumption). ## Scope `subsystem/media/videobuf2/` for the helper (0004), with two driver opt-ins (0005/0006) shipped together because hantro and rockchip-rga both need the helper to be useful on the RK35xx fleet. Splitting 0005/0006 into `driver/hantro/` and `driver/rockchip-rga/` was considered but rejected: they're a single contract series, and their apply-order matters (0004 must precede). Series-as-unit beats per-driver promote eligibility here. ## Fleet eligibility - **fresnel** (RK3399 + hantro + Mali-G52): eligible. Carried in `fleet/fresnel.yaml` since 2026-05-15 (decision flipped from "defer to v2" to "include — v2 in this tree"). - **ohm** (RK3566 + hantro + Mali-G52): eligible. Was the original reproducer for the green-frames symptom. Will be carried in `fleet/ohm.yaml` once that manifest lands. - **ampere** (RK3588 + hantro for some codecs): eligibility deferred — RK3588 uses rkvdec2 for primary decode, hantro role is narrower. Re-assess when `fleet/ampere.yaml` lands per issue #6. - **boltzmann** (RK3588): same as ampere — defer. ## Upstream targeting Not yet posted to linux-media in v2 form. Per `feedback_no_upstream.md` the default is "build-tree only, wait for explicit ask". When/if the upstream submission happens, this directory's `0004/0005/0006` are the canonical source — they include the v2 commit headers (`PATCH RFC v2`, `In-Reply-To` chain to the v1 cover-letter Message-Id).