rpms/kernel/F-9 drm-fedora9-rollup.patch, 1.2, 1.3 kernel.spec, 1.817, 1.818

Chuck Ebbert cebbert at fedoraproject.org
Thu Oct 30 07:29:46 UTC 2008


Author: cebbert

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

Modified Files:
	drm-fedora9-rollup.patch kernel.spec 
Log Message:
Fix up the F9 DRM patch.

drm-fedora9-rollup.patch:

Index: drm-fedora9-rollup.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-9/drm-fedora9-rollup.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- drm-fedora9-rollup.patch	6 Aug 2008 02:40:11 -0000	1.2
+++ drm-fedora9-rollup.patch	30 Oct 2008 07:29:43 -0000	1.3
@@ -1,7 +1,7 @@
-diff --git a/drivers/char/drm/Kconfig b/drivers/char/drm/Kconfig
+diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
 index 610d6fd..6b98529 100644
---- a/drivers/char/drm/Kconfig
-+++ b/drivers/char/drm/Kconfig
+--- a/drivers/gpu/drm/Kconfig
++++ b/drivers/gpu/drm/Kconfig
 @@ -105,3 +105,10 @@ config DRM_SAVAGE
  	help
  	  Choose this option if you have a Savage3D/4/SuperSavage/Pro/Twister
@@ -13,11 +13,11 @@
 +	help
 +	  Choose this for nvidia open source 3d driver
 +
-diff --git a/drivers/char/drm/Makefile b/drivers/char/drm/Makefile
+diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile
 index 1283ded..2c652ba 100644
---- a/drivers/char/drm/Makefile
-+++ b/drivers/char/drm/Makefile
-@@ -6,14 +6,26 @@ drm-objs    :=	drm_auth.o drm_bufs.o drm_context.o drm_dma.o drm_drawable.o \
+--- a/drivers/gpu/drm/Makefile
++++ b/drivers/gpu/drm/Makefile
+@@ -6,7 +6,9 @@
  		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 \
@@ -26,14 +26,35 @@
 +		drm_fence.o drm_ttm.o drm_bo.o drm_bo_move.o drm_bo_lock.o \
 +		drm_modes.o drm_crtc.o drm_edid.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 i915_init.o intel_display.o intel_lvds.o intel_crt.o intel_i2c.o intel_modes.o intel_sdvo.o intel_tv.o intel_fb.o
-+nouveau-objs := nouveau_drv.o nouveau_state.o nouveau_fifo.o nouveau_mem.o \
+ drm-$(CONFIG_COMPAT) += drm_ioc32.o
+ 
+@@ -20,6 +22,7 @@
+ obj-$(CONFIG_DRM_I810)	+= i810/
+ obj-$(CONFIG_DRM_I830)	+= i830/
+ obj-$(CONFIG_DRM_I915)  += i915/
++obj-$(CONFIG_DRM_NOUVEAU)   += nouveau/
+ obj-$(CONFIG_DRM_SIS)   += sis/
+ obj-$(CONFIG_DRM_SAVAGE)+= savage/
+ obj-$(CONFIG_DRM_VIA)	+=via/
+diff a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
+--- a/drivers/gpu/drm/i915/Makefile
++++ b/drivers/gpu/drm/i915/Makefile
+@@ -3,7 +3,7 @@
+ # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
+ 
+ ccflags-y := -Iinclude/drm
+-i915-y := i915_drv.o i915_dma.o i915_irq.o i915_mem.o
++i915-y := i915_drv.o i915_dma.o i915_irq.o i915_mem.o i915_fence.o i915_buffer.o i915_init.o intel_display.o intel_lvds.o intel_crt.o intel_i2c.o intel_modes.o intel_sdvo.o intel_tv.o intel_fb.o
+ 
+ i915-$(CONFIG_COMPAT)   += i915_ioc32.o
+ 
+diff a/drivers/gpu/drm/nouveau/Makefile b/drivers/gpu/drm/nouveau/Makefile
+--- /dev/null
++++ b/drivers/gpu/drm/nouveau/Makefile
+@@ -0,0 +1,16 @@
++
++ccflags-y := -Iinclude/drm
++nouveau-y := nouveau_drv.o nouveau_state.o nouveau_fifo.o nouveau_mem.o \
 +		nouveau_object.o nouveau_irq.o nouveau_notifier.o nouveau_swmthd.o \
 +		nouveau_sgdma.o nouveau_dma.o nouveau_bo.o nouveau_fence.o \
 +		nv04_timer.o \
@@ -43,29 +64,14 @@
 +		nv04_graph.o nv10_graph.o nv20_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 +37,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 +48,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/ati_pcigart.c b/drivers/char/drm/ati_pcigart.c
++
++nouveau-$(CONFIG_COMPAT)   += nouveau_ioc32.o
++
++obj-$(CONFIG_DRM_NOUVEAU)	+= nouveau.o
+diff --git a/drivers/gpu/drm/ati_pcigart.c b/drivers/gpu/drm/ati_pcigart.c
 index c533d0c..f27f791 100644
---- a/drivers/char/drm/ati_pcigart.c
-+++ b/drivers/char/drm/ati_pcigart.c
+--- a/drivers/gpu/drm/ati_pcigart.c
++++ b/drivers/gpu/drm/ati_pcigart.c
 @@ -43,7 +43,6 @@ static int drm_ati_alloc_pcigart_table(struct drm_device *dev,
  						gart_info->table_mask);
  	if (gart_info->table_handle == NULL)
@@ -92,10 +98,10 @@
  	gart_info->addr = address;
  	gart_info->bus_addr = bus_address;
  	return ret;
-diff --git a/drivers/char/drm/drm.h b/drivers/char/drm/drm.h
+diff --git a/drivers/gpu/drm/drm.h b/drivers/gpu/drm/drm.h
 index 38d3c6b..4d1b6b6 100644
---- a/drivers/char/drm/drm.h
-+++ b/drivers/char/drm/drm.h
+--- a/include/drm/drm.h
++++ b/include/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 */
@@ -658,10 +664,10 @@
  /**
   * Device specific ioctls should only be in their respective headers
   * The device specific ioctl range is from 0x40 to 0x99.
-diff --git a/drivers/char/drm/drmP.h b/drivers/char/drm/drmP.h
+diff --git a/drivers/gpu/drm/drmP.h b/drivers/gpu/drm/drmP.h
 index 0764b66..58f89fa 100644
---- a/drivers/char/drm/drmP.h
-+++ b/drivers/char/drm/drmP.h
+--- a/include/drm/drmP.h
++++ b/include/drm/drmP.h
 @@ -56,6 +56,7 @@
  #include <linux/smp_lock.h>	/* For (un)lock_kernel */
  #include <linux/dma-mapping.h>
@@ -1042,10 +1048,10 @@
  /*@}*/
  
  #endif				/* __KERNEL__ */
-diff --git a/drivers/char/drm/drm_agpsupport.c b/drivers/char/drm/drm_agpsupport.c
+diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c
 index aefa5ac..3e1358d 100644
---- a/drivers/char/drm/drm_agpsupport.c
-+++ b/drivers/char/drm/drm_agpsupport.c
+--- a/drivers/gpu/drm/drm_agpsupport.c
++++ b/drivers/gpu/drm/drm_agpsupport.c
 @@ -68,7 +68,6 @@ int drm_agp_info(struct drm_device *dev, struct drm_agp_info *info)
  
  	return 0;
@@ -1322,10 +1328,10 @@
 +EXPORT_SYMBOL(drm_agp_chipset_flush);
 +
  #endif				/* __OS_HAS_AGP */
-diff --git a/drivers/char/drm/drm_auth.c b/drivers/char/drm/drm_auth.c
+diff --git a/drivers/gpu/drm/drm_auth.c b/drivers/gpu/drm/drm_auth.c
 index a734627..20c8a63 100644
---- a/drivers/char/drm/drm_auth.c
-+++ b/drivers/char/drm/drm_auth.c
+--- a/drivers/gpu/drm/drm_auth.c
++++ b/drivers/gpu/drm/drm_auth.c
 @@ -45,14 +45,15 @@
   * the one with matching magic number, while holding the drm_device::struct_mutex
   * lock.
@@ -1421,11 +1427,11 @@
  		return 0;
  	}
  	return -EINVAL;
-diff --git a/drivers/char/drm/drm_bo.c b/drivers/char/drm/drm_bo.c
+diff --git a/drivers/gpu/drm/drm_bo.c b/drivers/gpu/drm/drm_bo.c
 new file mode 100644
 index 0000000..185aa32
 --- /dev/null
