From c0e09200dc0813972442e550a5905a132768e56c Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied@redhat.com>
Date: Thu, 29 May 2008 10:09:59 +1000
Subject: [PATCH] drm: reorganise drm tree to be more future proof.

With the coming of kernel based modesetting and the memory manager stuff,
the everything in one directory approach was getting very ugly and
starting to be unmanageable.

This restructures the drm along the lines of other kernel components.

It creates a drivers/gpu/drm directory and moves the hw drivers into
subdirectores. It moves the includes into an include/drm, and
sets up the unifdef for the userspace headers we should be exporting.

Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 drivers/Makefile                              |  1 +
 drivers/char/Makefile                         |  1 -
 drivers/char/drm/Makefile                     | 40 -------------------
 drivers/gpu/Makefile                          |  1 +
 drivers/{char => gpu}/drm/Kconfig             |  0
 drivers/gpu/drm/Makefile                      | 26 ++++++++++++
 drivers/{char => gpu}/drm/README.drm          |  0
 drivers/{char => gpu}/drm/ati_pcigart.c       |  0
 drivers/{char => gpu}/drm/drm_agpsupport.c    |  0
 drivers/{char => gpu}/drm/drm_auth.c          |  0
 drivers/{char => gpu}/drm/drm_bufs.c          |  0
 drivers/{char => gpu}/drm/drm_context.c       |  0
 drivers/{char => gpu}/drm/drm_dma.c           |  0
 drivers/{char => gpu}/drm/drm_drawable.c      |  0
 drivers/{char => gpu}/drm/drm_drv.c           |  0
 drivers/{char => gpu}/drm/drm_fops.c          |  0
 drivers/{char => gpu}/drm/drm_hashtab.c       |  0
 drivers/{char => gpu}/drm/drm_ioc32.c         |  0
 drivers/{char => gpu}/drm/drm_ioctl.c         |  0
 drivers/{char => gpu}/drm/drm_irq.c           |  0
 drivers/{char => gpu}/drm/drm_lock.c          |  0
 drivers/{char => gpu}/drm/drm_memory.c        |  0
 drivers/{char => gpu}/drm/drm_mm.c            |  0
 drivers/{char => gpu}/drm/drm_pci.c           |  0
 drivers/{char => gpu}/drm/drm_proc.c          |  0
 drivers/{char => gpu}/drm/drm_scatter.c       |  0
 drivers/{char => gpu}/drm/drm_sman.c          |  0
 drivers/{char => gpu}/drm/drm_stub.c          |  0
 drivers/{char => gpu}/drm/drm_sysfs.c         |  0
 drivers/{char => gpu}/drm/drm_vm.c            |  0
 drivers/gpu/drm/i810/Makefile                 |  8 ++++
 drivers/{char/drm => gpu/drm/i810}/i810_dma.c |  0
 drivers/{char/drm => gpu/drm/i810}/i810_drv.c |  0
 drivers/{char/drm => gpu/drm/i810}/i810_drv.h |  0
 drivers/gpu/drm/i830/Makefile                 |  8 ++++
 drivers/{char/drm => gpu/drm/i830}/i830_dma.c |  0
 drivers/{char/drm => gpu/drm/i830}/i830_drv.c |  0
 drivers/{char/drm => gpu/drm/i830}/i830_drv.h |  0
 drivers/{char/drm => gpu/drm/i830}/i830_irq.c |  0
 drivers/gpu/drm/i915/Makefile                 | 10 +++++
 drivers/{char/drm => gpu/drm/i915}/i915_dma.c |  0
 drivers/{char/drm => gpu/drm/i915}/i915_drv.c |  0
 drivers/{char/drm => gpu/drm/i915}/i915_drv.h |  0
 .../{char/drm => gpu/drm/i915}/i915_ioc32.c   |  0
 drivers/{char/drm => gpu/drm/i915}/i915_irq.c |  0
 drivers/{char/drm => gpu/drm/i915}/i915_mem.c |  0
 drivers/gpu/drm/mga/Makefile                  | 11 +++++
 drivers/{char/drm => gpu/drm/mga}/mga_dma.c   |  0
 drivers/{char/drm => gpu/drm/mga}/mga_drv.c   |  0
 drivers/{char/drm => gpu/drm/mga}/mga_drv.h   |  0
 drivers/{char/drm => gpu/drm/mga}/mga_ioc32.c |  0
 drivers/{char/drm => gpu/drm/mga}/mga_irq.c   |  0
 drivers/{char/drm => gpu/drm/mga}/mga_state.c |  0
 drivers/{char/drm => gpu/drm/mga}/mga_ucode.h |  0
 drivers/{char/drm => gpu/drm/mga}/mga_warp.c  |  0
 drivers/gpu/drm/r128/Makefile                 | 10 +++++
 drivers/{char/drm => gpu/drm/r128}/r128_cce.c |  0
 drivers/{char/drm => gpu/drm/r128}/r128_drv.c |  0
 drivers/{char/drm => gpu/drm/r128}/r128_drv.h |  0
 .../{char/drm => gpu/drm/r128}/r128_ioc32.c   |  0
 drivers/{char/drm => gpu/drm/r128}/r128_irq.c |  0
 .../{char/drm => gpu/drm/r128}/r128_state.c   |  0
 drivers/gpu/drm/radeon/Makefile               | 10 +++++
 .../drm => gpu/drm/radeon}/r300_cmdbuf.c      |  0
 .../{char/drm => gpu/drm/radeon}/r300_reg.h   |  0
 .../{char/drm => gpu/drm/radeon}/radeon_cp.c  |  0
 .../{char/drm => gpu/drm/radeon}/radeon_drv.c |  0
 .../{char/drm => gpu/drm/radeon}/radeon_drv.h |  0
 .../drm => gpu/drm/radeon}/radeon_ioc32.c     |  0
 .../{char/drm => gpu/drm/radeon}/radeon_irq.c |  0
 .../{char/drm => gpu/drm/radeon}/radeon_mem.c |  0
 .../drm => gpu/drm/radeon}/radeon_microcode.h |  0
 .../drm => gpu/drm/radeon}/radeon_state.c     |  0
 drivers/gpu/drm/savage/Makefile               |  9 +++++
 .../{char/drm => gpu/drm/savage}/savage_bci.c |  0
 .../{char/drm => gpu/drm/savage}/savage_drv.c |  0
 .../{char/drm => gpu/drm/savage}/savage_drv.h |  0
 .../drm => gpu/drm/savage}/savage_state.c     |  0
 drivers/gpu/drm/sis/Makefile                  | 10 +++++
 drivers/{char/drm => gpu/drm/sis}/sis_drv.c   |  0
 drivers/{char/drm => gpu/drm/sis}/sis_drv.h   |  0
 drivers/{char/drm => gpu/drm/sis}/sis_mm.c    |  0
 drivers/gpu/drm/tdfx/Makefile                 |  8 ++++
 drivers/{char/drm => gpu/drm/tdfx}/tdfx_drv.c |  0
 drivers/{char/drm => gpu/drm/tdfx}/tdfx_drv.h |  0
 drivers/gpu/drm/via/Makefile                  |  8 ++++
 .../{char/drm => gpu/drm/via}/via_3d_reg.h    |  0
 drivers/{char/drm => gpu/drm/via}/via_dma.c   |  0
 .../{char/drm => gpu/drm/via}/via_dmablit.c   |  0
 .../{char/drm => gpu/drm/via}/via_dmablit.h   |  0
 drivers/{char/drm => gpu/drm/via}/via_drv.c   |  0
 drivers/{char/drm => gpu/drm/via}/via_drv.h   |  0
 drivers/{char/drm => gpu/drm/via}/via_irq.c   |  0
 drivers/{char/drm => gpu/drm/via}/via_map.c   |  0
 drivers/{char/drm => gpu/drm/via}/via_mm.c    |  0
 .../{char/drm => gpu/drm/via}/via_verifier.c  |  0
 .../{char/drm => gpu/drm/via}/via_verifier.h  |  0
 drivers/{char/drm => gpu/drm/via}/via_video.c |  0
 drivers/video/Kconfig                         |  2 +-
 include/Kbuild                                |  1 +
 include/drm/Kbuild                            | 10 +++++
 {drivers/char => include}/drm/drm.h           |  0
 {drivers/char => include}/drm/drmP.h          |  0
 {drivers/char => include}/drm/drm_core.h      |  0
 {drivers/char => include}/drm/drm_hashtab.h   |  0
 {drivers/char => include}/drm/drm_memory.h    |  0
 .../char => include}/drm/drm_memory_debug.h   |  0
 {drivers/char => include}/drm/drm_os_linux.h  |  0
 {drivers/char => include}/drm/drm_pciids.h    |  0
 {drivers/char => include}/drm/drm_sarea.h     |  0
 {drivers/char => include}/drm/drm_sman.h      |  0
 {drivers/char => include}/drm/i810_drm.h      |  0
 {drivers/char => include}/drm/i830_drm.h      |  0
 {drivers/char => include}/drm/i915_drm.h      |  0
 {drivers/char => include}/drm/mga_drm.h       |  0
 {drivers/char => include}/drm/r128_drm.h      |  0
 {drivers/char => include}/drm/radeon_drm.h    |  0
 {drivers/char => include}/drm/savage_drm.h    |  0
 {drivers/char => include}/drm/sis_drm.h       |  0
 {drivers/char => include}/drm/via_drm.h       |  0
 120 files changed, 132 insertions(+), 42 deletions(-)
 delete mode 100644 drivers/char/drm/Makefile
 create mode 100644 drivers/gpu/Makefile
 rename drivers/{char => gpu}/drm/Kconfig (100%)
 create mode 100644 drivers/gpu/drm/Makefile
 rename drivers/{char => gpu}/drm/README.drm (100%)
 rename drivers/{char => gpu}/drm/ati_pcigart.c (100%)
 rename drivers/{char => gpu}/drm/drm_agpsupport.c (100%)
 rename drivers/{char => gpu}/drm/drm_auth.c (100%)
 rename drivers/{char => gpu}/drm/drm_bufs.c (100%)
 rename drivers/{char => gpu}/drm/drm_context.c (100%)
 rename drivers/{char => gpu}/drm/drm_dma.c (100%)
 rename drivers/{char => gpu}/drm/drm_drawable.c (100%)
 rename drivers/{char => gpu}/drm/drm_drv.c (100%)
 rename drivers/{char => gpu}/drm/drm_fops.c (100%)
 rename drivers/{char => gpu}/drm/drm_hashtab.c (100%)
 rename drivers/{char => gpu}/drm/drm_ioc32.c (100%)
 rename drivers/{char => gpu}/drm/drm_ioctl.c (100%)
 rename drivers/{char => gpu}/drm/drm_irq.c (100%)
 rename drivers/{char => gpu}/drm/drm_lock.c (100%)
 rename drivers/{char => gpu}/drm/drm_memory.c (100%)
 rename drivers/{char => gpu}/drm/drm_mm.c (100%)
 rename drivers/{char => gpu}/drm/drm_pci.c (100%)
 rename drivers/{char => gpu}/drm/drm_proc.c (100%)
 rename drivers/{char => gpu}/drm/drm_scatter.c (100%)
 rename drivers/{char => gpu}/drm/drm_sman.c (100%)
 rename drivers/{char => gpu}/drm/drm_stub.c (100%)
 rename drivers/{char => gpu}/drm/drm_sysfs.c (100%)
 rename drivers/{char => gpu}/drm/drm_vm.c (100%)
 create mode 100644 drivers/gpu/drm/i810/Makefile
 rename drivers/{char/drm => gpu/drm/i810}/i810_dma.c (100%)
 rename drivers/{char/drm => gpu/drm/i810}/i810_drv.c (100%)
 rename drivers/{char/drm => gpu/drm/i810}/i810_drv.h (100%)
 create mode 100644 drivers/gpu/drm/i830/Makefile
 rename drivers/{char/drm => gpu/drm/i830}/i830_dma.c (100%)
 rename drivers/{char/drm => gpu/drm/i830}/i830_drv.c (100%)
 rename drivers/{char/drm => gpu/drm/i830}/i830_drv.h (100%)
 rename drivers/{char/drm => gpu/drm/i830}/i830_irq.c (100%)
 create mode 100644 drivers/gpu/drm/i915/Makefile
 rename drivers/{char/drm => gpu/drm/i915}/i915_dma.c (100%)
 rename drivers/{char/drm => gpu/drm/i915}/i915_drv.c (100%)
 rename drivers/{char/drm => gpu/drm/i915}/i915_drv.h (100%)
 rename drivers/{char/drm => gpu/drm/i915}/i915_ioc32.c (100%)
 rename drivers/{char/drm => gpu/drm/i915}/i915_irq.c (100%)
 rename drivers/{char/drm => gpu/drm/i915}/i915_mem.c (100%)
 create mode 100644 drivers/gpu/drm/mga/Makefile
 rename drivers/{char/drm => gpu/drm/mga}/mga_dma.c (100%)
 rename drivers/{char/drm => gpu/drm/mga}/mga_drv.c (100%)
 rename drivers/{char/drm => gpu/drm/mga}/mga_drv.h (100%)
 rename drivers/{char/drm => gpu/drm/mga}/mga_ioc32.c (100%)
 rename drivers/{char/drm => gpu/drm/mga}/mga_irq.c (100%)
 rename drivers/{char/drm => gpu/drm/mga}/mga_state.c (100%)
 rename drivers/{char/drm => gpu/drm/mga}/mga_ucode.h (100%)
 rename drivers/{char/drm => gpu/drm/mga}/mga_warp.c (100%)
 create mode 100644 drivers/gpu/drm/r128/Makefile
 rename drivers/{char/drm => gpu/drm/r128}/r128_cce.c (100%)
 rename drivers/{char/drm => gpu/drm/r128}/r128_drv.c (100%)
 rename drivers/{char/drm => gpu/drm/r128}/r128_drv.h (100%)
 rename drivers/{char/drm => gpu/drm/r128}/r128_ioc32.c (100%)
 rename drivers/{char/drm => gpu/drm/r128}/r128_irq.c (100%)
 rename drivers/{char/drm => gpu/drm/r128}/r128_state.c (100%)
 create mode 100644 drivers/gpu/drm/radeon/Makefile
 rename drivers/{char/drm => gpu/drm/radeon}/r300_cmdbuf.c (100%)
 rename drivers/{char/drm => gpu/drm/radeon}/r300_reg.h (100%)
 rename drivers/{char/drm => gpu/drm/radeon}/radeon_cp.c (100%)
 rename drivers/{char/drm => gpu/drm/radeon}/radeon_drv.c (100%)
 rename drivers/{char/drm => gpu/drm/radeon}/radeon_drv.h (100%)
 rename drivers/{char/drm => gpu/drm/radeon}/radeon_ioc32.c (100%)
 rename drivers/{char/drm => gpu/drm/radeon}/radeon_irq.c (100%)
 rename drivers/{char/drm => gpu/drm/radeon}/radeon_mem.c (100%)
 rename drivers/{char/drm => gpu/drm/radeon}/radeon_microcode.h (100%)
 rename drivers/{char/drm => gpu/drm/radeon}/radeon_state.c (100%)
 create mode 100644 drivers/gpu/drm/savage/Makefile
 rename drivers/{char/drm => gpu/drm/savage}/savage_bci.c (100%)
 rename drivers/{char/drm => gpu/drm/savage}/savage_drv.c (100%)
 rename drivers/{char/drm => gpu/drm/savage}/savage_drv.h (100%)
 rename drivers/{char/drm => gpu/drm/savage}/savage_state.c (100%)
 create mode 100644 drivers/gpu/drm/sis/Makefile
 rename drivers/{char/drm => gpu/drm/sis}/sis_drv.c (100%)
 rename drivers/{char/drm => gpu/drm/sis}/sis_drv.h (100%)
 rename drivers/{char/drm => gpu/drm/sis}/sis_mm.c (100%)
 create mode 100644 drivers/gpu/drm/tdfx/Makefile
 rename drivers/{char/drm => gpu/drm/tdfx}/tdfx_drv.c (100%)
 rename drivers/{char/drm => gpu/drm/tdfx}/tdfx_drv.h (100%)
 create mode 100644 drivers/gpu/drm/via/Makefile
 rename drivers/{char/drm => gpu/drm/via}/via_3d_reg.h (100%)
 rename drivers/{char/drm => gpu/drm/via}/via_dma.c (100%)
 rename drivers/{char/drm => gpu/drm/via}/via_dmablit.c (100%)
 rename drivers/{char/drm => gpu/drm/via}/via_dmablit.h (100%)
 rename drivers/{char/drm => gpu/drm/via}/via_drv.c (100%)
 rename drivers/{char/drm => gpu/drm/via}/via_drv.h (100%)
 rename drivers/{char/drm => gpu/drm/via}/via_irq.c (100%)
 rename drivers/{char/drm => gpu/drm/via}/via_map.c (100%)
 rename drivers/{char/drm => gpu/drm/via}/via_mm.c (100%)
 rename drivers/{char/drm => gpu/drm/via}/via_verifier.c (100%)
 rename drivers/{char/drm => gpu/drm/via}/via_verifier.h (100%)
 rename drivers/{char/drm => gpu/drm/via}/via_video.c (100%)
 create mode 100644 include/drm/Kbuild
 rename {drivers/char => include}/drm/drm.h (100%)
 rename {drivers/char => include}/drm/drmP.h (100%)
 rename {drivers/char => include}/drm/drm_core.h (100%)
 rename {drivers/char => include}/drm/drm_hashtab.h (100%)
 rename {drivers/char => include}/drm/drm_memory.h (100%)
 rename {drivers/char => include}/drm/drm_memory_debug.h (100%)
 rename {drivers/char => include}/drm/drm_os_linux.h (100%)
 rename {drivers/char => include}/drm/drm_pciids.h (100%)
 rename {drivers/char => include}/drm/drm_sarea.h (100%)
 rename {drivers/char => include}/drm/drm_sman.h (100%)
 rename {drivers/char => include}/drm/i810_drm.h (100%)
 rename {drivers/char => include}/drm/i830_drm.h (100%)
 rename {drivers/char => include}/drm/i915_drm.h (100%)
 rename {drivers/char => include}/drm/mga_drm.h (100%)
 rename {drivers/char => include}/drm/r128_drm.h (100%)
 rename {drivers/char => include}/drm/radeon_drm.h (100%)
 rename {drivers/char => include}/drm/savage_drm.h (100%)
 rename {drivers/char => include}/drm/sis_drm.h (100%)
 rename {drivers/char => include}/drm/via_drm.h (100%)

