linux/drivers/gpu/drm/vc4
Boris Brezillon 4686da8315
drm/vc4: Add a load tracker to prevent HVS underflow errors
The HVS block is supposed to fill the pixelvalve FIFOs fast enough to
meet the requested framerate. The problem is, the HVS and memory bus
bandwidths are limited, and if we don't take these limitations into
account we might end up with HVS underflow errors.

This patch is trying to model the per-plane HVS and memory bus bandwidth
consumption and take a decision at atomic_check() time whether the
estimated load will fit in the HVS and membus budget.

Note that we take an extra margin on the memory bus consumption to let
the system run smoothly when other blocks are doing heavy use of the
memory bus. Same goes for the HVS limit, except the margin is smaller in
this case, since the HVS is not used by external components.

Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190220155124.25022-3-paul.kocialkowski@bootlin.com
2019-03-06 14:48:03 +01:00
..
Kconfig
Makefile drm/vc4: Add support for the transposer block 2018-07-07 07:54:46 +02:00
vc4_bo.c drm: vc4: Switch to use drm_gem_object reservation_object 2019-02-19 11:08:40 +01:00
vc4_crtc.c drm/vc4: Report HVS underrun errors 2019-03-06 14:47:59 +01:00
vc4_debugfs.c drm/vc4: Report HVS underrun errors 2019-03-06 14:47:59 +01:00
vc4_dpi.c drm: Split out drm_probe_helper.h 2019-01-24 13:20:42 +01:00
vc4_drv.c drm/vc4: Add a load tracker to prevent HVS underflow errors 2019-03-06 14:48:03 +01:00
vc4_drv.h drm/vc4: Add a load tracker to prevent HVS underflow errors 2019-03-06 14:48:03 +01:00
vc4_dsi.c drm: Split out drm_probe_helper.h 2019-01-24 13:20:42 +01:00
vc4_fence.c drm/vc4: Remove unecessary dma_fence_ops 2018-07-03 13:14:10 +02:00
vc4_gem.c drm: vc4: Switch to use drm_gem_object reservation_object 2019-02-19 11:08:40 +01:00
vc4_hdmi.c drm: Split out drm_probe_helper.h 2019-01-24 13:20:42 +01:00
vc4_hvs.c drm/vc4: Report HVS underrun errors 2019-03-06 14:47:59 +01:00
vc4_irq.c
vc4_kms.c drm/vc4: Add a load tracker to prevent HVS underflow errors 2019-03-06 14:48:03 +01:00
vc4_packet.h
vc4_perfmon.c drm/vc4: Use struct_size() in kzalloc() 2019-02-06 15:16:08 -08:00
vc4_plane.c drm/vc4: Add a load tracker to prevent HVS underflow errors 2019-03-06 14:48:03 +01:00
vc4_qpu_defines.h
vc4_regs.h drm/vc4: Report HVS underrun errors 2019-03-06 14:47:59 +01:00
vc4_render_cl.c
vc4_trace.h
vc4_trace_points.c
vc4_txp.c drm: Remove set but not used variable 'gem' 2019-02-19 11:08:41 +01:00
vc4_v3d.c
vc4_validate.c
vc4_validate_shaders.c
vc4_vec.c drm: Split out drm_probe_helper.h 2019-01-24 13:20:42 +01:00