-+++ b/drivers/char/drm/drm_bo.c
++++ b/drivers/gpu/drm/drm_bo.c
 @@ -0,0 +1,2725 @@
 +/**************************************************************************
 + *
@@ -4152,11 +4158,11 @@
 +
 +	return 0;
 +}
-diff --git a/drivers/char/drm/drm_bo_lock.c b/drivers/char/drm/drm_bo_lock.c
+diff --git a/drivers/gpu/drm/drm_bo_lock.c b/drivers/gpu/drm/drm_bo_lock.c
 new file mode 100644
 index 0000000..186db12
 --- /dev/null
-+++ b/drivers/char/drm/drm_bo_lock.c
++++ b/drivers/gpu/drm/drm_bo_lock.c
 @@ -0,0 +1,175 @@
 +/**************************************************************************
 + *
@@ -4333,11 +4339,11 @@
 +	mutex_unlock(&dev->struct_mutex);
 +	return 0;
 +}
-diff --git a/drivers/char/drm/drm_bo_move.c b/drivers/char/drm/drm_bo_move.c
+diff --git a/drivers/gpu/drm/drm_bo_move.c b/drivers/gpu/drm/drm_bo_move.c
 new file mode 100644
 index 0000000..9c6ca95
 --- /dev/null
-+++ b/drivers/char/drm/drm_bo_move.c
++++ b/drivers/gpu/drm/drm_bo_move.c
 @@ -0,0 +1,610 @@
 +/**************************************************************************
 + *
@@ -4949,10 +4955,10 @@
 +}
 +EXPORT_SYMBOL(drm_bo_pfn_prot);
 +
-diff --git a/drivers/char/drm/drm_bufs.c b/drivers/char/drm/drm_bufs.c
+diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c
 index bde64b8..b8e1dd6 100644
---- a/drivers/char/drm/drm_bufs.c
-+++ b/drivers/char/drm/drm_bufs.c
+--- a/drivers/gpu/drm/drm_bufs.c
++++ b/drivers/gpu/drm/drm_bufs.c
 @@ -46,23 +46,33 @@ unsigned long drm_get_resource_len(struct drm_device *dev, unsigned int resource
  {
  	return pci_resource_len(dev->pdev, resource);
@@ -5172,10 +5178,10 @@
  	request->count = dma->buf_count;
  	DRM_DEBUG("%d buffers, retcode = %d\n", request->count, retcode);
  
-diff --git a/drivers/char/drm/drm_context.c b/drivers/char/drm/drm_context.c
+diff --git a/drivers/gpu/drm/drm_context.c b/drivers/gpu/drm/drm_context.c
 index d505f69..bfd0adc 100644
---- a/drivers/char/drm/drm_context.c
-+++ b/drivers/char/drm/drm_context.c
+--- a/drivers/gpu/drm/drm_context.c
++++ b/drivers/gpu/drm/drm_context.c
 @@ -195,11 +195,11 @@ int drm_setsareactx(struct drm_device *dev, void *data,
  		    && r_list->user_token == (unsigned long) request->handle)
  			goto found;
@@ -5215,11 +5221,11 @@
  
  	return 0;
  }
-diff --git a/drivers/char/drm/drm_crtc.c b/drivers/char/drm/drm_crtc.c
+diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
 new file mode 100644
 index 0000000..2d8a49b
 --- /dev/null
-+++ b/drivers/char/drm/drm_crtc.c
++++ b/drivers/gpu/drm/drm_crtc.c
 @@ -0,0 +1,2451 @@
 +/*
 + * Copyright (c) 2006-2007 Intel Corporation
@@ -7672,11 +7678,11 @@
 +	return ret;
 +}
 +
-diff --git a/drivers/char/drm/drm_crtc.h b/drivers/char/drm/drm_crtc.h
+diff --git a/drivers/gpu/drm/drm_crtc.h b/drivers/gpu/drm/drm_crtc.h
 new file mode 100644
 index 0000000..bbeab60
 --- /dev/null
-+++ b/drivers/char/drm/drm_crtc.h
++++ b/drivers/gpu/drm/drm_crtc.h
 @@ -0,0 +1,666 @@
 +/*
 + * Copyright © 2006 Keith Packard
@@ -8344,10 +8350,10 @@
 +
 +#endif /* __DRM_CRTC_H__ */
 +
-diff --git a/drivers/char/drm/drm_drv.c b/drivers/char/drm/drm_drv.c
+diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
 index 5641387..be84bd6 100644
---- a/drivers/char/drm/drm_drv.c
-+++ b/drivers/char/drm/drm_drv.c
+--- a/drivers/gpu/drm/drm_drv.c
++++ b/drivers/gpu/drm/drm_drv.c
 @@ -117,6 +117,52 @@ static struct drm_ioctl_desc drm_ioctls[] = {
  	DRM_IOCTL_DEF(DRM_IOCTL_WAIT_VBLANK, drm_wait_vblank, 0),
  
@@ -8605,11 +8611,11 @@
  EXPORT_SYMBOL(drm_ioctl);
  
  drm_local_map_t *drm_getsarea(struct drm_device *dev)
-diff --git a/drivers/char/drm/drm_edid.c b/drivers/char/drm/drm_edid.c
+diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
 new file mode 100644
 index 0000000..338a5f5
 --- /dev/null
-+++ b/drivers/char/drm/drm_edid.c
++++ b/drivers/gpu/drm/drm_edid.c
 @@ -0,0 +1,491 @@
 +/*
 + * Copyright (c) 2007 Intel Corporation
@@ -9102,11 +9108,11 @@
 +	return num_modes;
 +}
 +EXPORT_SYMBOL(drm_add_edid_modes);
-diff --git a/drivers/char/drm/drm_edid.h b/drivers/char/drm/drm_edid.h
+diff --git a/drivers/gpu/drm/drm_edid.h b/drivers/gpu/drm/drm_edid.h
 new file mode 100644
 index 0000000..0d2eeaa
 --- /dev/null
-+++ b/drivers/char/drm/drm_edid.h
++++ b/drivers/gpu/drm/drm_edid.h
 @@ -0,0 +1,176 @@
 +#ifndef __DRM_EDID_H__
 +#define __DRM_EDID_H__
@@ -9284,11 +9290,11 @@
 +} __attribute__((packed));
 +
 +#endif /* __DRM_EDID_H__ */
-diff --git a/drivers/char/drm/drm_fence.c b/drivers/char/drm/drm_fence.c
+diff --git a/drivers/gpu/drm/drm_fence.c b/drivers/gpu/drm/drm_fence.c
 new file mode 100644
 index 0000000..4ed4865
 --- /dev/null
-+++ b/drivers/char/drm/drm_fence.c
++++ b/drivers/gpu/drm/drm_fence.c
 @@ -0,0 +1,824 @@
 +/**************************************************************************
 + *
@@ -10114,10 +10120,10 @@
 +
 +	return ret;
 +}
-diff --git a/drivers/char/drm/drm_fops.c b/drivers/char/drm/drm_fops.c
+diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c
 index d2e6da8..5dae9fb 100644
---- a/drivers/char/drm/drm_fops.c
-+++ b/drivers/char/drm/drm_fops.c
+--- a/drivers/gpu/drm/drm_fops.c
++++ b/drivers/gpu/drm/drm_fops.c
 @@ -43,10 +43,8 @@ static int drm_open_helper(struct inode *inode, struct file *filp,
  
  static int drm_setup(struct drm_device * dev)
@@ -10432,10 +10438,10 @@
  			spin_unlock(&dev->count_lock);
  			unlock_kernel();
  			return -EBUSY;
-diff --git a/drivers/char/drm/drm_hashtab.c b/drivers/char/drm/drm_hashtab.c
+diff --git a/drivers/gpu/drm/drm_hashtab.c b/drivers/gpu/drm/drm_hashtab.c
 index 3316067..72a783e 100644
---- a/drivers/char/drm/drm_hashtab.c
-+++ b/drivers/char/drm/drm_hashtab.c
+--- a/drivers/gpu/drm/drm_hashtab.c
++++ b/drivers/gpu/drm/drm_hashtab.c
 @@ -57,7 +57,7 @@ int drm_ht_create(struct drm_open_hash *ht, unsigned int order)
  		DRM_ERROR("Out of memory for hash table\n");
  		return -ENOMEM;
@@ -10454,10 +10460,10 @@
  
  	if (ret) {
  		DRM_ERROR("Available key bit space exhausted\n");
-diff --git a/drivers/char/drm/drm_ioctl.c b/drivers/char/drm/drm_ioctl.c
+diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
 index 16829fb..3b69b74 100644
---- a/drivers/char/drm/drm_ioctl.c
-+++ b/drivers/char/drm/drm_ioctl.c
+--- a/drivers/gpu/drm/drm_ioctl.c
++++ b/drivers/gpu/drm/drm_ioctl.c
 @@ -53,12 +53,13 @@ int drm_getunique(struct drm_device *dev, void *data,
  		  struct drm_file *file_priv)
  {
@@ -10599,10 +10605,10 @@
  		}
  	}
  
-diff --git a/drivers/char/drm/drm_irq.c b/drivers/char/drm/drm_irq.c
+diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
 index 089c015..01bed65 100644
---- a/drivers/char/drm/drm_irq.c
-+++ b/drivers/char/drm/drm_irq.c
+--- a/drivers/gpu/drm/drm_irq.c
++++ b/drivers/gpu/drm/drm_irq.c
 @@ -81,7 +81,7 @@ int drm_irq_by_busid(struct drm_device *dev, void *data,
   * \c drm_driver_irq_preinstall() and \c drm_driver_irq_postinstall() functions
   * before and after the installation.
@@ -10647,14 +10653,13 @@
  	return ret;
  }
  
-@@ -404,18 +409,18 @@ static void drm_locked_tasklet_func(unsigned long data)
- 	spin_lock_irqsave(&dev->tasklet_lock, irqflags);
+@@ -412,12 +412,12 @@ static void drm_locked_tasklet_func(unsi
+ 	spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
  
- 	if (!dev->locked_tasklet_func ||
+ 	if (!tasklet_func ||
 -	    !drm_lock_take(&dev->lock,
 +	    !drm_lock_take(&dev->primary->master->lock,
  			   DRM_KERNEL_CONTEXT)) {
- 		spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
  		return;
  	}
  
@@ -10662,17 +10667,20 @@
 +	dev->primary->master->lock.lock_time = jiffies;
  	atomic_inc(&dev->counts[_DRM_STAT_LOCKS]);
  
- 	dev->locked_tasklet_func(dev);
+ 	spin_lock_irqsave(&dev->tasklet_lock, irqflags);
+@@ -428,7 +428,7 @@ static void drm_locked_tasklet_func(unsi
+ 	if (tasklet_func != NULL)
+ 		tasklet_func(dev);
  
 -	drm_lock_free(&dev->lock,
 +	drm_lock_free(&dev->primary->master->lock,
  		      DRM_KERNEL_CONTEXT);
+ }
  
- 	dev->locked_tasklet_func = NULL;
-diff --git a/drivers/char/drm/drm_lock.c b/drivers/char/drm/drm_lock.c
+diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c
 index 0998723..b9629eb 100644
---- a/drivers/char/drm/drm_lock.c
-+++ b/drivers/char/drm/drm_lock.c
+--- a/drivers/gpu/drm/drm_lock.c
++++ b/drivers/gpu/drm/drm_lock.c
 @@ -52,6 +52,7 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
  {
  	DECLARE_WAITQUEUE(entry, current);
@@ -10737,22 +10745,22 @@
  	DRM_DEBUG("%d %s\n", lock->context,
  		  ret ? "interrupted" : "has lock");
 @@ -111,7 +113,7 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
- 	sigaddset(&dev->sigmask, SIGTTIN);
- 	sigaddset(&dev->sigmask, SIGTTOU);
- 	dev->sigdata.context = lock->context;
--	dev->sigdata.lock = dev->lock.hw_lock;
-+	dev->sigdata.lock = master->lock.hw_lock;
- 	block_all_signals(drm_notifier, &dev->sigdata, &dev->sigmask);
+ 		sigaddset(&dev->sigmask, SIGTTIN);
+ 		sigaddset(&dev->sigmask, SIGTTOU);
+ 		dev->sigdata.context = lock->context;
+-		dev->sigdata.lock = dev->lock.hw_lock;
++		dev->sigdata.lock = master->lock.hw_lock;
+ 		block_all_signals(drm_notifier, &dev->sigdata, &dev->sigmask);
+ 	}
  
- 	if (dev->driver->dma_ready && (lock->flags & _DRM_LOCK_READY))
 @@ -149,6 +151,7 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
  int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv)
  {
  	struct drm_lock *lock = data;
 +	struct drm_master *master = file_priv->master;
  	unsigned long irqflags;
+ 	void (*tasklet_func)(struct drm_device *);
  
- 	if (lock->context == DRM_KERNEL_CONTEXT) {
 @@ -175,7 +178,7 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv)
  	if (dev->driver->kernel_context_switch_unlock)
  		dev->driver->kernel_context_switch_unlock(dev);
@@ -10776,10 +10784,10 @@
  }
  
  EXPORT_SYMBOL(drm_i_have_hw_lock);
-diff --git a/drivers/char/drm/drm_memory.c b/drivers/char/drm/drm_memory.c
+diff --git a/drivers/gpu/drm/drm_memory.c b/drivers/gpu/drm/drm_memory.c
 index 845081b..9a01a91 100644
---- a/drivers/char/drm/drm_memory.c
-+++ b/drivers/char/drm/drm_memory.c
+--- a/drivers/gpu/drm/drm_memory.c
++++ b/drivers/gpu/drm/drm_memory.c
 @@ -36,6 +36,75 @@
  #include <linux/highmem.h>
  #include "drmP.h"
@@ -10856,10 +10864,10 @@
  #ifdef DEBUG_MEMORY
  #include "drm_memory_debug.h"
  #else
-diff --git a/drivers/char/drm/drm_mm.c b/drivers/char/drm/drm_mm.c
+diff --git a/drivers/gpu/drm/drm_mm.c b/drivers/gpu/drm/drm_mm.c
 index dcff9e9..7d8b670 100644
---- a/drivers/char/drm/drm_mm.c
-+++ b/drivers/char/drm/drm_mm.c
+--- a/drivers/gpu/drm/drm_mm.c
++++ b/drivers/gpu/drm/drm_mm.c
 @@ -82,7 +82,7 @@ static int drm_mm_create_tail_node(struct drm_mm *mm,
  	struct drm_mm_node *child;
  
@@ -10908,11 +10916,11 @@
 -	drm_free(entry, sizeof(*entry), DRM_MEM_MM);
 +	drm_ctl_free(entry, sizeof(*entry), DRM_MEM_MM);
  }
-diff --git a/drivers/char/drm/drm_modes.c b/drivers/char/drm/drm_modes.c
+diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c
 new file mode 100644
 index 0000000..8009cae
 --- /dev/null
-+++ b/drivers/char/drm/drm_modes.c
++++ b/drivers/gpu/drm/drm_modes.c
 @@ -0,0 +1,560 @@
 +/*
 + * Copyright © 1997-2003 by The XFree86 Project, Inc.
@@ -11474,11 +11482,11 @@
 +		}
 +	}
 +}
-diff --git a/drivers/char/drm/drm_object.c b/drivers/char/drm/drm_object.c
+diff --git a/drivers/gpu/drm/drm_object.c b/drivers/gpu/drm/drm_object.c
 new file mode 100644
 index 0000000..1acf527
 --- /dev/null
-+++ b/drivers/char/drm/drm_object.c
++++ b/drivers/gpu/drm/drm_object.c
 @@ -0,0 +1,293 @@
 +/**************************************************************************
 + *
@@ -11773,11 +11781,11 @@
 +	mutex_unlock(&dev->struct_mutex);
 +	return ret;
 +}
-diff --git a/drivers/char/drm/drm_objects.h b/drivers/char/drm/drm_objects.h
+diff --git a/drivers/gpu/drm/drm_objects.h b/drivers/gpu/drm/drm_objects.h
 new file mode 100644
 index 0000000..45f6dbb
 --- /dev/null
-+++ b/drivers/char/drm/drm_objects.h
++++ b/include/drm/drm_objects.h
 @@ -0,0 +1,768 @@
 +/**************************************************************************
 + *
@@ -12547,10 +12555,10 @@
 +#define DRM_ASSERT_LOCKED(_mutex)
 +#endif
 +#endif
-diff --git a/drivers/char/drm/drm_pciids.h b/drivers/char/drm/drm_pciids.h
+diff --git a/drivers/gpu/drm/drm_pciids.h b/drivers/gpu/drm/drm_pciids.h
 index 135bd19..8c19f4c 100644
---- a/drivers/char/drm/drm_pciids.h
-+++ b/drivers/char/drm/drm_pciids.h
+--- a/include/drm/drm_pciids.h
++++ b/include/drm/drm_pciids.h
 @@ -413,3 +413,265 @@
  	{0x8086, 0x2e12, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
  	{0x8086, 0x2e22, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
@@ -12817,10 +12825,10 @@
 +	{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 --git a/drivers/char/drm/drm_proc.c b/drivers/char/drm/drm_proc.c
+diff --git a/drivers/gpu/drm/drm_proc.c b/drivers/gpu/drm/drm_proc.c
 index 93b1e04..2995198 100644
---- a/drivers/char/drm/drm_proc.c
-+++ b/drivers/char/drm/drm_proc.c
+--- a/drivers/gpu/drm/drm_proc.c
++++ b/drivers/gpu/drm/drm_proc.c
 @@ -49,6 +49,8 @@ static int drm_queues_info(char *buf, char **start, off_t offset,
  			   int request, int *eof, void *data);
  static int drm_bufs_info(char *buf, char **start, off_t offset,
@@ -12982,10 +12990,10 @@
   * Called when "/proc/dri/.../clients" is read.
   *
   * \param buf output buffer.
-diff --git a/drivers/char/drm/drm_scatter.c b/drivers/char/drm/drm_scatter.c
+diff --git a/drivers/gpu/drm/drm_scatter.c b/drivers/gpu/drm/drm_scatter.c
 index b2b0f3d..3b31040 100644
---- a/drivers/char/drm/drm_scatter.c
-+++ b/drivers/char/drm/drm_scatter.c
+--- a/drivers/gpu/drm/drm_scatter.c
++++ b/drivers/gpu/drm/drm_scatter.c
 @@ -188,7 +188,7 @@ int drm_sg_alloc(struct drm_device *dev, struct drm_scatter_gather * request)
  
  	return 0;
@@ -12995,10 +13003,10 @@
  	drm_sg_cleanup(entry);
  	return -ENOMEM;
  }
-diff --git a/drivers/char/drm/drm_stub.c b/drivers/char/drm/drm_stub.c
+diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
 index c2f584f..9b6ae82 100644
---- a/drivers/char/drm/drm_stub.c
-+++ b/drivers/char/drm/drm_stub.c
+--- a/drivers/gpu/drm/drm_stub.c
++++ b/drivers/gpu/drm/drm_stub.c
 @@ -36,7 +36,7 @@
  #include "drmP.h"
  #include "drm_core.h"
@@ -13236,10 +13244,10 @@
  	if (dev->devname) {
  		drm_free(dev->devname, strlen(dev->devname) + 1,
  			 DRM_MEM_DRIVER);
-diff --git a/drivers/char/drm/drm_sysfs.c b/drivers/char/drm/drm_sysfs.c
+diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
 index af211a0..6f430f7 100644
---- a/drivers/char/drm/drm_sysfs.c
-+++ b/drivers/char/drm/drm_sysfs.c
+--- a/drivers/gpu/drm/drm_sysfs.c
++++ b/drivers/gpu/drm/drm_sysfs.c
 @@ -34,8 +34,11 @@ static int drm_sysfs_suspend(struct device *dev, pm_message_t state)
  	struct drm_minor *drm_minor = to_drm_minor(dev);
  	struct drm_device *drm_dev = drm_minor->dev;
@@ -13282,11 +13290,11 @@
  	snprintf(minor->kdev.bus_id, BUS_ID_SIZE, minor_str, minor->index);
  
  	err = device_register(&minor->kdev);
-diff --git a/drivers/char/drm/drm_ttm.c b/drivers/char/drm/drm_ttm.c
+diff --git a/drivers/gpu/drm/drm_ttm.c b/drivers/gpu/drm/drm_ttm.c
 new file mode 100644
 index 0000000..ab4e8e5
 --- /dev/null
-+++ b/drivers/char/drm/drm_ttm.c
++++ b/drivers/gpu/drm/drm_ttm.c
 @@ -0,0 +1,464 @@
 +/**************************************************************************
 + *
@@ -13752,10 +13760,10 @@
 +	return 0;
 +}
 +EXPORT_SYMBOL(drm_ttm_bind);
-diff --git a/drivers/char/drm/drm_vm.c b/drivers/char/drm/drm_vm.c
+diff --git a/drivers/gpu/drm/drm_vm.c b/drivers/gpu/drm/drm_vm.c
 index c234c6f..94803ed 100644
---- a/drivers/char/drm/drm_vm.c
-+++ b/drivers/char/drm/drm_vm.c
+--- a/drivers/gpu/drm/drm_vm.c
++++ b/drivers/gpu/drm/drm_vm.c
 @@ -40,6 +40,10 @@
  
  static void drm_vm_open(struct vm_area_struct *vma);
@@ -14003,11 +14011,11 @@
 +	drm_bo_vm_open_locked(vma);
 +	return 0;
 +}
-diff --git a/drivers/char/drm/i915_buffer.c b/drivers/char/drm/i915_buffer.c
+diff --git a/drivers/gpu/drm/i915_buffer.c b/drivers/gpu/drm/i915_buffer.c
 new file mode 100644
 index 0000000..4c9168c
 --- /dev/null
-+++ b/drivers/char/drm/i915_buffer.c
++++ b/drivers/gpu/drm/i915/i915_buffer.c
 @@ -0,0 +1,198 @@
 +/**************************************************************************
 + *
@@ -14207,10 +14215,10 @@
 +
 +	DRM_MEMORYBARRIER();
 +}
-diff --git a/drivers/char/drm/i915_dma.c b/drivers/char/drm/i915_dma.c
+diff --git a/drivers/gpu/drm/i915_dma.c b/drivers/gpu/drm/i915_dma.c
 index 8897434..e3fbb9a 100644
---- a/drivers/char/drm/i915_dma.c
-+++ b/drivers/char/drm/i915_dma.c
+--- a/drivers/gpu/drm/i915/i915_dma.c
++++ b/drivers/gpu/drm/i915/i915_dma.c
 @@ -36,10 +36,10 @@
   * the head pointer changes, so that EBUSY only happens if the ring
   * actually stalls for (eg) 3 seconds.
@@ -15560,10 +15568,10 @@
  	return 1;
  }
 +
-diff --git a/drivers/char/drm/i915_drm.h b/drivers/char/drm/i915_drm.h
+diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h
 index 05c66cf..1c45711 100644
---- a/drivers/char/drm/i915_drm.h
-+++ b/drivers/char/drm/i915_drm.h
+--- a/include/drm/i915_drm.h
++++ b/include/drm/i915_drm.h
 @@ -43,7 +43,12 @@ typedef struct _drm_i915_init {
  	enum {
  		I915_INIT_DMA = 0x01,
@@ -15773,10 +15781,10 @@
 +};
 +
  #endif				/* _I915_DRM_H_ */
-diff --git a/drivers/char/drm/i915_drv.c b/drivers/char/drm/i915_drv.c
+diff --git a/drivers/gpu/drm/i915_drv.c b/drivers/gpu/drm/i915_drv.c
 index 93aed1c..98f7b25 100644
---- a/drivers/char/drm/i915_drv.c
-+++ b/drivers/char/drm/i915_drv.c
+--- a/drivers/gpu/drm/i915/i915_drv.c
++++ b/drivers/gpu/drm/i915/i915_drv.c
 @@ -34,9 +34,33 @@
  
  #include "drm_pciids.h"
@@ -15850,10 +15858,10 @@
  	return drm_init(&driver);
  }
  
