-
Notifications
You must be signed in to change notification settings - Fork 24
VC4 display support
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.
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.9 tree. In the downstream 4.14 tree it is currently broken, but work is in progress to fix things.
In the upstream tree, DSI is in place but no overlays are included. An working DT can be found on a branch, though it will cause the vc4 driver to fail to load if the DSI panel isn't attached. Note that this requires:
ignore_lcd=1 # Don't display anything at startup.
disable_touchscreen=1 # Don't mess with the I2C line
Eventually, we should include a native touchscreen driver on our i2c-gpio node. There's a linux driver for the touchscreen controller, we just need a few changes.
If you're interested in attaching a custom DSI panel, see this page
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
TV out is fully supported.
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.
Noralf Tronnes's tinydrm code supports many SPI display panels. To get vc4 to do hardware accelerated rendering to them, someone needs to build a renderonly Mesa driver to use vc4 and share those vc4 buffers to tinydrm. See the pl111 driver in Mesa for an example of what it would look like.
Eventually, depending on the SPI protocol, we may even be able to use the direct HVS DMA support to avoid the CPU copy out of the vc4 buffer and into the SPI buffers.