linux/drivers/gpu/drm
Laurent Pinchart eb0a0e2769 drm: rcar-du: Fix race condition when disabling planes at CRTC stop
commit 641307df71 upstream.

When stopping the CRTC the driver must disable all planes and wait for
the change to take effect at the next vblank. Merely calling
drm_crtc_wait_one_vblank() is not enough, as the function doesn't
include any mechanism to handle the race with vblank interrupts.

Replace the drm_crtc_wait_one_vblank() call with a manual mechanism that
handles the vblank interrupt race.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Signed-off-by: thongsyho <thong.ho.px@rvc.renesas.com>
Signed-off-by: Nhan Nguyen <nhan.nguyen.yb@renesas.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-02-16 20:09:37 +01:00
..
amd drm/amdkfd: Fix SDMA oversubsription handling 2018-02-03 17:04:27 +01:00
armada Revert "drm/armada: Fix compile fail" 2017-12-16 10:33:50 +01:00
ast drm/ast: Handle configuration without P2A bridge 2017-07-05 14:37:15 +02:00
atmel-hlcdc
bochs
bridge
cirrus
exynos drm/exynos: gem: Drop NONCONTIG flag for buffers allocated without IOMMU 2017-12-16 10:33:49 +01:00
fsl-dcu
gma500 drm/gma500/psb: Actually use VBT mode when it is found 2017-06-07 12:06:01 +02:00
i2c drm/bridge: adv7511: Re-write the i2c address before EDID probing 2017-09-13 14:09:46 -07:00
i810
i915 drm/i915: Prevent zero length "index" write 2017-12-05 11:22:52 +01:00
imx
mga
mgag200 gpu: drm: mgag200: mgag200_main:- Handle error from pci_iomap 2017-11-21 09:21:21 +01:00
msm drm/msm: fix an integer overflow test 2017-11-08 10:06:28 +01:00
nouveau drm/nouveau/mmu: flush tlbs before deleting page tables 2017-10-27 10:23:16 +02:00
omapdrm drm/omap: Fix error handling path in 'omap_dmm_probe()' 2018-02-03 17:04:29 +01:00
panel drm/panel: simple: Add missing panel_simple_unprepare() calls 2017-12-05 11:22:51 +01:00
qxl
r128
radeon drm/radeon: reinstate oland workaround for sclk 2017-12-20 10:04:55 +01:00
rcar-du drm: rcar-du: Fix race condition when disabling planes at CRTC stop 2018-02-16 20:09:37 +01:00
rockchip
savage
shmobile
sis
sti drm/sti: sti_vtg: Handle return NULL error from devm_ioremap_nocache 2017-11-21 09:21:19 +01:00
tdfx
tegra
tilcdc
ttm drm/ttm: Fix accounting error when fail to get pages for pool 2017-09-07 08:34:09 +02:00
udl
vc4
vgem
via
virtio drm/virtio: fix framebuffer sparse warning 2017-08-11 09:08:58 -07:00
vmwgfx drm/vmwgfx: Potential off by one in vmw_view_add() 2018-01-17 09:35:30 +01:00
ati_pcigart.c
drm_agpsupport.c
drm_atomic_helper.c drm/atomic: fix an error code in mode_fixup() 2017-03-15 09:57:15 +08:00
drm_atomic.c drm/atomic: If the atomic check fails, return its value first 2017-08-30 10:19:23 +02:00
drm_auth.c
drm_bridge.c
drm_bufs.c
drm_cache.c
drm_context.c
drm_crtc_helper.c
drm_crtc_internal.h
drm_crtc.c
drm_debugfs.c
drm_dma.c
drm_dp_helper.c
drm_dp_mst_topology.c drm/dp/mst: save vcpi with payloads 2017-10-21 17:09:01 +02:00
drm_drv.c drm: drm_minor_register(): Clean up debugfs on failure 2017-11-15 17:13:09 +01:00
drm_edid_load.c
drm_edid.c drm/edid: Add 10 bpc quirk for LGD 764 panel in HP zBook 17 G2 2017-05-25 14:30:17 +02:00
drm_encoder_slave.c
drm_fb_cma_helper.c
drm_fb_helper.c
drm_flip_work.c
drm_fops.c
drm_gem_cma_helper.c
drm_gem.c drm: Release driver tracking before making the object available again 2017-08-30 10:19:23 +02:00
drm_global.c
drm_hashtab.c
drm_info.c
drm_internal.h
drm_ioc32.c
drm_ioctl.c
drm_irq.c
drm_legacy.h
drm_lock.c
drm_memory.c
drm_mipi_dsi.c
drm_mm.c drm: Apply range restriction after color adjustment when allocation 2017-11-30 08:37:27 +00:00
drm_modes.c drm: Fix broken VT switch with video=1366x768 option 2017-02-01 08:30:52 +01:00
drm_modeset_lock.c
drm_of.c
drm_panel.c
drm_pci.c
drm_plane_helper.c
drm_platform.c
drm_prime.c
drm_probe_helper.c
drm_rect.c
drm_scatter.c
drm_sysfs.c
drm_trace_points.c
drm_trace.h
drm_vm.c
drm_vma_manager.c
Kconfig
Makefile