linux-hardened/drivers/gpu/drm/vc4
Boris Brezillon 1d4118ca16 drm/vc4: Rework the async update logic
vc4_plane_atomic_async_check() was only based on the
state->{crtc,src}_{w,h} which was fine since scaling was not allowed on
the cursor plane.

We are about to change that to properly support underscan, and, in order
to make the async check more reliable, we call vc4_plane_mode_set()
from there and check that only the pos0, pos2 and ptr0 entries in the
dlist have changed.

In vc4_plane_atomic_async_update(), we no longer call
vc4_plane_atomic_check() since vc4_plane_mode_set() has already been
called in vc4_plane_atomic_async_check(), and we don't need to allocate
a new LBM region (we reuse the one from the current state).

Note that we now have to manually update each field of the current
plane state since it's no longer updated in place (not sure we have
to sync all of them, but it's harmless if we do).
We also drop the vc4_plane_async_set_fb() call (ptr0 dlist entry has
been properly updated in vc4_plane_mode_set())

Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20181130090254.594-4-boris.brezillon@bootlin.com
2018-11-30 10:34:45 +01:00
..
Kconfig drm/vc4: add HDMI CEC support 2017-07-26 12:15:12 -07:00
Makefile drm/vc4: Add support for the transposer block 2018-07-07 07:54:46 +02:00
vc4_bo.c gpu: drm: vc4: Adding new typedef vm_fault_t 2018-06-21 13:01:50 -07:00
vc4_crtc.c drm: extract drm_atomic_uapi.c 2018-09-09 14:19:18 +02:00
vc4_debugfs.c drm/vc4: Add support for the transposer block 2018-07-07 07:54:46 +02:00
vc4_dpi.c drm/vc4: Fix oops dereferencing DPI's connector since panel_bridge. 2018-05-07 10:19:11 -04:00
vc4_drv.c drm/vc4: Use drm_atomic_helper_shutdown 2018-10-05 18:04:10 +02:00
vc4_drv.h drm/vc4: Don't check plane state more than once 2018-11-30 10:34:36 +01:00
vc4_dsi.c drm/vc4: Support the case where the DSI device is disabled 2018-07-10 17:59:05 +02:00
vc4_fence.c drm/vc4: Remove unecessary dma_fence_ops 2018-07-03 13:14:10 +02:00
vc4_gem.c dma-buf: allow reserving more than one shared fence slot 2018-10-25 13:45:07 +02:00
vc4_hdmi.c drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
vc4_hvs.c drm/vc4: Add CTM registers to debugfs 2018-04-23 11:50:22 -07:00
vc4_irq.c drm/vc4: Expose performance counters to userspace 2018-02-10 22:23:26 +00:00
vc4_kms.c drm/vc4: Set ->legacy_cursor_update to false when doing non-async updates 2018-11-15 17:57:06 +01:00
vc4_packet.h
vc4_perfmon.c drm/vc4: Expose performance counters to userspace 2018-02-10 22:23:26 +00:00
vc4_plane.c drm/vc4: Rework the async update logic 2018-11-30 10:34:45 +01:00
vc4_qpu_defines.h drm/vc4: Fix definition of QPU_R_MS_REV_FLAGS 2016-07-15 15:19:52 -07:00
vc4_regs.h drm/vc4: Define missing PITCH0_SINK_PIX field 2018-10-24 17:58:08 +02:00
vc4_render_cl.c drm/vc4: Add exec flags to allow forcing a specific X/Y tile walk order. 2017-08-08 13:26:44 -07:00
vc4_trace.h drm/vc4: Use correct path to trace include 2017-09-05 11:11:20 +02:00
vc4_trace_points.c
vc4_txp.c drm/vc4: Add support for the transposer block 2018-07-07 07:54:46 +02:00
vc4_v3d.c drm/vc4: make function vc4_allocate_bin_bo static 2018-04-30 10:59:00 -07:00
vc4_validate.c drm/vc4_validate: Remove VLA usage 2018-03-16 15:51:52 -07:00
vc4_validate_shaders.c drm/vc4: Fix memory leak during BO teardown 2018-04-09 12:42:08 -07:00
vc4_vec.c drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00