-diff --git a/drivers/char/drm/i915_drv.h b/drivers/char/drm/i915_drv.h
+diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
 index d7326d9..a33b78c 100644
---- a/drivers/char/drm/i915_drv.h
-+++ b/drivers/char/drm/i915_drv.h
+--- a/drivers/gpu/drm/i915/i915_drv.h
++++ b/drivers/gpu/drm/i915/i915_drv.h
 @@ -37,7 +37,7 @@
  
  #define DRIVER_NAME		"i915"
@@ -16890,11 +16898,11 @@
  #define IS_I965G(dev) ((dev)->pci_device == 0x2972 || \
  		       (dev)->pci_device == 0x2982 || \
  		       (dev)->pci_device == 0x2992 || \
-diff --git a/drivers/char/drm/i915_fence.c b/drivers/char/drm/i915_fence.c
+diff --git a/drivers/gpu/drm/i915_fence.c b/drivers/gpu/drm/i915_fence.c
 new file mode 100644
 index 0000000..803cfe8
 --- /dev/null
-+++ b/drivers/char/drm/i915_fence.c
++++ b/drivers/gpu/drm/i915/i915_fence.c
 @@ -0,0 +1,269 @@
 +/**************************************************************************
 + *
@@ -17165,11 +17173,11 @@
 +	.needed_flush = i915_fence_needed_flush,
 +	.wait = i915_fence_wait,
 +};
-diff --git a/drivers/char/drm/i915_init.c b/drivers/char/drm/i915_init.c
+diff --git a/drivers/gpu/drm/i915_init.c b/drivers/gpu/drm/i915_init.c
 new file mode 100644
 index 0000000..4a53fc8
 --- /dev/null
-+++ b/drivers/char/drm/i915_init.c
++++ b/drivers/gpu/drm/i915/i915_init.c
 @@ -0,0 +1,411 @@
 +/*
 + * Copyright (c) 2007 Intel Corporation
@@ -17582,10 +17590,10 @@
 +	drm_bo_driver_init(dev);
 +	return 0;
 +}
-diff --git a/drivers/char/drm/i915_ioc32.c b/drivers/char/drm/i915_ioc32.c
+diff --git a/drivers/gpu/drm/i915_ioc32.c b/drivers/gpu/drm/i915_ioc32.c
 index 1fe68a2..725fad2 100644
---- a/drivers/char/drm/i915_ioc32.c
-+++ b/drivers/char/drm/i915_ioc32.c
+--- a/drivers/gpu/drm/i915/i915_ioc32.c
++++ b/drivers/gpu/drm/i915/i915_ioc32.c
 @@ -182,12 +182,70 @@ static int compat_i915_alloc(struct file *file, unsigned int cmd,
  			 DRM_IOCTL_I915_ALLOC, (unsigned long)request);
  }
@@ -17658,10 +17666,10 @@
  };
  
  /**
-diff --git a/drivers/char/drm/i915_irq.c b/drivers/char/drm/i915_irq.c
+diff --git a/drivers/gpu/drm/i915_irq.c b/drivers/gpu/drm/i915_irq.c
 index df03611..1e12d62 100644
---- a/drivers/char/drm/i915_irq.c
-+++ b/drivers/char/drm/i915_irq.c
+--- a/drivers/gpu/drm/i915/i915_irq.c
++++ b/drivers/gpu/drm/i915/i915_irq.c
 @@ -38,53 +38,113 @@
  #define MAX_NOPID ((u32)~0)
  
@@ -18330,10 +18338,10 @@
  	I915_WRITE16(I915REG_HWSTAM, 0xffff);
  	I915_WRITE16(I915REG_INT_MASK_R, 0xffff);
  	I915_WRITE16(I915REG_INT_ENABLE_R, 0x0);
-diff --git a/drivers/char/drm/i915_mem.c b/drivers/char/drm/i915_mem.c
+diff --git a/drivers/gpu/drm/i915_mem.c b/drivers/gpu/drm/i915_mem.c
 index 6126a60..15d63de 100644
---- a/drivers/char/drm/i915_mem.c
-+++ b/drivers/char/drm/i915_mem.c
+--- a/drivers/gpu/drm/i915/i915_mem.c
++++ b/drivers/gpu/drm/i915/i915_mem.c
 @@ -45,8 +45,9 @@
   */
  static void mark_block(struct drm_device * dev, struct mem_block *p, int in_use)
@@ -18399,11 +18407,11 @@
  	struct mem_block **heap;
  
  	if ( !dev_priv ) {
-diff --git a/drivers/char/drm/intel_crt.c b/drivers/char/drm/intel_crt.c
+diff --git a/drivers/gpu/drm/intel_crt.c b/drivers/gpu/drm/intel_crt.c
 new file mode 100644
 index 0000000..a9fb50a
 --- /dev/null
-+++ b/drivers/char/drm/intel_crt.c
++++ b/drivers/gpu/drm/i915/intel_crt.c
 @@ -0,0 +1,274 @@
 +/*
 + * Copyright © 2006-2007 Intel Corporation
@@ -18679,11 +18687,11 @@
 +
 +	drm_output_attach_property(output, dev->mode_config.connector_type_property, ConnectorVGA);
 +}
-diff --git a/drivers/char/drm/intel_display.c b/drivers/char/drm/intel_display.c
+diff --git a/drivers/gpu/drm/intel_display.c b/drivers/gpu/drm/intel_display.c
 new file mode 100644
 index 0000000..2e566d9
 --- /dev/null
-+++ b/drivers/char/drm/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
 @@ -0,0 +1,1370 @@
 +/*
 + * Copyright © 2006-2007 Intel Corporation
@@ -20055,11 +20063,11 @@
 +{
 +	drm_mode_config_cleanup(dev);
 +}
-diff --git a/drivers/char/drm/intel_drv.h b/drivers/char/drm/intel_drv.h
+diff --git a/drivers/gpu/drm/intel_drv.h b/drivers/gpu/drm/intel_drv.h
 new file mode 100644
 index 0000000..a36fd3f
 --- /dev/null
-+++ b/drivers/char/drm/intel_drv.h
++++ b/include/drm/intel_drv.h
 @@ -0,0 +1,89 @@
 +/*
 + * Copyright (c) 2006 Dave Airlie <airlied at linux.ie>
@@ -20150,11 +20158,11 @@
 +extern int intelfb_resize(struct drm_device *dev, struct drm_crtc *crtc);
 +
 +#endif /* __INTEL_DRV_H__ */
-diff --git a/drivers/char/drm/intel_fb.c b/drivers/char/drm/intel_fb.c
+diff --git a/drivers/gpu/drm/intel_fb.c b/drivers/gpu/drm/intel_fb.c
 new file mode 100644
 index 0000000..28cc324
 --- /dev/null
-+++ b/drivers/char/drm/intel_fb.c
++++ b/drivers/gpu/drm/i915/intel_fb.c
 @@ -0,0 +1,776 @@
 +/*
 + * Copyright © 2007 David Airlie
@@ -20932,11 +20940,11 @@
 +}
 +EXPORT_SYMBOL(intelfb_remove);
 +MODULE_LICENSE("GPL");
-diff --git a/drivers/char/drm/intel_i2c.c b/drivers/char/drm/intel_i2c.c
+diff --git a/drivers/gpu/drm/intel_i2c.c b/drivers/gpu/drm/intel_i2c.c
 new file mode 100644
 index 0000000..efcbf65
 --- /dev/null
-+++ b/drivers/char/drm/intel_i2c.c
++++ b/drivers/gpu/drm/i915/intel_i2c.c
 @@ -0,0 +1,190 @@
 +/*
 + * Copyright © 2006-2007 Intel Corporation
@@ -21128,11 +21136,11 @@
 +
 +	
 +	
-diff --git a/drivers/char/drm/intel_lvds.c b/drivers/char/drm/intel_lvds.c
+diff --git a/drivers/gpu/drm/intel_lvds.c b/drivers/gpu/drm/intel_lvds.c
 new file mode 100644
 index 0000000..81d624f
 --- /dev/null
-+++ b/drivers/char/drm/intel_lvds.c
++++ b/drivers/gpu/drm/i915/intel_lvds.c
 @@ -0,0 +1,509 @@
 +/*
 + * Copyright © 2006-2007 Intel Corporation
@@ -21643,11 +21651,11 @@
 +        DRM_DEBUG("No LVDS modes found, disabling.\n");
 +	drm_output_destroy(output); /* calls intel_lvds_destroy above */
 +}
-diff --git a/drivers/char/drm/intel_modes.c b/drivers/char/drm/intel_modes.c
+diff --git a/drivers/gpu/drm/intel_modes.c b/drivers/gpu/drm/intel_modes.c
 new file mode 100644
 index 0000000..f8bf496
 --- /dev/null
-+++ b/drivers/char/drm/intel_modes.c
++++ b/drivers/gpu/drm/i915/intel_modes.c
 @@ -0,0 +1,63 @@
 +/*
 + * Copyright (c) 2007 Dave Airlie <airlied at linux.ie>
@@ -21712,11 +21720,11 @@
 +	}
 +	return ret;
 +}
-diff --git a/drivers/char/drm/intel_sdvo.c b/drivers/char/drm/intel_sdvo.c
+diff --git a/drivers/gpu/drm/intel_sdvo.c b/drivers/gpu/drm/intel_sdvo.c
 new file mode 100644
 index 0000000..3887df0
 --- /dev/null
-+++ b/drivers/char/drm/intel_sdvo.c
++++ b/drivers/gpu/drm/i915/intel_sdvo.c
 @@ -0,0 +1,1168 @@
 +/*
 + * Copyright © 2006-2007 Intel Corporation
@@ -22886,11 +22894,11 @@
 +
 +	drm_output_attach_property(output, dev->mode_config.connector_type_property, connector_type);
 +}
-diff --git a/drivers/char/drm/intel_sdvo_regs.h b/drivers/char/drm/intel_sdvo_regs.h
+diff --git a/drivers/gpu/drm/i915/intel_sdvo_regs.h b/drivers/gpu/drm/i915/intel_sdvo_regs.h
 new file mode 100644
 index 0000000..a9d1671
 --- /dev/null
-+++ b/drivers/char/drm/intel_sdvo_regs.h
++++ b/drivers/gpu/drm/i915/intel_sdvo_regs.h
 @@ -0,0 +1,328 @@
 +/*
 + * Copyright © 2006-2007 Intel Corporation
@@ -23220,11 +23228,11 @@
 +# define SDVO_CONTROL_BUS_DDC2				0x2
 +# define SDVO_CONTROL_BUS_DDC3				0x3
 +
-diff --git a/drivers/char/drm/intel_tv.c b/drivers/char/drm/intel_tv.c
+diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
 new file mode 100644
 index 0000000..82c186e
 --- /dev/null
-+++ b/drivers/char/drm/intel_tv.c
++++ b/drivers/gpu/drm/i915/intel_tv.c
 @@ -0,0 +1,1763 @@
 +/*
 + * Copyright © 2006 Intel Corporation
@@ -24989,11 +24997,11 @@
 +	output->interlace_allowed = false;
 +	output->doublescan_allowed = false;
 +}
-diff --git a/drivers/char/drm/nouveau_bo.c b/drivers/char/drm/nouveau_bo.c
+diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
 new file mode 100644
 index 0000000..ab3b23a
 --- /dev/null
-+++ b/drivers/char/drm/nouveau_bo.c
++++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
 @@ -0,0 +1,296 @@
 +/*
 + * Copyright 2007 Dave Airlied
@@ -25291,11 +25299,11 @@
 +	.ttm_cache_flush= nouveau_bo_flush_ttm,
 +	.command_stream_barrier = NULL
 +};
-diff --git a/drivers/char/drm/nouveau_dma.c b/drivers/char/drm/nouveau_dma.c
+diff --git a/drivers/gpu/drm/nouveau/nouveau_dma.c b/drivers/gpu/drm/nouveau/nouveau_dma.c
 new file mode 100644
 index 0000000..e519dc4
 --- /dev/null
-+++ b/drivers/char/drm/nouveau_dma.c
++++ b/drivers/gpu/drm/nouveau/nouveau_dma.c
 @@ -0,0 +1,172 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -25469,11 +25477,11 @@
 +
 +	return 0;
 +}
-diff --git a/drivers/char/drm/nouveau_dma.h b/drivers/char/drm/nouveau_dma.h
+diff --git a/drivers/gpu/drm/nouveau/nouveau_dma.h b/drivers/gpu/drm/nouveau/nouveau_dma.h
 new file mode 100644
 index 0000000..ce3c58c
 --- /dev/null
-+++ b/drivers/char/drm/nouveau_dma.h
++++ b/drivers/gpu/drm/nouveau/nouveau_dma.h
 @@ -0,0 +1,96 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -25571,11 +25579,11 @@
 +} while(0)
 +
 +#endif
-diff --git a/drivers/char/drm/nouveau_drm.h b/drivers/char/drm/nouveau_drm.h
+diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.h b/drivers/gpu/drm/nouveau/nouveau_drm.h
 new file mode 100644
 index 0000000..cf76205
 --- /dev/null
-+++ b/drivers/char/drm/nouveau_drm.h
++++ b/drivers/gpu/drm/nouveau/nouveau_drm.h
 @@ -0,0 +1,170 @@
 +/*
 + * Copyright 2005 Stephane Marchesin.
@@ -25747,11 +25755,11 @@
 +#define DRM_NOUVEAU_MEM_FREE           0x09
 +
 +#endif /* __NOUVEAU_DRM_H__ */
