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