rpms/kernel/F-12 drm-radeon-agp-font-fix.patch, NONE, 1.1 kernel.spec, 1.1890, 1.1891

Dave Airlie airlied at fedoraproject.org
Fri Oct 30 04:14:24 UTC 2009


Author: airlied

Update of /cvs/pkgs/rpms/kernel/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25945

Modified Files:
	kernel.spec 
Added Files:
	drm-radeon-agp-font-fix.patch 
Log Message:
* Fri Oct 30 2009 Dave Airlie <airlied at redhat.com> 2.6.31.5-105
- drm-radeon-agp-font-fix.patch: hopefully fix AGP coherency issue


drm-radeon-agp-font-fix.patch:
 radeon/radeon_ttm.c |    6 ++++++
 ttm/ttm_tt.c        |    2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

--- NEW FILE drm-radeon-agp-font-fix.patch ---
>From ccc471b9940122cdda58c470055f4fe3ac6e3254 Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied at redhat.com>
Date: Fri, 30 Oct 2009 13:31:26 +1000
Subject: [PATCH] drm/radeon/kms: fix coherency issues on AGP cards.

When we are evicting from VRAM->RAM we allocate the ttm object,
but we don't set the caching policy on it before blitting into it.
This means on AGP we end up blitting into cached pages, and
the CPU later flushes out on top of them. This was mostly seen as
font corruption.

The other question is why we don't evict VRAM->GTT in a lot of cases,
this would save us some cache transitions since a lot of objects
that are evicted from VRAM will probably end up being pulled back in
a few operations later, and evicting them to system memory involves
2 unnecessary cache transitions.

Signed-off-by: Dave Airlie <airlied at redhat.com>
---
 drivers/gpu/drm/radeon/radeon_ttm.c |    6 ++++++
 drivers/gpu/drm/ttm/ttm_tt.c        |    1 +
 2 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
index c729cd1..f489c0d 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
@@ -295,6 +295,12 @@ static int radeon_move_vram_ram(struct ttm_buffer_object *bo,
 	if (unlikely(r)) {
 		return r;
 	}
+
+	r = ttm_tt_set_placement_caching(bo->ttm, tmp_mem.placement);
+	if (unlikely(r)) {
+		goto out_cleanup;
+	}
+
 	r = ttm_tt_bind(bo->ttm, &tmp_mem);
 	if (unlikely(r)) {
 		goto out_cleanup;
diff --git a/drivers/gpu/drm/ttm/ttm_tt.c b/drivers/gpu/drm/ttm/ttm_tt.c
index a55ee1a..7bcb89f 100644
--- a/drivers/gpu/drm/ttm/ttm_tt.c
+++ b/drivers/gpu/drm/ttm/ttm_tt.c
@@ -279,6 +279,7 @@ int ttm_tt_set_placement_caching(struct ttm_tt *ttm, uint32_t placement)
 
 	return ttm_tt_set_caching(ttm, state);
 }
+EXPORT_SYMBOL(ttm_tt_set_placement_caching);
 
 static void ttm_tt_free_alloced_pages(struct ttm_tt *ttm)
 {
-- 
1.6.5.1



Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-12/kernel.spec,v
retrieving revision 1.1890
retrieving revision 1.1891
diff -u -p -r1.1890 -r1.1891
--- kernel.spec	28 Oct 2009 06:09:47 -0000	1.1890
+++ kernel.spec	30 Oct 2009 04:14:20 -0000	1.1891
@@ -696,11 +696,12 @@ Patch1824: drm-intel-next.patch
 Patch1825: drm-intel-pm.patch
 Patch1826: drm-intel-no-tv-hotplug.patch
 Patch1827: drm-disable-r600-aspm.patch
-Patch1828: drm-radeon-kms-arbiter-return-ignore.patch
+Patch1828: drm-radeon-agp-font-fix.patch
 
 # vga arb
 Patch1900: linux-2.6-vga-arb.patch
 Patch1901: drm-vga-arb.patch
+Patch1902: drm-radeon-kms-arbiter-return-ignore.patch
 
 # kludge to make ich9 e1000 work
 Patch2000: linux-2.6-e1000-ich9.patch
@@ -1380,6 +1381,7 @@ ApplyPatch linux-2.6-e1000-ich9.patch
 # Nouveau DRM + drm fixes
 ApplyPatch kms-offb-handoff.patch
 ApplyPatch drm-next-ea1495a6.patch
+ApplyPatch drm-radeon-agp-font-fix.patch
 
 ApplyPatch drm-nouveau.patch
 # pm broken on my thinkpad t60p - airlied
@@ -2102,6 +2104,9 @@ fi
 # and build.
 
 %changelog
+* Fri Oct 30 2009 Dave Airlie <airlied at redhat.com> 2.6.31.5-105
+- drm-radeon-agp-font-fix.patch: hopefully fix AGP coherency issue
+
 * Wed Oct 28 2009 Dave Airlie <airlied at redhat.com> 2.6.31.5-104
 - drm-next-ea1495a6.patch: fix rs400 resume on my test box
 




More information about the fedora-extras-commits mailing list