Skip to content

VC4 display support

Eric Anholt edited this page May 7, 2018 · 10 revisions

HDMI

HDMI display output is supported. HDMI audio support requires kernel 4.12, and a current alsalib installation. CEC is supported through the standard kernel CEC interface. Standard infoframes (AVI, SPD) are exposed.

The HDMI block is never fully powered down, due to CEC requirements. The HDMI PHY and pixel clock are automatically power managed.

TV underscan compensation is not currently supported. The current workaround is to ensure that the TV's underscan mode is disabled (which also improves image quality).

Tuning PLLH frequency to avoid skew against audio clocks is not currently supported.

DSI

Raspberry Pi supports only the official DSI panel. While DSI is a standard, connectors are not standard, and this panel is the only one with appropriate cabling.

DSI is supported in the downstream 4.4 tree in a limited fashion. Power management is not supported, so the display and its backlight is kept on continuously and the HVS is used to implement screen blanking.

DSI is not supported in the upstream kernel tree due to the hackish nature of the current DSI support. There is a branch working on support for it, which brings up a white screen currently. We had some debugging with a scope while at the foundation that suggested the bridge wasn't generating H/Vsync signals. Note that this branch requires the following config.txt lines:

ignore_lcd=2                 # Don't display anything at startup.
disable_touchscreen=1        # Don't mess with the I2C line
mask_gpu_interrupt1=0x1000   # Keep firmware from stealing DSI interrupts

Note for debugging: Gordon Hollingworth reports that the Atmel bridge will wedge regularly if you try to read back its registers, and that's been my experience as well.

Once we figure out what's going wrong with bringing the display up, it will also need a native touchscreen driver on our i2c-gpio node, since the firmware's touchscreen wants to use the hardware I2C controller.

DPI

DPI is fully supported, including power management. Each panel needs individual support in the kernel, since panels typically have custom backlight control or power lines.

One panel, the Adafruit 7" DPI panel, is supported in the upstream tree. It can be enabled with a patch to the device tree, as in this commit

VEC (Composite TV out)

Boris Brezillon has written a series for TV out. It should land in 4.11.

SPI-attached panels

SPI panels won't be directly controlled by the VC4 driver, since they're driven by the SPI bus that's quite separate from the display pipeline.

See Noralf Tronnes's work for support for these panels. However, we may want to build support for doing HVS scanout to a buffer so that SPI can DMA out of that to the panel. Depending on the SPI protocol, we may even be able to use the direct HVS DMA support.