# DF-4048 — transmitter_control_v1_6 applies 16-bit deep-color math to the 32-bit ulSymClock field

## What

`sys/dev/drm/amd/display/dc/bios/command_table.c:857` and `:869-890`
(`transmitter_control_v1_6`): the V1_6 transmitter parameter struct's symbol
clock is a **32-bit ULONG** (`DIG_TRANSMITTER_CONTROL_PARAMETERS_V1_6`,
`sys/dev/drm/amd/include/atombios.h:1559-1575`, "ULONG ulSymClock; // Symbol
Clock in 10Khz"), but the HDMI deep-color ratio code — copy-pasted from
`transmitter_control_v1_5`, where the field is a **USHORT usSymClock** — uses
the 16-bit helpers on it:

```c
params.ulSymClock = cntl->pixel_clock/10;                 /* :857 - also no cpu_to_le32 */
...
case COLOR_DEPTH_101010:
        params.ulSymClock =
                cpu_to_le16((le16_to_cpu(params.ulSymClock) * 30) / 24);  /* :873-874 */
case COLOR_DEPTH_121212:   ... * 36 / 24 ...               /* :877-878 */
case COLOR_DEPTH_161616:   ... * 48 / 24 ...               /* :881-882 */
```

`le16_to_cpu(u32)` truncates the input to 16 bits and `cpu_to_le16(...)`
truncates the result to 16 bits. Any symbol clock whose 10 KHz value
overflows 65535 is computed wrong — which includes common HDMI deep-color
modes (4K@60 10bpc needs 74250; 12bpc 89100; 16bpc 118800 — all > 65535).
The wrong `ulSymClock` is then handed to the VBIOS via
`EXEC_BIOS_CMD_TABLE` (`:892`), programming a corrupted transmitter symbol
clock (display artifacts / link training failure / black screen on the
affected mode). `:857` also skips the endian conversion entirely (moot on
LE x86-64, wrong on BE).

## Reproduce (guest, arithmetic replica)

```
cc -O2 -Wall -o symclock_trunc symclock_trunc.c
./symclock_trunc; echo EXIT=$?     # exits 1 (defect present)
```

## Expected output (run.log)

```
case                          in(10KHz)      correct     produced      ok?
1080p60   8bpc (safe zone)        14850        14850        14850      yes
4K60     10bpc x30/24             59400        74250         8714    TRUNC
4K60     12bpc x36/24             59400        89100        23564    TRUNC
4K60     16bpc x48/24             59400       118800        53264    TRUNC
HDMI1.4 4K30 16bpc x48/24         34000        68000         2464    TRUNC

expected: all cases compute correctly; observed: 4/5 truncated
(also: :857 assigns without any cpu_to_le32 conversion - moot on LE x86, wrong on BE)
EXIT=1
```

4/5 realistic deep-color cases produce a wrong 32-bit field value from the
kernel expression; only the sub-655.35 MHz 8bpc case survives.
