linux_dsm_epyc7002/drivers/gpu/drm/vc4
Maxime Ripard 089d834189
drm/vc4: hvs: Pull the state of all the CRTCs prior to PV muxing
The vc4 display engine has a first controller called the HVS that will
perform the composition of the planes. That HVS has 3 FIFOs and can
therefore compose planes for up to three outputs. The timings part is
generated through a component called the Pixel Valve, and the BCM2711 has 6
of them.

Thus, the HVS has some bits to control which FIFO gets output to which
Pixel Valve. The current code supports that muxing by looking at all the
CRTCs in a new DRM atomic state in atomic_check, and given the set of
constraints that we have, assigns FIFOs to CRTCs or reject the mode
entirely. The actual muxing will occur during atomic_commit.

However, that doesn't work if only a fraction of the CRTCs' state is
updated in that state, since it will ignore the CRTCs that are kept running
unmodified, and will thus unassign its associated FIFO, and later disable
it.

In order to make the code work as expected, let's pull the CRTC state of
all the enabled CRTC in our atomic_check so that we can operate on all the
running CRTCs, no matter whether they are affected by the new state or not.

Fixes: 87ebcd42fb ("drm/vc4: crtc: Assign output to channel automatically")
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Tested-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
Tested-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
Reviewed-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200917121623.42023-1-maxime@cerno.tech
2020-09-21 16:43:11 +02:00
..
Kconfig
Makefile drm/vc4: hdmi: Add PHY init and disable function 2020-09-07 18:06:04 +02:00
vc4_bo.c
vc4_crtc.c drm/vc4: crtc: Add BCM2711 pixelvalves 2020-09-07 18:04:45 +02:00
vc4_debugfs.c
vc4_dpi.c
vc4_drv.c drm/vc4: drv: Support BCM2711 2020-09-07 18:14:55 +02:00
vc4_drv.h drm/vc4: drv: Support BCM2711 2020-09-07 18:14:55 +02:00
vc4_dsi.c
vc4_fence.c
vc4_gem.c
vc4_hdmi_phy.c drm/vc4: hdmi: Support the BCM2711 HDMI controllers 2020-09-07 18:14:54 +02:00
vc4_hdmi_regs.h drm/vc4: Update type of reg parameter in vc4_hdmi_{read,write} 2020-09-11 11:30:16 +02:00
vc4_hdmi.c drm/vc4: hdmi: Fix NULL vs IS_ERR() checks in vc5_hdmi_init_resources() 2020-09-10 12:15:57 +02:00
vc4_hdmi.h drm/vc4: hdmi: Support the BCM2711 HDMI controllers 2020-09-07 18:14:54 +02:00
vc4_hvs.c drm/vc4: hvs: Introduce a function to get the assigned FIFO 2020-09-07 18:04:26 +02:00
vc4_irq.c
vc4_kms.c drm/vc4: hvs: Pull the state of all the CRTCs prior to PV muxing 2020-09-21 16:43:11 +02:00
vc4_packet.h
vc4_perfmon.c
vc4_plane.c drm/vc4: Handing the return value of drm_universal_plane_init 2020-09-16 04:48:37 -04:00
vc4_qpu_defines.h
vc4_regs.h drm/vc4: hdmi: Support the BCM2711 HDMI controllers 2020-09-07 18:14:54 +02:00
vc4_render_cl.c
vc4_trace_points.c
vc4_trace.h
vc4_txp.c drm/vc4: crtc: Move the HVS gamma LUT setup to our init function 2020-09-07 18:03:39 +02:00
vc4_v3d.c
vc4_validate_shaders.c
vc4_validate.c
vc4_vec.c