# DF-4103 — amdgpu atombios_encoders: unguarded `enc_priv` (NULL) dereferences in all DIG setup paths

File: `sys/dev/drm/amd/amdgpu/atombios_encoders.c` (pass 2)
Class: NULL-pointer dereference (CWE-476) → kernel panic / NULL-page WRITE
Hardware gate: AMD GPU (CIK/VI, DCE8/10/11 non-DC asics) with LCD-supporting UNIPHY encoder.
Family: amdgpu twin of DF-3957 (radeon atombios_encoders, same code shape).

## Build
Not buildable/runnable on the audit guest: the QEMU guest has no AMD GPU
(`pciconf -l`: only Intel/QEMU devices; vgapci0 = bochs 1234:1111).
Source-level certainty only. See VERDICT.md.

## Run (would be, on hardware / with an emulated ATI ROM)
1. Craft a VBIOS image whose encoder table yields an UNIPHY encoder with
   `ATOM_DEVICE_LCD_SUPPORT` but with the `LVDS_Info` master data table
   absent (or with a master-table index of 0), so
   `amdgpu_atombios_encoder_get_lcd_info()` returns NULL
   (atombios_encoders.c:2081 `if (amdgpu_atom_parse_data_header(...))`
   fails → returns NULL at 2205).
2. Boot / `kldload amdgpu` → `dce_v10_0_hw_init` (dce_v10_0.c:2829) →
   `amdgpu_atombios_encoder_init_dig` (atombios_encoders.c:1744) →
   `amdgpu_atombios_encoder_setup_dig_transmitter(encoder,
   ATOM_TRANSMITTER_ACTION_INIT, 0, 0)` (1758) →
   `dig = amdgpu_encoder->enc_priv;` (837) → `int dig_encoder =
   dig->dig_encoder;` (848) → NULL-page READ → kernel panic.

## Expected
`Fatal trap 12: page fault while in kernel mode` at
`amdgpu_atombios_encoder_setup_dig_transmitter+0x...` during amdgpu
hw_init (or later, `amdgpu_atombios_encoder_setup_dig` NULL WRITE at
offset of `panel_mode` on first DPMS-ON).

## Artifacts
- VERDICT.md — full narrative with path:line trace
- verdict.json — machine verdict (status: untested, hardware absent on guest)
- fix.diff — add `if (!dig) return;` guards (mirrors the guard the file
  already has in `amdgpu_atombios_encoder_set_backlight_level`, :91-93)
