Skip to content

fkms/pi4 not responding to VC4_BROADCAST_RGB_LIMITED connector property #1580

@alanbork

Description

@alanbork

fkms has a connector property for setting HDMI pixel encoding to RGB limited or RGB full:

https://github.com/raspberrypi/linux/blob/7fb9d006d3ff3baf2e205e0c85c4e4fd0a64fcd0/drivers/gpu/drm/vc4/vc4_firmware_kms.c#L1586

if you set that connector property using proptest

./proptest 89 connector 94 1 # full
./proptest 89 connector 94 2 # limited

it does nothing (contrast this with setting the margin, which takes effect immediately).

Based on this code:

https://github.com/raspberrypi/linux/blob/7fb9d006d3ff3baf2e205e0c85c4e4fd0a64fcd0/drivers/gpu/drm/vc4/vc4_firmware_kms.c#L951

it seems like the only time this property is referenced in the code is when a new mode is set - fine, it need not be immediate, even if that would be nice. BUT, even the next time a new video mode is initialized using kms/drm the limited/full property doesn't seem to have any effect on the pixel encoding actually sent over the HDMI cable.

if you go allllll the way back to a pi0 with the dispmanx firmawre and choose a dmt or cea mode using tvserice it works right there.

It's at least implied by #1579 (comment) that this should work for fkms (just not for regular kms), but it seems like it does not. Reading the code I don't see why it would fail, but maybe it's a subtle bug. Or maybe the bug is in the closed source firmware?

I realize fkms is on the back burner, but it's really unfortunate that there's no way at all to get the pi4 to output in broadcast (CEA) RGB rather than DMT with at least one of the kms or fkms driver sets.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions