rpms/kernel/devel drm-modesetting-radeon.patch, 1.62, 1.63 drm-next.patch, 1.8, 1.9 kernel.spec, 1.1394, 1.1395

Dave Airlie airlied at fedoraproject.org
Mon Mar 9 03:11:27 UTC 2009


Author: airlied

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

Modified Files:
	drm-modesetting-radeon.patch drm-next.patch kernel.spec 
Log Message:
* Mon Mar 09 2009 Dave Airlie <airlied at redhat.com>
- drm-next.patch: fixes from upstream queue for r600 support
- drm-modesetting-radeon.patch: make 2D/3D on PCIE faster


drm-modesetting-radeon.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.62 -r 1.63 drm-modesetting-radeon.patch
Index: drm-modesetting-radeon.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-modesetting-radeon.patch,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- drm-modesetting-radeon.patch	5 Mar 2009 07:26:21 -0000	1.62
+++ drm-modesetting-radeon.patch	9 Mar 2009 03:11:26 -0000	1.63
@@ -1,1492 +1,3 @@
-commit fef48d5013f761faec24ee1044282b6098318237
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Thu Mar 5 15:57:18 2009 +1000
-
-    radeon: add special relocation for WAIT_VLINE
-    
-    This is half ways between a hack and really neat.
-
-commit 530ebda60cb7270795b7edd72930ab2d0e4db102
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Tue Mar 3 18:23:22 2009 +1000
-
-    radeon: port proc debug files to new debugfs interface
-
-commit 94137dff359fc70b51bdf035f97cfbab7424a5ce
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Tue Mar 3 15:33:52 2009 +1000
-
-    radeon: pin framebuffer and cursors dynamically
-
-commit 90a014f6d04548790dbcef1932ad3d89ff12aa32
-Author: Alex Deucher <alexdeucher at gmail.com>
-Date:   Fri Feb 27 20:25:36 2009 -0500
-
-    radeon: fix MC setup on systems with more than 512 MB of VRAM
-    
-    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
-
-commit 9e3775d3fe8677b2f995230521fd93cd9ef69327
-Author: Alex Deucher <alexdeucher at gmail.com>
-Date:   Fri Feb 27 20:18:20 2009 -0500
-
-    radeon: leave the MC_FB_LOCATION alone on RS780
-    
-    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
-
-commit b3c52a1d083b846541e2b6d78c917ae00e9f04c1
-Author: Alex Deucher <alexdeucher at gmail.com>
-Date:   Fri Feb 27 20:15:04 2009 -0500
-
-    radeon: wait for MC idle on r6xx/r7xx chips
-    
-    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
-
-commit b077cde9a296856bcadb3003e746950034e929bb
-Author: Alex Deucher <alexdeucher at gmail.com>
-Date:   Fri Feb 27 20:07:13 2009 -0500
-
-    radeon: fix up RS600 mc setup and unify mc reg access
-    
-    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
-
-commit 85a3e7390f17ba442c020dda1a47e6b6b1ce0588
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Mon Mar 2 23:51:30 2009 +1100
-
-    radeon: fixup suspend/resume hooks
-
-commit 1467208a03bb127c3882c59cbcc2818fb1076b8d
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Sun Mar 1 18:25:07 2009 +1100
-
-    radeon: fix rs480 gart size
-
-commit f3812bb92e9900be559d5d4b2098b8dcef01cce9
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Fri Feb 27 15:37:14 2009 +1000
-
-    radeon: disable kms by default for r600
-
-commit 924db462f118847e313a1a185e93e58016866da4
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Fri Feb 27 11:51:22 2009 +1000
-
-    radeon: fixup proc hacks
-
-commit 59883501a17405b6db133066d41309db083eb722
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Fri Feb 27 11:51:08 2009 +1000
-
-    radeon: fixup module load
-
-commit 0b8ecbca3940dc13b163ab2c46f633625d52aa72
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Fri Feb 27 11:50:50 2009 +1000
-
-    radeon: fix up ring read/write for new drm-next code
-
-commit 6bffd54b50ca1889aea58454e39edf23e3c4ec50
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Fri Feb 27 11:50:24 2009 +1000
-
-    ati_pcigart: update pcigart for changes in drm-next
-
-commit ddd936403f8c89d85a6407809e93e32b050b09b0
-Author: Dave Airlie <airlied at linux.ie>
-Date:   Thu Feb 26 22:27:21 2009 +1000
-
-    radeon: fixup writeback/ring ptrs for Kms
-
-commit b245e49600fe885e376150d9e8adc6308408c70f
-Author: Dave Airlie <airlied at linux.ie>
-Date:   Thu Feb 26 22:00:59 2009 +1000
-
-    radeon: fixup after rebase so it builds
-    
-    lots more to do
-
-commit c2181284133a30bd1355b9f9463710f9ec43ccaa
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Thu Feb 26 12:03:55 2009 +1000
-
-    drm/radeno: add support for r100 cp type 3 packets
-
-commit 62fb97e2a2e71f83c2c6c783f95a36ba19ec468f
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Wed Feb 25 16:07:15 2009 +1000
-
-    radeon: fixup cs buffer re-use code to not block straight away
-
-commit 7da8970a24bad69684fba5713106b3c7ab69c858
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Wed Feb 25 16:06:30 2009 +1000
-
-    radeon: port CS mutex over from drm.git
-    
-    Totally missed this before - really helps stability
-
-commit 97c941152f9ebf9e8554d5fc9810a48c722e0c9b
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Wed Feb 25 13:03:47 2009 +1000
-
-    radeon: fix IB dump end
-
-commit 7ce614a4e8d2c1f184de524eb5185fa0004328c5
-Author: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
-Date:   Tue Feb 24 20:26:53 2009 +1000
-
-    drm/ttm: work around some x86 pat oddities by using mixedmap instead of pfnmap
-
-commit a7b9422d556ac958d4a13fc03f83be4cfa39b46a
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Sun Feb 22 08:22:14 2009 +1000
-
-    radeon: add module IDs
-
-commit 9a51f123fcf038946ee12626b2b43c51aa83ce6c
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Sun Feb 22 08:19:33 2009 +1000
-
-    radeon: fixup for new APIs
-
-commit 60f38523ede4949f2b45ca50965b63a32d7a55ba
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Sun Feb 22 08:11:33 2009 +1000
-
-    drm: fix parmeter passed to fb_release
-
-commit fb9c478ac883cbff1c1dc749c375fb530516e37e
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Wed Feb 18 17:36:33 2009 +1000
-
-    radeon: add IB dumping
-    
-    this adds basic IB dumping and cleans up some code around it.
-
-commit c7c57bbbc13a80bfd5eec9a52111f354871d6416
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Wed Feb 18 11:12:19 2009 +1000
-
-    radeon: fix packet2 parsing + enhance debug
-
-commit 7970531e80133bae363d81d2da4b71b8b058a9eb
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Wed Feb 18 11:11:39 2009 +1000
-
-    radeon: use r100/r200 table to setup the regs database
-    
-    This takes the packet table from the older CS method and re-uses it to
-    setup the valid register table.
-    
-    It also doesn't or in the table values but sets them
-
-commit a8b00f79936bde4eade8eb4459fdc1bd3b1264aa
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Tue Feb 17 20:57:34 2009 +1000
-
-    radeon/i2c: i2c adapter id is gone
-
-commit a941fade599c2468fedcf7b2cd0c8c77f8bf9db2
-Author: Dave Airlie <airlied at redhat.com>
[...1874 lines suppressed...]
-@@ -0,0 +1,1555 @@
+@@ -0,0 +1,1568 @@
 +/*
 + * Copyright 2008 Red Hat Inc.
 + *
@@ -24808,20 +23350,26 @@
 +{
 +	struct drm_gem_object *obj;
 +	struct drm_radeon_gem_object *obj_priv;
++	struct drm_radeon_private *dev_priv;
 +	int ret;
 +	uint32_t flags;
 +	uint32_t page_align;
++	uint32_t cached = 0;
 +
 +	obj = drm_gem_object_alloc(dev, size);
 +	if (!obj)
 +		return NULL;
 +
 +	obj_priv = obj->driver_private;
++	dev_priv = obj->dev->dev_private;
 +	flags = DRM_BO_FLAG_MAPPABLE;
++
++	if (!(dev_priv->flags & RADEON_IS_AGP))
++		cached = DRM_BO_FLAG_CACHED;
 +	if (initial_domain == RADEON_GEM_DOMAIN_VRAM)
-+		flags |= DRM_BO_FLAG_MEM_VRAM;
++		flags |= DRM_BO_FLAG_MEM_VRAM | cached;
 +	else if (initial_domain == RADEON_GEM_DOMAIN_GTT)
-+		flags |= DRM_BO_FLAG_MEM_TT;
++		flags |= DRM_BO_FLAG_MEM_TT | cached;
 +	else
 +		flags |= DRM_BO_FLAG_MEM_LOCAL | DRM_BO_FLAG_CACHED;
 +
@@ -24889,17 +23437,22 @@
 +int radeon_gem_set_domain(struct drm_gem_object *obj, uint32_t read_domains, uint32_t write_domain, uint32_t *flags_p, bool unfenced)
 +{
 +	struct drm_radeon_gem_object *obj_priv;
++	drm_radeon_private_t *dev_priv = obj->dev->dev_private;
 +	uint32_t flags = 0;
 +	int ret;
++	uint32_t cached = 0;
 +
 +	obj_priv = obj->driver_private;
 +
++	if (!(dev_priv->flags & RADEON_IS_AGP))
++		cached = DRM_BO_FLAG_CACHED;
++
 +	/* work out where to validate the buffer to */
 +	if (write_domain) { /* write domains always win */
 +		if (write_domain == RADEON_GEM_DOMAIN_VRAM)
-+			flags = DRM_BO_FLAG_MEM_VRAM;
++			flags = DRM_BO_FLAG_MEM_VRAM | cached;
 +		else if (write_domain == RADEON_GEM_DOMAIN_GTT)
-+			flags = DRM_BO_FLAG_MEM_TT; // need a can write gart check
++			flags = DRM_BO_FLAG_MEM_TT | cached; // need a can write gart check
 +		else
 +			return -EINVAL; // we can't write to system RAM
 +	} else {
@@ -24917,22 +23470,22 @@
 +		
 +		/* simple case no choice in domains */
 +		if (read_domains == RADEON_GEM_DOMAIN_VRAM)
-+			flags = DRM_BO_FLAG_MEM_VRAM;
++			flags = DRM_BO_FLAG_MEM_VRAM | cached;
 +		else if (read_domains == RADEON_GEM_DOMAIN_GTT)
-+			flags = DRM_BO_FLAG_MEM_TT;
++			flags = DRM_BO_FLAG_MEM_TT | cached;
 +		else if ((obj_priv->bo->mem.mem_type == DRM_BO_MEM_VRAM) && (read_domains & RADEON_GEM_DOMAIN_VRAM))
-+			flags = DRM_BO_FLAG_MEM_VRAM;
++			flags = DRM_BO_FLAG_MEM_VRAM | cached;
 +		else if ((obj_priv->bo->mem.mem_type == DRM_BO_MEM_TT) && (read_domains & RADEON_GEM_DOMAIN_GTT))
-+			flags = DRM_BO_FLAG_MEM_TT;
++			flags = DRM_BO_FLAG_MEM_TT | cached;
 +		else if ((obj_priv->bo->mem.mem_type == DRM_BO_MEM_LOCAL) && (read_domains & RADEON_GEM_DOMAIN_GTT))
-+			flags = DRM_BO_FLAG_MEM_TT;
++			flags = DRM_BO_FLAG_MEM_TT | cached;
 +
 +		/* no idea here just set whatever we are input */
 +		if (flags == 0) {
 +			if (read_domains & RADEON_GEM_DOMAIN_VRAM)
-+				flags |= DRM_BO_FLAG_MEM_VRAM;
++				flags |= DRM_BO_FLAG_MEM_VRAM | cached;
 +			if (read_domains & RADEON_GEM_DOMAIN_GTT)
-+				flags |= DRM_BO_FLAG_MEM_TT;
++				flags |= DRM_BO_FLAG_MEM_TT | cached;
 +		}
 +	}
 +
