drm/qxl: add delayed fb operations

Due to the nature of qxl hw we cannot queue operations while in an irq
context, so we queue these operations as best we can until atomic allocations
fail, and dequeue them later in a work queue.

Daniel looked over the locking on the list and agrees it should be sufficent.

The atomic allocs use no warn, as the last thing we want if we haven't memory
to allocate space for a printk in an irq context is more printks.

Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Dave Airlie
2013-07-22 14:37:39 +10:00
parent 3b2f64d00c
commit 0665f9f852
2 changed files with 166 additions and 23 deletions

View File

@@ -314,6 +314,7 @@ struct qxl_device {
struct workqueue_struct *gc_queue;
struct work_struct gc_work;
struct work_struct fb_work;
};
/* forward declaration for QXL_INFO_IO */