rpms/kernel/F-10 drm-modesetting-radeon.patch, 1.60, 1.61 kernel.spec, 1.1158, 1.1159

Dave Airlie airlied at fedoraproject.org
Mon Nov 24 03:51:47 UTC 2008


Author: airlied

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

Modified Files:
	drm-modesetting-radeon.patch kernel.spec 
Log Message:
- radeon: hopefully fix rs690 and rs480 GART invalidation


drm-modesetting-radeon.patch:

Index: drm-modesetting-radeon.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/drm-modesetting-radeon.patch,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- drm-modesetting-radeon.patch	18 Nov 2008 07:09:47 -0000	1.60
+++ drm-modesetting-radeon.patch	24 Nov 2008 03:51:46 -0000	1.61
@@ -1,3 +1,24 @@
+commit e6b8a9c1229e99d65045ea89cb67623f2e657e27
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Mon Nov 24 11:41:06 2008 +1100
+
+    radeon: make rs480/rs690 gart invalidate work properly.
+    
+    we really need to read back to make sure the invalidate has happened
+    before continuing along happily in life.
+
+commit 3ca0fb9be2b58d48c5cb8c8482e7eade63a68337
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Sun Nov 23 19:19:02 2008 +1000
+
+    drm: we have discardable now so don't do special cases
+
+commit b5b1e0ef92c66e9a7423ea1fbfdaa9cf31c975af
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Fri Nov 21 14:52:25 2008 +1000
+
+    atom: fix bug in parser for MC reads
+
 commit 6f3f61f49573db49b0753246432cabd0ec9874d8
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Mon Nov 17 18:14:28 2008 +1000
@@ -2032,7 +2053,7 @@
  	return -EINVAL;
 diff --git a/drivers/gpu/drm/drm_bo.c b/drivers/gpu/drm/drm_bo.c
 new file mode 100644
-index 0000000..1751b1b
+index 0000000..84931d2
 --- /dev/null
 +++ b/drivers/gpu/drm/drm_bo.c
 @@ -0,0 +1,2159 @@
@@ -4168,10 +4189,10 @@
 +
 +		entry = list_entry(lru->next, struct drm_buffer_object, lru);
 +
-+		if (entry->mem.flags & DRM_BO_FLAG_DISCARDABLE) {
-+			lru = lru->next;
-+			goto redo;
-+		}
++		//		if (entry->mem.flags & DRM_BO_FLAG_DISCARDABLE) {
++		//			lru = lru->next;
++		//			goto redo;
++		//		}
 +
 +		atomic_inc(&entry->usage);
 +		mutex_unlock(&dev->struct_mutex);
@@ -13814,7 +13835,7 @@
 +#endif
 diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c
 new file mode 100644
-index 0000000..2a660a4
+index 0000000..6ebf6d9
 --- /dev/null
 +++ b/drivers/gpu/drm/radeon/atom.c
 @@ -0,0 +1,1143 @@
@@ -14090,7 +14111,7 @@
 +	if(print)
 +	    DEBUG("MC[0x%02X]", idx);
 +	val = gctx->card->mc_read(gctx->card, idx);
-+	return 0;
++	break;
 +    }
 +    if(saved)
 +	*saved = val;
@@ -24158,7 +24179,7 @@
 +	return NULL;
 +}
 diff --git a/drivers/gpu/drm/radeon/radeon_cp.c b/drivers/gpu/drm/radeon/radeon_cp.c
-index abdc1ae..1058ead 100644
+index abdc1ae..7b888e7 100644
 --- a/drivers/gpu/drm/radeon/radeon_cp.c
 +++ b/drivers/gpu/drm/radeon/radeon_cp.c
 @@ -31,6 +31,7 @@
@@ -25926,7 +25947,7 @@
  	DRM_DEBUG("\n");
  
  	drm_rmmap(dev, dev_priv->mmio);
-@@ -1796,3 +2844,58 @@ int radeon_driver_unload(struct drm_device *dev)
+@@ -1796,3 +2844,63 @@ int radeon_driver_unload(struct drm_device *dev)
  	dev->dev_private = NULL;
  	return 0;
  }
@@ -25934,11 +25955,16 @@
 +void radeon_gart_flush(struct drm_device *dev)
 +{
 +        drm_radeon_private_t *dev_priv = dev->dev_private;
-+        
++        uint32_t loop = 0, val;
 +        if (dev_priv->flags & RADEON_IS_IGPGART) {
 +                IGP_READ_MCIND(dev_priv, RS480_GART_CACHE_CNTRL);
 +                IGP_WRITE_MCIND(RS480_GART_CACHE_CNTRL, RS480_GART_CACHE_INVALIDATE);
-+                IGP_READ_MCIND(dev_priv, RS480_GART_CACHE_CNTRL);
++		val = IGP_READ_MCIND(dev_priv, RS480_GART_CACHE_CNTRL);
++		while ((val & RS480_GART_CACHE_INVALIDATE) && loop++ < 100000) {
++			val = IGP_READ_MCIND(dev_priv, RS480_GART_CACHE_CNTRL);
++		}
++		if (loop == 100000)
++			DRM_ERROR("Failed to invalidate IGP GART TLB\n");	
 +                IGP_WRITE_MCIND(RS480_GART_CACHE_CNTRL, 0);
 +        } else if (dev_priv->flags & RADEON_IS_PCIE) {
 +                u32 tmp = RADEON_READ_PCIE(dev_priv, RADEON_PCIE_TX_GART_CNTL);


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/kernel.spec,v
retrieving revision 1.1158
retrieving revision 1.1159
diff -u -r1.1158 -r1.1159
--- kernel.spec	19 Nov 2008 21:07:51 -0000	1.1158
+++ kernel.spec	24 Nov 2008 03:51:47 -0000	1.1159
@@ -1938,6 +1938,9 @@
 %kernel_variant_files -k vmlinux %{with_kdump} kdump
 
 %changelog
+* Mon Nov 24 2008 Dave Airlie <airlied at redhat.com> 2.6.27.5-123
+- radeon: hopefully fix rs690 and rs480 GART invalidation
+
 * Wed Nov 19 2008 Dave Jones <davej at redhat.com> 2.6.27.5-122
 - selinux: recognize netlink messages for 'ip addrlabel' (#469423)
 




More information about the scm-commits mailing list