Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Mar 2009 22:32:19 -0500 (CDT)
From:      Greg Rivers <gcr+freebsd-stable@tharned.org>
To:        Robert Noland <rnoland@FreeBSD.org>
Cc:        freebsd-x11 <freebsd-x11@FreeBSD.org>, freebsd-stable <freebsd-stable@FreeBSD.org>
Subject:   Re: [HEADS UP] drm merged to -STABLE
Message-ID:  <alpine.BSF.2.00.0903192221540.1006@packrat.tharned.org>
In-Reply-To: <1237499597.1732.329.camel@balrog.2hip.net>
References:  <1231599679.1837.13.camel@wombat.2hip.net> <alpine.BSF.2.00.0903171011540.30152@roadkill.tharned.org> <1237318671.1728.7.camel@balrog.2hip.net> <alpine.BSF.2.00.0903171801250.34773@roadkill.tharned.org> <1237395643.1738.3.camel@balrog.2hip.net> <alpine.BSF.2.00.0903181749330.47320@roadkill.tharned.org> <1237429357.1738.61.camel@balrog.2hip.net> <alpine.BSF.2.00.0903191419320.58165@roadkill.tharned.org> <1237499597.1732.329.camel@balrog.2hip.net>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
On Thu, 19 Mar 2009, Robert Noland wrote:

> On Thu, 2009-03-19 at 15:01 -0500, Greg Rivers wrote:
>> On Wed, 18 Mar 2009, Robert Noland wrote:
>>
>>> Ok, so it isn't the gart caching... Can you get me a pointer to a
>>> screenshot?
>>>
>>
>> fetch http://www.tharned.org/rv380-drm-issue.tbz
>> This archive contains various logs and system configuration files as well
>> as screen shot images.  Look at the README file for a description of the
>> images.
>>
>>
>>> What is garbled exactly?  Is the damage constrained to specific windows
>>> or it it the entire framebuffer?
>>>
>>
>> The entire frame buffer is garbled; switching to syscons and back seems to
>> change the way it's garbled.  However, the interior of an xterm window is
>> never garbled.  I'm running a dual-head configuration with the frame
>> buffer spanning both monitors.
>
> Ok, I thought that I had already fixed this up, but I missed this
> spot...  Please try this patch.
>

It's still garbled with this patch too.  Any other ideas?  Just let me 
know when it's time for me to buy a different video card.  :-)

-- 
Greg Rivers
[-- Attachment #2 --]
Index: dev/drm/ati_pcigart.c
===================================================================
--- dev/drm/ati_pcigart.c	(revision 190096)
+++ dev/drm/ati_pcigart.c	(working copy)
@@ -75,18 +75,15 @@
 	    NULL, NULL, /* filtfunc, filtfuncargs */
 	    gart_info->table_size, 1, /* maxsize, nsegs */
 	    gart_info->table_size, /* maxsegsize */
-	    BUS_DMA_ALLOCNOW, NULL, NULL, /* flags, lockfunc, lockfuncargs */
+	    0, NULL, NULL, /* flags, lockfunc, lockfuncargs */
 	    &dmah->tag);
 	if (ret != 0) {
 		free(dmah, DRM_MEM_DMA);
 		return ENOMEM;
 	}
 
-	flags = BUS_DMA_NOWAIT | BUS_DMA_ZERO;
-	if (gart_info->gart_reg_if == DRM_ATI_GART_IGP)
-	    flags |= BUS_DMA_NOCACHE;
-	
-	ret = bus_dmamem_alloc(dmah->tag, &dmah->vaddr, flags, &dmah->map);
+	ret = bus_dmamem_alloc(dmah->tag, &dmah->vaddr,
+	    BUS_DMA_WAITOK | BUS_DMA_ZERO, &dmah->map);
 	if (ret != 0) {
 		bus_dma_tag_destroy(dmah->tag);
 		free(dmah, DRM_MEM_DMA);
@@ -94,8 +91,12 @@
 	}
 	DRM_LOCK();
 
+	flags = BUS_DMA_NOWAIT;
+	if (gart_info->gart_reg_if == DRM_ATI_GART_IGP)
+	    flags |= BUS_DMA_NOCACHE;
+	
 	ret = bus_dmamap_load(dmah->tag, dmah->map, dmah->vaddr,
-	    gart_info->table_size, drm_ati_alloc_pcigart_table_cb, dmah, 0);
+	    gart_info->table_size, drm_ati_alloc_pcigart_table_cb, dmah, flags);
 	if (ret != 0) {
 		bus_dmamem_free(dmah->tag, dmah->vaddr, dmah->map);
 		bus_dma_tag_destroy(dmah->tag);

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.0903192221540.1006>