@@ -24946,6 +23499,7 @@
 +	if (ret)
 +		return ret;
 +
++	flags &= ~cached;
 +	if (flags_p)
 +		*flags_p = flags;
 +	return 0;
@@ -25814,7 +24368,8 @@
 +	drm_bo_driver_init(dev);
 +
 +	/* use the uncached allocator */
-+	dev->bm.allocator_type = _DRM_BM_ALLOCATOR_UNCACHED;
++	if (dev_priv->flags & RADEON_IS_AGP)
++		dev->bm.allocator_type = _DRM_BM_ALLOCATOR_UNCACHED;
 +
 +	/* size the mappable VRAM memory for now */
 +	radeon_vram_setup(dev);
@@ -26658,7 +25213,7 @@
 +}
 +
 diff --git a/drivers/gpu/drm/radeon/radeon_irq.c b/drivers/gpu/drm/radeon/radeon_irq.c
-index 8289e16..4d17023 100644
+index 9836c70..26ee45e 100644
 --- a/drivers/gpu/drm/radeon/radeon_irq.c
 +++ b/drivers/gpu/drm/radeon/radeon_irq.c
 @@ -195,11 +195,14 @@ irqreturn_t radeon_driver_irq_handler(DRM_IRQ_ARGS)
@@ -26676,7 +25231,7 @@
 +	}
  
  	/* VBLANK interrupt */
