rpms/kernel/devel agp-set_memory_ucwb.patch, NONE, 1.1 kernel.spec, 1.1344, 1.1345
Dave Airlie
airlied at fedoraproject.org
Fri Feb 27 03:13:27 UTC 2009
Author: airlied
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv16418
Modified Files:
kernel.spec
Added Files:
agp-set_memory_ucwb.patch
Log Message:
* Fri Feb 27 2009 Dave Airlie <airlied at redhat.com>
- agp-set_memory_ucwb.patch - enable GEM/KMS on PAE hopefully
agp-set_memory_ucwb.patch:
--- NEW FILE agp-set_memory_ucwb.patch ---
commit 082dd38cdc63cbee3924806bff5d87b751270747
Author: Pierre Willenbrock <pierre at pirsoft.de>
Date: Fri Dec 12 01:36:41 2008 +0100
Use set_memory_{uc,wb} instead of set_memory_array_{uc,wb} for CONFIG_HIGHMEM64G
set_memory_array_{uc,wb} expects an unsigned long *,
but was called with a dma_addr_t *. This optimistically assumes
only CONFIG_HIGHMEM64G selects something incompatible with
unsigned long for dma_addr_t.
Signed-off-by: Pierre Willenbrock <pierre at pirsoft.de>
diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c
index 97e8b41..aeeaf68 100644
--- a/drivers/char/agp/generic.c
+++ b/drivers/char/agp/generic.c
@@ -1240,12 +1240,17 @@ int agp_generic_alloc_pages(struct agp_bridge_data *bridge, struct agp_memory *m
}
#ifdef CONFIG_X86
+#ifdef CONFIG_HIGHMEM64G
+ for (i = 0; i < num_pages; i++)
+ set_memory_uc(mem->memory[i], 1);
+#else
set_memory_array_uc(mem->memory, num_pages);
#endif
+#endif
ret = 0;
out:
for (i = 0; i < mem->page_count; i++)
- mem->memory[i] = virt_to_gart((void *)mem->memory[i]);
+ mem->memory[i] = virt_to_gart((void *)(unsigned long)mem->memory[i]);
return ret;
}
EXPORT_SYMBOL(agp_generic_alloc_pages);
@@ -1279,11 +1284,16 @@ void agp_generic_destroy_pages(struct agp_memory *mem)
mem->memory[i] = (unsigned long)gart_to_virt(mem->memory[i]);
#ifdef CONFIG_X86
+#ifdef CONFIG_HIGHMEM64G
+ for (i = 0; i < mem->page_count; i++)
+ set_memory_wb(mem->memory[i], 1);
+#else
set_memory_array_wb(mem->memory, mem->page_count);
#endif
+#endif
for (i = 0; i < mem->page_count; i++) {
- addr = (void *)mem->memory[i];
+ addr = (void *)(unsigned long)mem->memory[i];
page = virt_to_page(addr);
#ifndef CONFIG_X86
diff -up linux-2.6.28.noarch/drivers/gpu/drm/i915/i915_dma.c.dma linux-2.6.28.noarch/drivers/gpu/drm/i915/i915_dma.c
--- linux-2.6.28.noarch/drivers/gpu/drm/i915/i915_dma.c.dma 2009-02-27 13:11:03.000000000 +1000
+++ linux-2.6.28.noarch/drivers/gpu/drm/i915/i915_dma.c 2009-02-27 13:11:11.000000000 +1000
@@ -1104,7 +1104,7 @@ int i915_driver_load(struct drm_device *
"performance may suffer.\n");
}
-#ifdef CONFIG_HIGHMEM64G
+#if 0 /* Fedora has AGP workaround patch */
/* don't enable GEM on PAE - needs agp + set_memory_* interface fixes */
dev_priv->has_gem = 0;
#else
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1344
retrieving revision 1.1345
diff -u -r1.1344 -r1.1345
--- kernel.spec 27 Feb 2009 03:05:19 -0000 1.1344
+++ kernel.spec 27 Feb 2009 03:12:57 -0000 1.1345
@@ -641,6 +641,7 @@
# but the drive isn't yet ready.
Patch1550: linux-2.6-cdrom-door-status.patch
+Patch1700: agp-set_memory_ucwb.patch
# nouveau + drm fixes
Patch1811: drm-next.patch
Patch1812: drm-modesetting-radeon.patch
@@ -1174,6 +1175,7 @@
ApplyPatch linux-2.6-libertas-netpriv-fixes.patch
+ApplyPatch agp-set_memory_ucwb.patch
# Nouveau DRM + drm fixes
ApplyPatch drm-next.patch
ApplyPatch drm-modesetting-radeon.patch
@@ -1787,6 +1789,9 @@
%changelog
* Fri Feb 27 2009 Dave Airlie <airlied at redhat.com>
+- agp-set_memory_ucwb.patch - enable GEM/KMS on PAE hopefully
+
+* Fri Feb 27 2009 Dave Airlie <airlied at redhat.com>
- drm-next.patch: bring in drm-next tree for r600 support
- rebased drm-modesetting-radeon.patch and drm-nouveau.patch
More information about the fedora-extras-commits
mailing list