-diff --git a/drivers/char/drm/nouveau_drv.c b/drivers/char/drm/nouveau_drv.c
+diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.c b/drivers/gpu/drm/nouveau/nouveau_drv.c
 new file mode 100644
 index 0000000..d26cde4
 --- /dev/null
-+++ b/drivers/char/drm/nouveau_drv.c
++++ b/drivers/gpu/drm/nouveau/nouveau_drv.c
 @@ -0,0 +1,108 @@
 +/*
 + * Copyright 2005 Stephane Marchesin.
@@ -25861,11 +25869,11 @@
 +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
+diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h
 new file mode 100644
 index 0000000..a51e552
 --- /dev/null
-+++ b/drivers/char/drm/nouveau_drv.h
++++ b/drivers/gpu/drm/nouveau/nouveau_drv.h
 @@ -0,0 +1,606 @@
 +/*
 + * Copyright 2005 Stephane Marchesin.
@@ -26473,11 +26481,11 @@
 +#define INSTANCE_WR(o,i,v) NV_WI32((o)->im_pramin->start + ((i)<<2), (v))
 +
 +#endif /* __NOUVEAU_DRV_H__ */
-diff --git a/drivers/char/drm/nouveau_fence.c b/drivers/char/drm/nouveau_fence.c
+diff --git a/drivers/gpu/drm/nouveau/nouveau_fence.c b/drivers/gpu/drm/nouveau/nouveau_fence.c
 new file mode 100644
 index 0000000..4ad51ae
 --- /dev/null
-+++ b/drivers/char/drm/nouveau_fence.c
++++ b/drivers/gpu/drm/nouveau/nouveau_fence.c
 @@ -0,0 +1,119 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -26598,11 +26606,11 @@
 +	.needed_flush   = NULL,
 +	.wait           = NULL
 +};
-diff --git a/drivers/char/drm/nouveau_fifo.c b/drivers/char/drm/nouveau_fifo.c
+diff --git a/drivers/gpu/drm/nouveau/nouveau_fifo.c b/drivers/gpu/drm/nouveau/nouveau_fifo.c
 new file mode 100644
 index 0000000..d8fda27
 --- /dev/null
-+++ b/drivers/char/drm/nouveau_fifo.c
++++ b/drivers/gpu/drm/nouveau/nouveau_fifo.c
 @@ -0,0 +1,598 @@
 +/*
 + * Copyright 2005-2006 Stephane Marchesin
@@ -27202,11 +27210,11 @@
 +};
 +
 +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
+diff --git a/drivers/gpu/drm/nouveau/nouveau_ioc32.c b/drivers/gpu/drm/nouveau/nouveau_ioc32.c
 new file mode 100644
 index 0000000..4f53a50
 --- /dev/null
-+++ b/drivers/char/drm/nouveau_ioc32.c
++++ b/drivers/gpu/drm/nouveau/nouveau_ioc32.c
 @@ -0,0 +1,68 @@
 +/**
 + * \file mga_ioc32.c
@@ -27276,11 +27284,11 @@
 +
 +	return ret;
 +}
-diff --git a/drivers/char/drm/nouveau_irq.c b/drivers/char/drm/nouveau_irq.c
+diff --git a/drivers/gpu/drm/nouveau/nouveau_irq.c b/drivers/gpu/drm/nouveau/nouveau_irq.c
 new file mode 100644
 index 0000000..ec158d8
 --- /dev/null
-+++ b/drivers/char/drm/nouveau_irq.c
++++ b/drivers/gpu/drm/nouveau/nouveau_irq.c
 @@ -0,0 +1,511 @@
 +/*
 + * Copyright (C) 2006 Ben Skeggs.
@@ -27793,11 +27801,11 @@
 +
 +	return IRQ_HANDLED;
 +}
-diff --git a/drivers/char/drm/nouveau_mem.c b/drivers/char/drm/nouveau_mem.c
+diff --git a/drivers/gpu/drm/nouveau/nouveau_mem.c b/drivers/gpu/drm/nouveau/nouveau_mem.c
 new file mode 100644
 index 0000000..c861267
 --- /dev/null
-+++ b/drivers/char/drm/nouveau_mem.c
++++ b/drivers/gpu/drm/nouveau/nouveau_mem.c
 @@ -0,0 +1,780 @@
 +/*
 + * Copyright (C) The Weather Channel, Inc.  2002.  All Rights Reserved.
@@ -28579,11 +28587,11 @@
 +	nouveau_mem_free(dev, block);
 +	return 0;
 +}
-diff --git a/drivers/char/drm/nouveau_notifier.c b/drivers/char/drm/nouveau_notifier.c
+diff --git a/drivers/gpu/drm/nouveau/nouveau_notifier.c b/drivers/gpu/drm/nouveau/nouveau_notifier.c
 new file mode 100644
 index 0000000..82c8ab7
 --- /dev/null
-+++ b/drivers/char/drm/nouveau_notifier.c
++++ b/drivers/gpu/drm/nouveau/nouveau_notifier.c
 @@ -0,0 +1,165 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -28750,11 +28758,11 @@
 +
 +	return 0;
 +}
-diff --git a/drivers/char/drm/nouveau_object.c b/drivers/char/drm/nouveau_object.c
+diff --git a/drivers/gpu/drm/nouveau/nouveau_object.c b/drivers/gpu/drm/nouveau/nouveau_object.c
 new file mode 100644
 index 0000000..df534bd
 --- /dev/null
-+++ b/drivers/char/drm/nouveau_object.c
++++ b/drivers/gpu/drm/nouveau/nouveau_object.c
 @@ -0,0 +1,1172 @@
 +/*
 + * Copyright (C) 2006 Ben Skeggs.
@@ -29928,11 +29936,11 @@
 +	return 0;
 +}
 +
-diff --git a/drivers/char/drm/nouveau_reg.h b/drivers/char/drm/nouveau_reg.h
+diff --git a/include/drm/nouveau_reg.h b/include/drm/nouveau_reg.h
 new file mode 100644
 index 0000000..1ae0177
 --- /dev/null
-+++ b/drivers/char/drm/nouveau_reg.h
++++ b/include/drm/nouveau_reg.h
 @@ -0,0 +1,593 @@
 +
 +
@@ -30527,11 +30535,11 @@
 +#define NV40_RAMFC_UNK_48                                        0x48
 +#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
+diff --git a/drivers/gpu/drm/nouveau/nouveau_sgdma.c b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
 new file mode 100644
 index 0000000..cc4d5a9
 --- /dev/null
-+++ b/drivers/char/drm/nouveau_sgdma.c
++++ b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
 @@ -0,0 +1,341 @@
 +#include "drmP.h"
 +#include "nouveau_drv.h"
@@ -30874,11 +30882,11 @@
 +	DRM_ERROR("Unimplemented on NV50\n");
 +	return -EINVAL;
 +}
-diff --git a/drivers/char/drm/nouveau_state.c b/drivers/char/drm/nouveau_state.c
+diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c b/drivers/gpu/drm/nouveau/nouveau_state.c
 new file mode 100644
 index 0000000..d273d4b
 --- /dev/null
-+++ b/drivers/char/drm/nouveau_state.c
++++ b/drivers/gpu/drm/nouveau/nouveau_state.c
 @@ -0,0 +1,705 @@
 +/*
 + * Copyright 2005 Stephane Marchesin
@@ -31585,11 +31593,11 @@
 +	}
 +	}
 +}
-diff --git a/drivers/char/drm/nouveau_swmthd.c b/drivers/char/drm/nouveau_swmthd.c
+diff --git a/drivers/gpu/drm/nouveau/nouveau_swmthd.c b/drivers/gpu/drm/nouveau/nouveau_swmthd.c
 new file mode 100644
 index 0000000..c3666bf
 --- /dev/null
-+++ b/drivers/char/drm/nouveau_swmthd.c
++++ b/drivers/gpu/drm/nouveau/nouveau_swmthd.c
 @@ -0,0 +1,191 @@
 +/*
 + * Copyright (C) 2007 Arthur Huillet.
@@ -31782,11 +31790,11 @@
 +
 +	 return 1;
 + }
-diff --git a/drivers/char/drm/nouveau_swmthd.h b/drivers/char/drm/nouveau_swmthd.h
+diff --git a/drivers/gpu/drm/nouveau/nouveau_swmthd.h b/drivers/gpu/drm/nouveau/nouveau_swmthd.h
 new file mode 100644
 index 0000000..5b9409f
 --- /dev/null
-+++ b/drivers/char/drm/nouveau_swmthd.h
++++ b/drivers/gpu/drm/nouveau/nouveau_swmthd.h
 @@ -0,0 +1,33 @@
 +/*
 + * Copyright (C) 2007 Arthur Huillet.
@@ -31821,11 +31829,11 @@
 + */
 +
 +int nouveau_sw_method_execute(struct drm_device *dev, uint32_t oclass, uint32_t method); /* execute the given software method, returns 0 on success */
