rpms/kernel/devel drm-next.patch, 1.9, 1.10 kernel.spec, 1.1396, 1.1397

Dave Airlie airlied at fedoraproject.org
Mon Mar 9 05:51:35 UTC 2009


Author: airlied

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv22885

Modified Files:
	drm-next.patch kernel.spec 
Log Message:
* Mon Mar 09 2009 Dave Airlie <airlied at redhat.com>
- drm-next.patch: fix r600 writeback test


drm-next.patch:

Index: drm-next.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-next.patch,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- drm-next.patch	9 Mar 2009 03:11:26 -0000	1.9
+++ drm-next.patch	9 Mar 2009 05:51:34 -0000	1.10
@@ -1,3 +1,18 @@
+commit 24011adb61c1510fdd9c7ec9a27fc1ac4b23f1bf
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Mon Mar 9 15:31:20 2009 +1000
+
+    drm/radeon: fix r600 writeback setup.
+    
+    This fixes 2 bugs:
+    1. the AGP calculation wasn't consistent with the PCI(E) calc for the
+    RPTR_ADDR registers. This consolidates the writes and fixes it up.
+    
+    2. The scratch address was being incorrectly calculated, this breaks
+    it out into a lot more linear steps.
+    
+    Signed-off-by: Dave Airlie <airlied at redhat.com>
+
 commit d2d31c9fe72bf4904798fd0d01522644e49dd518
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Mon Mar 9 12:47:18 2009 +1000
@@ -3906,10 +3921,10 @@
  	cmdbuf->bufsz -= sizeof(u64);
 diff --git a/drivers/gpu/drm/radeon/r600_cp.c b/drivers/gpu/drm/radeon/r600_cp.c
 new file mode 100644
-index 0000000..6f2cc74
+index 0000000..04fde35
 --- /dev/null
 +++ b/drivers/gpu/drm/radeon/r600_cp.c
-@@ -0,0 +1,2247 @@
+@@ -0,0 +1,2256 @@
 +/*
 + * Copyright 2008-2009 Advanced Micro Devices, Inc.
 + * Copyright 2008 Red Hat Inc.
@@ -5542,6 +5557,7 @@
 +{
 +	struct drm_radeon_master_private *master_priv;
 +	u32 ring_start;
++	u64 rptr_addr;
 +
 +	if (((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RV770))
 +		r700_gfx_init(dev, dev_priv);
@@ -5596,21 +5612,20 @@
 +
 +#if __OS_HAS_AGP
 +	if (dev_priv->flags & RADEON_IS_AGP) {
-+		/* XXX */
-+		RADEON_WRITE(R600_CP_RB_RPTR_ADDR,
-+			     (dev_priv->ring_rptr->offset
-+			     - dev->agp->base + dev_priv->gart_vm_start) >> 8);
-+		RADEON_WRITE(R600_CP_RB_RPTR_ADDR_HI, 0);
++		rptr_addr = dev_priv->ring_rptr->offset
++			- dev->agp->base +
++			dev_priv->gart_vm_start;
 +	} else
 +#endif
 +	{
-+		RADEON_WRITE(R600_CP_RB_RPTR_ADDR,
-+			     dev_priv->ring_rptr->offset
-+			     - ((unsigned long) dev->sg->virtual)
-+			     + dev_priv->gart_vm_start);
-+
-+		RADEON_WRITE(R600_CP_RB_RPTR_ADDR_HI, 0);
-+	}
++		rptr_addr = dev_priv->ring_rptr->offset
++			- ((unsigned long) dev->sg->virtual)
++			+ dev_priv->gart_vm_start;
++	}
++	RADEON_WRITE(R600_CP_RB_RPTR_ADDR,
++		     rptr_addr & 0xffffffff);
++	RADEON_WRITE(R600_CP_RB_RPTR_ADDR_HI,
++		     upper_32_bits(rptr_addr));
 +
 +#ifdef __BIG_ENDIAN
 +	RADEON_WRITE(R600_CP_RB_CNTL,
@@ -5659,8 +5674,17 @@
 +	 * We simply put this behind the ring read pointer, this works
 +	 * with PCI GART as well as (whatever kind of) AGP GART
 +	 */
-+	RADEON_WRITE(R600_SCRATCH_ADDR, ((RADEON_READ(R600_CP_RB_RPTR_ADDR) << 8)
-+					 + R600_SCRATCH_REG_OFFSET) >> 8);
++	{
++		u64 scratch_addr;
++
++		scratch_addr = RADEON_READ(R600_CP_RB_RPTR_ADDR);
++		scratch_addr |= ((u64)RADEON_READ(R600_CP_RB_RPTR_ADDR_HI)) << 32;
++		scratch_addr += R600_SCRATCH_REG_OFFSET;
++		scratch_addr >>= 8;
++		scratch_addr &= 0xffffffff;
++
++		RADEON_WRITE(R600_SCRATCH_ADDR, (uint32_t)scratch_addr);
++	}
 +
 +	RADEON_WRITE(R600_SCRATCH_UMSK, 0x7);
 +


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1396
retrieving revision 1.1397
diff -u -r1.1396 -r1.1397
--- kernel.spec	9 Mar 2009 04:32:25 -0000	1.1396
+++ kernel.spec	9 Mar 2009 05:51:34 -0000	1.1397
@@ -1810,6 +1810,9 @@
 # and build.
 
 %changelog
+* Mon Mar 09 2009 Dave Airlie <airlied at redhat.com>
+- drm-next.patch: fix r600 writeback test
+
 * Mon Mar 09 2009 Ben Skeggs <bskeggs at gmail.com>
 - drm-nouveau.patch: nv50 and kms fixes
 




More information about the fedora-extras-commits mailing list