diff --git a/drivers/Makefile b/drivers/Makefile
index f65deda72d61..fda44679dffc 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -10,6 +10,7 @@ obj-$(CONFIG_PCI)		+= pci/
 obj-$(CONFIG_PARISC)		+= parisc/
 obj-$(CONFIG_RAPIDIO)		+= rapidio/
 obj-y				+= video/
+obj-y				+= gpu/
 obj-$(CONFIG_ACPI)		+= acpi/
 # PnP must come after ACPI since it will eventually need to check if acpi
 # was used and do nothing if so
diff --git a/drivers/char/Makefile b/drivers/char/Makefile
index 4c1c584e9eb6..81630a68475c 100644
--- a/drivers/char/Makefile
+++ b/drivers/char/Makefile
@@ -101,7 +101,6 @@ obj-$(CONFIG_TELCLOCK)		+= tlclk.o
 
 obj-$(CONFIG_MWAVE)		+= mwave/
 obj-$(CONFIG_AGP)		+= agp/
-obj-$(CONFIG_DRM)		+= drm/
 obj-$(CONFIG_PCMCIA)		+= pcmcia/
 obj-$(CONFIG_IPMI_HANDLER)	+= ipmi/
 
diff --git a/drivers/char/drm/Makefile b/drivers/char/drm/Makefile
deleted file mode 100644
index 1283ded88ead..000000000000
--- a/drivers/char/drm/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-#
-# Makefile for the drm device driver.  This driver provides support for the
-# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
-
-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
-
-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
-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
-via-objs    := via_irq.o via_drv.o via_map.o via_mm.o via_dma.o via_verifier.o via_video.o via_dmablit.o
-
-ifeq ($(CONFIG_COMPAT),y)
-drm-objs    += drm_ioc32.o
-radeon-objs += radeon_ioc32.o
-mga-objs    += mga_ioc32.o
-r128-objs   += r128_ioc32.o
-i915-objs   += i915_ioc32.o
-endif
-
-obj-$(CONFIG_DRM)	+= drm.o
-obj-$(CONFIG_DRM_TDFX)	+= tdfx.o
-obj-$(CONFIG_DRM_R128)	+= r128.o
-obj-$(CONFIG_DRM_RADEON)+= radeon.o
-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_SIS)   += sis.o
-obj-$(CONFIG_DRM_SAVAGE)+= savage.o
-obj-$(CONFIG_DRM_VIA)	+=via.o
diff --git a/drivers/gpu/Makefile b/drivers/gpu/Makefile
new file mode 100644
index 000000000000..de566cf0414c
--- /dev/null
+++ b/drivers/gpu/Makefile
@@ -0,0 +1 @@
+obj-y			+= drm/
diff --git a/drivers/char/drm/Kconfig b/drivers/gpu/drm/Kconfig
similarity index 100%
rename from drivers/char/drm/Kconfig
rename to drivers/gpu/drm/Kconfig
diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile
new file mode 100644
index 000000000000..e9f9a97ae00a
--- /dev/null
+++ b/drivers/gpu/drm/Makefile
@@ -0,0 +1,26 @@
+#
+# Makefile for the drm device driver.  This driver provides support for the
+# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
+
+ccflags-y := -Iinclude/drm
+
+drm-y       :=	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-$(CONFIG_COMPAT) += drm_ioc32.o
+
+obj-$(CONFIG_DRM)	+= drm.o
+obj-$(CONFIG_DRM_TDFX)	+= tdfx/
+obj-$(CONFIG_DRM_R128)	+= r128/
+obj-$(CONFIG_DRM_RADEON)+= radeon/
+obj-$(CONFIG_DRM_MGA)	+= mga/
+obj-$(CONFIG_DRM_I810)	+= i810/
+obj-$(CONFIG_DRM_I830)	+= i830/
+obj-$(CONFIG_DRM_I915)  += i915/
+obj-$(CONFIG_DRM_SIS)   += sis/
+obj-$(CONFIG_DRM_SAVAGE)+= savage/
+obj-$(CONFIG_DRM_VIA)	+=via/
+
diff --git a/drivers/char/drm/README.drm b/drivers/gpu/drm/README.drm
similarity index 100%
rename from drivers/char/drm/README.drm
rename to drivers/gpu/drm/README.drm
diff --git a/drivers/char/drm/ati_pcigart.c b/drivers/gpu/drm/ati_pcigart.c
similarity index 100%
rename from drivers/char/drm/ati_pcigart.c
rename to drivers/gpu/drm/ati_pcigart.c
diff --git a/drivers/char/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c
similarity index 100%
rename from drivers/char/drm/drm_agpsupport.c
rename to drivers/gpu/drm/drm_agpsupport.c
diff --git a/drivers/char/drm/drm_auth.c b/drivers/gpu/drm/drm_auth.c
similarity index 100%
rename from drivers/char/drm/drm_auth.c
rename to drivers/gpu/drm/drm_auth.c
diff --git a/drivers/char/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c
similarity index 100%
rename from drivers/char/drm/drm_bufs.c
rename to drivers/gpu/drm/drm_bufs.c
diff --git a/drivers/char/drm/drm_context.c b/drivers/gpu/drm/drm_context.c
similarity index 100%
rename from drivers/char/drm/drm_context.c
rename to drivers/gpu/drm/drm_context.c
diff --git a/drivers/char/drm/drm_dma.c b/drivers/gpu/drm/drm_dma.c
similarity index 100%
rename from drivers/char/drm/drm_dma.c
rename to drivers/gpu/drm/drm_dma.c
diff --git a/drivers/char/drm/drm_drawable.c b/drivers/gpu/drm/drm_drawable.c
similarity index 100%
rename from drivers/char/drm/drm_drawable.c
rename to drivers/gpu/drm/drm_drawable.c
diff --git a/drivers/char/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
similarity index 100%
rename from drivers/char/drm/drm_drv.c
rename to drivers/gpu/drm/drm_drv.c
diff --git a/drivers/char/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c
similarity index 100%
rename from drivers/char/drm/drm_fops.c
rename to drivers/gpu/drm/drm_fops.c
diff --git a/drivers/char/drm/drm_hashtab.c b/drivers/gpu/drm/drm_hashtab.c
similarity index 100%
rename from drivers/char/drm/drm_hashtab.c
rename to drivers/gpu/drm/drm_hashtab.c
diff --git a/drivers/char/drm/drm_ioc32.c b/drivers/gpu/drm/drm_ioc32.c
similarity index 100%
rename from drivers/char/drm/drm_ioc32.c
rename to drivers/gpu/drm/drm_ioc32.c
diff --git a/drivers/char/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
similarity index 100%
rename from drivers/char/drm/drm_ioctl.c
rename to drivers/gpu/drm/drm_ioctl.c
diff --git a/drivers/char/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
similarity index 100%
rename from drivers/char/drm/drm_irq.c
rename to drivers/gpu/drm/drm_irq.c
diff --git a/drivers/char/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c
similarity index 100%
rename from drivers/char/drm/drm_lock.c
rename to drivers/gpu/drm/drm_lock.c
diff --git a/drivers/char/drm/drm_memory.c b/drivers/gpu/drm/drm_memory.c
similarity index 100%
rename from drivers/char/drm/drm_memory.c
rename to drivers/gpu/drm/drm_memory.c
diff --git a/drivers/char/drm/drm_mm.c b/drivers/gpu/drm/drm_mm.c
similarity index 100%
rename from drivers/char/drm/drm_mm.c
rename to drivers/gpu/drm/drm_mm.c
diff --git a/drivers/char/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c
similarity index 100%
rename from drivers/char/drm/drm_pci.c
rename to drivers/gpu/drm/drm_pci.c
diff --git a/drivers/char/drm/drm_proc.c b/drivers/gpu/drm/drm_proc.c
similarity index 100%
rename from drivers/char/drm/drm_proc.c
rename to drivers/gpu/drm/drm_proc.c
diff --git a/drivers/char/drm/drm_scatter.c b/drivers/gpu/drm/drm_scatter.c
similarity index 100%
rename from drivers/char/drm/drm_scatter.c
rename to drivers/gpu/drm/drm_scatter.c
diff --git a/drivers/char/drm/drm_sman.c b/drivers/gpu/drm/drm_sman.c
similarity index 100%
rename from drivers/char/drm/drm_sman.c
rename to drivers/gpu/drm/drm_sman.c
diff --git a/drivers/char/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
similarity index 100%
rename from drivers/char/drm/drm_stub.c
rename to drivers/gpu/drm/drm_stub.c
diff --git a/drivers/char/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
similarity index 100%
rename from drivers/char/drm/drm_sysfs.c
rename to drivers/gpu/drm/drm_sysfs.c
diff --git a/drivers/char/drm/drm_vm.c b/drivers/gpu/drm/drm_vm.c
similarity index 100%
rename from drivers/char/drm/drm_vm.c
rename to drivers/gpu/drm/drm_vm.c
diff --git a/drivers/gpu/drm/i810/Makefile b/drivers/gpu/drm/i810/Makefile
new file mode 100644
index 000000000000..43844ecafcc5
--- /dev/null
+++ b/drivers/gpu/drm/i810/Makefile
@@ -0,0 +1,8 @@
+#
+# Makefile for the drm device driver.  This driver provides support for the
+# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
+
+ccflags-y := -Iinclude/drm
+i810-y := i810_drv.o i810_dma.o
+
+obj-$(CONFIG_DRM_I810)	+= i810.o
diff --git a/drivers/char/drm/i810_dma.c b/drivers/gpu/drm/i810/i810_dma.c
similarity index 100%
rename from drivers/char/drm/i810_dma.c
rename to drivers/gpu/drm/i810/i810_dma.c
diff --git a/drivers/char/drm/i810_drv.c b/drivers/gpu/drm/i810/i810_drv.c
similarity index 100%
rename from drivers/char/drm/i810_drv.c
rename to drivers/gpu/drm/i810/i810_drv.c
diff --git a/drivers/char/drm/i810_drv.h b/drivers/gpu/drm/i810/i810_drv.h
similarity index 100%
rename from drivers/char/drm/i810_drv.h
rename to drivers/gpu/drm/i810/i810_drv.h
diff --git a/drivers/gpu/drm/i830/Makefile b/drivers/gpu/drm/i830/Makefile
new file mode 100644
index 000000000000..c642ee0b238c
--- /dev/null
+++ b/drivers/gpu/drm/i830/Makefile
@@ -0,0 +1,8 @@
+#
+# Makefile for the drm device driver.  This driver provides support for the
+# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
+
+ccflags-y := -Iinclude/drm
+i830-y := i830_drv.o i830_dma.o i830_irq.o
+
+obj-$(CONFIG_DRM_I830) += i830.o
diff --git a/drivers/char/drm/i830_dma.c b/drivers/gpu/drm/i830/i830_dma.c
similarity index 100%
rename from drivers/char/drm/i830_dma.c
rename to drivers/gpu/drm/i830/i830_dma.c
diff --git a/drivers/char/drm/i830_drv.c b/drivers/gpu/drm/i830/i830_drv.c
similarity index 100%
rename from drivers/char/drm/i830_drv.c
rename to drivers/gpu/drm/i830/i830_drv.c
diff --git a/drivers/char/drm/i830_drv.h b/drivers/gpu/drm/i830/i830_drv.h
similarity index 100%
rename from drivers/char/drm/i830_drv.h
rename to drivers/gpu/drm/i830/i830_drv.h
diff --git a/drivers/char/drm/i830_irq.c b/drivers/gpu/drm/i830/i830_irq.c
similarity index 100%
rename from drivers/char/drm/i830_irq.c
rename to drivers/gpu/drm/i830/i830_irq.c
diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
new file mode 100644
index 000000000000..a9e60464df74
--- /dev/null
+++ b/drivers/gpu/drm/i915/Makefile
@@ -0,0 +1,10 @@
+#
+# Makefile for the drm device driver.  This driver provides support for the
+# 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-$(CONFIG_COMPAT)   += i915_ioc32.o
+
+obj-$(CONFIG_DRM_I915)  += i915.o
diff --git a/drivers/char/drm/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
similarity index 100%
rename from drivers/char/drm/i915_dma.c
rename to drivers/gpu/drm/i915/i915_dma.c
diff --git a/drivers/char/drm/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
similarity index 100%
rename from drivers/char/drm/i915_drv.c
rename to drivers/gpu/drm/i915/i915_drv.c
diff --git a/drivers/char/drm/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
similarity index 100%
rename from drivers/char/drm/i915_drv.h
rename to drivers/gpu/drm/i915/i915_drv.h
diff --git a/drivers/char/drm/i915_ioc32.c b/drivers/gpu/drm/i915/i915_ioc32.c
similarity index 100%
rename from drivers/char/drm/i915_ioc32.c
rename to drivers/gpu/drm/i915/i915_ioc32.c
diff --git a/drivers/char/drm/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
similarity index 100%
rename from drivers/char/drm/i915_irq.c
rename to drivers/gpu/drm/i915/i915_irq.c
diff --git a/drivers/char/drm/i915_mem.c b/drivers/gpu/drm/i915/i915_mem.c
similarity index 100%
rename from drivers/char/drm/i915_mem.c
rename to drivers/gpu/drm/i915/i915_mem.c
diff --git a/drivers/gpu/drm/mga/Makefile b/drivers/gpu/drm/mga/Makefile
new file mode 100644
index 000000000000..60684785c203
--- /dev/null
+++ b/drivers/gpu/drm/mga/Makefile
@@ -0,0 +1,11 @@
+#
+# Makefile for the drm device driver.  This driver provides support for the
+# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
+
+ccflags-y := -Iinclude/drm
+mga-y := mga_drv.o mga_dma.o mga_state.o mga_warp.o mga_irq.o
+
+mga-$(CONFIG_COMPAT) += mga_ioc32.o
+
+obj-$(CONFIG_DRM_MGA)	+= mga.o
+
diff --git a/drivers/char/drm/mga_dma.c b/drivers/gpu/drm/mga/mga_dma.c
similarity index 100%
rename from drivers/char/drm/mga_dma.c
rename to drivers/gpu/drm/mga/mga_dma.c
diff --git a/drivers/char/drm/mga_drv.c b/drivers/gpu/drm/mga/mga_drv.c
similarity index 100%
rename from drivers/char/drm/mga_drv.c
rename to drivers/gpu/drm/mga/mga_drv.c
diff --git a/drivers/char/drm/mga_drv.h b/drivers/gpu/drm/mga/mga_drv.h
similarity index 100%
rename from drivers/char/drm/mga_drv.h
rename to drivers/gpu/drm/mga/mga_drv.h
diff --git a/drivers/char/drm/mga_ioc32.c b/drivers/gpu/drm/mga/mga_ioc32.c
similarity index 100%
rename from drivers/char/drm/mga_ioc32.c
rename to drivers/gpu/drm/mga/mga_ioc32.c
diff --git a/drivers/char/drm/mga_irq.c b/drivers/gpu/drm/mga/mga_irq.c
similarity index 100%
rename from drivers/char/drm/mga_irq.c
rename to drivers/gpu/drm/mga/mga_irq.c
diff --git a/drivers/char/drm/mga_state.c b/drivers/gpu/drm/mga/mga_state.c
similarity index 100%
rename from drivers/char/drm/mga_state.c
rename to drivers/gpu/drm/mga/mga_state.c
diff --git a/drivers/char/drm/mga_ucode.h b/drivers/gpu/drm/mga/mga_ucode.h
similarity index 100%
rename from drivers/char/drm/mga_ucode.h
rename to drivers/gpu/drm/mga/mga_ucode.h
diff --git a/drivers/char/drm/mga_warp.c b/drivers/gpu/drm/mga/mga_warp.c
similarity index 100%
rename from drivers/char/drm/mga_warp.c
rename to drivers/gpu/drm/mga/mga_warp.c
diff --git a/drivers/gpu/drm/r128/Makefile b/drivers/gpu/drm/r128/Makefile
new file mode 100644
index 000000000000..1cc72ae3a880
--- /dev/null
+++ b/drivers/gpu/drm/r128/Makefile
@@ -0,0 +1,10 @@
+#
+# Makefile for the drm device driver.  This driver provides support for the
+# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
+
+ccflags-y := -Iinclude/drm
+r128-y   := r128_drv.o r128_cce.o r128_state.o r128_irq.o
+
+r128-$(CONFIG_COMPAT)   += r128_ioc32.o
+
+obj-$(CONFIG_DRM_R128)	+= r128.o
diff --git a/drivers/char/drm/r128_cce.c b/drivers/gpu/drm/r128/r128_cce.c
similarity index 100%
rename from drivers/char/drm/r128_cce.c
rename to drivers/gpu/drm/r128/r128_cce.c
diff --git a/drivers/char/drm/r128_drv.c b/drivers/gpu/drm/r128/r128_drv.c
similarity index 100%
rename from drivers/char/drm/r128_drv.c
rename to drivers/gpu/drm/r128/r128_drv.c
diff --git a/drivers/char/drm/r128_drv.h b/drivers/gpu/drm/r128/r128_drv.h
similarity index 100%
rename from drivers/char/drm/r128_drv.h
rename to drivers/gpu/drm/r128/r128_drv.h
diff --git a/drivers/char/drm/r128_ioc32.c b/drivers/gpu/drm/r128/r128_ioc32.c
similarity index 100%
rename from drivers/char/drm/r128_ioc32.c
rename to drivers/gpu/drm/r128/r128_ioc32.c
diff --git a/drivers/char/drm/r128_irq.c b/drivers/gpu/drm/r128/r128_irq.c
similarity index 100%
rename from drivers/char/drm/r128_irq.c
rename to drivers/gpu/drm/r128/r128_irq.c
diff --git a/drivers/char/drm/r128_state.c b/drivers/gpu/drm/r128/r128_state.c
similarity index 100%
rename from drivers/char/drm/r128_state.c
rename to drivers/gpu/drm/r128/r128_state.c
diff --git a/drivers/gpu/drm/radeon/Makefile b/drivers/gpu/drm/radeon/Makefile
new file mode 100644
index 000000000000..feb521ebc393
--- /dev/null
+++ b/drivers/gpu/drm/radeon/Makefile
@@ -0,0 +1,10 @@
+#
+# Makefile for the drm device driver.  This driver provides support for the
+# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
+
+ccflags-y := -Iinclude/drm
+radeon-y := radeon_drv.o radeon_cp.o radeon_state.o radeon_mem.o radeon_irq.o r300_cmdbuf.o
+
+radeon-$(CONFIG_COMPAT) += radeon_ioc32.o
+
+obj-$(CONFIG_DRM_RADEON)+= radeon.o
diff --git a/drivers/char/drm/r300_cmdbuf.c b/drivers/gpu/drm/radeon/r300_cmdbuf.c
similarity index 100%
rename from drivers/char/drm/r300_cmdbuf.c
rename to drivers/gpu/drm/radeon/r300_cmdbuf.c
diff --git a/drivers/char/drm/r300_reg.h b/drivers/gpu/drm/radeon/r300_reg.h
similarity index 100%
rename from drivers/char/drm/r300_reg.h
rename to drivers/gpu/drm/radeon/r300_reg.h
diff --git a/drivers/char/drm/radeon_cp.c b/drivers/gpu/drm/radeon/radeon_cp.c
similarity index 100%
rename from drivers/char/drm/radeon_cp.c
rename to drivers/gpu/drm/radeon/radeon_cp.c
diff --git a/drivers/char/drm/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
similarity index 100%
rename from drivers/char/drm/radeon_drv.c
rename to drivers/gpu/drm/radeon/radeon_drv.c
diff --git a/drivers/char/drm/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h
similarity index 100%
rename from drivers/char/drm/radeon_drv.h
rename to drivers/gpu/drm/radeon/radeon_drv.h
diff --git a/drivers/char/drm/radeon_ioc32.c b/drivers/gpu/drm/radeon/radeon_ioc32.c
similarity index 100%
rename from drivers/char/drm/radeon_ioc32.c
rename to drivers/gpu/drm/radeon/radeon_ioc32.c
diff --git a/drivers/char/drm/radeon_irq.c b/drivers/gpu/drm/radeon/radeon_irq.c
similarity index 100%
rename from drivers/char/drm/radeon_irq.c
rename to drivers/gpu/drm/radeon/radeon_irq.c
diff --git a/drivers/char/drm/radeon_mem.c b/drivers/gpu/drm/radeon/radeon_mem.c
similarity index 100%
rename from drivers/char/drm/radeon_mem.c
rename to drivers/gpu/drm/radeon/radeon_mem.c
diff --git a/drivers/char/drm/radeon_microcode.h b/drivers/gpu/drm/radeon/radeon_microcode.h
similarity index 100%
rename from drivers/char/drm/radeon_microcode.h
rename to drivers/gpu/drm/radeon/radeon_microcode.h
diff --git a/drivers/char/drm/radeon_state.c b/drivers/gpu/drm/radeon/radeon_state.c
similarity index 100%
rename from drivers/char/drm/radeon_state.c
rename to drivers/gpu/drm/radeon/radeon_state.c
diff --git a/drivers/gpu/drm/savage/Makefile b/drivers/gpu/drm/savage/Makefile
new file mode 100644
index 000000000000..d8f84ac7bb26
--- /dev/null
+++ b/drivers/gpu/drm/savage/Makefile
@@ -0,0 +1,9 @@
+#
+# Makefile for the drm device driver.  This driver provides support for the
+# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
+
+ccflags-y = -Iinclude/drm
+savage-y := savage_drv.o savage_bci.o savage_state.o
+
+obj-$(CONFIG_DRM_SAVAGE)+= savage.o
+
diff --git a/drivers/char/drm/savage_bci.c b/drivers/gpu/drm/savage/savage_bci.c
similarity index 100%
rename from drivers/char/drm/savage_bci.c
rename to drivers/gpu/drm/savage/savage_bci.c
diff --git a/drivers/char/drm/savage_drv.c b/drivers/gpu/drm/savage/savage_drv.c
similarity index 100%
rename from drivers/char/drm/savage_drv.c
rename to drivers/gpu/drm/savage/savage_drv.c
diff --git a/drivers/char/drm/savage_drv.h b/drivers/gpu/drm/savage/savage_drv.h
similarity index 100%
rename from drivers/char/drm/savage_drv.h
rename to drivers/gpu/drm/savage/savage_drv.h
diff --git a/drivers/char/drm/savage_state.c b/drivers/gpu/drm/savage/savage_state.c
similarity index 100%
rename from drivers/char/drm/savage_state.c
rename to drivers/gpu/drm/savage/savage_state.c
diff --git a/drivers/gpu/drm/sis/Makefile b/drivers/gpu/drm/sis/Makefile
new file mode 100644
index 000000000000..441c061c3ad0
--- /dev/null
+++ b/drivers/gpu/drm/sis/Makefile
@@ -0,0 +1,10 @@
+#
+# Makefile for the drm device driver.  This driver provides support for the
+# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
+
+ccflags-y = -Iinclude/drm
+sis-y := sis_drv.o sis_mm.o
+
+obj-$(CONFIG_DRM_SIS)   += sis.o
+
+
diff --git a/drivers/char/drm/sis_drv.c b/drivers/gpu/drm/sis/sis_drv.c
similarity index 100%
rename from drivers/char/drm/sis_drv.c
rename to drivers/gpu/drm/sis/sis_drv.c
diff --git a/drivers/char/drm/sis_drv.h b/drivers/gpu/drm/sis/sis_drv.h
similarity index 100%
rename from drivers/char/drm/sis_drv.h
rename to drivers/gpu/drm/sis/sis_drv.h
diff --git a/drivers/char/drm/sis_mm.c b/drivers/gpu/drm/sis/sis_mm.c
similarity index 100%
rename from drivers/char/drm/sis_mm.c
rename to drivers/gpu/drm/sis/sis_mm.c
diff --git a/drivers/gpu/drm/tdfx/Makefile b/drivers/gpu/drm/tdfx/Makefile
new file mode 100644
index 000000000000..0379f294b32a
--- /dev/null
+++ b/drivers/gpu/drm/tdfx/Makefile
@@ -0,0 +1,8 @@
+#
+# Makefile for the drm device driver.  This driver provides support for the
+# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
+
+ccflags-y := -Iinclude/drm
+tdfx-y := tdfx_drv.o
+
+obj-$(CONFIG_DRM_TDFX)	+= tdfx.o
diff --git a/drivers/char/drm/tdfx_drv.c b/drivers/gpu/drm/tdfx/tdfx_drv.c
similarity index 100%
rename from drivers/char/drm/tdfx_drv.c
rename to drivers/gpu/drm/tdfx/tdfx_drv.c
diff --git a/drivers/char/drm/tdfx_drv.h b/drivers/gpu/drm/tdfx/tdfx_drv.h
similarity index 100%
rename from drivers/char/drm/tdfx_drv.h
rename to drivers/gpu/drm/tdfx/tdfx_drv.h
diff --git a/drivers/gpu/drm/via/Makefile b/drivers/gpu/drm/via/Makefile
new file mode 100644
index 000000000000..d59e258e2c13
--- /dev/null
+++ b/drivers/gpu/drm/via/Makefile
@@ -0,0 +1,8 @@
+#
+# Makefile for the drm device driver.  This driver provides support for the
+# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
+
+ccflags-y := -Iinclude/drm
+via-y    := via_irq.o via_drv.o via_map.o via_mm.o via_dma.o via_verifier.o via_video.o via_dmablit.o
+
+obj-$(CONFIG_DRM_VIA)	+=via.o
diff --git a/drivers/char/drm/via_3d_reg.h b/drivers/gpu/drm/via/via_3d_reg.h
similarity index 100%
rename from drivers/char/drm/via_3d_reg.h
rename to drivers/gpu/drm/via/via_3d_reg.h
diff --git a/drivers/char/drm/via_dma.c b/drivers/gpu/drm/via/via_dma.c
similarity index 100%
rename from drivers/char/drm/via_dma.c
rename to drivers/gpu/drm/via/via_dma.c
diff --git a/drivers/char/drm/via_dmablit.c b/drivers/gpu/drm/via/via_dmablit.c
similarity index 100%
rename from drivers/char/drm/via_dmablit.c
rename to drivers/gpu/drm/via/via_dmablit.c
diff --git a/drivers/char/drm/via_dmablit.h b/drivers/gpu/drm/via/via_dmablit.h
similarity index 100%
rename from drivers/char/drm/via_dmablit.h
rename to drivers/gpu/drm/via/via_dmablit.h
diff --git a/drivers/char/drm/via_drv.c b/drivers/gpu/drm/via/via_drv.c
similarity index 100%
rename from drivers/char/drm/via_drv.c
rename to drivers/gpu/drm/via/via_drv.c
diff --git a/drivers/char/drm/via_drv.h b/drivers/gpu/drm/via/via_drv.h
similarity index 100%
rename from drivers/char/drm/via_drv.h
rename to drivers/gpu/drm/via/via_drv.h
diff --git a/drivers/char/drm/via_irq.c b/drivers/gpu/drm/via/via_irq.c
similarity index 100%
rename from drivers/char/drm/via_irq.c
rename to drivers/gpu/drm/via/via_irq.c
diff --git a/drivers/char/drm/via_map.c b/drivers/gpu/drm/via/via_map.c
similarity index 100%
rename from drivers/char/drm/via_map.c
rename to drivers/gpu/drm/via/via_map.c
diff --git a/drivers/char/drm/via_mm.c b/drivers/gpu/drm/via/via_mm.c
similarity index 100%
rename from drivers/char/drm/via_mm.c
rename to drivers/gpu/drm/via/via_mm.c
diff --git a/drivers/char/drm/via_verifier.c b/drivers/gpu/drm/via/via_verifier.c
similarity index 100%
rename from drivers/char/drm/via_verifier.c
rename to drivers/gpu/drm/via/via_verifier.c
diff --git a/drivers/char/drm/via_verifier.h b/drivers/gpu/drm/via/via_verifier.h
similarity index 100%
rename from drivers/char/drm/via_verifier.h
rename to drivers/gpu/drm/via/via_verifier.h
diff --git a/drivers/char/drm/via_video.c b/drivers/gpu/drm/via/via_video.c
similarity index 100%
rename from drivers/char/drm/via_video.c
rename to drivers/gpu/drm/via/via_video.c
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index e0c5f96b273d..9b887ef64ff1 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -7,7 +7,7 @@ menu "Graphics support"
 
 source "drivers/char/agp/Kconfig"
 