-diff --git a/drivers/char/drm/nv04_fb.c b/drivers/char/drm/nv04_fb.c
+diff --git a/drivers/gpu/drm/nouveau/nv04_fb.c b/drivers/gpu/drm/nouveau/nv04_fb.c
 new file mode 100644
 index 0000000..58a9247
 --- /dev/null
-+++ b/drivers/char/drm/nv04_fb.c
++++ b/drivers/gpu/drm/nouveau/nv04_fb.c
 @@ -0,0 +1,23 @@
 +#include "drmP.h"
 +#include "drm.h"
@@ -31850,11 +31858,11 @@
 +nv04_fb_takedown(struct drm_device *dev)
 +{
 +}
-diff --git a/drivers/char/drm/nv04_fifo.c b/drivers/char/drm/nv04_fifo.c
+diff --git a/drivers/gpu/drm/nouveau/nv04_fifo.c b/drivers/gpu/drm/nouveau/nv04_fifo.c
 new file mode 100644
 index 0000000..230c8e7
 --- /dev/null
-+++ b/drivers/char/drm/nv04_fifo.c
++++ b/drivers/gpu/drm/nouveau/nv04_fifo.c
 @@ -0,0 +1,138 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -31994,11 +32002,11 @@
 +
 +	return 0;
 +}
-diff --git a/drivers/char/drm/nv04_graph.c b/drivers/char/drm/nv04_graph.c
+diff --git a/drivers/gpu/drm/nouveau/nv04_graph.c b/drivers/gpu/drm/nouveau/nv04_graph.c
 new file mode 100644
 index 0000000..6caae25
 --- /dev/null
