## Iteration 32 — Phase 8 (close): Kernel substrate cleanup → 7.0-11 SHIPPING

Closes 2026-05-14, third campaign-day milestone after iter31 α-29 fix. Mechanical cleanup — no behavior change.

### Goal

Strip the diagnostic `pr_info` printks added during iter17–iter31 root-cause investigation, ship a clean kernel for ongoing fresnel-fourier work.

### Printks removed

In `drivers/media/v4l2-core/v4l2-ctrls-request.c`:
- iter21_setup, iter21_setup_ref
- iter22_clone_*
- iter23_loop
- iter24_req_to_new, iter24_try_or_set, iter24_loop_break, iter24_loop_done

In `drivers/media/platform/rockchip/rkvdec/rkvdec-hevc.c`:
- iter17 (`rkvdec_hevc_run:` printk)
- iter20 (ctrl_hdl + sps/dp byte dump)
- iter27_dpb01, iter31_dpb23 (dpb dumps)
- iter27_sl0, iter31_sl1 (slice_params dumps)

### Substrate state

- `linux-fresnel-fourier 7.0-11` built on boltzmann, installed on fresnel.
- 6 load-bearing base patches retained:
  - `0001-arm64-dts-rk3399-pinebook-pro-add-OC-OPP-tables-1704-2184.patch`
  - `0002-arm64-dts-rk3399-pinebook-pro-enable-hdmi-sound.patch`
  - `0003-arm64-dts-rk3399-pinebook-pro-spi1-max-freq-10MHz.patch`
  - `0004-media-videobuf2-add-opt-in-dma_resv-producer-fence-h.patch` (RFC v2 #1)
  - `0005-media-hantro-attach-dma_resv-release-fence-at-device.patch` (RFC v2 #2)
  - `0006-media-rockchip-rga-attach-dma_resv-release-fence-at-.patch` (RFC v2 #3)

### Verification (post-reboot on 7.0-11)

3-codec anchor regression:

| Codec | Status | SHA-12 |
|---|---|---|
| H.264 10F | PASS | dd4f5f2d552c |
| HEVC 10F | PASS | 108f925bb6cb |
| VP9 10F | PASS | cf35908ae0f9 |

Hashes IDENTICAL to those captured on diagnostic 7.0-10 build — confirms no kernel-side regression from removing the printks (they were pure logging, no behavior touch).

dmesg `grep -E "rkvdec_iter|iter2[0-7]|iter3[01]|rkvdec_hevc_run:"` post-decode: **empty** (as expected).

### Substrate-memory updated

`reference_fresnel_kernel_substrate.md` bumped to 7.0-11, with a new "RESOLVED 2026-05-14" footnote noting that Bug 4 + Bug 5 turned out to be libva-side (not kernel-side) — the libva-vaapi cached-mmap readback path actually works correctly on this kernel; α-25 + α-29 fixes are in libva backend, not kernel.

### Remaining campaign open items (post iter32)

1. **MPEG-2 / VP8 multi-device probe** — libva backend's `find_codec_device` picks ONE device for the entire session. Forcing hantro disables H264/HEVC/VP9. Architectural change required; design decision belongs to user.
2. **Backend env-gated diagnostics** (iter29 `LIBVA_HEVC_DUMP_SLICE_TAIL`, iter30 `LIBVA_TS_SCALE`) — no behavior change without env set, retained for future regression debugging. Low priority cleanup.
3. **α-26 cosmetic revert** — `decode_params->short_term_ref_pic_set_size = picture->st_rps_bits` was mis-routed (right value to wrong V4L2 field; rkvdec doesn't use that field). Could revert to 0. Cosmetic.

### Campaign final state

After today's arc: Bug 4 fixed (iter25 α-25), Bug 5 fully fixed (iter25 α-25 + iter31 α-29), kernel substrate shipping (iter32 7.0-11). The 5-codec target reduced to 3/5 strict-PASS + 2/5 untestable through libva's single-device probe — pre-existing limitation orthogonal to Bug 4/5.