-source "drivers/char/drm/Kconfig"
+source "drivers/gpu/drm/Kconfig"
 
 config VGASTATE
        tristate
diff --git a/include/Kbuild b/include/Kbuild
index b52288774345..bdca155028ec 100644
--- a/include/Kbuild
+++ b/include/Kbuild
@@ -4,5 +4,6 @@ header-y += sound/
 header-y += mtd/
 header-y += rdma/
 header-y += video/
+header-y += drm/
 
 header-y += asm-$(ARCH)/
diff --git a/include/drm/Kbuild b/include/drm/Kbuild
new file mode 100644
index 000000000000..82b6983b7fbb
--- /dev/null
+++ b/include/drm/Kbuild
@@ -0,0 +1,10 @@
+unifdef-y += drm.h drm_sarea.h
+unifdef-y += i810_drm.h
+unifdef-y += i830_drm.h
+unifdef-y += i915_drm.h
+unifdef-y += mga_drm.h
+unifdef-y += r128_drm.h
+unifdef-y += radeon_drm.h
+unifdef-y += sis_drm.h
+unifdef-y += savage_drm.h
+unifdef-y += via_drm.h
diff --git a/drivers/char/drm/drm.h b/include/drm/drm.h
similarity index 100%
rename from drivers/char/drm/drm.h
rename to include/drm/drm.h
diff --git a/drivers/char/drm/drmP.h b/include/drm/drmP.h
similarity index 100%
rename from drivers/char/drm/drmP.h
rename to include/drm/drmP.h
diff --git a/drivers/char/drm/drm_core.h b/include/drm/drm_core.h
similarity index 100%
rename from drivers/char/drm/drm_core.h
rename to include/drm/drm_core.h
diff --git a/drivers/char/drm/drm_hashtab.h b/include/drm/drm_hashtab.h
similarity index 100%
rename from drivers/char/drm/drm_hashtab.h
rename to include/drm/drm_hashtab.h
diff --git a/drivers/char/drm/drm_memory.h b/include/drm/drm_memory.h
similarity index 100%
rename from drivers/char/drm/drm_memory.h
rename to include/drm/drm_memory.h
diff --git a/drivers/char/drm/drm_memory_debug.h b/include/drm/drm_memory_debug.h
similarity index 100%
rename from drivers/char/drm/drm_memory_debug.h
rename to include/drm/drm_memory_debug.h
diff --git a/drivers/char/drm/drm_os_linux.h b/include/drm/drm_os_linux.h
similarity index 100%
rename from drivers/char/drm/drm_os_linux.h
rename to include/drm/drm_os_linux.h
diff --git a/drivers/char/drm/drm_pciids.h b/include/drm/drm_pciids.h
similarity index 100%
rename from drivers/char/drm/drm_pciids.h
rename to include/drm/drm_pciids.h
diff --git a/drivers/char/drm/drm_sarea.h b/include/drm/drm_sarea.h
similarity index 100%
rename from drivers/char/drm/drm_sarea.h
rename to include/drm/drm_sarea.h
diff --git a/drivers/char/drm/drm_sman.h b/include/drm/drm_sman.h
similarity index 100%
rename from drivers/char/drm/drm_sman.h
rename to include/drm/drm_sman.h
diff --git a/drivers/char/drm/i810_drm.h b/include/drm/i810_drm.h
similarity index 100%
rename from drivers/char/drm/i810_drm.h
rename to include/drm/i810_drm.h
diff --git a/drivers/char/drm/i830_drm.h b/include/drm/i830_drm.h
similarity index 100%
rename from drivers/char/drm/i830_drm.h
rename to include/drm/i830_drm.h
diff --git a/drivers/char/drm/i915_drm.h b/include/drm/i915_drm.h
similarity index 100%
rename from drivers/char/drm/i915_drm.h
rename to include/drm/i915_drm.h
diff --git a/drivers/char/drm/mga_drm.h b/include/drm/mga_drm.h
similarity index 100%
rename from drivers/char/drm/mga_drm.h
rename to include/drm/mga_drm.h
diff --git a/drivers/char/drm/r128_drm.h b/include/drm/r128_drm.h
similarity index 100%
rename from drivers/char/drm/r128_drm.h
rename to include/drm/r128_drm.h
diff --git a/drivers/char/drm/radeon_drm.h b/include/drm/radeon_drm.h
similarity index 100%
rename from drivers/char/drm/radeon_drm.h
rename to include/drm/radeon_drm.h
diff --git a/drivers/char/drm/savage_drm.h b/include/drm/savage_drm.h
similarity index 100%
rename from drivers/char/drm/savage_drm.h
rename to include/drm/savage_drm.h
diff --git a/drivers/char/drm/sis_drm.h b/include/drm/sis_drm.h
similarity index 100%
rename from drivers/char/drm/sis_drm.h
rename to include/drm/sis_drm.h
diff --git a/drivers/char/drm/via_drm.h b/include/drm/via_drm.h
similarity index 100%
rename from drivers/char/drm/via_drm.h
rename to include/drm/via_drm.h
-- 
GitLab