-+++ b/drivers/char/drm/nv04_graph.c
++++ b/drivers/gpu/drm/nouveau/nv04_graph.c
 @@ -0,0 +1,516 @@
 +/*
 + * Copyright 2007 Stephane Marchesin
@@ -32516,11 +32524,11 @@
 +void nv04_graph_takedown(struct drm_device *dev)
 +{
 +}
-diff --git a/drivers/char/drm/nv04_instmem.c b/drivers/char/drm/nv04_instmem.c
+diff --git a/drivers/gpu/drm/nouveau/nv04_instmem.c b/drivers/gpu/drm/nouveau/nv04_instmem.c
 new file mode 100644
 index 0000000..804f9a7
 --- /dev/null
-+++ b/drivers/char/drm/nv04_instmem.c
++++ b/drivers/gpu/drm/nouveau/nv04_instmem.c
 @@ -0,0 +1,159 @@
 +#include "drmP.h"
 +#include "drm.h"
@@ -32681,11 +32689,11 @@
 +	gpuobj->im_bound = 0;
 +	return 0;
 +}
-diff --git a/drivers/char/drm/nv04_mc.c b/drivers/char/drm/nv04_mc.c
+diff --git a/drivers/gpu/drm/nouveau/nv04_mc.c b/drivers/gpu/drm/nouveau/nv04_mc.c
 new file mode 100644
 index 0000000..24c1f7b
 --- /dev/null
-+++ b/drivers/char/drm/nv04_mc.c
++++ b/drivers/gpu/drm/nouveau/nv04_mc.c
 @@ -0,0 +1,22 @@
 +#include "drmP.h"
 +#include "drm.h"
@@ -32709,11 +32717,11 @@
 +nv04_mc_takedown(struct drm_device *dev)
 +{
 +}
-diff --git a/drivers/char/drm/nv04_timer.c b/drivers/char/drm/nv04_timer.c
+diff --git a/drivers/gpu/drm/nouveau/nv04_timer.c b/drivers/gpu/drm/nouveau/nv04_timer.c
 new file mode 100644
 index 0000000..616f197
 --- /dev/null
-+++ b/drivers/char/drm/nv04_timer.c
++++ b/drivers/gpu/drm/nouveau/nv04_timer.c
 @@ -0,0 +1,53 @@
 +#include "drmP.h"
 +#include "drm.h"
@@ -32768,11 +32776,11 @@
 +nv04_timer_takedown(struct drm_device *dev)
 +{
 +}
-diff --git a/drivers/char/drm/nv10_fb.c b/drivers/char/drm/nv10_fb.c
+diff --git a/drivers/gpu/drm/nouveau/nv10_fb.c b/drivers/gpu/drm/nouveau/nv10_fb.c
 new file mode 100644
 index 0000000..6e0773a
 --- /dev/null
-+++ b/drivers/char/drm/nv10_fb.c
++++ b/drivers/gpu/drm/nouveau/nv10_fb.c
 @@ -0,0 +1,25 @@
 +#include "drmP.h"
 +#include "drm.h"
@@ -32799,11 +32807,11 @@
 +nv10_fb_takedown(struct drm_device *dev)
 +{
 +}
-diff --git a/drivers/char/drm/nv10_fifo.c b/drivers/char/drm/nv10_fifo.c
+diff --git a/drivers/gpu/drm/nouveau/nv10_fifo.c b/drivers/gpu/drm/nouveau/nv10_fifo.c
 new file mode 100644
 index 0000000..6d50b6c
 --- /dev/null
-+++ b/drivers/char/drm/nv10_fifo.c
++++ b/drivers/gpu/drm/nouveau/nv10_fifo.c
 @@ -0,0 +1,169 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -32974,11 +32982,11 @@
 +
 +	return 0;
 +}
-diff --git a/drivers/char/drm/nv10_graph.c b/drivers/char/drm/nv10_graph.c
+diff --git a/drivers/gpu/drm/nouveau/nv10_graph.c b/drivers/gpu/drm/nouveau/nv10_graph.c
 new file mode 100644
 index 0000000..9bf6c7e
 --- /dev/null
-+++ b/drivers/char/drm/nv10_graph.c
++++ b/drivers/gpu/drm/nouveau/nv10_graph.c
 @@ -0,0 +1,871 @@
 +/*
 + * Copyright 2007 Matthieu CASTET <castet.matthieu at free.fr>
@@ -33851,11 +33859,11 @@
 +void nv10_graph_takedown(struct drm_device *dev)
 +{
 +}
-diff --git a/drivers/char/drm/nv20_graph.c b/drivers/char/drm/nv20_graph.c
+diff --git a/drivers/gpu/drm/nouveau/nv20_graph.c b/drivers/gpu/drm/nouveau/nv20_graph.c
 new file mode 100644
 index 0000000..d171113
 --- /dev/null
-+++ b/drivers/char/drm/nv20_graph.c
++++ b/drivers/gpu/drm/nouveau/nv20_graph.c
 @@ -0,0 +1,889 @@
 +#include "drmP.h"
 +#include "drm.h"
@@ -34746,11 +34754,11 @@
 +
 +	return 0;
 +}
-diff --git a/drivers/char/drm/nv40_fb.c b/drivers/char/drm/nv40_fb.c
+diff --git a/drivers/gpu/drm/nouveau/nv40_fb.c b/drivers/gpu/drm/nouveau/nv40_fb.c
 new file mode 100644
 index 0000000..ae784cb
 --- /dev/null
-+++ b/drivers/char/drm/nv40_fb.c
++++ b/drivers/gpu/drm/nouveau/nv40_fb.c
 @@ -0,0 +1,62 @@
 +#include "drmP.h"
 +#include "drm.h"
@@ -34814,11 +34822,11 @@
 +nv40_fb_takedown(struct drm_device *dev)
 +{
 +}
-diff --git a/drivers/char/drm/nv40_fifo.c b/drivers/char/drm/nv40_fifo.c
+diff --git a/drivers/gpu/drm/nouveau/nv40_fifo.c b/drivers/gpu/drm/nouveau/nv40_fifo.c
 new file mode 100644
 index 0000000..fc38bb9
 --- /dev/null
-+++ b/drivers/char/drm/nv40_fifo.c
++++ b/drivers/gpu/drm/nouveau/nv40_fifo.c
 @@ -0,0 +1,199 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -35019,11 +35027,11 @@
 +	NV_WRITE(NV04_PFIFO_DMA_TIMESLICE, 0x2101ffff);
 +	return 0;
 +}
-diff --git a/drivers/char/drm/nv40_graph.c b/drivers/char/drm/nv40_graph.c
+diff --git a/drivers/gpu/drm/nouveau/nv40_graph.c b/drivers/gpu/drm/nouveau/nv40_graph.c
 new file mode 100644
 index 0000000..2540fc5
 --- /dev/null
-+++ b/drivers/char/drm/nv40_graph.c
++++ b/drivers/gpu/drm/nouveau/nv40_graph.c
 @@ -0,0 +1,2195 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -37220,11 +37228,11 @@
 +void nv40_graph_takedown(struct drm_device *dev)
 +{
 +}
-diff --git a/drivers/char/drm/nv40_mc.c b/drivers/char/drm/nv40_mc.c
+diff --git a/drivers/gpu/drm/nouveau/nv40_mc.c b/drivers/gpu/drm/nouveau/nv40_mc.c
 new file mode 100644
 index 0000000..ead6f87
 --- /dev/null
-+++ b/drivers/char/drm/nv40_mc.c
++++ b/drivers/gpu/drm/nouveau/nv40_mc.c
 @@ -0,0 +1,38 @@
 +#include "drmP.h"
 +#include "drm.h"
@@ -37264,11 +37272,11 @@
 +nv40_mc_takedown(struct drm_device *dev)
 +{
 +}
-diff --git a/drivers/char/drm/nv50_fifo.c b/drivers/char/drm/nv50_fifo.c
+diff --git a/drivers/gpu/drm/nouveau/nv50_fifo.c b/drivers/gpu/drm/nouveau/nv50_fifo.c
 new file mode 100644
 index 0000000..edf4edb
 --- /dev/null
-+++ b/drivers/char/drm/nv50_fifo.c
++++ b/drivers/gpu/drm/nouveau/nv50_fifo.c
 @@ -0,0 +1,339 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -37609,11 +37617,11 @@
 +	DRM_ERROR("stub!\n");
 +	return 0;
 +}
-diff --git a/drivers/char/drm/nv50_graph.c b/drivers/char/drm/nv50_graph.c
+diff --git a/drivers/gpu/drm/nouveau/nv50_graph.c b/drivers/gpu/drm/nouveau/nv50_graph.c
 new file mode 100644
 index 0000000..55df5fc
 --- /dev/null
-+++ b/drivers/char/drm/nv50_graph.c
++++ b/drivers/gpu/drm/nouveau/nv50_graph.c
 @@ -0,0 +1,1056 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -38671,11 +38679,11 @@
 +
 +	return nv50_graph_transfer_context(dev, inst, 1);
 +}
-diff --git a/drivers/char/drm/nv50_instmem.c b/drivers/char/drm/nv50_instmem.c
+diff --git a/drivers/gpu/drm/nouveau/nv50_instmem.c b/drivers/gpu/drm/nouveau/nv50_instmem.c
 new file mode 100644
 index 0000000..b7a51f0
 --- /dev/null
-+++ b/drivers/char/drm/nv50_instmem.c
++++ b/drivers/gpu/drm/nouveau/nv50_instmem.c
 @@ -0,0 +1,324 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -39001,11 +39009,11 @@
 +	gpuobj->im_bound = 0;
 +	return 0;
 +}
-diff --git a/drivers/char/drm/nv50_mc.c b/drivers/char/drm/nv50_mc.c
+diff --git a/drivers/gpu/drm/nouveau/nv50_mc.c b/drivers/gpu/drm/nouveau/nv50_mc.c
 new file mode 100644
 index 0000000..b111826
 --- /dev/null
-+++ b/drivers/char/drm/nv50_mc.c
++++ b/drivers/gpu/drm/nouveau/nv50_mc.c
 @@ -0,0 +1,43 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
@@ -39050,10 +39058,10 @@
 +void nv50_mc_takedown(struct drm_device *dev)
 +{
 +}
-diff --git a/drivers/char/drm/radeon_cp.c b/drivers/char/drm/radeon_cp.c
+diff --git a/drivers/gpu/drm/radeon/radeon_cp.c b/drivers/gpu/drm/radeon/radeon_cp.c
 index e53158f..6ec5d98 100644
---- a/drivers/char/drm/radeon_cp.c
-+++ b/drivers/char/drm/radeon_cp.c
+--- a/drivers/gpu/drm/radeon/radeon_cp.c
++++ b/drivers/gpu/drm/radeon/radeon_cp.c
 @@ -651,15 +651,17 @@ static void radeon_cp_init_ring_buffer(struct drm_device * dev,
  	tmp = RADEON_READ(RADEON_BUS_CNTL) & ~RADEON_BUS_MASTER_DIS;
  	RADEON_WRITE(RADEON_BUS_CNTL, tmp);
@@ -39152,10 +39160,10 @@
  	drm_free(dev_priv, sizeof(*dev_priv), DRM_MEM_DRIVER);
  
  	dev->dev_private = NULL;
-diff --git a/drivers/char/drm/radeon_drv.c b/drivers/char/drm/radeon_drv.c
+diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
 index 349ac3d..52b7c46 100644
---- a/drivers/char/drm/radeon_drv.c
-+++ b/drivers/char/drm/radeon_drv.c
+--- a/drivers/gpu/drm/radeon/radeon_drv.c
++++ b/drivers/gpu/drm/radeon/radeon_drv.c
 @@ -81,6 +81,8 @@ static struct drm_driver driver = {
  	.get_reg_ofs = drm_core_get_reg_ofs,
  	.ioctls = radeon_ioctls,
@@ -39165,10 +39173,10 @@
  	.fops = {
  		 .owner = THIS_MODULE,
  		 .open = drm_open,
-diff --git a/drivers/char/drm/radeon_drv.h b/drivers/char/drm/radeon_drv.h
+diff --git a/drivers/gpu/drm/radeon/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h
 index 3f0eca9..2e5ffb7 100644
---- a/drivers/char/drm/radeon_drv.h
-+++ b/drivers/char/drm/radeon_drv.h
+--- a/drivers/gpu/drm/radeon/radeon_drv.h
++++ b/drivers/gpu/drm/radeon/radeon_drv.h
 @@ -280,8 +280,6 @@ typedef struct drm_radeon_private {
  	unsigned long buffers_offset;
  	unsigned long gart_textures_offset;
@@ -39179,9 +39187,9 @@
  	drm_local_map_t *ring_rptr;
  	drm_local_map_t *gart_textures;
 @@ -311,8 +309,13 @@ typedef struct drm_radeon_private {
- 	unsigned long fb_aper_offset;
  
  	int num_gb_pipes;
+ 	int track_flush;
 +	drm_local_map_t *mmio;
  } drm_radeon_private_t;
  
@@ -39202,10 +39210,10 @@
  /* r300_cmdbuf.c */
  extern void r300_init_reg_flags(struct drm_device *dev);
  
-diff --git a/drivers/char/drm/radeon_state.c b/drivers/char/drm/radeon_state.c
+diff --git a/drivers/gpu/drm/radeon/radeon_state.c b/drivers/gpu/drm/radeon/radeon_state.c
 index 11c146b..822a858 100644
---- a/drivers/char/drm/radeon_state.c
-+++ b/drivers/char/drm/radeon_state.c
+--- a/drivers/gpu/drm/radeon/radeon_state.c
++++ b/drivers/gpu/drm/radeon/radeon_state.c
 @@ -1415,10 +1415,11 @@ static void radeon_cp_dispatch_swap(struct drm_device * dev)
  	ADVANCE_RING();
  }


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-9/kernel.spec,v
retrieving revision 1.817
retrieving revision 1.818
diff -u -r1.817 -r1.818
--- kernel.spec	30 Oct 2008 06:04:35 -0000	1.817
+++ kernel.spec	30 Oct 2008 07:29:44 -0000	1.818
@@ -1205,7 +1205,7 @@
 ApplyPatch linux-2.6-net-tulip-interrupt.patch
 
 # Nouveau DRM + drm fixes
-#ApplyPatch drm-fedora9-rollup.patch
+ApplyPatch drm-fedora9-rollup.patch
 
 # Filesystem patches
 
@@ -1827,6 +1827,9 @@
 %kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL}.xen -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.xen.conf %{with_xen} xen
 
 %changelog
+* Thu Oct 30 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.4-5
+- Fix up the F9 DRM patch.
+
 * Thu Oct 30 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.4-4
 - Compile fixes from rawhide, drop gcc43 compile fix.
 




More information about the scm-commits mailing list