rpms/kernel/devel linux-2.6-agp-mm.patch, NONE, 1.1 linux-2.6-drm-mm.patch, NONE, 1.1 kernel.spec, 1.252, 1.253 nouveau-drm.patch, 1.5, 1.6

Kyle McMartin (kyle) fedora-extras-commits at redhat.com
Tue Nov 27 05:32:42 UTC 2007


Author: kyle

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv4490

Modified Files:
	kernel.spec nouveau-drm.patch 
Added Files:
	linux-2.6-agp-mm.patch linux-2.6-drm-mm.patch 
Log Message:
* Tue Nov 27 2007 Kyle McMartin <kmcmartin at redhat.com>
- Slurp up drm-mm/agp-mm from git.


linux-2.6-agp-mm.patch:

--- NEW FILE linux-2.6-agp-mm.patch ---
diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c
index 42ba0e2..103b9df 100644
--- a/arch/x86/pci/i386.c
+++ b/arch/x86/pci/i386.c
@@ -72,7 +72,7 @@ pcibios_align_resource(void *data, struct resource *res,
 		}
 	}
 }
-
+EXPORT_SYMBOL(pcibios_align_resource);
 
 /*
  *  Handle resources of PCI devices.  If the world were perfect, we could
diff --git a/drivers/char/agp/agp.h b/drivers/char/agp/agp.h
index b83824c..9ec9374 100644
--- a/drivers/char/agp/agp.h
+++ b/drivers/char/agp/agp.h
@@ -117,7 +117,8 @@ struct agp_bridge_driver {
 	void (*free_by_type)(struct agp_memory *);
 	void *(*agp_alloc_page)(struct agp_bridge_data *);
 	void (*agp_destroy_page)(void *, int flags);
-        int (*agp_type_to_mask_type) (struct agp_bridge_data *, int);
+	int (*agp_type_to_mask_type) (struct agp_bridge_data *, int);
+	void (*chipset_flush)(struct agp_bridge_data *);
 };
 
 struct agp_bridge_data {
diff --git a/drivers/char/agp/backend.c b/drivers/char/agp/backend.c
index 832ded2..f9c180c 100644
--- a/drivers/char/agp/backend.c
+++ b/drivers/char/agp/backend.c
@@ -43,7 +43,7 @@
  * fix some real stupidity. It's only by chance we can bump
  * past 0.99 at all due to some boolean logic error. */
 #define AGPGART_VERSION_MAJOR 0
-#define AGPGART_VERSION_MINOR 102
+#define AGPGART_VERSION_MINOR 103
 static const struct agp_version agp_current_version =
 {
 	.major = AGPGART_VERSION_MAJOR,
diff --git a/drivers/char/agp/compat_ioctl.c b/drivers/char/agp/compat_ioctl.c
index ecd4248..3927579 100644
--- a/drivers/char/agp/compat_ioctl.c
+++ b/drivers/char/agp/compat_ioctl.c
@@ -273,6 +273,10 @@ long compat_agp_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 	case AGPIOC_UNBIND32:
 		ret_val = compat_agpioc_unbind_wrap(curr_priv, (void __user *) arg);
 		break;
+
+	case AGPIOC_CHIPSET_FLUSH32:
+		ret_val = agpioc_chipset_flush_wrap(curr_priv);
+		break;
 	}
 
 ioctl_out:
diff --git a/drivers/char/agp/compat_ioctl.h b/drivers/char/agp/compat_ioctl.h
index 71939d6..0c9678a 100644
--- a/drivers/char/agp/compat_ioctl.h
+++ b/drivers/char/agp/compat_ioctl.h
@@ -39,6 +39,7 @@
 #define AGPIOC_DEALLOCATE32 _IOW (AGPIOC_BASE, 7, compat_int_t)
 #define AGPIOC_BIND32       _IOW (AGPIOC_BASE, 8, compat_uptr_t)
 #define AGPIOC_UNBIND32     _IOW (AGPIOC_BASE, 9, compat_uptr_t)
+#define AGPIOC_CHIPSET_FLUSH32 _IO (AGPIOC_BASE, 10)
 
 struct agp_info32 {
 	struct agp_version version;	/* version of the driver        */
@@ -101,5 +102,6 @@ void agp_free_memory_wrap(struct agp_memory *memory);
 struct agp_memory *agp_allocate_memory_wrap(size_t pg_count, u32 type);
 struct agp_memory *agp_find_mem_by_key(int key);
 struct agp_client *agp_find_client_by_pid(pid_t id);
+int agpioc_chipset_flush_wrap(struct agp_file_private *priv);
 
 #endif /* _AGP_COMPAT_H */
diff --git a/drivers/char/agp/frontend.c b/drivers/char/agp/frontend.c
index 7791e98..9bd5a95 100644
--- a/drivers/char/agp/frontend.c
+++ b/drivers/char/agp/frontend.c
@@ -960,6 +960,13 @@ static int agpioc_unbind_wrap(struct agp_file_private *priv, void __user *arg)
 	return agp_unbind_memory(memory);
 }
 
+int agpioc_chipset_flush_wrap(struct agp_file_private *priv)
+{
+	DBG("");
+	agp_flush_chipset(agp_bridge);
+	return 0;
+}
+
 static int agp_ioctl(struct inode *inode, struct file *file,
 		     unsigned int cmd, unsigned long arg)
 {
@@ -1033,6 +1040,10 @@ static int agp_ioctl(struct inode *inode, struct file *file,
 	case AGPIOC_UNBIND:
 		ret_val = agpioc_unbind_wrap(curr_priv, (void __user *) arg);
 		break;
+	       
+	case AGPIOC_CHIPSET_FLUSH:
+		ret_val = agpioc_chipset_flush_wrap(curr_priv);
+		break;
 	}
 
 ioctl_out:
diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c
index 64b2f6d..8c67b4f 100644
--- a/drivers/char/agp/generic.c
+++ b/drivers/char/agp/generic.c
@@ -80,6 +80,13 @@ static int agp_get_key(void)
 	return -1;
 }
 
+void agp_flush_chipset(struct agp_bridge_data *bridge)
+{
+	if (bridge->driver->chipset_flush)
+		bridge->driver->chipset_flush(bridge);
+}
+EXPORT_SYMBOL(agp_flush_chipset);
+
 /*
  * Use kmalloc if possible for the page list. Otherwise fall back to
  * vmalloc. This speeds things up and also saves memory for small AGP
diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c
index d879619..f161d15 100644
--- a/drivers/char/agp/intel-agp.c
+++ b/drivers/char/agp/intel-agp.c
@@ -69,9 +69,11 @@ extern int agp_memory_reserved;
 #define I915_GMCH_GMS_STOLEN_64M	(0x7 << 4)
 #define G33_GMCH_GMS_STOLEN_128M       (0x8 << 4)
 #define G33_GMCH_GMS_STOLEN_256M       (0x9 << 4)
+#define I915_IFPADDR    0x60
 
 /* Intel 965G registers */
 #define I965_MSAC 0x62
+#define I965_IFPADDR    0x70
 
 /* Intel 7505 registers */
 #define INTEL_I7505_APSIZE	0x74
@@ -113,6 +115,12 @@ static struct _intel_private {
 	 * popup and for the GTT.
 	 */
 	int gtt_entries;			/* i830+ */
+	union {
+		void __iomem *i9xx_flush_page;
+		void *i8xx_flush_page;
+	};
+	struct page *i8xx_page;
+	struct resource ifp_resource;
 } intel_private;
 
 static int intel_i810_fetch_size(void)
@@ -576,6 +584,44 @@ static void intel_i830_init_gtt_entries(void)
 	intel_private.gtt_entries = gtt_entries;
 }
 
+static void intel_i830_fini_flush(void)
+{
+	kunmap(intel_private.i8xx_page);
+	intel_private.i8xx_flush_page = NULL;
+	unmap_page_from_agp(intel_private.i8xx_page);
+	flush_agp_mappings();
+
+	__free_page(intel_private.i8xx_page);
+}
+
+static void intel_i830_setup_flush(void)
+{
+
+	intel_private.i8xx_page = alloc_page(GFP_KERNEL | __GFP_ZERO | GFP_DMA32);
+	if (!intel_private.i8xx_page) {
+		return;
+	}
+
+	/* make page uncached */
+	map_page_into_agp(intel_private.i8xx_page);
+	flush_agp_mappings();
+
+	intel_private.i8xx_flush_page = kmap(intel_private.i8xx_page);
+	if (!intel_private.i8xx_flush_page)
+		intel_i830_fini_flush();
+}
+
+static void intel_i830_chipset_flush(struct agp_bridge_data *bridge)
+{
+	unsigned int *pg = intel_private.i8xx_flush_page;
+	int i;
+
+	for (i = 0; i < 256; i+=2)
+		*(pg + i) = i;
+	
+	wmb();
+}
+
 /* The intel i830 automatically initializes the agp aperture during POST.
  * Use the memory already set aside for in the GTT.
  */
@@ -676,6 +722,8 @@ static int intel_i830_configure(void)
 	}
 
 	global_cache_flush();
+
+	intel_i830_setup_flush();
 	return 0;
 }
 
@@ -769,6 +817,90 @@ static struct agp_memory *intel_i830_alloc_by_type(size_t pg_count,int type)
 	return NULL;
 }
 
