linux/drivers/gpu/drm
Maarten Lankhorst 846c7dfc11 drm/atomic: Try to preserve the crtc enabled state in drm_atomic_remove_fb, v2.
This introduces a slight behavioral change to rmfb. Instead of
disabling a crtc when the primary plane is disabled, we try to
preserve it.

Apart from old versions of the vmwgfx xorg driver, there is
nothing depending on rmfb disabling a crtc.

Vmwgfx' and simple kms helper atomic implementation rejects CRTC
enabled without plane, so we can do this safely.

If the atomic commit is rejected by the driver then we will still
fall back to the old behavior and turn off the crtc.

Changes since v1:
- Restart completely when rmfb with crtc on fails (Sean Paul).

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@ubuntu.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171101150433.10777-1-maarten.lankhorst@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2017-11-08 08:49:27 +01:00
..
amd drm/drivers: drop redundant drm_edid_to_eld() calls 2017-11-07 17:43:35 +02:00
arc drm/arc: Use drm_gem_fb_create() 2017-09-02 14:23:06 +02:00
arm
armada drm/armada: Replace drm_framebuffer_reference/unreference() with _get/put() 2017-10-16 15:02:44 -04:00
ast
atmel-hlcdc
bochs
bridge drm/drivers: drop redundant drm_edid_to_eld() calls 2017-11-07 17:43:35 +02:00
cirrus
etnaviv Merge branch 'etnaviv/fixes' of https://git.pengutronix.de/git/lst/linux into drm-fixes 2017-09-28 05:48:53 +10:00
exynos Merge tag 'drm-misc-next-2017-09-20' of git://anongit.freedesktop.org/git/drm-misc into drm-next 2017-09-28 05:46:15 +10:00
fsl-dcu drm/fsl-dcu: Use drm_gem_fb_create() 2017-10-01 17:00:20 +02:00
gma500 drm: gma500: Convert timers to use timer_setup() 2017-10-31 11:18:11 +01:00
hisilicon drm/kirin: Checking for IS_ERR() instead of NULL 2017-10-12 14:09:45 -04:00
i2c drm/drivers: drop redundant drm_edid_to_eld() calls 2017-11-07 17:43:35 +02:00
i810
i915 drm/drivers: drop redundant drm_edid_to_eld() calls 2017-11-07 17:43:35 +02:00
imx Merge tag 'drm-misc-next-2017-09-20' of git://anongit.freedesktop.org/git/drm-misc into drm-next 2017-09-28 05:46:15 +10:00
lib mm: treewide: remove GFP_TEMPORARY allocation flag 2017-09-13 18:53:16 -07:00
mediatek drm/drivers: drop redundant drm_edid_to_eld() calls 2017-11-07 17:43:35 +02:00
meson drm/meson: Use drm_gem_fb_create() 2017-10-01 17:01:39 +02:00
mga
mgag200
msm drm/msm/mdp5: remove less than 0 comparison for unsigned value 2017-10-11 13:17:52 +02:00
mxsfb drm/mxsfb: Use drm_gem_fb_create() and drm_gem_fb_prepare_fb() 2017-10-01 17:02:20 +02:00
nouveau drm/drivers: drop redundant drm_edid_to_eld() calls 2017-11-07 17:43:35 +02:00
omapdrm
panel drm/panel: rpi-touchscreen: propagate errors in rpi_touchscreen_i2c_read() 2017-10-30 16:55:20 -07:00
pl111 drm/pl111: Add handling of Versatile platforms 2017-09-10 23:58:42 +02:00
qxl qxl: fix framebuffer unpinning 2017-09-25 08:35:53 +02:00
r128
radeon drm/drivers: drop redundant drm_edid_to_eld() calls 2017-11-07 17:43:35 +02:00
rcar-du drm/rcar-du: Use drm_gem_fb_create() 2017-10-01 17:02:53 +02:00
rockchip drm/drivers: drop redundant drm_edid_to_eld() calls 2017-11-07 17:43:35 +02:00
savage
selftests drm/selftests/mm: Insert cond_resched() between insert modes 2017-11-07 15:58:07 +02:00
shmobile drm/shmobile: Use drm_gem_fb_create() 2017-10-01 17:03:22 +02:00
sis
sti drm/drivers: drop redundant drm_edid_to_eld() calls 2017-11-07 17:43:35 +02:00
stm drm/stm: ltdc: add a 2nd endpoint 2017-11-07 14:47:39 +01:00
sun4i drm/sun4i: Add support for A20 display pipeline components 2017-10-17 19:49:17 +02:00
tdfx
tegra drm/drivers: drop redundant drm_edid_to_eld() calls 2017-11-07 17:43:35 +02:00
tilcdc drm/tilcdc: replace reference/unreference() with get/put 2017-09-26 13:12:15 +02:00
tinydrm drm/tinydrm: Replace list_for_each with list_for_each_entry 2017-10-21 16:28:41 +02:00
ttm Merge branch 'drm-next-4.15' of git://people.freedesktop.org/~agd5f/linux into drm-next 2017-09-28 08:37:02 +10:00
tve200 drm/tve200: Use drm_gem_fb_create() and drm_gem_fb_prepare_fb() 2017-10-01 17:04:36 +02:00
udl drm/udl: Reading all edid blocks in DRM/UDL driver 2017-10-16 15:37:19 -04:00
vc4 drm/drivers: drop redundant drm_edid_to_eld() calls 2017-11-07 17:43:35 +02:00
vgem
via drm: via: use ktime_get() instead of do_gettimeofday 2017-11-06 10:21:39 +01:00
virtio drm: virtio: replace reference/unreference with get/put 2017-10-30 10:59:10 +01:00
vmwgfx main drm pull request for 4.14 merge window 2017-09-03 17:02:26 -07:00
zte
ati_pcigart.c
drm_agpsupport.c drm/agpsupport: Remove extra blank line 2017-09-20 09:54:19 -07:00
drm_atomic_helper.c drm/atomic-helper: check that drivers call drm_crtc_vblank_off 2017-10-18 10:23:25 +02:00
drm_atomic.c drm: Print the fb dimensions when the src coord check fails 2017-11-02 11:10:49 -02:00
drm_auth.c
drm_blend.c mm: treewide: remove GFP_TEMPORARY allocation flag 2017-09-13 18:53:16 -07:00
drm_bridge.c
drm_bufs.c
drm_cache.c
drm_color_mgmt.c
drm_connector.c drm: Try to document legacy DPMS uapi a bit better 2017-09-26 07:12:56 +02:00
drm_context.c
drm_crtc_helper_internal.h
drm_crtc_helper.c drm: Replace kzalloc with kcalloc 2017-10-13 15:49:03 -04:00
drm_crtc_internal.h
drm_crtc.c drm/crtc: Convert setcrtc ioctl locking to interruptible. 2017-09-13 09:52:05 +02:00
drm_debugfs_crc.c drm/atomic: Prepare drm_modeset_lock infrastructure for interruptible waiting, v2. 2017-09-13 09:50:52 +02:00
drm_debugfs.c
drm_dma.c
drm_dp_aux_dev.c
drm_dp_dual_mode_helper.c mm: treewide: remove GFP_TEMPORARY allocation flag 2017-09-13 18:53:16 -07:00
drm_dp_helper.c drm/dp: WARN about invalid/unknown link rates and bw codes 2017-10-11 18:41:44 +03:00
drm_dp_mst_topology.c drm/dp/mst: Sideband message transaction to power up/down nodes 2017-09-11 16:03:57 +03:00
drm_drv.c drm: Move debug macros out of drmP.h 2017-10-20 13:14:48 -04:00
drm_dumb_buffers.c
drm_edid_load.c drm: add backwards compatibility support for drm_kms_helper.edid_firmware 2017-09-19 18:11:45 +03:00
drm_edid.c drm/edid: make drm_edid_to_eld() static 2017-11-07 17:43:35 +02:00
drm_encoder_slave.c
drm_encoder.c
drm_fb_cma_helper.c drm/fb-cma-helper: Remove unused functions 2017-10-01 17:05:39 +02:00
drm_fb_helper.c drm/fb-helper: Add .last_close and .output_poll_changed helpers 2017-10-31 19:06:31 +01:00
drm_file.c
drm_flip_work.c
drm_fourcc.c
drm_framebuffer.c drm/atomic: Try to preserve the crtc enabled state in drm_atomic_remove_fb, v2. 2017-11-08 08:49:27 +01:00
drm_gem_cma_helper.c drm/gem-cma-helper: Change the level of the allocation failure message 2017-10-16 15:19:57 +02:00
drm_gem_framebuffer_helper.c drm/gem-fb-helper: Improve documentation 2017-10-08 15:02:51 +02:00
drm_gem.c drm/gem: Remove trailing whitespace 2017-10-27 17:20:09 +02:00
drm_global.c
drm_hashtab.c
drm_info.c
drm_internal.h drm/syncobj: Add a signal ioctl (v3) 2017-08-29 10:16:25 +10:00
drm_ioc32.c
drm_ioctl.c drm/syncobj: Add a signal ioctl (v3) 2017-08-29 10:16:25 +10:00
drm_irq.c
drm_kms_helper_common.c drm: add backwards compatibility support for drm_kms_helper.edid_firmware 2017-09-19 18:11:45 +03:00
drm_legacy.h
drm_lock.c
drm_memory.c
drm_mipi_dsi.c
drm_mm.c drm: Spelling fixes 2017-11-02 11:10:37 -02:00
drm_mode_config.c
drm_mode_object.c drm: Make __drm_object_property_get_value() static 2017-09-11 15:53:33 +03:00
drm_modes.c
drm_modeset_helper.c
drm_modeset_lock.c drm/atomic: Prepare drm_modeset_lock infrastructure for interruptible waiting, v2. 2017-09-13 09:50:52 +02:00
drm_of.c drm/drm_of: Move drm_of_panel_bridge_remove_function into header. 2017-10-13 16:59:36 +02:00
drm_panel.c
drm_pci.c drm/core: clean up references to drm_dev_unref() 2017-09-27 10:53:12 +02:00
drm_plane_helper.c drm: Replace kzalloc with kcalloc 2017-10-13 15:49:03 -04:00
drm_plane.c Merge tag 'drm-misc-next-2017-09-20' of git://anongit.freedesktop.org/git/drm-misc into drm-next 2017-09-28 05:46:15 +10:00
drm_prime.c drm/core: clean up references to drm_dev_unref() 2017-09-27 10:53:12 +02:00
drm_print.c drm: Enable pr_debug() for drm_printer 2017-10-30 16:59:21 -04:00
drm_probe_helper.c drm: handle override and firmware EDID at drm_do_get_edid() level 2017-09-19 17:49:25 +03:00
drm_property.c
drm_rect.c
drm_scatter.c
drm_scdc_helper.c Merge tag 'drm-misc-next-2017-09-20' of git://anongit.freedesktop.org/git/drm-misc into drm-next 2017-09-28 05:46:15 +10:00
drm_simple_kms_helper.c
drm_syncobj.c drm: Add missing __user annotation to drm_syncobj_array_find() 2017-10-13 16:01:06 +03:00
drm_sysfs.c
drm_trace_points.c
drm_trace.h drm: Use correct path to trace include 2017-09-05 11:11:18 +02:00
drm_vblank.c drm/vblank: Fix flip event vblank count 2017-10-12 17:34:28 +03:00
drm_vm.c Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-09-04 12:21:28 -07:00
drm_vma_manager.c drm/drm_vma_manager.c: Remove useless goto statement 2017-11-02 10:44:08 +01:00
Kconfig Merge branch 'drm-next-4.15' of git://people.freedesktop.org/~agd5f/linux into drm-next 2017-09-28 08:37:02 +10:00
Makefile Merge branch 'drm-next-4.15' of git://people.freedesktop.org/~agd5f/linux into drm-next 2017-09-28 08:37:02 +10:00