linux/drivers/gpu/drm/qxl
Gerd Hoffmann b0e07da3f5 qxl: fix primary surface handling
The atomic conversion of the qxl driver didn't got the primary surface
handling completely right.  It works in the common simple cases, but
fails for example when changing the display resolution using xrandr or
in multihead setups.

The rules are simple:  There is one primary surface.  Before defining a
new one you have to destroy the old one.

This patch makes qxl_primary_atomic_update() destroy the primary surface
before defining a new one.  It fixes is_primary flag updates.  It adds
is_primary checks so we don't try to update the primary surface in case
it already has the state we want it being in.

Fixes: 3538e80a86 ("drm: qxl: Atomic phase 1: Implement mode_set_nofb")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102338
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=196777
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/20170911093950.22401-1-kraxel@redhat.com
2017-09-12 08:04:09 +02:00
..
Kconfig drm: fix compilations issues introduced by "drm: allow to use mmuless SoC" 2017-01-09 11:30:30 +01:00
Makefile drm/qxl: fix include notation and remove -Iinclude/drm flag 2017-05-17 14:36:17 +02:00
qxl_cmd.c qxl: Mark some internal functions as static 2016-11-15 09:45:31 +01:00
qxl_debugfs.c drm/qxl: fix include notation and remove -Iinclude/drm flag 2017-05-17 14:36:17 +02:00
qxl_dev.h
qxl_display.c qxl: fix primary surface handling 2017-09-12 08:04:09 +02:00
qxl_draw.c drm: Nuke fb->bits_per_pixel 2016-12-15 14:55:34 +02:00
qxl_drv.c drm/qxl: fix include notation and remove -Iinclude/drm flag 2017-05-17 14:36:17 +02:00
qxl_drv.h drm/qxl: fix include notation and remove -Iinclude/drm flag 2017-05-17 14:36:17 +02:00
qxl_dumb.c drm: Remove unused drm_device from drm_gem_object_lookup() 2016-05-17 08:47:30 +02:00
qxl_fb.c drm/qxl: fix include notation and remove -Iinclude/drm flag 2017-05-17 14:36:17 +02:00
qxl_gem.c drm/qxl: fix include notation and remove -Iinclude/drm flag 2017-05-17 14:36:17 +02:00
qxl_image.c qxl: convert qxl driver to proper use for reservations 2013-07-24 11:58:10 +10:00
qxl_ioctl.c drm: qxl: Embed drm_device into driver structure 2017-02-02 10:02:37 +01:00
qxl_irq.c drm: qxl: Embed drm_device into driver structure 2017-02-02 10:02:37 +01:00
qxl_kms.c drm/qxl: Remove qxl_debugfs_remove_files() 2017-03-09 09:01:00 +01:00
qxl_object.c drm: qxl: Consolidate bo reservation when pinning 2017-02-28 17:26:08 +01:00
qxl_object.h drm: qxl: Drop duplicated device pointer attribute 2017-02-02 10:02:34 +01:00
qxl_prime.c drm/qxl: fix erroneous return value 2016-02-17 15:39:35 +10:00
qxl_release.c drm/qxl: fix use of uninitialized variable 2016-12-05 13:14:13 -05:00
qxl_ttm.c drm/qxl: fix include notation and remove -Iinclude/drm flag 2017-05-17 14:36:17 +02:00