- 	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS690) {
+ 	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS600) {
 @@ -216,20 +219,23 @@ irqreturn_t radeon_driver_irq_handler(DRM_IRQ_ARGS)
  	return IRQ_HANDLED;
  }
@@ -35195,7 +33750,7 @@
 +
 +#endif
 diff --git a/drivers/gpu/drm/radeon/radeon_state.c b/drivers/gpu/drm/radeon/radeon_state.c
-index ca00cef..e6d0503 100644
+index fa728ec..6d96e7e 100644
 --- a/drivers/gpu/drm/radeon/radeon_state.c
 +++ b/drivers/gpu/drm/radeon/radeon_state.c
 @@ -305,8 +305,9 @@ static __inline__ int radeon_check_and_fixup_packet3(drm_radeon_private_t *
@@ -35633,7 +34188,7 @@
  #endif
 diff --git a/include/drm/drm_objects.h b/include/drm/drm_objects.h
 new file mode 100644
-index 0000000..604c8f8
+index 0000000..60016d6
 --- /dev/null
 +++ b/include/drm/drm_objects.h
 @@ -0,0 +1,913 @@
@@ -36535,12 +35090,12 @@
 +				void *virtual);
 +
 +/*
-+ * drm_uncached.c
++ * drm_page_alloc.
 + */
-+extern int drm_uncached_init(void);
-+extern void drm_uncached_fini(void);
-+extern struct page *drm_get_uncached_page(void);
-+extern void drm_put_uncached_page(struct page *page);
++extern int drm_page_alloc_init(void);
++extern void drm_page_alloc_fini(void);
++extern struct page *drm_get_page(int cached);
++extern void drm_put_page(struct page *page, int cached);
 +
 +#ifdef CONFIG_DEBUG_MUTEXES
 +#define DRM_ASSERT_LOCKED(_mutex)					\
@@ -36550,38 +35105,6 @@
 +#define DRM_ASSERT_LOCKED(_mutex)
 +#endif
 +#endif
-diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h
-index 912cd52..9aeb426 100644
---- a/include/drm/i915_drm.h
-+++ b/include/drm/i915_drm.h
-@@ -187,7 +187,7 @@ typedef struct _drm_i915_sarea {
- 
- #define DRM_IOCTL_I915_INIT		DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
- #define DRM_IOCTL_I915_FLUSH		DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
--#define DRM_IOCTL_I915_FLIP		DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLIP)
-+#define DRM_IOCTL_I915_FLIP		DRM_IOW( DRM_COMMAND_BASE + DRM_I915_FLIP, drm_i915_flip_t)
- #define DRM_IOCTL_I915_BATCHBUFFER	DRM_IOW( DRM_COMMAND_BASE + DRM_I915_BATCHBUFFER, drm_i915_batchbuffer_t)
- #define DRM_IOCTL_I915_IRQ_EMIT         DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_IRQ_EMIT, drm_i915_irq_emit_t)
- #define DRM_IOCTL_I915_IRQ_WAIT         DRM_IOW( DRM_COMMAND_BASE + DRM_I915_IRQ_WAIT, drm_i915_irq_wait_t)
-@@ -220,6 +220,18 @@ typedef struct _drm_i915_sarea {
- #define DRM_IOCTL_I915_GEM_GET_TILING	DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_TILING, struct drm_i915_gem_get_tiling)
- #define DRM_IOCTL_I915_GEM_GET_APERTURE	DRM_IOR  (DRM_COMMAND_BASE + DRM_I915_GEM_GET_APERTURE, struct drm_i915_gem_get_aperture)
- 
-+/* Asynchronous page flipping:
-+ */
-+typedef struct drm_i915_flip {
-+	/*
-+	 * This is really talking about planes, and we could rename it
-+	 * except for the fact that some of the duplicated i915_drm.h files
-+	 * out there check for HAVE_I915_FLIP and so might pick up this
-+	 * version.
-+	 */
-+	int pipes;
-+} drm_i915_flip_t;
-+
- /* Allow drivers to submit batchbuffers directly to hardware, relying
-  * on the security mechanisms provided by hardware.
-  */
 diff --git a/include/drm/radeon_drm.h b/include/drm/radeon_drm.h
 index 937a275..f716e0a 100644
 --- a/include/drm/radeon_drm.h

drm-next.patch:

Index: drm-next.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-next.patch,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- drm-next.patch	27 Feb 2009 03:14:01 -0000	1.8
+++ drm-next.patch	9 Mar 2009 03:11:26 -0000	1.9
@@ -1,4 +1,73 @@
-commit afdecdb151030e719a95896b610fdbde0ad4ca9f
+commit d2d31c9fe72bf4904798fd0d01522644e49dd518
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Mon Mar 9 12:47:18 2009 +1000
+
+    drm: fix warnings about new mappings in info code.
+    
+    This fixes up the warnings in the debugfs code that conflicted
+    with the mapping fixups.
+    
+    Signed-off-by: Dave Airlie <airlied at redhat.com>
+
+commit 4ac16538732ad683c1e7c13cc569335a2db8b6c5
+Author: Hannes Eder <hannes at hanneseder.net>
+Date:   Thu Mar 5 20:14:18 2009 +0100
+
+    drm/radeon: NULL noise: drivers/gpu/drm/radeon/radeon_*.c
+    
+    Fix this sparse warning:
+      drivers/gpu/drm/radeon/r600_cp.c:1811:52: warning: Using plain integer as NULL pointer
+      drivers/gpu/drm/radeon/radeon_cp.c:1363:52: warning: Using plain integer as NULL pointer
+      drivers/gpu/drm/radeon/radeon_state.c:1983:61: warning: Using plain integer as NULL pointer
+    
+    Signed-off-by: Hannes Eder <hannes at hanneseder.net>
+    Signed-off-by: Dave Airlie <airlied at redhat.com>
+
+commit ae0add29f05b2f5d22863eaefad106f2bb3919be
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Mon Mar 9 12:17:08 2009 +1000
+
+    drm/radeon: fix r600 pci mapping calls.
+    
+    This realigns the r600 pci mapping calls with the ati pcigart ones,
+    fixing the direction and using the correct interface.
+    
+    Suggested by Jerome Glisse.
+    
+    Signed-off-by: Dave Airlie <airlied at redhat.com>
+
+commit 9cc01249240abd94eeba0792ad6fc509e7bf072e
+Author: Alex Deucher <alexdeucher at gmail.com>
+Date:   Sat Mar 7 18:21:21 2009 -0500
+
+    drm/radeon: r6xx/r7xx: fix possible oops in r600_page_table_cleanup()
+    
+    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+    Signed-off-by: Dave Airlie <airlied at redhat.com>
+
+commit 8ebf7ff817d032d1f6a06da8b65149b3de049e14
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Mon Mar 9 12:12:28 2009 +1000
+
+    radeon: call the correct idle function, logic got inverted.
+    
+    This calls the correct idle function for the R600 and previous chips.
+    
+    Signed-off-by: Dave Airlie <airlied at redhat.com>
+
+commit 144a1136478cca4f3efe67787eec33ca07aec929
+Author: Alex Deucher <alexdeucher at gmail.com>
+Date:   Fri Mar 6 11:47:54 2009 -0500
+
+    drm/radeon: RS600: fix interrupt handling
+    
+    the checks weren't updated when RS600 support
+    was added.
+    
+    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
+    Signed-off-by: Dave Airlie <airlied at linux.ie>
+
+commit 664debb50231badbe84778f8945619e36555cd1d
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Thu Feb 26 10:15:24 2009 +1000
 
@@ -6,7 +75,7 @@
     
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit cc35bf2855020c4067e298cbd50fa5494b82ab7f
+commit 34aa4615a2cce35e46ef23b298c90afe4903f85d
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Thu Feb 26 10:14:40 2009 +1000
 
@@ -16,7 +85,7 @@
     
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit 0101c60cfa2d6bd9e86524f267f8ba092bc7b0ae
+commit 840cd338857ead31f2c208f70cff2126b6838fd0
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Thu Feb 26 10:13:47 2009 +1000
 
@@ -26,7 +95,7 @@
     
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit c455abd7d1f5ed1815d692f37b317f8eab358ced
+commit ae18cf3a76471e058613a5a1256969b8cfd27128
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Thu Feb 26 10:12:10 2009 +1000
 
@@ -38,7 +107,7 @@
     
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit 89de134be815fe9e30ca42aeac8a4ef5c8db8d30
+commit c79813faebe755991896c699773f50851c670d4c
 Author: Alex Deucher <alexdeucher at gmail.com>
 Date:   Wed Feb 25 17:02:19 2009 -0500
 
@@ -47,7 +116,7 @@
     Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit 8dba4f2bd6d91a38a732dc3417187b75a6607e62
+commit a7f4943d120ba4c45cff2bd22883f598024a08dc
 Author: Alex Deucher <alexdeucher at gmail.com>
 Date:   Wed Feb 25 16:57:49 2009 -0500
 
@@ -60,7 +129,7 @@
     Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit e482e2e2c5dab12db6f1aa032c30993ca36d77b9
+commit b7fd19e6342c5f2522ec35dec0a92c8069813255
 Author: Alex Deucher <alexdeucher at gmail.com>
 Date:   Wed Feb 25 15:55:01 2009 -0500
 
@@ -71,7 +140,7 @@
     Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit dbcce50efba41272d795b64edd06b1261dbdc5b8
+commit 393f865abfb61363ba117cb0c3ea5032bc0a3a3c
 Author: Alex Deucher <alexdeucher at gmail.com>
 Date:   Tue Feb 24 17:13:42 2009 -0500
 
@@ -80,7 +149,7 @@
     Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit 69184db08c49fd54d4e3a197dae64581c35a144f
+commit 6b3287c090c2c3eee993a96886f2f597c9e6ccfa
 Author: Alex Deucher <alexdeucher at gmail.com>
 Date:   Tue Feb 24 16:22:29 2009 -0500
 
@@ -92,7 +161,7 @@
     Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit b95ec10efe0bb8a106c6ab4edc019033c5081d3d
+commit e5a4f4a67d0e886b68ebb122b9282289bf9d6d7f
 Author: Alex Deucher <alexdeucher at gmail.com>
 Date:   Tue Feb 24 14:28:34 2009 -0500
 
@@ -107,7 +176,7 @@
     Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit 1e7e66e6dce44a77d4042b80de23c8ba4346c459
+commit 0c9f2a4eb40612b22c4bb32b9fe9bcbb82c99e10
 Author: Alex Deucher <alexdeucher at gmail.com>
 Date:   Tue Feb 24 14:02:13 2009 -0500
 
@@ -120,7 +189,7 @@
     Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit 9cb39ece1f32fe75e7c34b193022650108d4bf0f
+commit 3d802792f818036520ab805ded2904a749af4a48
 Author: Owain G. Ainsworth <oga at openbsd.org>
 Date:   Fri Feb 20 08:30:19 2009 +0000
 
@@ -138,7 +207,7 @@
     Signed-off-by: Eric Anholt <eric at anholt.net>
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit 5e60aaba5c9d226ec49f4c1030fc871bcea86048
+commit 088b364ce837e5b1fc8dd022bb5f98c8f3d96e3c
 Author: Chris Wilson <chris at chris-wilson.co.uk>
 Date:   Wed Feb 11 14:26:38 2009 +0000
 
@@ -148,7 +217,7 @@
     Signed-off-by: Eric Anholt <eric at anholt.net>
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit 475f933c677b8c59f34744aed2fc3bdcbec24c6e
+commit b884af03178e5cd139c8f566090ce763fb9e3a2b
 Author: Eric Anholt <eric at anholt.net>
 Date:   Tue Feb 17 23:53:41 2009 -0800
 
@@ -161,7 +230,7 @@
     Signed-off-by: Eric Anholt <eric at anholt.net>
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit b4212836fef1ef28c6070f43d70fc73f9f5687f6
+commit ceeb73a867fe64a1de124cd3e9d776e89944f940
 Author: Ben Gamari <bgamari at gmail.com>
 Date:   Tue Feb 17 20:08:51 2009 -0500
 
@@ -174,7 +243,7 @@
     Signed-off-by: Eric Anholt <eric at anholt.net>
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit a584bb1ed4de35a9206a8ed42fc7de18b3d46b5a
+commit b1645221d43bbfab70c5c5cfdc9e9733e380fca0
 Author: Ben Gamari <bgamari at gmail.com>
 Date:   Tue Feb 17 20:08:49 2009 -0500
 
@@ -194,7 +263,7 @@
     Signed-off-by: Eric Anholt <eric at anholt.net>
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit edd3993997087102558fd2dbad9d69f8936faf46
+commit d4b25b68f700e27a09c0c5a372c6ee5c1ec45b8e
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Fri Feb 20 13:28:59 2009 +1000
 
@@ -204,7 +273,7 @@
     
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit d372535cb04702f5a631c9fc4d0a05c82a17f9b9
+commit 0c37ea7ccc5dabc1cd53780ae4600c6d0644b9f3
 Author: Dave Airlie <airlied at redhat.com>
 Date:   Fri Feb 20 13:28:34 2009 +1000
 
@@ -217,7 +286,7 @@
     
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit ee97e09a8955f2c7c97142f53f259521a6366f95
+commit f7d0d89cc8da1e1ca489d5df3df68b00c0dd59d4
 Author: Benjamin Herrenschmidt <benh at kernel.crashing.org>
 Date:   Fri Feb 6 16:46:27 2009 +1100
 
@@ -229,7 +298,7 @@
     Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit caa35ced56886af48fbefd52e524267565c474db
+commit e22139bc821f295d25c0eddbeb65facf1f395458
 Author: David Miller <davem at davemloft.net>
 Date:   Wed Feb 18 01:35:21 2009 -0800
 
@@ -244,7 +313,7 @@
     Signed-off-by: David S. Miller <davem at davemloft.net>
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit 57c23ac2439fb3d63063803c1525e1797b7952cb
+commit 85cee125f1756aeaa35e02db01987a0a4a5db909
 Author: David Miller <davem at davemloft.net>
 Date:   Wed Feb 18 01:35:23 2009 -0800
 
@@ -260,7 +329,7 @@
     Signed-off-by: David S. Miller <davem at davemloft.net>
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit 61d7dc858751fa8134b10c21b2d79956a752f96d
+commit 37d1de5730f78a682a19a47f83893e6116a65325
 Author: David Miller <davem at davemloft.net>
 Date:   Wed Feb 18 15:41:02 2009 -0800
 
@@ -298,7 +367,7 @@
     Signed-off-by: David S. Miller <davem at davemloft.net>
     Signed-off-by: Dave Airlie <airlied at redhat.com>
 
-commit ed19a4b6caeabf3e03a4d553da0396eaebf76531
+commit ddaf8998790ba8d389859fa6420c7da38db91191
 Author: David Miller <davem at davemloft.net>
 Date:   Sun Feb 15 01:08:07 2009 -0800
 
@@ -316,7 +385,7 @@
     Signed-off-by: David S. Miller <davem at davemloft.net>
     Signed-off-by: Dave Airlie <airlied at linux.ie>
 
-commit 303ba2de4375c08154f7636087161f8d68977833
+commit 1a531c0b82db724bf802f5e100c2c2fc08d54459
 Author: David Miller <davem at davemloft.net>
 Date:   Sat Feb 14 01:51:07 2009 -0800
 
@@ -338,7 +407,7 @@
     Signed-off-by: David S. Miller <davem at davemloft.net>
     Signed-off-by: Dave Airlie <airlied at linux.ie>
 
-commit 75af28fa5949ac848ca383238212bcb9466a50db
+commit 7c5627f23a200c4ab9563b0f1fcfc6984be6ce0b
 Author: David Miller <davem at davemloft.net>
 Date:   Thu Feb 12 02:15:44 2009 -0800
 
@@ -350,7 +419,7 @@
     Signed-off-by: David S. Miller <davem at davemloft.net>
     Signed-off-by: Dave Airlie <airlied at linux.ie>
 
-commit 15c128115096c24076739d0601532b6890482596
+commit 0a5bd3c5c690560a24886d25c5031291c0efbc35
 Author: David Miller <davem at davemloft.net>
 Date:   Thu Feb 12 02:15:39 2009 -0800
 
@@ -362,7 +431,7 @@
     Signed-off-by: David S. Miller <davem at davemloft.net>
     Signed-off-by: Dave Airlie <airlied at linux.ie>
 
-commit dad8df8c4dfbbf5dfaaed08f61b589ada484a755
+commit 557d71764de798c60cc504f678aaf66a01374860
 Author: David Miller <davem at davemloft.net>
 Date:   Thu Feb 12 02:15:37 2009 -0800
 
@@ -385,7 +454,7 @@
     Signed-off-by: David S. Miller <davem at davemloft.net>
     Signed-off-by: Dave Airlie <airlied at linux.ie>
 
-commit 1b80a560c76a15813969bc79f8bef4f2324407f1
+commit 2a2aba5d992576a6d73666be1e5ef0248b7a5c1b
 Author: David Miller <davem at davemloft.net>
 Date:   Thu Feb 12 02:15:34 2009 -0800
 
@@ -402,7 +471,7 @@
     Signed-off-by: David S. Miller <davem at davemloft.net>
     Signed-off-by: Dave Airlie <airlied at linux.ie>
 
-commit a1971853c7d82fc14eff895757b5e093c1d6c0b5
+commit f087a3713864f4d3bba746cb70aaebbf9ee1e13f
 Author: David Miller <davem at davemloft.net>
 Date:   Thu Feb 12 02:15:27 2009 -0800
 
@@ -423,7 +492,7 @@
     Signed-off-by: David S. Miller <davem at davemloft.net>
     Signed-off-by: Dave Airlie <airlied at linux.ie>
 
-commit cfc0cec3a58d760f0adaef295e9bef5b2b994a69
+commit 928278d2dfc9e3d1af52dd037c13693add544501
 Author: Kristian Høgsberg <krh at redhat.com>
 Date:   Mon Jan 5 16:10:05 2009 -0500
 
@@ -442,7 +511,7 @@
     Signed-off-by: Kristian Høgsberg <krh at redhat.com>
     Signed-off-by: Dave Airlie <airlied at linux.ie>
 
-commit f258389e5a3dde1962f246ea8d893d41059a61d7
+commit 2c3a4c2e0f4127adbf9cecb473f2ac4576d289aa
 Author: Kristian Høgsberg <krh at bitplanet.net>
 Date:   Sun Jan 4 16:55:33 2009 -0500
 
@@ -456,7 +525,7 @@
     Signed-off-by: Kristian Høgsberg <krh at redhat.com>
     Signed-off-by: Dave Airlie <airlied at linux.ie>
 
-commit 0de5ea62f39de56d2d5513b35d6b9d8df9a66e45
+commit 731b22a5b708f10e45847007a8d786568cb8becc
 Author: Benjamin Herrenschmidt <benh at kernel.crashing.org>
 Date:   Mon Feb 2 16:55:47 2009 +1100
 
@@ -483,7 +552,7 @@
     Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
     Signed-off-by: Dave Airlie <airlied at linux.ie>
 
-commit b5fb48f9b87f1955f00a3651c5104d62381ab50d
+commit 3365ed3f4b72d9eaecc7a67ff0f3078c9053806d
 Author: Benjamin Herrenschmidt <benh at kernel.crashing.org>
 Date:   Mon Feb 2 16:55:46 2009 +1100
 
@@ -514,7 +583,7 @@
     Acked-by: Eric Anholt <eric at anholt.net>
     Signed-off-by: Dave Airlie <airlied at linux.ie>
 
-commit 1262fdc859fc25e03ce7631daa0d2b50399b3a64
+commit 2d072cd331fb6434406977ac3bbe7a58589f5cca
 Author: Benjamin Herrenschmidt <benh at kernel.crashing.org>
 Date:   Mon Feb 2 16:55:45 2009 +1100
 
@@ -645,7 +714,7 @@
  		}
  	}
 diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c