+static int intel_alloc_chipset_flush_resource(void)
+{
+	int ret;
+	ret = pci_bus_alloc_resource(agp_bridge->dev->bus, &intel_private.ifp_resource, PAGE_SIZE,
+				     PAGE_SIZE, PCIBIOS_MIN_MEM, 0,
+				     pcibios_align_resource, agp_bridge->dev);
+
+	return ret;
+}
+
+static void intel_i915_setup_chipset_flush(void)
+{
+	int ret;
+	u32 temp;
+
+	pci_read_config_dword(agp_bridge->dev, I915_IFPADDR, &temp);
+	if (!(temp & 0x1)) {
+		intel_alloc_chipset_flush_resource();
+
+		pci_write_config_dword(agp_bridge->dev, I915_IFPADDR, (intel_private.ifp_resource.start & 0xffffffff) | 0x1);
+	} else {
+		temp &= ~1;
+
+		intel_private.ifp_resource.start = temp;
+		intel_private.ifp_resource.end = temp + PAGE_SIZE;
+		ret = request_resource(&iomem_resource, &intel_private.ifp_resource);
+		if (ret) {
+			intel_private.ifp_resource.start = 0;
+			printk("Failed inserting resource into tree\n");
+		}
+	}
+}
+
+static void intel_i965_g33_setup_chipset_flush(void)
+{
+	u32 temp_hi, temp_lo;
+	int ret;
+
+	pci_read_config_dword(agp_bridge->dev, I965_IFPADDR + 4, &temp_hi);
+	pci_read_config_dword(agp_bridge->dev, I965_IFPADDR, &temp_lo);
+
+	if (!(temp_lo & 0x1)) {
+
+		intel_alloc_chipset_flush_resource();
+
+		pci_write_config_dword(agp_bridge->dev, I965_IFPADDR + 4, (intel_private.ifp_resource.start >> 32));
+		pci_write_config_dword(agp_bridge->dev, I965_IFPADDR, (intel_private.ifp_resource.start & 0xffffffff) | 0x1);
+	} else {
+		u64 l64;
+		
+		temp_lo &= ~0x1;
+		l64 = ((u64)temp_hi << 32) | temp_lo;
+
+		intel_private.ifp_resource.start = l64;
+		intel_private.ifp_resource.end = l64 + PAGE_SIZE;
+		ret = request_resource(&iomem_resource, &intel_private.ifp_resource);
+		if (!ret) {
+			printk("Failed inserting resource into tree - continuing\n");
+		}
+	}
+}
+
+static void intel_i9xx_setup_flush(void)
+{
+	/* setup a resource for this object */
+	memset(&intel_private.ifp_resource, 0, sizeof(intel_private.ifp_resource));
+
+	intel_private.ifp_resource.name = "Intel Flush Page";
+	intel_private.ifp_resource.flags = IORESOURCE_MEM;
+
+	/* Setup chipset flush for 915 */
+	if (IS_I965 || IS_G33) {
+		intel_i965_g33_setup_chipset_flush();
+	} else {
+		intel_i915_setup_chipset_flush();
+	}
+
+	if (intel_private.ifp_resource.start) {
+		intel_private.i9xx_flush_page = ioremap_nocache(intel_private.ifp_resource.start, PAGE_SIZE);
+		if (!intel_private.i9xx_flush_page)
+			printk("unable to ioremap flush  page - no chipset flushing");
+	}
+}
+
 static int intel_i915_configure(void)
 {
 	struct aper_size_info_fixed *current_size;
@@ -797,15 +929,26 @@ static int intel_i915_configure(void)
 	}
 
 	global_cache_flush();
+
+	intel_i9xx_setup_flush();
+	
 	return 0;
 }
 
 static void intel_i915_cleanup(void)
 {
+	if (intel_private.i9xx_flush_page)
+		iounmap(intel_private.i9xx_flush_page);
 	iounmap(intel_private.gtt);
 	iounmap(intel_private.registers);
 }
 
+static void intel_i915_chipset_flush(struct agp_bridge_data *bridge)
+{
+	if (intel_private.i9xx_flush_page)
+		writel(1, intel_private.i9xx_flush_page);
+}
+
 static int intel_i915_insert_entries(struct agp_memory *mem,off_t pg_start,
 				int type)
 {
@@ -1297,6 +1440,8 @@ static int intel_845_configure(void)
 	pci_write_config_byte(agp_bridge->dev, INTEL_I845_AGPM, temp2 | (1 << 1));
 	/* clear any possible error conditions */
 	pci_write_config_word(agp_bridge->dev, INTEL_I845_ERRSTS, 0x001c);
+
+	intel_i830_setup_flush();
 	return 0;
 }
 
