[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/