-index 72c667f..445c762 100644
+index 12715d3..6d80d17 100644
 --- a/drivers/gpu/drm/drm_bufs.c
 +++ b/drivers/gpu/drm/drm_bufs.c
 @@ -34,15 +34,17 @@
@@ -1330,7 +1399,7 @@
  	unsigned long prot;
 diff --git a/drivers/gpu/drm/drm_info.c b/drivers/gpu/drm/drm_info.c
 new file mode 100644
-index 0000000..fc98952
+index 0000000..60a1b6c
 --- /dev/null
 +++ b/drivers/gpu/drm/drm_info.c
 @@ -0,0 +1,328 @@
@@ -1408,7 +1477,7 @@
 +{
 +	struct drm_info_node *node = (struct drm_info_node *) m->private;
 +	struct drm_device *dev = node->minor->dev;
-+	struct drm_map *map;
++	struct drm_local_map *map;
 +	struct drm_map_list *r_list;
 +
 +	/* Hardcoded from _DRM_FRAME_BUFFER,
@@ -1430,9 +1499,9 @@
 +		else
 +			type = types[map->type];
 +
-+		seq_printf(m, "%4d 0x%08lx 0x%08lx %4.4s  0x%02x 0x%08lx ",
++		seq_printf(m, "%4d 0x%016llx 0x%08lx %4.4s  0x%02x 0x%08lx ",
 +			   i,
-+			   map->offset,
++			   (unsigned long long)map->offset,
 +			   map->size, type, map->flags,
 +			   (unsigned long) r_list->user_token);
 +		if (map->mtrr < 0)
@@ -2535,7 +2604,7 @@
 -}
 -#endif
 diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
-index 46bb923..7c41600 100644
+index 7c8b15b..d009661 100644
 --- a/drivers/gpu/drm/drm_stub.c
 +++ b/drivers/gpu/drm/drm_stub.c
 @@ -50,6 +50,7 @@ struct idr drm_minors_idr;
@@ -2546,7 +2615,7 @@
  
  static int drm_minor_get_id(struct drm_device *dev, int type)
  {
-@@ -321,7 +322,15 @@ static int drm_get_minor(struct drm_device *dev, struct drm_minor **minor, int t
+@@ -313,7 +314,15 @@ static int drm_get_minor(struct drm_device *dev, struct drm_minor **minor, int t
  			goto err_mem;
  		}
  	} else
@@ -2563,7 +2632,7 @@
  
  	ret = drm_sysfs_device_add(new_minor);
  	if (ret) {
-@@ -380,6 +389,7 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
+@@ -372,6 +381,7 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
  	}
  
  	if (drm_core_check_feature(dev, DRIVER_MODESET)) {
@@ -2571,7 +2640,7 @@
  		ret = drm_get_minor(dev, &dev->control, DRM_MINOR_CONTROL);
  		if (ret)
  			goto err_g2;
-@@ -403,9 +413,9 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
+@@ -395,9 +405,9 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
  
  	list_add_tail(&dev->driver_item, &driver->device_list);
  
@@ -2583,7 +2652,7 @@
  
  	return 0;
  
-@@ -417,29 +427,7 @@ err_g1:
+@@ -409,29 +419,7 @@ err_g1:
  	drm_free(dev, sizeof(*dev), DRM_MEM_STUB);
  	return ret;
  }
@@ -2614,7 +2683,7 @@
  
  /**
   * Put a secondary minor number.
-@@ -459,6 +447,10 @@ int drm_put_minor(struct drm_minor **minor_p)
+@@ -451,6 +439,10 @@ int drm_put_minor(struct drm_minor **minor_p)
  
  	if (minor->type == DRM_MINOR_LEGACY)
  		drm_proc_cleanup(minor, drm_proc_root);
@@ -2625,7 +2694,7 @@
  	drm_sysfs_device_remove(minor);
  
  	idr_remove(&drm_minors_idr, minor->index);
-@@ -467,3 +459,67 @@ int drm_put_minor(struct drm_minor **minor_p)
+@@ -459,3 +451,67 @@ int drm_put_minor(struct drm_minor **minor_p)
  	*minor_p = NULL;
  	return 0;
  }
@@ -2927,7 +2996,7 @@
  	  intel_display.o \
  	  intel_crt.o \
 diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
-index cc46495..27ef79a 100644
+index 6dab63b..7fecc6d 100644
 --- a/drivers/gpu/drm/i915/i915_dma.c
 +++ b/drivers/gpu/drm/i915/i915_dma.c
 @@ -1057,7 +1057,7 @@ void i915_master_destroy(struct drm_device *dev, struct drm_master *master)
@@ -3837,10 +3906,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..37249b2
+index 0000000..6f2cc74
 --- /dev/null
 +++ b/drivers/gpu/drm/radeon/r600_cp.c
-@@ -0,0 +1,2244 @@
+@@ -0,0 +1,2247 @@
 +/*
 + * Copyright 2008-2009 Advanced Micro Devices, Inc.
 + * Copyright 2008 Red Hat Inc.
@@ -3964,6 +4033,9 @@
 +	int pages;
 +	int i;
 +
++	if (!entry)
++		return;
++
 +	if (gart_info->bus_addr) {
 +		max_pages = (gart_info->table_size / sizeof(u32));
 +		pages = (entry->pages <= max_pages)
@@ -3972,8 +4044,8 @@
 +		for (i = 0; i < pages; i++) {
 +			if (!entry->busaddr[i])
 +				break;
-+			pci_unmap_single(dev->pdev, entry->busaddr[i],
-+					 PAGE_SIZE, PCI_DMA_TODEVICE);
++			pci_unmap_page(dev->pdev, entry->busaddr[i],
++				       PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
 +		}
 +		if (gart_info->gart_table_location == DRM_ATI_GART_MAIN)
 +			gart_info->bus_addr = 0;
@@ -4005,10 +4077,10 @@
 +
 +	gart_idx = 0;
 +	for (i = 0; i < pages; i++) {
-+		entry->busaddr[i] = pci_map_single(dev->pdev,
-+						   page_address(entry->
-+								pagelist[i]),
-+						   PAGE_SIZE, PCI_DMA_TODEVICE);
++		entry->busaddr[i] = pci_map_page(dev->pdev,
++						 entry->pagelist[i], 0,
++						 PAGE_SIZE,
++						 PCI_DMA_BIDIRECTIONAL);
 +		if (entry->busaddr[i] == 0) {
 +			DRM_ERROR("unable to map PCIGART pages!\n");
 +			r600_page_table_cleanup(dev, gart_info);
@@ -5651,7 +5723,7 @@
 +
 +		if (dev_priv->gart_info.gart_table_location == DRM_ATI_GART_FB) {
 +			drm_core_ioremapfree(&dev_priv->gart_info.mapping, dev);
-+			dev_priv->gart_info.addr = 0;
++			dev_priv->gart_info.addr = NULL;
 +		}
 +	}
 +	/* only clear to the start of flags */
@@ -29389,7 +29461,7 @@
 +
 +#endif
 diff --git a/drivers/gpu/drm/radeon/radeon_cp.c b/drivers/gpu/drm/radeon/radeon_cp.c
-index 92965db..15cfe56 100644
+index 92965db..6f579a8 100644
 --- a/drivers/gpu/drm/radeon/radeon_cp.c
 +++ b/drivers/gpu/drm/radeon/radeon_cp.c
 @@ -43,6 +43,78 @@
@@ -29922,7 +29994,7 @@
  		/* Turn on PCI GART */
  		radeon_set_pcigart(dev_priv, 1);
  	}
