rpms/kernel/F-8 linux-2.6-drm-radeon-x800-pcie-fix.patch, NONE, 1.1 kernel.spec, 1.252, 1.253

Dave Airlie (airlied) fedora-extras-commits at redhat.com
Tue Nov 6 00:41:04 UTC 2007


Author: airlied

Update of /cvs/pkgs/rpms/kernel/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv17621

Modified Files:
	kernel.spec 
Added Files:
	linux-2.6-drm-radeon-x800-pcie-fix.patch 
Log Message:
* Tue Nov  6 2007 David Airlie <airlied at redhat.com>
- Fix bug 228414 - X hangs at startup with Radeon X800 GTO PCIe with DRI


linux-2.6-drm-radeon-x800-pcie-fix.patch:

--- NEW FILE linux-2.6-drm-radeon-x800-pcie-fix.patch ---
>From 7fc86860cf73e060ab8ed9763010dfe5b5389b1c Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied at linux.ie>
Date: Mon, 5 Nov 2007 10:45:27 +1000
Subject: [PATCH] radeon: set the address to access the GART table on the CPU side correctly

This code relied on the CPU and GPU address for the aperture being the same,
On some r5xx hardware I was playing with I noticed that this isn't always true.
This fixes issues seen on some r400 cards. (bugs.freedesktop.org 9957)

Signed-off-by: Dave Airlie <airlied at redhat.com>
---
 drivers/char/drm/radeon_cp.c  |    5 +++--
 drivers/char/drm/radeon_drv.h |    1 +
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/char/drm/radeon_cp.c b/drivers/char/drm/radeon_cp.c
index 335423c..24fca8e 100644
--- a/drivers/char/drm/radeon_cp.c
+++ b/drivers/char/drm/radeon_cp.c
@@ -1679,7 +1679,7 @@ static int radeon_do_init_cp(struct drm_device * dev, drm_radeon_init_t * init)
 			dev_priv->gart_info.bus_addr =
 			    dev_priv->pcigart_offset + dev_priv->fb_location;
 			dev_priv->gart_info.mapping.offset =
-			    dev_priv->gart_info.bus_addr;
+			    dev_priv->pcigart_offset + dev_priv->fb_aper_offset;
 			dev_priv->gart_info.mapping.size =
 			    dev_priv->gart_info.table_size;
 
@@ -2275,7 +2275,8 @@ int radeon_driver_firstopen(struct drm_device *dev)
 	if (ret != 0)
 		return ret;
 
-	ret = drm_addmap(dev, drm_get_resource_start(dev, 0),
+	dev_priv->fb_aper_offset = drm_get_resource_start(dev, 0);
+	ret = drm_addmap(dev, dev_priv->fb_aper_offset,
 			 drm_get_resource_len(dev, 0), _DRM_FRAME_BUFFER,
 			 _DRM_WRITE_COMBINING, &map);
 	if (ret != 0)
diff --git a/drivers/char/drm/radeon_drv.h b/drivers/char/drm/radeon_drv.h
index e4077bc..bfbb60a 100644
--- a/drivers/char/drm/radeon_drv.h
+++ b/drivers/char/drm/radeon_drv.h
@@ -293,6 +293,7 @@ typedef struct drm_radeon_private {
 
 	/* starting from here on, data is preserved accross an open */
 	uint32_t flags;		/* see radeon_chip_flags */
+	unsigned long fb_aper_offset;
 } drm_radeon_private_t;
 
 typedef struct drm_radeon_buf_priv {
-- 
1.5.2.4



Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/kernel.spec,v
retrieving revision 1.252
retrieving revision 1.253
diff -u -r1.252 -r1.253
--- kernel.spec	3 Nov 2007 16:57:53 -0000	1.252
+++ kernel.spec	6 Nov 2007 00:40:30 -0000	1.253
@@ -695,6 +695,7 @@
 Patch1800: drm-mm-git.patch
 Patch1801: nouveau-drm.patch
 Patch1802: linux-2.6-drm-fix-i915-allocation.patch
+Patch1803: linux-2.6.drm-radeon-x800-pcie.patch
 
 # Fix lockdep bug in firewire.
 Patch1900: linux-2.6-firewire-lockdep.patch
@@ -1040,6 +1041,8 @@
 ApplyPatch drm-mm-git.patch
 ApplyPatch nouveau-drm.patch
 ApplyPatch linux-2.6-drm-fix-i915-allocation.patch
+# Fix for 228414
+ApplyPatch linux-2.6-drm-radeon-x800-pcie-fix.patch
 
 # enable sysrq-c on all kernels, not only kexec
 ApplyPatch linux-2.6-sysrq-c.patch
@@ -1889,6 +1892,9 @@
 
 
 %changelog
+* Tue Nov  6 2007 David Airlie <airlied at redhat.com>
+- Fix bug 228414 - X hangs at startup with Radeon X800 GTO PCIe with DRI
+
 * Sat Nov  3 2007 David Woodhouse <dwmw2 at redhat.com>
 - Apply PS3 EHCI workaround to make rebooting work when hci_usb is loaded
 




More information about the fedora-extras-commits mailing list