[PATCH 0/7] drm/vc4: Add writeback support to the VC4 driver
Boris Brezillon
boris.brezillon at free-electrons.com
Fri Jun 2 01:32:05 PDT 2017
Hello,
This series adds a driver for the TXP (transposer) block which is
providing writeback support.
Note that adding support for this IP required reworking a bit how the
VC4 driver handles commits (vc4_kms.c). I also had to support a new use
case in vc4_crtc.c because the TXP IP is completely bypassing the
pixelvalve element (it's taking its data directly from the HVS FIFO).
First patch is adding a new helper to the core to wait for all pageflips
to be done. It can be used as a replacement for
drm_atomic_helper_wait_for_vblanks() when your HW is only generating
a single frame (AKA oneshot mode), which implies a single VBLANK event.
In this situation, if drm_atomic_helper_wait_for_vblanks() is called
after the VBLANK event has been sent, we face a timeout because vblank
counter (used to detect when vblanks are happening) is never updated
again.
Daniel, I'm not sure this is exactly what you had in mind when you
proposed this approach, so feel free to comment on this patch.
Patches 2 to 4 are modifying the current logic to make it work with
the TXP block.
Patches 5 and 6 are adding code to support the TXP and documenting the
bindings.
And the last patch is defining the TXP block in bcm283x.dtsi.
This series depends on Brian Starkey/Liviu Dudau patchset [1] and has
been tested on a RPi2 with the kms_writeback tests provided here [2].
Regards,
Boris
[1]https://lists.freedesktop.org/archives/dri-devel/2017-May/141796.html
[2]https://github.com/dliviu/intel-gpu-tools/tree/master
Boris Brezillon (7):
drm: Add drm_atomic_helper_wait_for_flip_done()
drm/vc4: Fix vblank handling
drm/vc4: Mimic drm_atomic_helper_commit() behavior
drm/vc4: Use drm_atomic_helper_wait_for_flip_done()
drm/vc4: Add support for the TXP (transposer) block
dt-bindings: Document the VC4 TXP module nodes.
ARM: dts: bcm283x: Add Transposer block
.../devicetree/bindings/display/brcm,bcm-vc4.txt | 12 +
arch/arm/boot/dts/bcm283x.dtsi | 6 +
drivers/gpu/drm/drm_atomic_helper.c | 30 ++
drivers/gpu/drm/vc4/Makefile | 1 +
drivers/gpu/drm/vc4/vc4_crtc.c | 206 +++++++--
drivers/gpu/drm/vc4/vc4_debugfs.c | 1 +
drivers/gpu/drm/vc4/vc4_drv.c | 1 +
drivers/gpu/drm/vc4/vc4_drv.h | 10 +
drivers/gpu/drm/vc4/vc4_kms.c | 47 +-
drivers/gpu/drm/vc4/vc4_regs.h | 1 +
drivers/gpu/drm/vc4/vc4_txp.c | 509 +++++++++++++++++++++
include/drm/drm_atomic_helper.h | 3 +
12 files changed, 755 insertions(+), 72 deletions(-)
create mode 100644 drivers/gpu/drm/vc4/vc4_txp.c
--
2.7.4
More information about the linux-rpi-kernel
mailing list