@@ -1553,6 +1698,7 @@ static const struct agp_bridge_driver intel_830_driver = {
 	.agp_alloc_page		= agp_generic_alloc_page,
 	.agp_destroy_page	= agp_generic_destroy_page,
 	.agp_type_to_mask_type  = intel_i830_type_to_mask_type,
+	.chipset_flush		= intel_i830_chipset_flush,
 };
 
 static const struct agp_bridge_driver intel_820_driver = {
@@ -1649,6 +1795,7 @@ static const struct agp_bridge_driver intel_845_driver = {
 	.agp_alloc_page		= agp_generic_alloc_page,
 	.agp_destroy_page	= agp_generic_destroy_page,
 	.agp_type_to_mask_type  = agp_generic_type_to_mask_type,
+	.chipset_flush		= intel_i830_chipset_flush,
 };
 
 static const struct agp_bridge_driver intel_850_driver = {
@@ -1722,6 +1869,7 @@ static const struct agp_bridge_driver intel_915_driver = {
 	.agp_alloc_page		= agp_generic_alloc_page,
 	.agp_destroy_page	= agp_generic_destroy_page,
 	.agp_type_to_mask_type  = intel_i830_type_to_mask_type,
+	.chipset_flush		= intel_i915_chipset_flush,
 };
 
 static const struct agp_bridge_driver intel_i965_driver = {
@@ -1747,6 +1895,7 @@ static const struct agp_bridge_driver intel_i965_driver = {
        .agp_alloc_page         = agp_generic_alloc_page,
        .agp_destroy_page       = agp_generic_destroy_page,
        .agp_type_to_mask_type  = intel_i830_type_to_mask_type,
+	.chipset_flush		= intel_i915_chipset_flush,
 };
 
 static const struct agp_bridge_driver intel_7505_driver = {
@@ -1796,6 +1945,7 @@ static const struct agp_bridge_driver intel_g33_driver = {
 	.agp_alloc_page         = agp_generic_alloc_page,
 	.agp_destroy_page       = agp_generic_destroy_page,
 	.agp_type_to_mask_type  = intel_i830_type_to_mask_type,
+	.chipset_flush		= intel_i915_chipset_flush,
 };
 
 static int find_gmch(u16 device)
diff --git a/include/linux/agp_backend.h b/include/linux/agp_backend.h
index abc521c..03e3454 100644
--- a/include/linux/agp_backend.h
+++ b/include/linux/agp_backend.h
@@ -109,6 +109,7 @@ extern int agp_unbind_memory(struct agp_memory *);
 extern void agp_enable(struct agp_bridge_data *, u32);
 extern struct agp_bridge_data *agp_backend_acquire(struct pci_dev *);
 extern void agp_backend_release(struct agp_bridge_data *);
+extern void agp_flush_chipset(struct agp_bridge_data *);
 
 #endif				/* __KERNEL__ */
 #endif				/* _AGP_BACKEND_H */
diff --git a/include/linux/agpgart.h b/include/linux/agpgart.h
index 09fbf7e..62aef58 100644
--- a/include/linux/agpgart.h
+++ b/include/linux/agpgart.h
@@ -38,6 +38,7 @@
 #define AGPIOC_DEALLOCATE _IOW (AGPIOC_BASE, 7, int)
 #define AGPIOC_BIND       _IOW (AGPIOC_BASE, 8, struct agp_bind*)
 #define AGPIOC_UNBIND     _IOW (AGPIOC_BASE, 9, struct agp_unbind*)
+#define AGPIOC_CHIPSET_FLUSH _IO (AGPIOC_BASE, 10)
 
 #define AGP_DEVICE      "/dev/agpgart"
 

linux-2.6-drm-mm.patch:

--- NEW FILE linux-2.6-drm-mm.patch ---
diff --git a/drivers/char/drm/Kconfig b/drivers/char/drm/Kconfig
index ba3058d..610d6fd 100644
--- a/drivers/char/drm/Kconfig
+++ b/drivers/char/drm/Kconfig
@@ -38,7 +38,7 @@ config DRM_RADEON
 	  Choose this option if you have an ATI Radeon graphics card.  There
 	  are both PCI and AGP versions.  You don't need to choose this to
 	  run the Radeon in plain VGA mode.
-	  
+
 	  If M is selected, the module will be called radeon.
 
 config DRM_I810
@@ -71,9 +71,9 @@ config DRM_I915
 	  852GM, 855GM 865G or 915G integrated graphics.  If M is selected, the
 	  module will be called i915.  AGP support is required for this driver
 	  to work. This driver is used by the Intel driver in X.org 6.8 and
-	  XFree86 4.4 and above. If unsure, build this and i830 as modules and 
+	  XFree86 4.4 and above. If unsure, build this and i830 as modules and
 	  the X server will load the correct one.
-	
+
 endchoice
 
 config DRM_MGA
@@ -88,7 +88,7 @@ config DRM_SIS
 	tristate "SiS video cards"
 	depends on DRM && AGP
 	help
-	  Choose this option if you have a SiS 630 or compatible video 
+	  Choose this option if you have a SiS 630 or compatible video
           chipset. If M is selected the module will be called sis. AGP
           support is required for this driver to work.
 
@@ -105,4 +105,3 @@ config DRM_SAVAGE
 	help
 	  Choose this option if you have a Savage3D/4/SuperSavage/Pro/Twister
 	  chipset. If M is selected the module will be called savage.
-
diff --git a/drivers/char/drm/Makefile b/drivers/char/drm/Makefile
index 6915a05..85c4f9e 100644
--- a/drivers/char/drm/Makefile
+++ b/drivers/char/drm/Makefile
@@ -6,14 +6,15 @@ drm-objs    :=	drm_auth.o drm_bufs.o drm_context.o drm_dma.o drm_drawable.o \
 		drm_drv.o drm_fops.o drm_ioctl.o drm_irq.o \
 		drm_lock.o drm_memory.o drm_proc.o drm_stub.o drm_vm.o \
 		drm_agpsupport.o drm_scatter.o ati_pcigart.o drm_pci.o \
-		drm_sysfs.o drm_hashtab.o drm_sman.o drm_mm.o
+		drm_sysfs.o drm_hashtab.o drm_sman.o drm_mm.o drm_object.o \
+		drm_fence.o drm_ttm.o drm_bo.o drm_bo_move.o drm_bo_lock.o
 
 tdfx-objs   := tdfx_drv.o
 r128-objs   := r128_drv.o r128_cce.o r128_state.o r128_irq.o
 mga-objs    := mga_drv.o mga_dma.o mga_state.o mga_warp.o mga_irq.o
 i810-objs   := i810_drv.o i810_dma.o
 i830-objs   := i830_drv.o i830_dma.o i830_irq.o
-i915-objs   := i915_drv.o i915_dma.o i915_irq.o i915_mem.o
+i915-objs   := i915_drv.o i915_dma.o i915_irq.o i915_mem.o i915_fence.o i915_buffer.o
 radeon-objs := radeon_drv.o radeon_cp.o radeon_state.o radeon_mem.o radeon_irq.o r300_cmdbuf.o
 sis-objs    := sis_drv.o sis_mm.o
 savage-objs := savage_drv.o savage_bci.o savage_state.o
@@ -38,5 +39,3 @@ obj-$(CONFIG_DRM_I915)  += i915.o
 obj-$(CONFIG_DRM_SIS)   += sis.o
 obj-$(CONFIG_DRM_SAVAGE)+= savage.o
 obj-$(CONFIG_DRM_VIA)	+=via.o
-
-
diff --git a/drivers/char/drm/README.drm b/drivers/char/drm/README.drm
index af74cd7..b5b3327 100644
--- a/drivers/char/drm/README.drm
+++ b/drivers/char/drm/README.drm
@@ -41,4 +41,3 @@ For specific information about kernel-level support, see:
 
     A Security Analysis of the Direct Rendering Infrastructure
     http://dri.sourceforge.net/doc/security_low_level.html
-
diff --git a/drivers/char/drm/drm.h b/drivers/char/drm/drm.h
index 82fb3d0..9a4ff13 100644
--- a/drivers/char/drm/drm.h
+++ b/drivers/char/drm/drm.h
@@ -190,6 +190,7 @@ enum drm_map_type {
 	_DRM_AGP = 3,		  /**< AGP/GART */
 	_DRM_SCATTER_GATHER = 4,  /**< Scatter/gather memory for PCI DMA */
 	_DRM_CONSISTENT = 5,	  /**< Consistent memory for PCI DMA */
+	_DRM_TTM = 6
 };
 
 /**
@@ -470,6 +471,7 @@ struct drm_irq_busid {
 enum drm_vblank_seq_type {
 	_DRM_VBLANK_ABSOLUTE = 0x0,	/**< Wait for specific vblank sequence number */
 	_DRM_VBLANK_RELATIVE = 0x1,	/**< Wait for given number of vblanks */
+	_DRM_VBLANK_FLIP = 0x8000000,	/**< Scheduled buffer swap should flip */
 	_DRM_VBLANK_NEXTONMISS = 0x10000000,	/**< If missed, wait for next vblank */
 	_DRM_VBLANK_SECONDARY = 0x20000000,	/**< Secondary display controller */
 	_DRM_VBLANK_SIGNAL = 0x40000000	/**< Send signal instead of blocking */
@@ -572,6 +574,271 @@ struct drm_set_version {
 	int drm_dd_minor;
 };
 
+#define DRM_FENCE_FLAG_EMIT                0x00000001
+#define DRM_FENCE_FLAG_SHAREABLE           0x00000002
+#define DRM_FENCE_FLAG_WAIT_LAZY           0x00000004
+#define DRM_FENCE_FLAG_WAIT_IGNORE_SIGNALS 0x00000008
+#define DRM_FENCE_FLAG_NO_USER             0x00000010
+
+/* Reserved for driver use */
+#define DRM_FENCE_MASK_DRIVER              0xFF000000
+
+#define DRM_FENCE_TYPE_EXE                 0x00000001
+
+struct drm_fence_arg {
+	unsigned int handle;
+	unsigned int fence_class;
+	unsigned int type;
+	unsigned int flags;
+	unsigned int signaled;
+	unsigned int error;
+	unsigned int sequence;
+	unsigned int pad64;
+	uint64_t expand_pad[2]; /*Future expansion */
+};
+
+/* Buffer permissions, referring to how the GPU uses the buffers.
+ * these translate to fence types used for the buffers.
+ * Typically a texture buffer is read, A destination buffer is write and
+ *  a command (batch-) buffer is exe. Can be or-ed together.
+ */
+
+#define DRM_BO_FLAG_READ        (1ULL << 0)
+#define DRM_BO_FLAG_WRITE       (1ULL << 1)
+#define DRM_BO_FLAG_EXE         (1ULL << 2)
+
+/*
+ * Status flags. Can be read to determine the actual state of a buffer.
+ * Can also be set in the buffer mask before validation.
+ */
+
+/*
+ * Mask: Never evict this buffer. Not even with force.
+ * This type of buffer is only available to root and must be manually
+ * removed before buffer manager shutdown or lock.
+ * Flags: Acknowledge
+ */
+#define DRM_BO_FLAG_NO_EVICT    (1ULL << 4)
+
+/*
+ * Mask: Require that the buffer is placed in mappable memory when validated.
+ * If not set the buffer may or may not be in mappable memory when validated.
+ * Flags: If set, the buffer is in mappable memory.
+ */
+#define DRM_BO_FLAG_MAPPABLE    (1ULL << 5)
+
+/* Mask: The buffer should be shareable with other processes.
+ * Flags: The buffer is shareable with other processes.
+ */
+#define DRM_BO_FLAG_SHAREABLE   (1ULL << 6)
+
+/* Mask: If set, place the buffer in cache-coherent memory if available.
+ *       If clear, never place the buffer in cache coherent memory if validated.
+ * Flags: The buffer is currently in cache-coherent memory.
+ */
+#define DRM_BO_FLAG_CACHED      (1ULL << 7)
+
+/* Mask: Make sure that every time this buffer is validated,
+ *       it ends up on the same location provided that the memory mask
+ *       is the same.
+ *       The buffer will also not be evicted when claiming space for
+ *       other buffers. Basically a pinned buffer but it may be thrown out as
+ *       part of buffer manager shutdown or locking.
+ * Flags: Acknowledge.
+ */
+#define DRM_BO_FLAG_NO_MOVE     (1ULL << 8)
+
+/* Mask: Make sure the buffer is in cached memory when mapped
+ * Flags: Acknowledge.
+ * Buffers allocated with this flag should not be used for suballocators
+ * This type may have issues on CPUs with over-aggressive caching
+ * http://marc.info/?l=linux-kernel&m=102376926732464&w=2
+ */
+#define DRM_BO_FLAG_CACHED_MAPPED    (1ULL << 19)
+
+
+/* Mask: Force DRM_BO_FLAG_CACHED flag strictly also if it is set.
+ * Flags: Acknowledge.
+ */
+#define DRM_BO_FLAG_FORCE_CACHING  (1ULL << 13)
+
+/*
+ * Mask: Force DRM_BO_FLAG_MAPPABLE flag strictly also if it is clear.
+ * Flags: Acknowledge.
+ */
+#define DRM_BO_FLAG_FORCE_MAPPABLE (1ULL << 14)
+#define DRM_BO_FLAG_TILE           (1ULL << 15)
+
+/*
+ * Memory type flags that can be or'ed together in the mask, but only
+ * one appears in flags.
+ */
[...12583 lines suppressed...]
+	if (sync->engine >= VIA_NUM_BLIT_ENGINES)
 		return -EINVAL;
 
 	err = via_dmablit_sync(dev, sync->sync_handle, sync->engine);
@@ -796,15 +796,15 @@ via_dma_blit_sync( struct drm_device *dev, void *data, struct drm_file *file_pri
 
 	return err;
 }
-	
+
 
 /*
  * Queue a blit and hand back a handle to be used for sync. This IOCTL may be interrupted by a signal
- * while waiting for a free slot in the blit queue. In that case it returns with -EAGAIN and should 
+ * while waiting for a free slot in the blit queue. In that case it returns with -EAGAIN and should
  * be reissued. See the above IOCTL code.
  */
 
-int 
+int
 via_dma_blit( struct drm_device *dev, void *data, struct drm_file *file_priv )
 {
 	drm_via_dmablit_t *xfer = data;
diff --git a/drivers/char/drm/via_dmablit.h b/drivers/char/drm/via_dmablit.h
index 6f6a513..7408a54 100644
--- a/drivers/char/drm/via_dmablit.h
+++ b/drivers/char/drm/via_dmablit.h
@@ -1,5 +1,5 @@
 /* via_dmablit.h -- PCI DMA BitBlt support for the VIA Unichrome/Pro
- * 
+ *
  * Copyright 2005 Thomas Hellstrom.
  * All Rights Reserved.
  *
@@ -17,12 +17,12 @@
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, 
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 
+ * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  * USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
- * Authors: 
+ * Authors:
  *    Thomas Hellstrom.
  *    Register info from Digeo Inc.
  */
@@ -67,7 +67,7 @@ typedef struct _drm_via_blitq {
 	unsigned cur;
 	unsigned num_free;
 	unsigned num_outstanding;
-	unsigned long end;  
+	unsigned long end;
         int aborting;
 	int is_active;
 	drm_via_sg_info_t *blits[VIA_NUM_BLIT_SLOTS];
@@ -77,46 +77,46 @@ typedef struct _drm_via_blitq {
 	struct work_struct wq;
 	struct timer_list poll_timer;
 } drm_via_blitq_t;
-	
 
-/* 
+
+/*
  *  PCI DMA Registers
  *  Channels 2 & 3 don't seem to be implemented in hardware.
  */
- 
-#define VIA_PCI_DMA_MAR0            0xE40   /* Memory Address Register of Channel 0 */ 
-#define VIA_PCI_DMA_DAR0            0xE44   /* Device Address Register of Channel 0 */ 
-#define VIA_PCI_DMA_BCR0            0xE48   /* Byte Count Register of Channel 0 */ 
-#define VIA_PCI_DMA_DPR0            0xE4C   /* Descriptor Pointer Register of Channel 0 */ 
-
-#define VIA_PCI_DMA_MAR1            0xE50   /* Memory Address Register of Channel 1 */ 
-#define VIA_PCI_DMA_DAR1            0xE54   /* Device Address Register of Channel 1 */ 
-#define VIA_PCI_DMA_BCR1            0xE58   /* Byte Count Register of Channel 1 */ 
-#define VIA_PCI_DMA_DPR1            0xE5C   /* Descriptor Pointer Register of Channel 1 */ 
-
-#define VIA_PCI_DMA_MAR2            0xE60   /* Memory Address Register of Channel 2 */ 
-#define VIA_PCI_DMA_DAR2            0xE64   /* Device Address Register of Channel 2 */ 
-#define VIA_PCI_DMA_BCR2            0xE68   /* Byte Count Register of Channel 2 */ 
-#define VIA_PCI_DMA_DPR2            0xE6C   /* Descriptor Pointer Register of Channel 2 */ 
-
-#define VIA_PCI_DMA_MAR3            0xE70   /* Memory Address Register of Channel 3 */ 
-#define VIA_PCI_DMA_DAR3            0xE74   /* Device Address Register of Channel 3 */ 
-#define VIA_PCI_DMA_BCR3            0xE78   /* Byte Count Register of Channel 3 */ 
-#define VIA_PCI_DMA_DPR3            0xE7C   /* Descriptor Pointer Register of Channel 3 */ 
-
-#define VIA_PCI_DMA_MR0             0xE80   /* Mode Register of Channel 0 */ 
-#define VIA_PCI_DMA_MR1             0xE84   /* Mode Register of Channel 1 */ 
-#define VIA_PCI_DMA_MR2             0xE88   /* Mode Register of Channel 2 */ 
-#define VIA_PCI_DMA_MR3             0xE8C   /* Mode Register of Channel 3 */ 
-
-#define VIA_PCI_DMA_CSR0            0xE90   /* Command/Status Register of Channel 0 */ 
-#define VIA_PCI_DMA_CSR1            0xE94   /* Command/Status Register of Channel 1 */ 
-#define VIA_PCI_DMA_CSR2            0xE98   /* Command/Status Register of Channel 2 */ 
-#define VIA_PCI_DMA_CSR3            0xE9C   /* Command/Status Register of Channel 3 */ 
-
-#define VIA_PCI_DMA_PTR             0xEA0   /* Priority Type Register */ 
-
-/* Define for DMA engine */ 
+
+#define VIA_PCI_DMA_MAR0            0xE40   /* Memory Address Register of Channel 0 */
+#define VIA_PCI_DMA_DAR0            0xE44   /* Device Address Register of Channel 0 */
+#define VIA_PCI_DMA_BCR0            0xE48   /* Byte Count Register of Channel 0 */
+#define VIA_PCI_DMA_DPR0            0xE4C   /* Descriptor Pointer Register of Channel 0 */
+
+#define VIA_PCI_DMA_MAR1            0xE50   /* Memory Address Register of Channel 1 */
+#define VIA_PCI_DMA_DAR1            0xE54   /* Device Address Register of Channel 1 */
+#define VIA_PCI_DMA_BCR1            0xE58   /* Byte Count Register of Channel 1 */
+#define VIA_PCI_DMA_DPR1            0xE5C   /* Descriptor Pointer Register of Channel 1 */
+
+#define VIA_PCI_DMA_MAR2            0xE60   /* Memory Address Register of Channel 2 */
+#define VIA_PCI_DMA_DAR2            0xE64   /* Device Address Register of Channel 2 */
+#define VIA_PCI_DMA_BCR2            0xE68   /* Byte Count Register of Channel 2 */
+#define VIA_PCI_DMA_DPR2            0xE6C   /* Descriptor Pointer Register of Channel 2 */
+
+#define VIA_PCI_DMA_MAR3            0xE70   /* Memory Address Register of Channel 3 */
+#define VIA_PCI_DMA_DAR3            0xE74   /* Device Address Register of Channel 3 */
+#define VIA_PCI_DMA_BCR3            0xE78   /* Byte Count Register of Channel 3 */
+#define VIA_PCI_DMA_DPR3            0xE7C   /* Descriptor Pointer Register of Channel 3 */
+
+#define VIA_PCI_DMA_MR0             0xE80   /* Mode Register of Channel 0 */
+#define VIA_PCI_DMA_MR1             0xE84   /* Mode Register of Channel 1 */
+#define VIA_PCI_DMA_MR2             0xE88   /* Mode Register of Channel 2 */
+#define VIA_PCI_DMA_MR3             0xE8C   /* Mode Register of Channel 3 */
+
+#define VIA_PCI_DMA_CSR0            0xE90   /* Command/Status Register of Channel 0 */
+#define VIA_PCI_DMA_CSR1            0xE94   /* Command/Status Register of Channel 1 */
+#define VIA_PCI_DMA_CSR2            0xE98   /* Command/Status Register of Channel 2 */
+#define VIA_PCI_DMA_CSR3            0xE9C   /* Command/Status Register of Channel 3 */
+
+#define VIA_PCI_DMA_PTR             0xEA0   /* Priority Type Register */
+
+/* Define for DMA engine */
 /* DPR */
 #define VIA_DMA_DPR_EC		(1<<1)	/* end of chain */
 #define VIA_DMA_DPR_DDIE	(1<<2)	/* descriptor done interrupt enable */
diff --git a/drivers/char/drm/via_drm.h b/drivers/char/drm/via_drm.h
index 8f53c76..a3b5c10 100644
--- a/drivers/char/drm/via_drm.h
+++ b/drivers/char/drm/via_drm.h
@@ -35,7 +35,7 @@
 #include "via_drmclient.h"
 #endif
 
-#define VIA_NR_SAREA_CLIPRECTS 		8
+#define VIA_NR_SAREA_CLIPRECTS		8
 #define VIA_NR_XVMC_PORTS               10
 #define VIA_NR_XVMC_LOCKS               5
 #define VIA_MAX_CACHELINE_SIZE          64
@@ -259,7 +259,7 @@ typedef struct drm_via_blitsync {
 typedef struct drm_via_dmablit {
 	uint32_t num_lines;
 	uint32_t line_length;
-	
+
 	uint32_t fb_addr;
 	uint32_t fb_stride;
 
diff --git a/drivers/char/drm/via_drv.c b/drivers/char/drm/via_drv.c
index 2d4957a..80c01cd 100644
--- a/drivers/char/drm/via_drv.c
+++ b/drivers/char/drm/via_drv.c
@@ -71,7 +71,7 @@ static struct drm_driver driver = {
 		 .name = DRIVER_NAME,
 		 .id_table = pciidlist,
 	},
-	
+
 	.name = DRIVER_NAME,
 	.desc = DRIVER_DESC,
 	.date = DRIVER_DATE,
diff --git a/drivers/char/drm/via_map.c b/drivers/char/drm/via_map.c
index 1009150..f6dcaaf 100644
--- a/drivers/char/drm/via_map.c
+++ b/drivers/char/drm/via_map.c
@@ -121,4 +121,3 @@ int via_driver_unload(struct drm_device *dev)
 
 	return 0;
 }
-
diff --git a/drivers/char/drm/via_mm.c b/drivers/char/drm/via_mm.c
index 3ffbf86..69f6558 100644
--- a/drivers/char/drm/via_mm.c
+++ b/drivers/char/drm/via_mm.c
@@ -113,7 +113,7 @@ void via_lastclose(struct drm_device *dev)
 	dev_priv->vram_initialized = 0;
 	dev_priv->agp_initialized = 0;
 	mutex_unlock(&dev->struct_mutex);
-}	
+}
 
 int via_mem_alloc(struct drm_device *dev, void *data,
 		  struct drm_file *file_priv)


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.252
retrieving revision 1.253
diff -u -r1.252 -r1.253
--- kernel.spec	26 Nov 2007 12:37:00 -0000	1.252
+++ kernel.spec	27 Nov 2007 05:32:06 -0000	1.253
@@ -978,9 +978,6 @@
 # setuid /proc/self/maps fix. (dependent on utrace)
 ApplyPatch linux-2.6-proc-self-maps-fix.patch
 
-# Nouveau DRM + drm fixes
-ApplyPatch nouveau-drm.patch
-
 # enable sysrq-c on all kernels, not only kexec
 ApplyPatch linux-2.6-sysrq-c.patch
 
@@ -1142,6 +1139,12 @@
 
 ApplyPatch linux-2.6-e1000-corrupt-eeprom-checksum.patch
 
+# drm-mm catchup (modesetting, ...)
+ApplyPatch linux-2.6-agp-mm.patch
+ApplyPatch linux-2.6-drm-mm.patch
+# Nouveau DRM + drm fixes
+ApplyPatch nouveau-drm.patch
+
 # ---------- below all scheduled for 2.6.24 -----------------
 
 # END OF PATCH APPLICATIONS
@@ -1699,6 +1702,9 @@
 %kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL} -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf %{with_xen} xen
 
 %changelog
+* Tue Nov 27 2007 Kyle McMartin <kmcmartin at redhat.com>
+- Slurp up drm-mm/agp-mm from git.
+
 * Mon Nov 26 2007 David Woodhouse <dwmw2 at redhat.com>
 - Build libertas wireless driver
 - Include flash translation layers in modules.block list

nouveau-drm.patch:

Index: nouveau-drm.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/nouveau-drm.patch,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- nouveau-drm.patch	19 Sep 2007 23:44:41 -0000	1.5
+++ nouveau-drm.patch	27 Nov 2007 05:32:06 -0000	1.6
@@ -4,157 +4,10 @@
 Subject: [PATCH] drm: add nouveau latest code
 
 ---
- drivers/char/drm/Kconfig            |    5 +
- drivers/char/drm/Makefile           |   12 +
- drivers/char/drm/drmP.h             |    4 +-
- drivers/char/drm/drm_bufs.c         |    6 +-
- drivers/char/drm/drm_irq.c          |    3 +-
- drivers/char/drm/drm_pciids.h       |  262 ++++
- drivers/char/drm/nouveau_dma.c      |  177 +++
- drivers/char/drm/nouveau_dma.h      |   98 ++
- drivers/char/drm/nouveau_drm.h      |  166 ++
- drivers/char/drm/nouveau_drv.c      |   96 ++
- drivers/char/drm/nouveau_drv.h      |  584 +++++++
- drivers/char/drm/nouveau_fifo.c     |  557 +++++++
- drivers/char/drm/nouveau_ioc32.c    |   72 +
- drivers/char/drm/nouveau_irq.c      |  430 ++++++
- drivers/char/drm/nouveau_mem.c      |  616 ++++++++
- drivers/char/drm/nouveau_notifier.c |  173 +++
- drivers/char/drm/nouveau_object.c   | 1148 ++++++++++++++
- drivers/char/drm/nouveau_reg.h      |  538 +++++++
- drivers/char/drm/nouveau_sgdma.c    |  311 ++++
- drivers/char/drm/nouveau_state.c    |  569 +++++++
- drivers/char/drm/nv04_fb.c          |   24 +
- drivers/char/drm/nv04_fifo.c        |  129 ++
- drivers/char/drm/nv04_graph.c       |  415 +++++
- drivers/char/drm/nv04_instmem.c     |  160 ++
- drivers/char/drm/nv04_mc.c          |   23 +
- drivers/char/drm/nv04_timer.c       |   45 +
- drivers/char/drm/nv10_fb.c          |   26 +
- drivers/char/drm/nv10_fifo.c        |  160 ++
- drivers/char/drm/nv10_graph.c       |  777 ++++++++++
- drivers/char/drm/nv20_graph.c       |  249 +++
- drivers/char/drm/nv30_graph.c       | 2911 +++++++++++++++++++++++++++++++++++
- drivers/char/drm/nv40_fb.c          |   56 +
- drivers/char/drm/nv40_fifo.c        |  208 +++
- drivers/char/drm/nv40_graph.c       | 1906 +++++++++++++++++++++++
- drivers/char/drm/nv40_mc.c          |   39 +
- drivers/char/drm/nv50_fifo.c        |  327 ++++
- drivers/char/drm/nv50_graph.c       |  316 ++++
- drivers/char/drm/nv50_instmem.c     |  320 ++++
- drivers/char/drm/nv50_mc.c          |   43 +
- 39 files changed, 13957 insertions(+), 4 deletions(-)
- create mode 100644 drivers/char/drm/nouveau_dma.c
- create mode 100644 drivers/char/drm/nouveau_dma.h
- create mode 100644 drivers/char/drm/nouveau_drm.h
- create mode 100644 drivers/char/drm/nouveau_drv.c
- create mode 100644 drivers/char/drm/nouveau_drv.h
- create mode 100644 drivers/char/drm/nouveau_fifo.c
- create mode 100644 drivers/char/drm/nouveau_ioc32.c
- create mode 100644 drivers/char/drm/nouveau_irq.c
- create mode 100644 drivers/char/drm/nouveau_mem.c
- create mode 100644 drivers/char/drm/nouveau_notifier.c
- create mode 100644 drivers/char/drm/nouveau_object.c
- create mode 100644 drivers/char/drm/nouveau_reg.h
- create mode 100644 drivers/char/drm/nouveau_sgdma.c
- create mode 100644 drivers/char/drm/nouveau_state.c
- create mode 100644 drivers/char/drm/nv04_fb.c
- create mode 100644 drivers/char/drm/nv04_fifo.c
- create mode 100644 drivers/char/drm/nv04_graph.c
- create mode 100644 drivers/char/drm/nv04_instmem.c
- create mode 100644 drivers/char/drm/nv04_mc.c
- create mode 100644 drivers/char/drm/nv04_timer.c
- create mode 100644 drivers/char/drm/nv10_fb.c
- create mode 100644 drivers/char/drm/nv10_fifo.c
- create mode 100644 drivers/char/drm/nv10_graph.c
- create mode 100644 drivers/char/drm/nv20_graph.c
- create mode 100644 drivers/char/drm/nv30_graph.c
- create mode 100644 drivers/char/drm/nv40_fb.c
- create mode 100644 drivers/char/drm/nv40_fifo.c
- create mode 100644 drivers/char/drm/nv40_graph.c
- create mode 100644 drivers/char/drm/nv40_mc.c
- create mode 100644 drivers/char/drm/nv50_fifo.c
- create mode 100644 drivers/char/drm/nv50_graph.c
- create mode 100644 drivers/char/drm/nv50_instmem.c
- create mode 100644 drivers/char/drm/nv50_mc.c
-
-diff --git a/drivers/char/drm/Kconfig b/drivers/char/drm/Kconfig
-index 0b7ffa5..0220619 100644
---- a/drivers/char/drm/Kconfig
-+++ b/drivers/char/drm/Kconfig
-@@ -106,3 +106,8 @@ config DRM_SAVAGE
- 	  Choose this option if you have a Savage3D/4/SuperSavage/Pro/Twister
- 	  chipset. If M is selected the module will be called savage.
- 
-+config DRM_NOUVEAU
-+	tristate "Nvidia video cards"
-+	depends on DRM
-+	help
-+		Choose this for nvidia open source 3d driver
-diff --git a/drivers/char/drm/Makefile b/drivers/char/drm/Makefile
-index 6915a05..f798916 100644
---- a/drivers/char/drm/Makefile
-+++ b/drivers/char/drm/Makefile
-@@ -14,6 +14,16 @@ mga-objs    := mga_drv.o mga_dma.o mga_state.o mga_warp.o mga_irq.o
- i810-objs   := i810_drv.o i810_dma.o
- i830-objs   := i830_drv.o i830_dma.o i830_irq.o
- i915-objs   := i915_drv.o i915_dma.o i915_irq.o i915_mem.o
-+nouveau-objs := nouveau_drv.o nouveau_state.o nouveau_fifo.o nouveau_mem.o \
-+		nouveau_object.o nouveau_irq.o nouveau_notifier.o \
-+		nouveau_sgdma.o nouveau_dma.o \
-+		nv04_timer.o \
-+		nv04_mc.o nv40_mc.o nv50_mc.o \
-+		nv04_fb.o nv10_fb.o nv40_fb.o \
-+		nv04_fifo.o nv10_fifo.o nv40_fifo.o nv50_fifo.o \
-+		nv04_graph.o nv10_graph.o nv20_graph.o nv30_graph.o \
-+		nv40_graph.o nv50_graph.o \
-+		nv04_instmem.o nv50_instmem.o
- radeon-objs := radeon_drv.o radeon_cp.o radeon_state.o radeon_mem.o radeon_irq.o r300_cmdbuf.o
- sis-objs    := sis_drv.o sis_mm.o
- savage-objs := savage_drv.o savage_bci.o savage_state.o
-@@ -25,6 +35,7 @@ radeon-objs += radeon_ioc32.o
- mga-objs    += mga_ioc32.o
- r128-objs   += r128_ioc32.o
- i915-objs   += i915_ioc32.o
-+nouveau-objs   += nouveau_ioc32.o
- endif
- 
- obj-$(CONFIG_DRM)	+= drm.o
-@@ -35,6 +46,7 @@ obj-$(CONFIG_DRM_MGA)	+= mga.o
- obj-$(CONFIG_DRM_I810)	+= i810.o
- obj-$(CONFIG_DRM_I830)	+= i830.o
- obj-$(CONFIG_DRM_I915)  += i915.o
-+obj-$(CONFIG_DRM_NOUVEAU)   += nouveau.o
- obj-$(CONFIG_DRM_SIS)   += sis.o
- obj-$(CONFIG_DRM_SAVAGE)+= savage.o
- obj-$(CONFIG_DRM_VIA)	+=via.o
-diff --git a/drivers/char/drm/drmP.h b/drivers/char/drm/drmP.h
-index 9dd0760..d539c96 100644
---- a/drivers/char/drm/drmP.h
-+++ b/drivers/char/drm/drmP.h
-@@ -967,7 +967,8 @@ extern unsigned long drm_get_resource_start(struct drm_device *dev,
- 					    unsigned int resource);
- extern unsigned long drm_get_resource_len(struct drm_device *dev,
- 					  unsigned int resource);
--
-+struct drm_map_list *drm_find_matching_map(struct drm_device *dev,
-+					   drm_local_map_t *map);
- 				/* DMA support (drm_dma.h) */
- extern int drm_dma_setup(struct drm_device *dev);
- extern void drm_dma_takedown(struct drm_device *dev);
-@@ -979,6 +980,7 @@ extern void drm_core_reclaim_buffers(struct drm_device *dev,
- extern int drm_control(struct drm_device *dev, void *data,
- 		       struct drm_file *file_priv);
- extern irqreturn_t drm_irq_handler(DRM_IRQ_ARGS);
-+extern int drm_irq_install(struct drm_device * dev);
- extern int drm_irq_uninstall(struct drm_device *dev);
- extern void drm_driver_irq_preinstall(struct drm_device *dev);
- extern void drm_driver_irq_postinstall(struct drm_device *dev);
-diff --git a/drivers/char/drm/drm_bufs.c b/drivers/char/drm/drm_bufs.c
-index 856774f..7890e08 100644
---- a/drivers/char/drm/drm_bufs.c
-+++ b/drivers/char/drm/drm_bufs.c
-@@ -49,8 +49,8 @@ unsigned long drm_get_resource_len(struct drm_device *dev, unsigned int resource
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/drm_bufs.c linux-2.6.23.noarch/drivers/char/drm/drm_bufs.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/drm_bufs.c	2007-11-26 21:18:35.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/drm_bufs.c	2007-11-26 21:16:13.000000000 -0500
+@@ -49,8 +49,8 @@ unsigned long drm_get_resource_len(struc
  
  EXPORT_SYMBOL(drm_get_resource_len);
  
@@ -165,7 +18,7 @@
  {
  	struct drm_map_list *entry;
  	list_for_each_entry(entry, &dev->maplist, head) {
-@@ -63,6 +63,7 @@ static struct drm_map_list *drm_find_matching_map(struct drm_device *dev,
+@@ -63,6 +63,7 @@ static struct drm_map_list *drm_find_mat
  
  	return NULL;
  }
@@ -173,19 +26,10 @@
  
  static int drm_map_handle(struct drm_device *dev, struct drm_hash_item *hash,
  			  unsigned long user_token, int hashed_handle)
-@@ -429,6 +430,7 @@ int drm_rmmap(struct drm_device *dev, drm_local_map_t *map)
- 
- 	return ret;
- }
-+EXPORT_SYMBOL(drm_rmmap);
- 
- /* The rmmap ioctl appears to be unnecessary.  All mappings are torn down on
-  * the last close of the device, and this is necessary for cleanup when things
-diff --git a/drivers/char/drm/drm_irq.c b/drivers/char/drm/drm_irq.c
-index 05eae63..c091729 100644
---- a/drivers/char/drm/drm_irq.c
-+++ b/drivers/char/drm/drm_irq.c
-@@ -81,7 +81,7 @@ int drm_irq_by_busid(struct drm_device *dev, void *data,
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/drm_irq.c linux-2.6.23.noarch/drivers/char/drm/drm_irq.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/drm_irq.c	2007-11-26 21:18:35.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/drm_irq.c	2007-11-26 21:16:13.000000000 -0500
+@@ -81,7 +81,7 @@ int drm_irq_by_busid(struct drm_device *
   * \c drm_driver_irq_preinstall() and \c drm_driver_irq_postinstall() functions
   * before and after the installation.
   */
@@ -194,7 +38,7 @@
  {
  	int ret;
  	unsigned long sh_flags = 0;
-@@ -141,6 +141,7 @@ static int drm_irq_install(struct drm_device * dev)
+@@ -141,6 +141,7 @@ static int drm_irq_install(struct drm_de
  
  	return 0;
  }
@@ -202,14 +46,14 @@
  
  /**
   * Uninstall the IRQ handler.
-diff --git a/drivers/char/drm/drm_pciids.h b/drivers/char/drm/drm_pciids.h
-index 30b200b..a59f999 100644
---- a/drivers/char/drm/drm_pciids.h
-+++ b/drivers/char/drm/drm_pciids.h
-@@ -314,3 +314,265 @@
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/drm_pciids.h linux-2.6.23.noarch/drivers/char/drm/drm_pciids.h
+--- linux-2.6.23.noarch.old/drivers/char/drm/drm_pciids.h	2007-11-26 21:18:35.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/drm_pciids.h	2007-11-26 21:24:20.000000000 -0500
+@@ -311,3 +311,265 @@
+ 	{0x8086, 0x2a02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
  	{0x8086, 0x2a12, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
  	{0, 0, 0}
- 
++
 +#define nouveau_PCI_IDS \
 +	{0x10de, 0x0008, PCI_ANY_ID, PCI_ANY_ID, 0, 0, NV_03}, \
 +	{0x10de, 0x0009, PCI_ANY_ID, PCI_ANY_ID, 0, 0, NV_03}, \
@@ -471,12 +315,80 @@
 +	{0x12d2, 0x002c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, NV_04}, \
 +	{0x12d2, 0x00a0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, NV_04}, \
 +	{0, 0, 0}
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/drmP.h linux-2.6.23.noarch/drivers/char/drm/drmP.h
+--- linux-2.6.23.noarch.old/drivers/char/drm/drmP.h	2007-11-26 21:18:35.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/drmP.h	2007-11-26 21:16:13.000000000 -0500
+@@ -1030,7 +1030,8 @@ extern unsigned long drm_get_resource_st
+ 					    unsigned int resource);
+ extern unsigned long drm_get_resource_len(struct drm_device *dev,
+ 					  unsigned int resource);
+-
++struct drm_map_list *drm_find_matching_map(struct drm_device *dev,
++					   drm_local_map_t *map);
+ 				/* DMA support (drm_dma.h) */
+ extern int drm_dma_setup(struct drm_device *dev);
+ extern void drm_dma_takedown(struct drm_device *dev);
+@@ -1042,6 +1043,7 @@ extern void drm_core_reclaim_buffers(str
+ extern int drm_control(struct drm_device *dev, void *data,
+ 		       struct drm_file *file_priv);
+ extern irqreturn_t drm_irq_handler(DRM_IRQ_ARGS);
++extern int drm_irq_install(struct drm_device * dev);
+ extern int drm_irq_uninstall(struct drm_device *dev);
+ extern void drm_driver_irq_preinstall(struct drm_device *dev);
+ extern void drm_driver_irq_postinstall(struct drm_device *dev);
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/Kconfig linux-2.6.23.noarch/drivers/char/drm/Kconfig
+--- linux-2.6.23.noarch.old/drivers/char/drm/Kconfig	2007-11-26 21:18:35.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/Kconfig	2007-11-26 21:20:41.000000000 -0500
+@@ -105,3 +105,10 @@ config DRM_SAVAGE
+ 	help
+ 	  Choose this option if you have a Savage3D/4/SuperSavage/Pro/Twister
+ 	  chipset. If M is selected the module will be called savage.
 +
-diff --git a/drivers/char/drm/nouveau_dma.c b/drivers/char/drm/nouveau_dma.c
-new file mode 100644
-index 0000000..ab502e6
---- /dev/null
-+++ b/drivers/char/drm/nouveau_dma.c
++config DRM_NOUVEAU
++	tristate "Nvidia video cards"
++	depends on DRM
++	help
++	  Choose this for nvidia open source 3d driver
++
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/Makefile linux-2.6.23.noarch/drivers/char/drm/Makefile
+--- linux-2.6.23.noarch.old/drivers/char/drm/Makefile	2007-11-26 21:18:35.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/Makefile	2007-11-26 21:21:50.000000000 -0500
+@@ -15,6 +15,16 @@ mga-objs    := mga_drv.o mga_dma.o mga_s
+ i810-objs   := i810_drv.o i810_dma.o
+ i830-objs   := i830_drv.o i830_dma.o i830_irq.o
+ i915-objs   := i915_drv.o i915_dma.o i915_irq.o i915_mem.o i915_fence.o i915_buffer.o
++nouveau-objs := nouveau_drv.o nouveau_state.o nouveau_fifo.o nouveau_mem.o \
++	nouveau_object.o nouveau_irq.o nouveau_notifier.o \
++	nouveau_sgdma.o nouveau_dma.o \
++	nv04_timer.o \
++	nv04_mc.o nv40_mc.o nv50_mc.o \
++	nv04_fb.o nv10_fb.o nv40_fb.o \
++	nv04_fifo.o nv10_fifo.o nv40_fifo.o nv50_fifo.o \
++	nv04_graph.o nv10_graph.o nv20_graph.o nv30_graph.o \
++	nv40_graph.o nv50_graph.o \
++	nv04_instmem.o nv50_instmem.o
+ radeon-objs := radeon_drv.o radeon_cp.o radeon_state.o radeon_mem.o radeon_irq.o r300_cmdbuf.o
+ sis-objs    := sis_drv.o sis_mm.o
+ savage-objs := savage_drv.o savage_bci.o savage_state.o
+@@ -26,6 +36,7 @@ radeon-objs += radeon_ioc32.o
+ mga-objs    += mga_ioc32.o
+ r128-objs   += r128_ioc32.o
+ i915-objs   += i915_ioc32.o
++nouveau-objs   += nouveau_ioc32.o
+ endif
+ 
+ obj-$(CONFIG_DRM)	+= drm.o
+@@ -36,6 +47,7 @@ obj-$(CONFIG_DRM_MGA)	+= mga.o
+ obj-$(CONFIG_DRM_I810)	+= i810.o
+ obj-$(CONFIG_DRM_I830)	+= i830.o
+ obj-$(CONFIG_DRM_I915)  += i915.o
++obj-$(CONFIG_DRM_NOUVEAU)   += nouveau.o
+ obj-$(CONFIG_DRM_SIS)   += sis.o
+ obj-$(CONFIG_DRM_SAVAGE)+= savage.o
+ obj-$(CONFIG_DRM_VIA)	+=via.o
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nouveau_dma.c linux-2.6.23.noarch/drivers/char/drm/nouveau_dma.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nouveau_dma.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nouveau_dma.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,177 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -655,11 +567,9 @@
 +	return 0;
 +}
 +
-diff --git a/drivers/char/drm/nouveau_dma.h b/drivers/char/drm/nouveau_dma.h
-new file mode 100644
-index 0000000..5e51c1c
---- /dev/null
-+++ b/drivers/char/drm/nouveau_dma.h
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nouveau_dma.h linux-2.6.23.noarch/drivers/char/drm/nouveau_dma.h
+--- linux-2.6.23.noarch.old/drivers/char/drm/nouveau_dma.h	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nouveau_dma.h	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,98 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -759,11 +669,9 @@
 +
 +#endif
 +
-diff --git a/drivers/char/drm/nouveau_drm.h b/drivers/char/drm/nouveau_drm.h
-new file mode 100644
-index 0000000..bfc9bd4
---- /dev/null
-+++ b/drivers/char/drm/nouveau_drm.h
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nouveau_drm.h linux-2.6.23.noarch/drivers/char/drm/nouveau_drm.h
+--- linux-2.6.23.noarch.old/drivers/char/drm/nouveau_drm.h	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nouveau_drm.h	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,166 @@
 +/*
 + * Copyright 2005 Stephane Marchesin.
@@ -931,11 +839,9 @@
 +
 +#endif /* __NOUVEAU_DRM_H__ */
 +
-diff --git a/drivers/char/drm/nouveau_drv.c b/drivers/char/drm/nouveau_drv.c
-new file mode 100644
-index 0000000..387e3d6
---- /dev/null
-+++ b/drivers/char/drm/nouveau_drv.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nouveau_drv.c linux-2.6.23.noarch/drivers/char/drm/nouveau_drv.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nouveau_drv.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nouveau_drv.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,96 @@
 +/*
 + * Copyright 2005 Stephane Marchesin.
@@ -1033,11 +939,9 @@
 +MODULE_AUTHOR(DRIVER_AUTHOR);
 +MODULE_DESCRIPTION(DRIVER_DESC);
 +MODULE_LICENSE("GPL and additional rights");
-diff --git a/drivers/char/drm/nouveau_drv.h b/drivers/char/drm/nouveau_drv.h
-new file mode 100644
-index 0000000..2a16d3b
---- /dev/null
-+++ b/drivers/char/drm/nouveau_drv.h
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nouveau_drv.h linux-2.6.23.noarch/drivers/char/drm/nouveau_drv.h
+--- linux-2.6.23.noarch.old/drivers/char/drm/nouveau_drv.h	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nouveau_drv.h	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,584 @@
 +/*
 + * Copyright 2005 Stephane Marchesin.
@@ -1623,11 +1527,9 @@
 +
 +#endif /* __NOUVEAU_DRV_H__ */
 +
-diff --git a/drivers/char/drm/nouveau_fifo.c b/drivers/char/drm/nouveau_fifo.c
-new file mode 100644
-index 0000000..1aa724f
---- /dev/null
-+++ b/drivers/char/drm/nouveau_fifo.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nouveau_fifo.c linux-2.6.23.noarch/drivers/char/drm/nouveau_fifo.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nouveau_fifo.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nouveau_fifo.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,557 @@
 +/* 
 + * Copyright 2005-2006 Stephane Marchesin
@@ -2186,11 +2088,9 @@
 +};
 +
 +int nouveau_max_ioctl = DRM_ARRAY_SIZE(nouveau_ioctls);
-diff --git a/drivers/char/drm/nouveau_ioc32.c b/drivers/char/drm/nouveau_ioc32.c
-new file mode 100644
-index 0000000..f55ae7a
---- /dev/null
-+++ b/drivers/char/drm/nouveau_ioc32.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nouveau_ioc32.c linux-2.6.23.noarch/drivers/char/drm/nouveau_ioc32.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nouveau_ioc32.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nouveau_ioc32.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,72 @@
 +/**
 + * \file mga_ioc32.c
@@ -2264,11 +2164,9 @@
 +
 +	return ret;
 +}
-diff --git a/drivers/char/drm/nouveau_irq.c b/drivers/char/drm/nouveau_irq.c
-new file mode 100644
-index 0000000..e64677e
---- /dev/null
-+++ b/drivers/char/drm/nouveau_irq.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nouveau_irq.c linux-2.6.23.noarch/drivers/char/drm/nouveau_irq.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nouveau_irq.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nouveau_irq.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,430 @@
 +/*
 + * Copyright (C) 2006 Ben Skeggs.
@@ -2700,11 +2598,9 @@
 +	return IRQ_HANDLED;
 +}
 +
-diff --git a/drivers/char/drm/nouveau_mem.c b/drivers/char/drm/nouveau_mem.c
-new file mode 100644
-index 0000000..1394df5
---- /dev/null
-+++ b/drivers/char/drm/nouveau_mem.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nouveau_mem.c linux-2.6.23.noarch/drivers/char/drm/nouveau_mem.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nouveau_mem.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nouveau_mem.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,616 @@
 +/*
 + * Copyright (C) The Weather Channel, Inc.  2002.  All Rights Reserved.
@@ -3322,11 +3218,9 @@
 +}
 +
 +
-diff --git a/drivers/char/drm/nouveau_notifier.c b/drivers/char/drm/nouveau_notifier.c
-new file mode 100644
-index 0000000..71b8cbe
---- /dev/null
-+++ b/drivers/char/drm/nouveau_notifier.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nouveau_notifier.c linux-2.6.23.noarch/drivers/char/drm/nouveau_notifier.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nouveau_notifier.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nouveau_notifier.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,173 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -3501,11 +3395,9 @@
 +	return 0;
 +}
 +
-diff --git a/drivers/char/drm/nouveau_object.c b/drivers/char/drm/nouveau_object.c
-new file mode 100644
-index 0000000..fbce770
---- /dev/null
-+++ b/drivers/char/drm/nouveau_object.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nouveau_object.c linux-2.6.23.noarch/drivers/char/drm/nouveau_object.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nouveau_object.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nouveau_object.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,1148 @@
 +/*
 + * Copyright (C) 2006 Ben Skeggs.
@@ -4655,11 +4547,9 @@
 +	return 0;
 +}
 +
-diff --git a/drivers/char/drm/nouveau_reg.h b/drivers/char/drm/nouveau_reg.h
-new file mode 100644
-index 0000000..a1895c3
---- /dev/null
-+++ b/drivers/char/drm/nouveau_reg.h
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nouveau_reg.h linux-2.6.23.noarch/drivers/char/drm/nouveau_reg.h
+--- linux-2.6.23.noarch.old/drivers/char/drm/nouveau_reg.h	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nouveau_reg.h	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,538 @@
 +
 +
@@ -5199,11 +5089,9 @@
 +#define NV40_RAMFC_UNK_4C                                        0x4C
 +#define NV40_RAMFC_UNK_50                                        0x50
 +
-diff --git a/drivers/char/drm/nouveau_sgdma.c b/drivers/char/drm/nouveau_sgdma.c
-new file mode 100644
-index 0000000..3b3d8f9
---- /dev/null
-+++ b/drivers/char/drm/nouveau_sgdma.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nouveau_sgdma.c linux-2.6.23.noarch/drivers/char/drm/nouveau_sgdma.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nouveau_sgdma.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nouveau_sgdma.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,311 @@
 +#include "drmP.h"
 +#include "nouveau_drv.h"
@@ -5516,11 +5404,9 @@
 +	return -EINVAL;
 +}
 +
-diff --git a/drivers/char/drm/nouveau_state.c b/drivers/char/drm/nouveau_state.c
-new file mode 100644
-index 0000000..7ab7f7d
---- /dev/null
-+++ b/drivers/char/drm/nouveau_state.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nouveau_state.c linux-2.6.23.noarch/drivers/char/drm/nouveau_state.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nouveau_state.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nouveau_state.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,569 @@
 +/* 
 + * Copyright 2005 Stephane Marchesin
@@ -6091,11 +5977,9 @@
 +}
 +
 +
-diff --git a/drivers/char/drm/nv04_fb.c b/drivers/char/drm/nv04_fb.c
-new file mode 100644
-index 0000000..534fb50
---- /dev/null
-+++ b/drivers/char/drm/nv04_fb.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv04_fb.c linux-2.6.23.noarch/drivers/char/drm/nv04_fb.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv04_fb.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv04_fb.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,24 @@
 +#include "drmP.h"
 +#include "drm.h"
@@ -6121,11 +6005,9 @@
 +{
 +}
 +
-diff --git a/drivers/char/drm/nv04_fifo.c b/drivers/char/drm/nv04_fifo.c
-new file mode 100644
-index 0000000..d750ced
---- /dev/null
-+++ b/drivers/char/drm/nv04_fifo.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv04_fifo.c linux-2.6.23.noarch/drivers/char/drm/nv04_fifo.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv04_fifo.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv04_fifo.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,129 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -6256,11 +6138,9 @@
 +	return 0;
 +}
 +
-diff --git a/drivers/char/drm/nv04_graph.c b/drivers/char/drm/nv04_graph.c
-new file mode 100644
-index 0000000..050f6e8
---- /dev/null
-+++ b/drivers/char/drm/nv04_graph.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv04_graph.c linux-2.6.23.noarch/drivers/char/drm/nv04_graph.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv04_graph.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv04_graph.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,415 @@
 +/* 
 + * Copyright 2007 Stephane Marchesin
@@ -6677,11 +6557,9 @@
 +{
 +}
 +
-diff --git a/drivers/char/drm/nv04_instmem.c b/drivers/char/drm/nv04_instmem.c
-new file mode 100644
-index 0000000..fed6ff7
---- /dev/null
-+++ b/drivers/char/drm/nv04_instmem.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv04_instmem.c linux-2.6.23.noarch/drivers/char/drm/nv04_instmem.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv04_instmem.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv04_instmem.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,160 @@
 +#include "drmP.h"
 +#include "drm.h"
@@ -6843,11 +6721,9 @@
 +	return 0;
 +}
 +
-diff --git a/drivers/char/drm/nv04_mc.c b/drivers/char/drm/nv04_mc.c
-new file mode 100644
-index 0000000..eee0c50
---- /dev/null
-+++ b/drivers/char/drm/nv04_mc.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv04_mc.c linux-2.6.23.noarch/drivers/char/drm/nv04_mc.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv04_mc.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv04_mc.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,23 @@
 +#include "drmP.h"
 +#include "drm.h"
@@ -6872,11 +6748,9 @@
 +{
 +}
 +
-diff --git a/drivers/char/drm/nv04_timer.c b/drivers/char/drm/nv04_timer.c
-new file mode 100644
-index 0000000..08a27f4
---- /dev/null
-+++ b/drivers/char/drm/nv04_timer.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv04_timer.c linux-2.6.23.noarch/drivers/char/drm/nv04_timer.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv04_timer.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv04_timer.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,45 @@
 +#include "drmP.h"
 +#include "drm.h"
@@ -6923,11 +6797,9 @@
 +{
 +}
 +
-diff --git a/drivers/char/drm/nv10_fb.c b/drivers/char/drm/nv10_fb.c
-new file mode 100644
-index 0000000..7fff5b3
---- /dev/null
-+++ b/drivers/char/drm/nv10_fb.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv10_fb.c linux-2.6.23.noarch/drivers/char/drm/nv10_fb.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv10_fb.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv10_fb.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,26 @@
 +#include "drmP.h"
 +#include "drm.h"
@@ -6955,11 +6827,9 @@
 +{
 +}
 +
-diff --git a/drivers/char/drm/nv10_fifo.c b/drivers/char/drm/nv10_fifo.c
-new file mode 100644
-index 0000000..c86725d
---- /dev/null
-+++ b/drivers/char/drm/nv10_fifo.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv10_fifo.c linux-2.6.23.noarch/drivers/char/drm/nv10_fifo.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv10_fifo.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv10_fifo.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,160 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -7121,11 +6991,9 @@
 +	return 0;
 +}
 +
-diff --git a/drivers/char/drm/nv10_graph.c b/drivers/char/drm/nv10_graph.c
-new file mode 100644
-index 0000000..e470ff0
---- /dev/null
-+++ b/drivers/char/drm/nv10_graph.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv10_graph.c linux-2.6.23.noarch/drivers/char/drm/nv10_graph.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv10_graph.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv10_graph.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,777 @@
 +/* 
 + * Copyright 2007 Matthieu CASTET <castet.matthieu at free.fr>
@@ -7904,11 +7772,9 @@
 +{
 +}
 +
-diff --git a/drivers/char/drm/nv20_graph.c b/drivers/char/drm/nv20_graph.c
-new file mode 100644
-index 0000000..c163daf
---- /dev/null
-+++ b/drivers/char/drm/nv20_graph.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv20_graph.c linux-2.6.23.noarch/drivers/char/drm/nv20_graph.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv20_graph.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv20_graph.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,249 @@
 +/* 
 + * Copyright 2007 Matthieu CASTET <castet.matthieu at free.fr>
@@ -8159,11 +8025,9 @@
 +	nouveau_gpuobj_ref_del(dev, &dev_priv->ctx_table);
 +}
 +
-diff --git a/drivers/char/drm/nv30_graph.c b/drivers/char/drm/nv30_graph.c
-new file mode 100644
-index 0000000..ca43bb9
---- /dev/null
-+++ b/drivers/char/drm/nv30_graph.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv30_graph.c linux-2.6.23.noarch/drivers/char/drm/nv30_graph.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv30_graph.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv30_graph.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,2911 @@
 +/*
 + * Based on nv40_graph.c
@@ -11076,11 +10940,9 @@
 +	nouveau_gpuobj_ref_del(dev, &dev_priv->ctx_table);
 +}
 +
-diff --git a/drivers/char/drm/nv40_fb.c b/drivers/char/drm/nv40_fb.c
-new file mode 100644
-index 0000000..2cbb40e
---- /dev/null
-+++ b/drivers/char/drm/nv40_fb.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv40_fb.c linux-2.6.23.noarch/drivers/char/drm/nv40_fb.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv40_fb.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv40_fb.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,56 @@
 +#include "drmP.h"
 +#include "drm.h"
@@ -11138,11 +11000,9 @@
 +{
 +}
 +
-diff --git a/drivers/char/drm/nv40_fifo.c b/drivers/char/drm/nv40_fifo.c
-new file mode 100644
-index 0000000..ce3f8fd
---- /dev/null
-+++ b/drivers/char/drm/nv40_fifo.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv40_fifo.c linux-2.6.23.noarch/drivers/char/drm/nv40_fifo.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv40_fifo.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv40_fifo.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,208 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -11352,11 +11212,9 @@
 +	return 0;
 +}
 +
-diff --git a/drivers/char/drm/nv40_graph.c b/drivers/char/drm/nv40_graph.c
-new file mode 100644
-index 0000000..26237c7
---- /dev/null
-+++ b/drivers/char/drm/nv40_graph.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv40_graph.c linux-2.6.23.noarch/drivers/char/drm/nv40_graph.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv40_graph.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv40_graph.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,1906 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -13264,11 +13122,9 @@
 +{
 +}
 +
-diff --git a/drivers/char/drm/nv40_mc.c b/drivers/char/drm/nv40_mc.c
-new file mode 100644
-index 0000000..c7db902
---- /dev/null
-+++ b/drivers/char/drm/nv40_mc.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv40_mc.c linux-2.6.23.noarch/drivers/char/drm/nv40_mc.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv40_mc.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv40_mc.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,39 @@
 +#include "drmP.h"
 +#include "drm.h"
@@ -13309,11 +13165,9 @@
 +{
 +}
 +
-diff --git a/drivers/char/drm/nv50_fifo.c b/drivers/char/drm/nv50_fifo.c
-new file mode 100644
-index 0000000..7859544
---- /dev/null
-+++ b/drivers/char/drm/nv50_fifo.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv50_fifo.c linux-2.6.23.noarch/drivers/char/drm/nv50_fifo.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv50_fifo.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv50_fifo.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,327 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -13642,11 +13496,9 @@
 +	return 0;
 +}
 +
-diff --git a/drivers/char/drm/nv50_graph.c b/drivers/char/drm/nv50_graph.c
-new file mode 100644
-index 0000000..e5bbf65
---- /dev/null
-+++ b/drivers/char/drm/nv50_graph.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv50_graph.c linux-2.6.23.noarch/drivers/char/drm/nv50_graph.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv50_graph.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv50_graph.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,316 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -13964,11 +13816,9 @@
 +	return nv50_graph_transfer_context(dev, inst, 1);
 +}
 +
-diff --git a/drivers/char/drm/nv50_instmem.c b/drivers/char/drm/nv50_instmem.c
-new file mode 100644
-index 0000000..1eeb54d
---- /dev/null
-+++ b/drivers/char/drm/nv50_instmem.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv50_instmem.c linux-2.6.23.noarch/drivers/char/drm/nv50_instmem.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv50_instmem.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv50_instmem.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,320 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -14290,11 +14140,9 @@
 +	return 0;
 +}
 +
-diff --git a/drivers/char/drm/nv50_mc.c b/drivers/char/drm/nv50_mc.c
-new file mode 100644
-index 0000000..b111826
---- /dev/null
-+++ b/drivers/char/drm/nv50_mc.c
+diff -uNrp linux-2.6.23.noarch.old/drivers/char/drm/nv50_mc.c linux-2.6.23.noarch/drivers/char/drm/nv50_mc.c
+--- linux-2.6.23.noarch.old/drivers/char/drm/nv50_mc.c	1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.noarch/drivers/char/drm/nv50_mc.c	2007-11-26 21:16:13.000000000 -0500
 @@ -0,0 +1,43 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -14339,6 +14187,3 @@
 +void nv50_mc_takedown(struct drm_device *dev)
 +{
 +}
--- 
-1.5.2.5
-




More information about the fedora-extras-commits mailing list