summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/qxl
Commit message (Collapse)AuthorAgeFilesLines
* drm/qxl: fix build warnings on 32-bitDave Airlie2013-05-312-6/+7
| | | | | | Just the usual printk related warnings. Signed-off-by: Dave Airlie <airlied@redhat.com>
* qxl: fix Kconfig deps - select FB_DEFERRED_IOAndrew Jones2013-05-281-0/+1
| | | | | Signed-off-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* qxl: fix bug with object eviction and update areaDave Airlie2013-05-171-0/+1
| | | | | | | | if the surface is evicted, this validation will happen to the wrong place, I noticed this with other work I was doing, haven't seen it go wrong in practice. Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/qxl: drop active_user_framebuffer as its unneededDave Airlie2013-05-172-18/+4
| | | | | | | This was a bogus way to figure out what the active framebuffer was, just check if the underlying bo is the primary bo. Signed-off-by: Dave Airlie <airlied@redhat.com>
* qxl: drop unused variable.Dave Airlie2013-05-172-2/+0
| | | | | | this boolean isn't used anymore so drop it. Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/qxl: fix ioport interactions for kernel submitted commands.Dave Airlie2013-05-171-10/+19
| | | | | | | | | | | | | | | | | | | | | So qxl has ioports, but it really really really doesn't want you to write to them twice, but if you write and get a signal before the irq arrives to let you know its completed, you have to think ahead and avoid writing another time. However this works fine for update area where really multiple writes aren't the end of the world, however with create primary surface, you can't ever do multiple writes. So this stop internal kernel writes from doing interruptible waits, because otherwise we have no idea if this write is a new one or a continuation of a previous one. virtual hw sucks more than real hw. This fixes lockups and VM crashes when resizing and starting/stopping X. Signed-off-by: Dave Airlie <airlied@redhat.com>
* qxl: update to new idr interfaces.Dave Airlie2013-05-032-24/+16
| | | | Signed-off-by: Dave Airlie <airlied@redhat.com>
* drivers, drm: fix qxl build error when debugfs is disabledDavid Rientjes2013-04-301-0/+6
| | | | | | | | | | | | Fix build error when CONFIG_DEBUG_FS is disabled: drivers/gpu/drm/qxl/qxl_debugfs.c: In function 'qxl_debugfs_init': drivers/gpu/drm/qxl/qxl_debugfs.c:76:2: error: implicit declaration of function 'drm_debugfs_create_files' drivers/gpu/drm/qxl/qxl_debugfs.c: In function 'qxl_debugfs_takedown': drivers/gpu/drm/qxl/qxl_debugfs.c:84:2: error: implicit declaration of function 'drm_debugfs_remove_files' Signed-off-by: David Rientjes <rientjes@google.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/qxl: fix build with debugfs turned off.Dave Airlie2013-04-181-0/+4
| | | | | Reported-by: Randy Dunlap Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/qxl: fix smatch warningsDave Airlie2013-04-163-4/+5
| | | | | | | | | drivers/gpu/drm/qxl/qxl_display.c:99 qxl_alloc_client_monitors_config() error: dereferencing freed memory 'qdev->client_monitors_config' drivers/gpu/drm/qxl/qxl_object.c:66 qxl_ttm_placement_from_domain() warn: bitwise AND condition is false here drivers/gpu/drm/qxl/qxl_ioctl.c:353 qxl_clientcap_ioctl() warn: buffer overflow 'qdev->rom->client_capabilities' 58 <= 58 Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/qxl: make lots of things static.Dave Airlie2013-04-169-77/+31
| | | | | | | | | /usr/lib/gcc/x86_64-linux-gnu/4.7/include/stddef.h:414:9: sparse: preprocessor token offsetof redefined include/linux/stddef.h:17:9: this was the original definition >> drivers/gpu/drm/qxl/qxl_drv.c:49:5: sparse: symbol 'qxl_modeset' was not declared. Should it be static? Reported-by: kbuild test robot. Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm: add new QXL driver. (v1.4)Dave Airlie2013-04-1221-0/+7104
QXL is a paravirtual graphics device used by the Spice virtual desktop interface. The drivers uses GEM and TTM to manage memory, the qxl hw fencing however is quite different than normal TTM expects, we have to keep track of a number of non-linear fence ids per bo that we need to have released by the hardware. The releases are freed from a workqueue that wakes up and processes the release ring. releases are suballocated from a BO, there are 3 release categories, drawables, surfaces and cursor cmds. The hw also has 3 rings for commands, cursor and release handling. The hardware also have a surface id tracking mechnaism and the driver encapsulates it completely inside the kernel, userspace never sees the actual hw surface ids. This requires a newer version of the QXL userspace driver, so shouldn't be enabled until that has been placed into your distro of choice. Authors: Dave Airlie, Alon Levy v1.1: fixup some issues in the ioctl interface with padding v1.2: add module device table v1.3: fix nomodeset, fbcon leak, dumb bo create, release ring irq, don't try flush release ring (broken hw), fix -modesetting. v1.4: fbcon cpu usage reduction + suitable accel flags. Signed-off-by: Alon Levy <alevy@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>