DragonFly submit List (threaded) for 2008-12
DragonFly BSD
DragonFly submit List (threaded) for 2008-12
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: DRM update


From: "Steve O'Hara-Smith" <steve@xxxxxxxxxx>
Date: Fri, 19 Dec 2008 22:20:48 +0000

On Wed, 29 Oct 2008 09:31:57 +0200
Hasso Tepper <hasso@estpak.ee> wrote:

> http://leaf.dragonflybsd.org/~hasso/dragonfly-patches/drm-update-20081029.patch
> updates the DRM code to the very latest one from DRM git repo. Amongst 
> other things it brings in support for many newer Intel and AMD/ATI 
> chipsets.
> 
> Please test and report back any failure or success with brief info (dmesg 
> snippet will do in case of success) about chipset in use etc, please.

	Heh I spoke too soon when I said it worked fine with my new X1650 -
but it's close. From time to time an app using GLX would lock up in drmvbl
state - I looked around and it seemed that there was a problem with
vblank_disable_fn in drm_irq.c - a lock was taken on dev->vbl_lock and
there was a path out of the function that didn't unlock it - so I added the
unlock and I haven't been able to provoke a lockup since - patch below
(applies after your patch Hasso).

--- drm_irq.c.patched	2008-12-19 22:16:08 +0000
+++ drm_irq.c	2008-12-19 21:40:58 +0000
@@ -74,8 +74,10 @@
 	callout_deactivate(&dev->vblank_disable_timer);
 
 	DRM_DEBUG("vblank_disable_allowed=%d\n",
dev->vblank_disable_allowed);
-	if (!dev->vblank_disable_allowed)
+	if (!dev->vblank_disable_allowed) {
+		DRM_SPINUNLOCK(&dev->vbl_lock);
 		return;
+	}
 
 	for (i = 0; i < dev->num_crtcs; i++) {
 		if (atomic_read(&dev->vblank[i].refcount) == 0 &&


-- 
C:>WIN                                      |   Directable Mirror Arrays
The computer obeys and wins.                | A better way to focus the sun
You lose and Bill collects.                 |    licences available see
                                            |    http://www.sohara.org/



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]