[PATCH 0/3] VGA arbiter implementation (v2)

From: Tiago Vignatti
Date: Thu Jul 16 2009 - 11:51:34 EST


Hi,

Following is v2 of the set. It contains some minor clean ups and the additions
from Dave, mostly related with DRM.

I just reorganized a little the ideas which everyone sent and summarized them
here. The basically TODO is:

- DRM hook to disable IRQ when arbiter is on action is done. What else we need
on DRM department (besides the hook usage that Dave is cooking)? That's a
preliminary here:
http://people.freedesktop.org/~airlied/vgaarb/0002-drm-add-support-to-drm-for-VGA-arbitration.patch
- make a PCI_COMMAND lock to deal with hotplug cards on drivers/pci. Also is
it need some spinlock to deal with bridges? (Waiting Jesse's opinion).
- know exactly if VGA on/off is enough and remove the just I/O or just memory
granularity. Alan states that it would reduce some deadlock.
- Change this hunk bellow:

+             init_waitqueue_entry(&wait, current);
+             add_wait_queue(&vga_wait_queue, &wait);
+             set_current_state(interruptible ?
+                               TASK_INTERRUPTIBLE :
+                               TASK_UNINTERRUPTIBLE);
+             if (signal_pending(current)) {
+                     rc = -EINTR;
+                     break;
+             }
+             schedule();
+             remove_wait_queue(&vga_wait_queue, &wait);
+             set_current_state(TASK_RUNNING);

by something like:

+        wait_event_interruptible(...)

it's Alan's comment. Does it seems doable to everyone?


For testing purposes, I'm using posttool:
http://cgit.freedesktop.org/~airlied/posttool/

which has the following dependencies:
http://cgit.freedesktop.org/~vignatti/libx86/
http://cgit.freedesktop.org/~vignatti/libpciaccess/ (vgaarb branch)


Please, comment on and send the feedbacks. Thanks,

Tiago


Dave Airlie (1):
drm: add support to drm for VGA arbitration.

Tiago Vignatti (2):
vga: implements VGA arbitration on Linux
vga: drops a documentation regarding the VGA arbiter

Documentation/vgaarbiter.txt | 197 ++++++
drivers/gpu/Makefile | 2 +-
drivers/gpu/drm/drm_irq.c | 24 +
drivers/gpu/drm/i915/i915_dma.c | 6 +
drivers/gpu/drm/i915/i915_reg.h | 1 +
drivers/gpu/drm/i915/intel_display.c | 17 +
drivers/gpu/drm/i915/intel_drv.h | 1 +
drivers/gpu/drm/radeon/r100.c | 9 +
drivers/gpu/drm/radeon/radeon.h | 2 +
drivers/gpu/drm/radeon/radeon_asic.h | 9 +
drivers/gpu/drm/radeon/radeon_device.c | 5 +-
drivers/gpu/vga/Kconfig | 10 +
drivers/gpu/vga/Makefile | 1 +
drivers/gpu/vga/vgaarb.c | 1116 ++++++++++++++++++++++++++++++++
drivers/video/Kconfig | 2 +
include/drm/drmP.h | 3 +
include/linux/vgaarb.h | 170 +++++
17 files changed, 1573 insertions(+), 2 deletions(-)
create mode 100644 Documentation/vgaarbiter.txt
create mode 100644 drivers/gpu/vga/Kconfig
create mode 100644 drivers/gpu/vga/Makefile
create mode 100644 drivers/gpu/vga/vgaarb.c
create mode 100644 include/linux/vgaarb.h

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/