-@@ -1268,8 +1530,12 @@ static int radeon_do_cleanup_cp(struct drm_device * dev)
+@@ -1268,14 +1530,18 @@ static int radeon_do_cleanup_cp(struct drm_device * dev)
  		if (dev_priv->gart_info.bus_addr) {
  			/* Turn off PCI GART */
  			radeon_set_pcigart(dev_priv, 0);
@@ -29937,6 +30009,13 @@
  		}
  
  		if (dev_priv->gart_info.gart_table_location == DRM_ATI_GART_FB)
+ 		{
+ 			drm_core_ioremapfree(&dev_priv->gart_info.mapping, dev);
+-			dev_priv->gart_info.addr = 0;
++			dev_priv->gart_info.addr = NULL;
+ 		}
+ 	}
+ 	/* only clear to the start of flags */
 @@ -1326,6 +1592,7 @@ static int radeon_do_resume_cp(struct drm_device *dev, struct drm_file *file_pri
  
  int radeon_cp_init(struct drm_device *dev, void *data, struct drm_file *file_priv)
@@ -30009,7 +30088,7 @@
  			/* Stop the cp */
 -			while ((ret = radeon_do_cp_idle(dev_priv)) != 0) {
 -				DRM_DEBUG("radeon_do_cp_idle %d\n", ret);
-+			if ((dev_priv->flags & RADEON_FAMILY_MASK) < CHIP_R600) {
++			if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600) {
 +				while ((ret = r600_do_cp_idle(dev_priv)) != 0) {
 +					DRM_DEBUG("radeon_do_cp_idle %d\n", ret);
 +#ifdef __linux__
@@ -30195,10 +30274,10 @@
 +	}
 +}
 diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
-index fef2078..1e3b255 100644
+index fef2078..2cb4f32 100644
 --- a/drivers/gpu/drm/radeon/radeon_drv.c
 +++ b/drivers/gpu/drm/radeon/radeon_drv.c
-@@ -41,17 +41,6 @@ int radeon_no_wb;
+@@ -41,23 +41,12 @@ int radeon_no_wb;
  MODULE_PARM_DESC(no_wb, "Disable AGP writeback for scratch registers");
  module_param_named(no_wb, radeon_no_wb, int, 0444);
  
@@ -30216,6 +30295,22 @@
  static int radeon_suspend(struct drm_device *dev, pm_message_t state)
  {
  	drm_radeon_private_t *dev_priv = dev->dev_private;
+ 
+ 	/* Disable *all* interrupts */
+-	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS690)
++	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS600)
+ 		RADEON_WRITE(R500_DxMODE_INT_MASK, 0);
+ 	RADEON_WRITE(RADEON_GEN_INT_CNTL, 0);
+ 	return 0;
+@@ -68,7 +57,7 @@ static int radeon_resume(struct drm_device *dev)
+ 	drm_radeon_private_t *dev_priv = dev->dev_private;
+ 
+ 	/* Restore interrupt registers */
+-	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS690)
++	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS600)
+ 		RADEON_WRITE(R500_DxMODE_INT_MASK, dev_priv->r500_disp_irq_reg);
+ 	RADEON_WRITE(RADEON_GEN_INT_CNTL, dev_priv->irq_enable_reg);
+ 	return 0;
 @@ -95,7 +84,6 @@ static struct drm_driver driver = {
  	.get_vblank_counter = radeon_get_vblank_counter,
  	.enable_vblank = radeon_enable_vblank,
@@ -31044,8 +31139,75 @@
  
  #define OUT_RING( x ) do {						\
  	if ( RADEON_VERBOSE ) {						\
+diff --git a/drivers/gpu/drm/radeon/radeon_irq.c b/drivers/gpu/drm/radeon/radeon_irq.c
+index 8289e16..9836c70 100644
+--- a/drivers/gpu/drm/radeon/radeon_irq.c
++++ b/drivers/gpu/drm/radeon/radeon_irq.c
+@@ -65,7 +65,7 @@ int radeon_enable_vblank(struct drm_device *dev, int crtc)
+ {
+ 	drm_radeon_private_t *dev_priv = dev->dev_private;
+ 
+-	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS690) {
++	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS600) {
+ 		switch (crtc) {
+ 		case 0:
+ 			r500_vbl_irq_set_state(dev, R500_D1MODE_INT_MASK, 1);
+@@ -100,7 +100,7 @@ void radeon_disable_vblank(struct drm_device *dev, int crtc)
+ {
+ 	drm_radeon_private_t *dev_priv = dev->dev_private;
+ 
+-	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS690) {
++	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS600) {
+ 		switch (crtc) {
+ 		case 0:
+ 			r500_vbl_irq_set_state(dev, R500_D1MODE_INT_MASK, 0);
+@@ -135,7 +135,7 @@ static inline u32 radeon_acknowledge_irqs(drm_radeon_private_t *dev_priv, u32 *r
+ 	u32 irq_mask = RADEON_SW_INT_TEST;
+ 
+ 	*r500_disp_int = 0;
+-	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS690) {
++	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS600) {
+ 		/* vbl interrupts in a different place */
+ 
+ 		if (irqs & R500_DISPLAY_INT_STATUS) {
+@@ -202,7 +202,7 @@ irqreturn_t radeon_driver_irq_handler(DRM_IRQ_ARGS)
+ 		DRM_WAKEUP(&dev_priv->swi_queue);
+ 
+ 	/* VBLANK interrupt */
+-	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS690) {
++	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS600) {
+ 		if (r500_disp_int & R500_D1_VBLANK_INTERRUPT)
+ 			drm_handle_vblank(dev, 0);
+ 		if (r500_disp_int & R500_D2_VBLANK_INTERRUPT)
+@@ -265,7 +265,7 @@ u32 radeon_get_vblank_counter(struct drm_device *dev, int crtc)
+ 		return -EINVAL;
+ 	}
+ 
+-	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS690) {
++	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS600) {
+ 		if (crtc == 0)
+ 			return RADEON_READ(R500_D1CRTC_FRAME_COUNT);
+ 		else
+@@ -327,7 +327,7 @@ void radeon_driver_irq_preinstall(struct drm_device * dev)
+ 	u32 dummy;
+ 
+ 	/* Disable *all* interrupts */
+-	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS690)
++	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS600)
+ 		RADEON_WRITE(R500_DxMODE_INT_MASK, 0);
+ 	RADEON_WRITE(RADEON_GEN_INT_CNTL, 0);
+ 
+@@ -357,7 +357,7 @@ void radeon_driver_irq_uninstall(struct drm_device * dev)
+ 	if (!dev_priv)
+ 		return;
+ 
+-	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS690)
++	if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS600)
+ 		RADEON_WRITE(R500_DxMODE_INT_MASK, 0);
+ 	/* Disable *all* interrupts */
+ 	RADEON_WRITE(RADEON_GEN_INT_CNTL, 0);
 diff --git a/drivers/gpu/drm/radeon/radeon_state.c b/drivers/gpu/drm/radeon/radeon_state.c
-index ef940a0..ca00cef 100644
+index ef940a0..fa728ec 100644
 --- a/drivers/gpu/drm/radeon/radeon_state.c
 +++ b/drivers/gpu/drm/radeon/radeon_state.c
 @@ -1556,9 +1556,15 @@ static void radeon_cp_discard_buffer(struct drm_device *dev, struct drm_master *
@@ -31067,6 +31229,15 @@
  
  	buf->pending = 1;
  	buf->used = 0;
+@@ -1980,7 +1986,7 @@ static int alloc_surface(drm_radeon_surface_alloc_t *new,
+ 
+ 	/* find a virtual surface */
+ 	for (i = 0; i < 2 * RADEON_MAX_SURFACES; i++)
+-		if (dev_priv->virt_surfaces[i].file_priv == 0)
++		if (dev_priv->virt_surfaces[i].file_priv == NULL)
+ 			break;
+ 	if (i == 2 * RADEON_MAX_SURFACES) {
+ 		return -1;
 @@ -2473,24 +2479,25 @@ static int radeon_cp_indirect(struct drm_device *dev, void *data, struct drm_fil
  
  	buf->used = indirect->end;


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1394
retrieving revision 1.1395
diff -u -r1.1394 -r1.1395
--- kernel.spec	6 Mar 2009 20:24:27 -0000	1.1394
+++ kernel.spec	9 Mar 2009 03:11:27 -0000	1.1395
@@ -1810,6 +1810,10 @@
 # and build.
 
 %changelog
+* Mon Mar 09 2009 Dave Airlie <airlied at redhat.com>
+- drm-next.patch: fixes from upstream queue for r600 support
+- drm-modesetting-radeon.patch: make 2D/3D on PCIE faster
+
 * Fri Mar 06 2009 Jarod Wilson <jarod at redhat.com>
 - add atom to p4-clockmod for thermal mgmt benefits for the atom
   procs that don't do freq scaling (lookin' at you, atom 330)




More information about the fedora-extras-commits mailing list