mirror_ubuntu-kernels/drivers/gpu/drm/vc4
Maxime Ripard a5c4b75f1e
drm/vc4: crtc: Enable and disable the PV in atomic_enable / disable
The VIDEN bit in the pixelvalve currently being used to enable or disable
the pixelvalve seems to not be enough in some situations, which whill end
up with the pixelvalve stalling.

In such a case, even re-enabling VIDEN doesn't bring it back and we need to
clear the FIFO. This can only be done if the pixelvalve is disabled though.

In order to overcome this, we can configure the pixelvalve during
mode_set_no_fb by calling vc4_crtc_config_pv, but only enable it in
atomic_enable and flush the FIFO there, and in atomic_disable disable the
pixelvalve again.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Tested-by: Chanwoo Choi <cw00.choi@samsung.com>
Tested-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
Link: https://patchwork.freedesktop.org/patch/msgid/e97596f62f4df83424d994a23465463ac60f986e.1599120059.git-series.maxime@cerno.tech
2020-09-07 18:02:42 +02:00
..
Kconfig drm/vc4: Fix Kconfig indentation 2019-11-25 10:04:41 +01:00
Makefile
vc4_bo.c drm/vc4: remove _unlocked suffix in drm_gem_object_put_unlocked 2020-05-19 22:31:35 +01:00
vc4_crtc.c drm/vc4: crtc: Enable and disable the PV in atomic_enable / disable 2020-09-07 18:02:42 +02:00
vc4_debugfs.c drm: convert .debugfs_init() hook to return void. 2020-03-18 17:53:28 +01:00
vc4_dpi.c drm/vc4: Use simple encoder 2020-04-02 14:16:45 +02:00
vc4_drv.c drm/vc4: Reorder the bind order of the devices 2020-07-07 10:27:04 +02:00
vc4_drv.h drm/vc4: crtc: Rename HVS channel to output 2020-09-07 18:02:29 +02:00
vc4_dsi.c drm/vc4: Use simple encoder 2020-04-02 14:16:45 +02:00
vc4_fence.c
vc4_gem.c drm/vc4: remove _unlocked suffix in drm_gem_object_put_unlocked 2020-05-19 22:31:35 +01:00
vc4_hdmi.c drm/vc4: hdmi: Silence pixel clock error on -EPROBE_DEFER 2020-05-25 17:11:32 +02:00
vc4_hvs.c drm/vc4: crtc: Rename HVS channel to output 2020-09-07 18:02:29 +02:00
vc4_irq.c drm/vc4: Allocate binner bo when starting to use the V3D 2019-05-23 17:32:21 +02:00
vc4_kms.c drm/vc4: hvs: Boost the core clock during modeset 2020-09-07 18:01:52 +02:00
vc4_packet.h
vc4_perfmon.c drm/vc4: Disable V3D interactions if the v3d component didn't probe. 2019-04-03 12:49:18 -07:00
vc4_plane.c drm/vc4: plane: Create more planes 2020-09-07 18:02:08 +02:00
vc4_qpu_defines.h
vc4_regs.h drm/vc4: Add support for the BCM2711 HVS5 2020-09-07 18:01:44 +02:00
vc4_render_cl.c drm/vc4: Make sure to emit a tile coordinates between two MSAA loads. 2019-04-01 09:33:38 -07:00
vc4_trace_points.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
vc4_trace.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
vc4_txp.c drm/vc4: crtc: Rename HVS channel to output 2020-09-07 18:02:29 +02:00
vc4_v3d.c drm/vc4: remove _unlocked suffix in drm_gem_object_put_unlocked 2020-05-19 22:31:35 +01:00
vc4_validate_shaders.c
vc4_validate.c
vc4_vec.c drm/vc4: Use simple encoder 2020-04-02 14:16:45 +02:00