drm/nouveau: remove symlinks, move core/ to nvkm/ (no code changes)

The symlinks were annoying some people, and they're not used anywhere
else in the kernel tree.  The include directory structure has been
changed so that symlinks aren't needed anymore.

NVKM has been moved from core/ to nvkm/ to make it more obvious as to
what the directory is for, and as some minor prep for when NVKM gets
split out into its own module (virt) at a later date.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
diff --git a/drivers/gpu/drm/nouveau/Kbuild b/drivers/gpu/drm/nouveau/Kbuild
new file mode 100644
index 0000000..2b76566
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/Kbuild
@@ -0,0 +1,66 @@
+ccflags-y := -Iinclude/drm
+ccflags-y += -I$(src)/include
+ccflags-y += -I$(src)/include/nvkm
+ccflags-y += -I$(src)/nvkm
+ccflags-y += -I$(src)
+
+# NVKM - HW resource manager
+#- code also used by various userspace tools/tests
+include $(src)/nvif/Kbuild
+nouveau-y := $(nvif-y)
+
+# NVIF - NVKM interface library (NVKM user interface also defined here)
+#- code also used by various userspace tools/tests
+include $(src)/nvkm/Kbuild
+nouveau-y += $(nvkm-y)
+
+# DRM - general
+ifdef CONFIG_X86
+nouveau-$(CONFIG_ACPI) += nouveau_acpi.o
+endif
+nouveau-y += nouveau_agp.o
+nouveau-$(CONFIG_DEBUG_FS) += nouveau_debugfs.o
+nouveau-y += nouveau_drm.o
+nouveau-y += nouveau_hwmon.o
+nouveau-$(CONFIG_COMPAT) += nouveau_ioc32.o
+nouveau-y += nouveau_nvif.o
+nouveau-$(CONFIG_NOUVEAU_PLATFORM_DRIVER) += nouveau_platform.o
+nouveau-y += nouveau_sysfs.o
+nouveau-y += nouveau_usif.o # userspace <-> nvif
+nouveau-y += nouveau_vga.o
+
+# DRM - memory management
+nouveau-y += nouveau_bo.o
+nouveau-y += nouveau_gem.o
+nouveau-y += nouveau_prime.o
+nouveau-y += nouveau_sgdma.o
+nouveau-y += nouveau_ttm.o
+
+# DRM - modesetting
+nouveau-$(CONFIG_DRM_NOUVEAU_BACKLIGHT) += nouveau_backlight.o
+nouveau-y += nouveau_connector.o
+nouveau-y += nouveau_display.o
+nouveau-y += nv50_display.o
+nouveau-y += nouveau_dp.o
+nouveau-y += nouveau_fbcon.o
+nouveau-y += nv04_fbcon.o
+nouveau-y += nv50_fbcon.o
+nouveau-y += nvc0_fbcon.o
+
+# DRM - command submission
+nouveau-y += nouveau_abi16.o
+nouveau-y += nouveau_chan.o
+nouveau-y += nouveau_dma.o
+nouveau-y += nouveau_fence.o
+nouveau-y += nv04_fence.o
+nouveau-y += nv10_fence.o
+nouveau-y += nv17_fence.o
+nouveau-y += nv50_fence.o
+nouveau-y += nv84_fence.o
+nouveau-y += nvc0_fence.o
+
+# DRM - prehistoric modesetting (NV04-G7x)
+nouveau-y += nouveau_bios.o
+include $(src)/dispnv04/Kbuild
+
+obj-$(CONFIG_DRM_NOUVEAU) += nouveau.o
diff --git a/drivers/gpu/drm/nouveau/Makefile b/drivers/gpu/drm/nouveau/Makefile
deleted file mode 100644
index 1febf6e..0000000
--- a/drivers/gpu/drm/nouveau/Makefile
+++ /dev/null
@@ -1,400 +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.
-
-ccflags-y := -Iinclude/drm
-ccflags-y += -I$(src)/core/include
-ccflags-y += -I$(src)/core
-ccflags-y += -I$(src)
-
-nouveau-y := core/core/client.o
-nouveau-y += core/core/engctx.o
-nouveau-y += core/core/engine.o
-nouveau-y += core/core/enum.o
-nouveau-y += core/core/event.o
-nouveau-y += core/core/gpuobj.o
-nouveau-y += core/core/handle.o
-nouveau-y += core/core/ioctl.o
-nouveau-y += core/core/mm.o
-nouveau-y += core/core/namedb.o
-nouveau-y += core/core/notify.o
-nouveau-y += core/core/object.o
-nouveau-y += core/core/option.o
-nouveau-y += core/core/parent.o
-nouveau-y += core/core/printk.o
-nouveau-y += core/core/ramht.o
-nouveau-y += core/core/subdev.o
-
-nouveau-y += core/subdev/bar/base.o
-nouveau-y += core/subdev/bar/nv50.o
-nouveau-y += core/subdev/bar/nvc0.o
-nouveau-y += core/subdev/bar/gk20a.o
-nouveau-y += core/subdev/bios/base.o
-nouveau-y += core/subdev/bios/bit.o
-nouveau-y += core/subdev/bios/boost.o
-nouveau-y += core/subdev/bios/conn.o
-nouveau-y += core/subdev/bios/cstep.o
-nouveau-y += core/subdev/bios/dcb.o
-nouveau-y += core/subdev/bios/disp.o
-nouveau-y += core/subdev/bios/dp.o
-nouveau-y += core/subdev/bios/extdev.o
-nouveau-y += core/subdev/bios/fan.o
-nouveau-y += core/subdev/bios/gpio.o
-nouveau-y += core/subdev/bios/i2c.o
-nouveau-y += core/subdev/bios/image.o
-nouveau-y += core/subdev/bios/init.o
-nouveau-y += core/subdev/bios/mxm.o
-nouveau-y += core/subdev/bios/npde.o
-nouveau-y += core/subdev/bios/pcir.o
-nouveau-y += core/subdev/bios/perf.o
-nouveau-y += core/subdev/bios/pll.o
-nouveau-y += core/subdev/bios/pmu.o
-nouveau-y += core/subdev/bios/ramcfg.o
-nouveau-y += core/subdev/bios/rammap.o
-nouveau-y += core/subdev/bios/shadow.o
-nouveau-y += core/subdev/bios/shadowacpi.o
-nouveau-y += core/subdev/bios/shadowof.o
-nouveau-y += core/subdev/bios/shadowpci.o
-nouveau-y += core/subdev/bios/shadowramin.o
-nouveau-y += core/subdev/bios/shadowrom.o
-nouveau-y += core/subdev/bios/timing.o
-nouveau-y += core/subdev/bios/therm.o
-nouveau-y += core/subdev/bios/vmap.o
-nouveau-y += core/subdev/bios/volt.o
-nouveau-y += core/subdev/bios/xpio.o
-nouveau-y += core/subdev/bios/M0203.o
-nouveau-y += core/subdev/bios/M0205.o
-nouveau-y += core/subdev/bios/M0209.o
-nouveau-y += core/subdev/bios/P0260.o
-nouveau-y += core/subdev/bus/hwsq.o
-nouveau-y += core/subdev/bus/nv04.o
-nouveau-y += core/subdev/bus/nv31.o
-nouveau-y += core/subdev/bus/nv50.o
-nouveau-y += core/subdev/bus/nv94.o
-nouveau-y += core/subdev/bus/nvc0.o
-nouveau-y += core/subdev/clock/base.o
-nouveau-y += core/subdev/clock/nv04.o
-nouveau-y += core/subdev/clock/nv40.o
-nouveau-y += core/subdev/clock/nv50.o
-nouveau-y += core/subdev/clock/nv84.o
-nouveau-y += core/subdev/clock/nva3.o
-nouveau-y += core/subdev/clock/nvaa.o
-nouveau-y += core/subdev/clock/nvc0.o
-nouveau-y += core/subdev/clock/nve0.o
-nouveau-y += core/subdev/clock/gk20a.o
-nouveau-y += core/subdev/clock/pllnv04.o
-nouveau-y += core/subdev/clock/pllnva3.o
-nouveau-y += core/subdev/devinit/base.o
-nouveau-y += core/subdev/devinit/nv04.o
-nouveau-y += core/subdev/devinit/nv05.o
-nouveau-y += core/subdev/devinit/nv10.o
-nouveau-y += core/subdev/devinit/nv1a.o
-nouveau-y += core/subdev/devinit/nv20.o
-nouveau-y += core/subdev/devinit/nv50.o
-nouveau-y += core/subdev/devinit/nv84.o
-nouveau-y += core/subdev/devinit/nv98.o
-nouveau-y += core/subdev/devinit/nva3.o
-nouveau-y += core/subdev/devinit/nvaf.o
-nouveau-y += core/subdev/devinit/nvc0.o
-nouveau-y += core/subdev/devinit/gm107.o
-nouveau-y += core/subdev/devinit/gm204.o
-nouveau-y += core/subdev/fb/base.o
-nouveau-y += core/subdev/fb/nv04.o
-nouveau-y += core/subdev/fb/nv10.o
-nouveau-y += core/subdev/fb/nv1a.o
-nouveau-y += core/subdev/fb/nv20.o
-nouveau-y += core/subdev/fb/nv25.o
-nouveau-y += core/subdev/fb/nv30.o
-nouveau-y += core/subdev/fb/nv35.o
-nouveau-y += core/subdev/fb/nv36.o
-nouveau-y += core/subdev/fb/nv40.o
-nouveau-y += core/subdev/fb/nv41.o
-nouveau-y += core/subdev/fb/nv44.o
-nouveau-y += core/subdev/fb/nv46.o
-nouveau-y += core/subdev/fb/nv47.o
-nouveau-y += core/subdev/fb/nv49.o
-nouveau-y += core/subdev/fb/nv4e.o
-nouveau-y += core/subdev/fb/nv50.o
-nouveau-y += core/subdev/fb/nv84.o
-nouveau-y += core/subdev/fb/nva3.o
-nouveau-y += core/subdev/fb/nvaa.o
-nouveau-y += core/subdev/fb/nvaf.o
-nouveau-y += core/subdev/fb/nvc0.o
-nouveau-y += core/subdev/fb/nve0.o
-nouveau-y += core/subdev/fb/gk20a.o
-nouveau-y += core/subdev/fb/gm107.o
-nouveau-y += core/subdev/fb/ramnv04.o
-nouveau-y += core/subdev/fb/ramnv10.o
-nouveau-y += core/subdev/fb/ramnv1a.o
-nouveau-y += core/subdev/fb/ramnv20.o
-nouveau-y += core/subdev/fb/ramnv40.o
-nouveau-y += core/subdev/fb/ramnv41.o
-nouveau-y += core/subdev/fb/ramnv44.o
-nouveau-y += core/subdev/fb/ramnv49.o
-nouveau-y += core/subdev/fb/ramnv4e.o
-nouveau-y += core/subdev/fb/ramnv50.o
-nouveau-y += core/subdev/fb/ramnva3.o
-nouveau-y += core/subdev/fb/ramnvaa.o
-nouveau-y += core/subdev/fb/ramnvc0.o
-nouveau-y += core/subdev/fb/ramnve0.o
-nouveau-y += core/subdev/fb/ramgk20a.o
-nouveau-y += core/subdev/fb/ramgm107.o
-nouveau-y += core/subdev/fb/sddr2.o
-nouveau-y += core/subdev/fb/sddr3.o
-nouveau-y += core/subdev/fb/gddr3.o
-nouveau-y += core/subdev/fb/gddr5.o
-nouveau-y += core/subdev/fuse/base.o
-nouveau-y += core/subdev/fuse/g80.o
-nouveau-y += core/subdev/fuse/gf100.o
-nouveau-y += core/subdev/fuse/gm107.o
-nouveau-y += core/subdev/gpio/base.o
-nouveau-y += core/subdev/gpio/nv10.o
-nouveau-y += core/subdev/gpio/nv50.o
-nouveau-y += core/subdev/gpio/nv94.o
-nouveau-y += core/subdev/gpio/nvd0.o
-nouveau-y += core/subdev/gpio/nve0.o
-nouveau-y += core/subdev/i2c/base.o
-nouveau-y += core/subdev/i2c/anx9805.o
-nouveau-y += core/subdev/i2c/aux.o
-nouveau-y += core/subdev/i2c/bit.o
-nouveau-y += core/subdev/i2c/pad.o
-nouveau-y += core/subdev/i2c/padnv04.o
-nouveau-y += core/subdev/i2c/padnv94.o
-nouveau-y += core/subdev/i2c/padgm204.o
-nouveau-y += core/subdev/i2c/nv04.o
-nouveau-y += core/subdev/i2c/nv4e.o
-nouveau-y += core/subdev/i2c/nv50.o
-nouveau-y += core/subdev/i2c/nv94.o
-nouveau-y += core/subdev/i2c/nvd0.o
-nouveau-y += core/subdev/i2c/gf117.o
-nouveau-y += core/subdev/i2c/nve0.o
-nouveau-y += core/subdev/i2c/gm204.o
-nouveau-y += core/subdev/ibus/nvc0.o
-nouveau-y += core/subdev/ibus/nve0.o
-nouveau-y += core/subdev/ibus/gk20a.o
-nouveau-y += core/subdev/instmem/base.o
-nouveau-y += core/subdev/instmem/nv04.o
-nouveau-y += core/subdev/instmem/nv40.o
-nouveau-y += core/subdev/instmem/nv50.o
-nouveau-y += core/subdev/ltc/base.o
-nouveau-y += core/subdev/ltc/gf100.o
-nouveau-y += core/subdev/ltc/gk104.o
-nouveau-y += core/subdev/ltc/gm107.o
-nouveau-y += core/subdev/mc/base.o
-nouveau-y += core/subdev/mc/nv04.o
-nouveau-y += core/subdev/mc/nv40.o
-nouveau-y += core/subdev/mc/nv44.o
-nouveau-y += core/subdev/mc/nv4c.o
-nouveau-y += core/subdev/mc/nv50.o
-nouveau-y += core/subdev/mc/nv94.o
-nouveau-y += core/subdev/mc/nv98.o
-nouveau-y += core/subdev/mc/nvc0.o
-nouveau-y += core/subdev/mc/nvc3.o
-nouveau-y += core/subdev/mc/gk20a.o
-nouveau-y += core/subdev/mxm/base.o
-nouveau-y += core/subdev/mxm/mxms.o
-nouveau-y += core/subdev/mxm/nv50.o
-nouveau-y += core/subdev/pwr/base.o
-nouveau-y += core/subdev/pwr/memx.o
-nouveau-y += core/subdev/pwr/nva3.o
-nouveau-y += core/subdev/pwr/nvc0.o
-nouveau-y += core/subdev/pwr/nvd0.o
-nouveau-y += core/subdev/pwr/gk104.o
-nouveau-y += core/subdev/pwr/nv108.o
-nouveau-y += core/subdev/pwr/gk20a.o
-nouveau-y += core/subdev/therm/base.o
-nouveau-y += core/subdev/therm/fan.o
-nouveau-y += core/subdev/therm/fannil.o
-nouveau-y += core/subdev/therm/fanpwm.o
-nouveau-y += core/subdev/therm/fantog.o
-nouveau-y += core/subdev/therm/ic.o
-nouveau-y += core/subdev/therm/temp.o
-nouveau-y += core/subdev/therm/nv40.o
-nouveau-y += core/subdev/therm/nv50.o
-nouveau-y += core/subdev/therm/nv84.o
-nouveau-y += core/subdev/therm/nva3.o
-nouveau-y += core/subdev/therm/nvd0.o
-nouveau-y += core/subdev/therm/gm107.o
-nouveau-y += core/subdev/timer/base.o
-nouveau-y += core/subdev/timer/nv04.o
-nouveau-y += core/subdev/timer/gk20a.o
-nouveau-y += core/subdev/vm/base.o
-nouveau-y += core/subdev/vm/nv04.o
-nouveau-y += core/subdev/vm/nv41.o
-nouveau-y += core/subdev/vm/nv44.o
-nouveau-y += core/subdev/vm/nv50.o
-nouveau-y += core/subdev/vm/nvc0.o
-nouveau-y += core/subdev/volt/base.o
-nouveau-y += core/subdev/volt/gpio.o
-nouveau-y += core/subdev/volt/nv40.o
-nouveau-y += core/subdev/volt/gk20a.o
-
-nouveau-y += core/engine/falcon.o
-nouveau-y += core/engine/xtensa.o
-nouveau-y += core/engine/dmaobj/base.o
-nouveau-y += core/engine/dmaobj/nv04.o
-nouveau-y += core/engine/dmaobj/nv50.o
-nouveau-y += core/engine/dmaobj/nvc0.o
-nouveau-y += core/engine/dmaobj/nvd0.o
-nouveau-y += core/engine/bsp/nv84.o
-nouveau-y += core/engine/bsp/nv98.o
-nouveau-y += core/engine/bsp/nvc0.o
-nouveau-y += core/engine/bsp/nve0.o
-nouveau-y += core/engine/copy/nva3.o
-nouveau-y += core/engine/copy/nvc0.o
-nouveau-y += core/engine/copy/nve0.o
-nouveau-y += core/engine/crypt/nv84.o
-nouveau-y += core/engine/crypt/nv98.o
-nouveau-y += core/engine/device/acpi.o
-nouveau-y += core/engine/device/base.o
-nouveau-y += core/engine/device/ctrl.o
-nouveau-y += core/engine/device/nv04.o
-nouveau-y += core/engine/device/nv10.o
-nouveau-y += core/engine/device/nv20.o
-nouveau-y += core/engine/device/nv30.o
-nouveau-y += core/engine/device/nv40.o
-nouveau-y += core/engine/device/nv50.o
-nouveau-y += core/engine/device/nvc0.o
-nouveau-y += core/engine/device/nve0.o
-nouveau-y += core/engine/device/gm100.o
-nouveau-y += core/engine/disp/base.o
-nouveau-y += core/engine/disp/conn.o
-nouveau-y += core/engine/disp/outp.o
-nouveau-y += core/engine/disp/outpdp.o
-nouveau-y += core/engine/disp/nv04.o
-nouveau-y += core/engine/disp/nv50.o
-nouveau-y += core/engine/disp/nv84.o
-nouveau-y += core/engine/disp/nv94.o
-nouveau-y += core/engine/disp/nva0.o
-nouveau-y += core/engine/disp/nva3.o
-nouveau-y += core/engine/disp/nvd0.o
-nouveau-y += core/engine/disp/nve0.o
-nouveau-y += core/engine/disp/nvf0.o
-nouveau-y += core/engine/disp/gm107.o
-nouveau-y += core/engine/disp/gm204.o
-nouveau-y += core/engine/disp/dacnv50.o
-nouveau-y += core/engine/disp/dport.o
-nouveau-y += core/engine/disp/hdanva3.o
-nouveau-y += core/engine/disp/hdanvd0.o
-nouveau-y += core/engine/disp/hdminv84.o
-nouveau-y += core/engine/disp/hdminva3.o
-nouveau-y += core/engine/disp/hdminvd0.o
-nouveau-y += core/engine/disp/hdminve0.o
-nouveau-y += core/engine/disp/piornv50.o
-nouveau-y += core/engine/disp/sornv50.o
-nouveau-y += core/engine/disp/sornv94.o
-nouveau-y += core/engine/disp/sornvd0.o
-nouveau-y += core/engine/disp/sorgm204.o
-nouveau-y += core/engine/disp/vga.o
-nouveau-y += core/engine/fifo/base.o
-nouveau-y += core/engine/fifo/nv04.o
-nouveau-y += core/engine/fifo/nv10.o
-nouveau-y += core/engine/fifo/nv17.o
-nouveau-y += core/engine/fifo/nv40.o
-nouveau-y += core/engine/fifo/nv50.o
-nouveau-y += core/engine/fifo/nv84.o
-nouveau-y += core/engine/fifo/nvc0.o
-nouveau-y += core/engine/fifo/nve0.o
-nouveau-y += core/engine/fifo/gk20a.o
-nouveau-y += core/engine/fifo/nv108.o
-nouveau-y += core/engine/graph/ctxnv40.o
-nouveau-y += core/engine/graph/ctxnv50.o
-nouveau-y += core/engine/graph/ctxnvc0.o
-nouveau-y += core/engine/graph/ctxnvc1.o
-nouveau-y += core/engine/graph/ctxnvc4.o
-nouveau-y += core/engine/graph/ctxnvc8.o
-nouveau-y += core/engine/graph/ctxnvd7.o
-nouveau-y += core/engine/graph/ctxnvd9.o
-nouveau-y += core/engine/graph/ctxnve4.o
-nouveau-y += core/engine/graph/ctxgk20a.o
-nouveau-y += core/engine/graph/ctxnvf0.o
-nouveau-y += core/engine/graph/ctxgk110b.o
-nouveau-y += core/engine/graph/ctxnv108.o
-nouveau-y += core/engine/graph/ctxgm107.o
-nouveau-y += core/engine/graph/nv04.o
-nouveau-y += core/engine/graph/nv10.o
-nouveau-y += core/engine/graph/nv20.o
-nouveau-y += core/engine/graph/nv25.o
-nouveau-y += core/engine/graph/nv2a.o
-nouveau-y += core/engine/graph/nv30.o
-nouveau-y += core/engine/graph/nv34.o
-nouveau-y += core/engine/graph/nv35.o
-nouveau-y += core/engine/graph/nv40.o
-nouveau-y += core/engine/graph/nv50.o
-nouveau-y += core/engine/graph/nvc0.o
-nouveau-y += core/engine/graph/nvc1.o
-nouveau-y += core/engine/graph/nvc4.o
-nouveau-y += core/engine/graph/nvc8.o
-nouveau-y += core/engine/graph/nvd7.o
-nouveau-y += core/engine/graph/nvd9.o
-nouveau-y += core/engine/graph/nve4.o
-nouveau-y += core/engine/graph/gk20a.o
-nouveau-y += core/engine/graph/nvf0.o
-nouveau-y += core/engine/graph/gk110b.o
-nouveau-y += core/engine/graph/nv108.o
-nouveau-y += core/engine/graph/gm107.o
-nouveau-y += core/engine/mpeg/nv31.o
-nouveau-y += core/engine/mpeg/nv40.o
-nouveau-y += core/engine/mpeg/nv44.o
-nouveau-y += core/engine/mpeg/nv50.o
-nouveau-y += core/engine/mpeg/nv84.o
-nouveau-y += core/engine/perfmon/base.o
-nouveau-y += core/engine/perfmon/daemon.o
-nouveau-y += core/engine/perfmon/nv40.o
-nouveau-y += core/engine/perfmon/nv50.o
-nouveau-y += core/engine/perfmon/nv84.o
-nouveau-y += core/engine/perfmon/nva3.o
-nouveau-y += core/engine/perfmon/nvc0.o
-nouveau-y += core/engine/perfmon/nve0.o
-nouveau-y += core/engine/perfmon/nvf0.o
-nouveau-y += core/engine/ppp/nv98.o
-nouveau-y += core/engine/ppp/nvc0.o
-nouveau-y += core/engine/software/nv04.o
-nouveau-y += core/engine/software/nv10.o
-nouveau-y += core/engine/software/nv50.o
-nouveau-y += core/engine/software/nvc0.o
-nouveau-y += core/engine/vp/nv84.o
-nouveau-y += core/engine/vp/nv98.o
-nouveau-y += core/engine/vp/nvc0.o
-nouveau-y += core/engine/vp/nve0.o
-
-# nvif
-nouveau-y += nvif/object.o
-nouveau-y += nvif/client.o
-nouveau-y += nvif/device.o
-nouveau-y += nvif/notify.o
-
-# drm/core
-nouveau-y += nouveau_drm.o nouveau_chan.o nouveau_dma.o nouveau_fence.o
-nouveau-y += nouveau_vga.o nouveau_agp.o
-nouveau-y += nouveau_ttm.o nouveau_sgdma.o nouveau_bo.o nouveau_gem.o
-nouveau-y += nouveau_prime.o nouveau_abi16.o
-nouveau-y += nouveau_nvif.o nouveau_usif.o
-nouveau-y += nv04_fence.o nv10_fence.o nv17_fence.o
-nouveau-y += nv50_fence.o nv84_fence.o nvc0_fence.o
-
-# drm/kms
-nouveau-y += nouveau_bios.o nouveau_fbcon.o nouveau_display.o
-nouveau-y += nouveau_connector.o nouveau_dp.o
-nouveau-y += nv04_fbcon.o nv50_fbcon.o nvc0_fbcon.o
-
-# drm/kms/nv04:nv50
-include $(src)/dispnv04/Makefile
-
-# drm/kms/nv50-
-nouveau-y += nv50_display.o
-
-# drm/pm
-nouveau-y += nouveau_hwmon.o nouveau_sysfs.o
-
-# other random bits
-nouveau-$(CONFIG_COMPAT) += nouveau_ioc32.o
-ifdef CONFIG_X86
-nouveau-$(CONFIG_ACPI) += nouveau_acpi.o
-endif
-nouveau-$(CONFIG_DRM_NOUVEAU_BACKLIGHT) += nouveau_backlight.o
-nouveau-$(CONFIG_DEBUG_FS) += nouveau_debugfs.o
-nouveau-$(CONFIG_NOUVEAU_PLATFORM_DRIVER) += nouveau_platform.o
-
-obj-$(CONFIG_DRM_NOUVEAU)+= nouveau.o
-
diff --git a/drivers/gpu/drm/nouveau/core/include/nvif/class.h b/drivers/gpu/drm/nouveau/core/include/nvif/class.h
deleted file mode 120000
index f1ac485..0000000
--- a/drivers/gpu/drm/nouveau/core/include/nvif/class.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../nvif/class.h
\ No newline at end of file
diff --git a/drivers/gpu/drm/nouveau/core/include/nvif/event.h b/drivers/gpu/drm/nouveau/core/include/nvif/event.h
deleted file mode 120000
index 1b79853..0000000
--- a/drivers/gpu/drm/nouveau/core/include/nvif/event.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../nvif/event.h
\ No newline at end of file
diff --git a/drivers/gpu/drm/nouveau/core/include/nvif/ioctl.h b/drivers/gpu/drm/nouveau/core/include/nvif/ioctl.h
deleted file mode 120000
index 8569c86..0000000
--- a/drivers/gpu/drm/nouveau/core/include/nvif/ioctl.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../nvif/ioctl.h
\ No newline at end of file
diff --git a/drivers/gpu/drm/nouveau/core/include/nvif/unpack.h b/drivers/gpu/drm/nouveau/core/include/nvif/unpack.h
deleted file mode 120000
index 69d9929..0000000
--- a/drivers/gpu/drm/nouveau/core/include/nvif/unpack.h
+++ /dev/null
@@ -1 +0,0 @@
-../../../nvif/unpack.h
\ No newline at end of file
diff --git a/drivers/gpu/drm/nouveau/dispnv04/Makefile b/drivers/gpu/drm/nouveau/dispnv04/Kbuild
similarity index 100%
rename from drivers/gpu/drm/nouveau/dispnv04/Makefile
rename to drivers/gpu/drm/nouveau/dispnv04/Kbuild
diff --git a/drivers/gpu/drm/nouveau/nvif/class.h b/drivers/gpu/drm/nouveau/include/nvif/class.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/nvif/class.h
rename to drivers/gpu/drm/nouveau/include/nvif/class.h
diff --git a/drivers/gpu/drm/nouveau/nvif/client.h b/drivers/gpu/drm/nouveau/include/nvif/client.h
similarity index 97%
rename from drivers/gpu/drm/nouveau/nvif/client.h
rename to drivers/gpu/drm/nouveau/include/nvif/client.h
index 28352f0..8b00484 100644
--- a/drivers/gpu/drm/nouveau/nvif/client.h
+++ b/drivers/gpu/drm/nouveau/include/nvif/client.h
@@ -1,7 +1,7 @@
 #ifndef __NVIF_CLIENT_H__
 #define __NVIF_CLIENT_H__
 
-#include "object.h"
+#include <nvif/object.h>
 
 struct nvif_client {
 	struct nvif_object base;
diff --git a/drivers/gpu/drm/nouveau/nvif/device.h b/drivers/gpu/drm/nouveau/include/nvif/device.h
similarity index 97%
rename from drivers/gpu/drm/nouveau/nvif/device.h
rename to drivers/gpu/drm/nouveau/include/nvif/device.h
index 43180f9..4aa1b93 100644
--- a/drivers/gpu/drm/nouveau/nvif/device.h
+++ b/drivers/gpu/drm/nouveau/include/nvif/device.h
@@ -1,8 +1,8 @@
 #ifndef __NVIF_DEVICE_H__
 #define __NVIF_DEVICE_H__
 
-#include "object.h"
-#include "class.h"
+#include <nvif/object.h>
+#include <nvif/class.h>
 
 struct nvif_device {
 	struct nvif_object base;
diff --git a/drivers/gpu/drm/nouveau/nvif/driver.h b/drivers/gpu/drm/nouveau/include/nvif/driver.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/nvif/driver.h
rename to drivers/gpu/drm/nouveau/include/nvif/driver.h
diff --git a/drivers/gpu/drm/nouveau/nvif/event.h b/drivers/gpu/drm/nouveau/include/nvif/event.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/nvif/event.h
rename to drivers/gpu/drm/nouveau/include/nvif/event.h
diff --git a/drivers/gpu/drm/nouveau/nvif/ioctl.h b/drivers/gpu/drm/nouveau/include/nvif/ioctl.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/nvif/ioctl.h
rename to drivers/gpu/drm/nouveau/include/nvif/ioctl.h
diff --git a/drivers/gpu/drm/nouveau/nvif/list.h b/drivers/gpu/drm/nouveau/include/nvif/list.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/nvif/list.h
rename to drivers/gpu/drm/nouveau/include/nvif/list.h
diff --git a/drivers/gpu/drm/nouveau/nvif/notify.h b/drivers/gpu/drm/nouveau/include/nvif/notify.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/nvif/notify.h
rename to drivers/gpu/drm/nouveau/include/nvif/notify.h
diff --git a/drivers/gpu/drm/nouveau/nvif/object.h b/drivers/gpu/drm/nouveau/include/nvif/object.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/nvif/object.h
rename to drivers/gpu/drm/nouveau/include/nvif/object.h
diff --git a/drivers/gpu/drm/nouveau/core/os.h b/drivers/gpu/drm/nouveau/include/nvif/os.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/os.h
rename to drivers/gpu/drm/nouveau/include/nvif/os.h
diff --git a/drivers/gpu/drm/nouveau/nvif/unpack.h b/drivers/gpu/drm/nouveau/include/nvif/unpack.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/nvif/unpack.h
rename to drivers/gpu/drm/nouveau/include/nvif/unpack.h
diff --git a/drivers/gpu/drm/nouveau/core/include/core/client.h b/drivers/gpu/drm/nouveau/include/nvkm/core/client.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/client.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/client.h
diff --git a/drivers/gpu/drm/nouveau/core/include/core/debug.h b/drivers/gpu/drm/nouveau/include/nvkm/core/debug.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/debug.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/debug.h
diff --git a/drivers/gpu/drm/nouveau/core/include/core/device.h b/drivers/gpu/drm/nouveau/include/nvkm/core/device.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/device.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/device.h
diff --git a/drivers/gpu/drm/nouveau/core/include/core/engctx.h b/drivers/gpu/drm/nouveau/include/nvkm/core/engctx.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/engctx.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/engctx.h
diff --git a/drivers/gpu/drm/nouveau/core/include/core/engine.h b/drivers/gpu/drm/nouveau/include/nvkm/core/engine.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/engine.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/engine.h
diff --git a/drivers/gpu/drm/nouveau/core/include/core/enum.h b/drivers/gpu/drm/nouveau/include/nvkm/core/enum.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/enum.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/enum.h
diff --git a/drivers/gpu/drm/nouveau/core/include/core/event.h b/drivers/gpu/drm/nouveau/include/nvkm/core/event.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/event.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/event.h
diff --git a/drivers/gpu/drm/nouveau/core/include/core/gpuobj.h b/drivers/gpu/drm/nouveau/include/nvkm/core/gpuobj.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/gpuobj.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/gpuobj.h
diff --git a/drivers/gpu/drm/nouveau/core/include/core/handle.h b/drivers/gpu/drm/nouveau/include/nvkm/core/handle.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/handle.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/handle.h
diff --git a/drivers/gpu/drm/nouveau/core/include/core/ioctl.h b/drivers/gpu/drm/nouveau/include/nvkm/core/ioctl.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/ioctl.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/ioctl.h
diff --git a/drivers/gpu/drm/nouveau/core/include/core/mm.h b/drivers/gpu/drm/nouveau/include/nvkm/core/mm.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/mm.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/mm.h
diff --git a/drivers/gpu/drm/nouveau/core/include/core/namedb.h b/drivers/gpu/drm/nouveau/include/nvkm/core/namedb.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/namedb.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/namedb.h
diff --git a/drivers/gpu/drm/nouveau/core/include/core/notify.h b/drivers/gpu/drm/nouveau/include/nvkm/core/notify.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/notify.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/notify.h
diff --git a/drivers/gpu/drm/nouveau/core/include/core/object.h b/drivers/gpu/drm/nouveau/include/nvkm/core/object.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/object.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/object.h
diff --git a/drivers/gpu/drm/nouveau/core/include/core/option.h b/drivers/gpu/drm/nouveau/include/nvkm/core/option.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/option.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/option.h
diff --git a/drivers/gpu/drm/nouveau/include/nvkm/core/os.h b/drivers/gpu/drm/nouveau/include/nvkm/core/os.h
new file mode 100644
index 0000000..cd57e23
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/include/nvkm/core/os.h
@@ -0,0 +1,4 @@
+#ifndef __NVKM_OS_H__
+#define __NVKM_OS_H__
+#include <nvif/os.h>
+#endif
diff --git a/drivers/gpu/drm/nouveau/core/include/core/parent.h b/drivers/gpu/drm/nouveau/include/nvkm/core/parent.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/parent.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/parent.h
diff --git a/drivers/gpu/drm/nouveau/core/include/core/printk.h b/drivers/gpu/drm/nouveau/include/nvkm/core/printk.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/printk.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/printk.h
diff --git a/drivers/gpu/drm/nouveau/core/include/core/ramht.h b/drivers/gpu/drm/nouveau/include/nvkm/core/ramht.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/ramht.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/ramht.h
diff --git a/drivers/gpu/drm/nouveau/core/include/core/subdev.h b/drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/core/subdev.h
rename to drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h
diff --git a/drivers/gpu/drm/nouveau/core/include/engine/bsp.h b/drivers/gpu/drm/nouveau/include/nvkm/engine/bsp.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/engine/bsp.h
rename to drivers/gpu/drm/nouveau/include/nvkm/engine/bsp.h
diff --git a/drivers/gpu/drm/nouveau/core/include/engine/copy.h b/drivers/gpu/drm/nouveau/include/nvkm/engine/copy.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/engine/copy.h
rename to drivers/gpu/drm/nouveau/include/nvkm/engine/copy.h
diff --git a/drivers/gpu/drm/nouveau/core/include/engine/crypt.h b/drivers/gpu/drm/nouveau/include/nvkm/engine/crypt.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/engine/crypt.h
rename to drivers/gpu/drm/nouveau/include/nvkm/engine/crypt.h
diff --git a/drivers/gpu/drm/nouveau/core/include/engine/device.h b/drivers/gpu/drm/nouveau/include/nvkm/engine/device.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/engine/device.h
rename to drivers/gpu/drm/nouveau/include/nvkm/engine/device.h
diff --git a/drivers/gpu/drm/nouveau/core/include/engine/disp.h b/drivers/gpu/drm/nouveau/include/nvkm/engine/disp.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/engine/disp.h
rename to drivers/gpu/drm/nouveau/include/nvkm/engine/disp.h
diff --git a/drivers/gpu/drm/nouveau/core/include/engine/dmaobj.h b/drivers/gpu/drm/nouveau/include/nvkm/engine/dmaobj.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/engine/dmaobj.h
rename to drivers/gpu/drm/nouveau/include/nvkm/engine/dmaobj.h
diff --git a/drivers/gpu/drm/nouveau/core/include/engine/falcon.h b/drivers/gpu/drm/nouveau/include/nvkm/engine/falcon.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/engine/falcon.h
rename to drivers/gpu/drm/nouveau/include/nvkm/engine/falcon.h
diff --git a/drivers/gpu/drm/nouveau/core/include/engine/fifo.h b/drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/engine/fifo.h
rename to drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h
diff --git a/drivers/gpu/drm/nouveau/core/include/engine/graph.h b/drivers/gpu/drm/nouveau/include/nvkm/engine/graph.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/engine/graph.h
rename to drivers/gpu/drm/nouveau/include/nvkm/engine/graph.h
diff --git a/drivers/gpu/drm/nouveau/core/include/engine/mpeg.h b/drivers/gpu/drm/nouveau/include/nvkm/engine/mpeg.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/engine/mpeg.h
rename to drivers/gpu/drm/nouveau/include/nvkm/engine/mpeg.h
diff --git a/drivers/gpu/drm/nouveau/core/include/engine/perfmon.h b/drivers/gpu/drm/nouveau/include/nvkm/engine/perfmon.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/engine/perfmon.h
rename to drivers/gpu/drm/nouveau/include/nvkm/engine/perfmon.h
diff --git a/drivers/gpu/drm/nouveau/core/include/engine/ppp.h b/drivers/gpu/drm/nouveau/include/nvkm/engine/ppp.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/engine/ppp.h
rename to drivers/gpu/drm/nouveau/include/nvkm/engine/ppp.h
diff --git a/drivers/gpu/drm/nouveau/core/include/engine/software.h b/drivers/gpu/drm/nouveau/include/nvkm/engine/software.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/engine/software.h
rename to drivers/gpu/drm/nouveau/include/nvkm/engine/software.h
diff --git a/drivers/gpu/drm/nouveau/core/include/engine/vp.h b/drivers/gpu/drm/nouveau/include/nvkm/engine/vp.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/engine/vp.h
rename to drivers/gpu/drm/nouveau/include/nvkm/engine/vp.h
diff --git a/drivers/gpu/drm/nouveau/core/include/engine/xtensa.h b/drivers/gpu/drm/nouveau/include/nvkm/engine/xtensa.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/engine/xtensa.h
rename to drivers/gpu/drm/nouveau/include/nvkm/engine/xtensa.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bar.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bar.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bar.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bar.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/M0203.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/M0203.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/M0203.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/M0203.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/M0205.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/M0205.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/M0205.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/M0205.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/M0209.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/M0209.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/M0209.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/M0209.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/P0260.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/P0260.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/P0260.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/P0260.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/bit.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/bit.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/bit.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/bit.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/bmp.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/bmp.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/bmp.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/bmp.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/boost.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/boost.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/boost.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/boost.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/conn.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/conn.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/cstep.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/cstep.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/cstep.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/cstep.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/dcb.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/dcb.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/dcb.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/dcb.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/disp.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/disp.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/disp.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/disp.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/dp.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/dp.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/dp.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/dp.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/extdev.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/extdev.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/extdev.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/extdev.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/fan.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/fan.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/fan.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/fan.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/gpio.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/gpio.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/gpio.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/gpio.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/i2c.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/i2c.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/i2c.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/i2c.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/image.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/image.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/image.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/image.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/init.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/init.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/init.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/init.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/mxm.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/mxm.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/mxm.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/mxm.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/npde.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/npde.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/npde.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/npde.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/pcir.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/pcir.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/pcir.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/pcir.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/perf.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/perf.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/perf.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/perf.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/pll.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/pll.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/pll.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/pll.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/pmu.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/pmu.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/pmu.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/pmu.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/ramcfg.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/ramcfg.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/ramcfg.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/ramcfg.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/rammap.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/rammap.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/rammap.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/rammap.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/therm.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/therm.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/therm.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/therm.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/timing.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/timing.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/timing.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/timing.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/vmap.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/vmap.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/vmap.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/vmap.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/volt.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/volt.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/volt.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/volt.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bios/xpio.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/xpio.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bios/xpio.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/xpio.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/bus.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bus.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/bus.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/bus.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/clock.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/clock.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/clock.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/clock.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/devinit.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/devinit.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/devinit.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/devinit.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/fb.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/fb.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/fb.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/fb.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/fuse.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/fuse.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/fuse.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/fuse.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/gpio.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/gpio.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/gpio.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/gpio.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/i2c.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/i2c.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/i2c.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/i2c.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/ibus.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/ibus.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/ibus.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/ibus.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/instmem.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/instmem.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/instmem.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/instmem.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/ltc.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/ltc.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/ltc.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/ltc.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/mc.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/mc.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/mc.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/mc.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/mxm.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/mxm.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/mxm.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/mxm.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/pwr.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/pwr.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/pwr.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/pwr.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/therm.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/therm.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/therm.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/therm.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/timer.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/timer.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/timer.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/timer.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/vga.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/vga.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/vga.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/vga.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/vm.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/vm.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/vm.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/vm.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/volt.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/volt.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/volt.h
rename to drivers/gpu/drm/nouveau/include/nvkm/subdev/volt.h
diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c b/drivers/gpu/drm/nouveau/nouveau_ttm.c
index 3d1cfcb..2e0d1d9 100644
--- a/drivers/gpu/drm/nouveau/nouveau_ttm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c
@@ -203,7 +203,7 @@
 };
 
 /*XXX*/
-#include <core/subdev/vm/nv04.h>
+#include <subdev/vm/nv04.h>
 static int
 nv04_gart_manager_init(struct ttm_mem_type_manager *man, unsigned long psize)
 {
diff --git a/drivers/gpu/drm/nouveau/nvif/Kbuild b/drivers/gpu/drm/nouveau/nvif/Kbuild
new file mode 100644
index 0000000..ff8ed3a
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvif/Kbuild
@@ -0,0 +1,4 @@
+nvif-y := nvif/object.o
+nvif-y += nvif/client.o
+nvif-y += nvif/device.o
+nvif-y += nvif/notify.o
diff --git a/drivers/gpu/drm/nouveau/nvif/client.c b/drivers/gpu/drm/nouveau/nvif/client.c
index 3f7ac5b..80b9684 100644
--- a/drivers/gpu/drm/nouveau/nvif/client.c
+++ b/drivers/gpu/drm/nouveau/nvif/client.c
@@ -22,9 +22,9 @@
  * Authors: Ben Skeggs <bskeggs@redhat.com>
  */
 
-#include "client.h"
-#include "driver.h"
-#include "ioctl.h"
+#include <nvif/client.h>
+#include <nvif/driver.h>
+#include <nvif/ioctl.h>
 
 int
 nvif_client_ioctl(struct nvif_client *client, void *data, u32 size)
diff --git a/drivers/gpu/drm/nouveau/nvif/device.c b/drivers/gpu/drm/nouveau/nvif/device.c
index f477579..6f72244 100644
--- a/drivers/gpu/drm/nouveau/nvif/device.c
+++ b/drivers/gpu/drm/nouveau/nvif/device.c
@@ -22,7 +22,7 @@
  * Authors: Ben Skeggs <bskeggs@redhat.com>
  */
 
-#include "device.h"
+#include <nvif/device.h>
 
 void
 nvif_device_fini(struct nvif_device *device)
diff --git a/drivers/gpu/drm/nouveau/nvif/object.c b/drivers/gpu/drm/nouveau/nvif/object.c
index dd85b56..3ab4e2f 100644
--- a/drivers/gpu/drm/nouveau/nvif/object.c
+++ b/drivers/gpu/drm/nouveau/nvif/object.c
@@ -22,10 +22,10 @@
  * Authors: Ben Skeggs <bskeggs@redhat.com>
  */
 
-#include "object.h"
-#include "client.h"
-#include "driver.h"
-#include "ioctl.h"
+#include <nvif/object.h>
+#include <nvif/client.h>
+#include <nvif/driver.h>
+#include <nvif/ioctl.h>
 
 int
 nvif_object_ioctl(struct nvif_object *object, void *data, u32 size, void **hack)
diff --git a/drivers/gpu/drm/nouveau/nvif/os.h b/drivers/gpu/drm/nouveau/nvif/os.h
deleted file mode 120000
index bd744b2..0000000
--- a/drivers/gpu/drm/nouveau/nvif/os.h
+++ /dev/null
@@ -1 +0,0 @@
-../core/os.h
\ No newline at end of file
diff --git a/drivers/gpu/drm/nouveau/nvkm/Kbuild b/drivers/gpu/drm/nouveau/nvkm/Kbuild
new file mode 100644
index 0000000..2832147
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/Kbuild
@@ -0,0 +1,3 @@
+include $(src)/nvkm/core/Kbuild
+include $(src)/nvkm/subdev/Kbuild
+include $(src)/nvkm/engine/Kbuild
diff --git a/drivers/gpu/drm/nouveau/nvkm/core/Kbuild b/drivers/gpu/drm/nouveau/nvkm/core/Kbuild
new file mode 100644
index 0000000..a2bdb20
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/core/Kbuild
@@ -0,0 +1,17 @@
+nvkm-y := nvkm/core/client.o
+nvkm-y += nvkm/core/engctx.o
+nvkm-y += nvkm/core/engine.o
+nvkm-y += nvkm/core/enum.o
+nvkm-y += nvkm/core/event.o
+nvkm-y += nvkm/core/gpuobj.o
+nvkm-y += nvkm/core/handle.o
+nvkm-y += nvkm/core/ioctl.o
+nvkm-y += nvkm/core/mm.o
+nvkm-y += nvkm/core/namedb.o
+nvkm-y += nvkm/core/notify.o
+nvkm-y += nvkm/core/object.o
+nvkm-y += nvkm/core/option.o
+nvkm-y += nvkm/core/parent.o
+nvkm-y += nvkm/core/printk.o
+nvkm-y += nvkm/core/ramht.o
+nvkm-y += nvkm/core/subdev.o
diff --git a/drivers/gpu/drm/nouveau/core/core/client.c b/drivers/gpu/drm/nouveau/nvkm/core/client.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/core/client.c
rename to drivers/gpu/drm/nouveau/nvkm/core/client.c
diff --git a/drivers/gpu/drm/nouveau/core/core/engctx.c b/drivers/gpu/drm/nouveau/nvkm/core/engctx.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/core/engctx.c
rename to drivers/gpu/drm/nouveau/nvkm/core/engctx.c
diff --git a/drivers/gpu/drm/nouveau/core/core/engine.c b/drivers/gpu/drm/nouveau/nvkm/core/engine.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/core/engine.c
rename to drivers/gpu/drm/nouveau/nvkm/core/engine.c
diff --git a/drivers/gpu/drm/nouveau/core/core/enum.c b/drivers/gpu/drm/nouveau/nvkm/core/enum.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/core/enum.c
rename to drivers/gpu/drm/nouveau/nvkm/core/enum.c
diff --git a/drivers/gpu/drm/nouveau/core/core/event.c b/drivers/gpu/drm/nouveau/nvkm/core/event.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/core/event.c
rename to drivers/gpu/drm/nouveau/nvkm/core/event.c
diff --git a/drivers/gpu/drm/nouveau/core/core/gpuobj.c b/drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/core/gpuobj.c
rename to drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c
diff --git a/drivers/gpu/drm/nouveau/core/core/handle.c b/drivers/gpu/drm/nouveau/nvkm/core/handle.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/core/handle.c
rename to drivers/gpu/drm/nouveau/nvkm/core/handle.c
diff --git a/drivers/gpu/drm/nouveau/core/core/ioctl.c b/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/core/ioctl.c
rename to drivers/gpu/drm/nouveau/nvkm/core/ioctl.c
diff --git a/drivers/gpu/drm/nouveau/core/core/mm.c b/drivers/gpu/drm/nouveau/nvkm/core/mm.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/core/mm.c
rename to drivers/gpu/drm/nouveau/nvkm/core/mm.c
diff --git a/drivers/gpu/drm/nouveau/core/core/namedb.c b/drivers/gpu/drm/nouveau/nvkm/core/namedb.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/core/namedb.c
rename to drivers/gpu/drm/nouveau/nvkm/core/namedb.c
diff --git a/drivers/gpu/drm/nouveau/core/core/notify.c b/drivers/gpu/drm/nouveau/nvkm/core/notify.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/core/notify.c
rename to drivers/gpu/drm/nouveau/nvkm/core/notify.c
diff --git a/drivers/gpu/drm/nouveau/core/core/object.c b/drivers/gpu/drm/nouveau/nvkm/core/object.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/core/object.c
rename to drivers/gpu/drm/nouveau/nvkm/core/object.c
diff --git a/drivers/gpu/drm/nouveau/core/core/option.c b/drivers/gpu/drm/nouveau/nvkm/core/option.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/core/option.c
rename to drivers/gpu/drm/nouveau/nvkm/core/option.c
diff --git a/drivers/gpu/drm/nouveau/core/core/parent.c b/drivers/gpu/drm/nouveau/nvkm/core/parent.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/core/parent.c
rename to drivers/gpu/drm/nouveau/nvkm/core/parent.c
diff --git a/drivers/gpu/drm/nouveau/core/core/printk.c b/drivers/gpu/drm/nouveau/nvkm/core/printk.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/core/printk.c
rename to drivers/gpu/drm/nouveau/nvkm/core/printk.c
diff --git a/drivers/gpu/drm/nouveau/core/core/ramht.c b/drivers/gpu/drm/nouveau/nvkm/core/ramht.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/core/ramht.c
rename to drivers/gpu/drm/nouveau/nvkm/core/ramht.c
diff --git a/drivers/gpu/drm/nouveau/core/core/subdev.c b/drivers/gpu/drm/nouveau/nvkm/core/subdev.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/core/subdev.c
rename to drivers/gpu/drm/nouveau/nvkm/core/subdev.c
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/Kbuild b/drivers/gpu/drm/nouveau/nvkm/engine/Kbuild
new file mode 100644
index 0000000..ebd30be
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/Kbuild
@@ -0,0 +1,16 @@
+nvkm-y += nvkm/engine/falcon.o
+nvkm-y += nvkm/engine/xtensa.o
+
+include $(src)/nvkm/engine/bsp/Kbuild
+include $(src)/nvkm/engine/copy/Kbuild
+include $(src)/nvkm/engine/crypt/Kbuild
+include $(src)/nvkm/engine/device/Kbuild
+include $(src)/nvkm/engine/disp/Kbuild
+include $(src)/nvkm/engine/dmaobj/Kbuild
+include $(src)/nvkm/engine/fifo/Kbuild
+include $(src)/nvkm/engine/graph/Kbuild
+include $(src)/nvkm/engine/mpeg/Kbuild
+include $(src)/nvkm/engine/perfmon/Kbuild
+include $(src)/nvkm/engine/ppp/Kbuild
+include $(src)/nvkm/engine/software/Kbuild
+include $(src)/nvkm/engine/vp/Kbuild
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/bsp/Kbuild b/drivers/gpu/drm/nouveau/nvkm/engine/bsp/Kbuild
new file mode 100644
index 0000000..da54c56
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/bsp/Kbuild
@@ -0,0 +1,4 @@
+nvkm-y += nvkm/engine/bsp/nv84.o
+nvkm-y += nvkm/engine/bsp/nv98.o
+nvkm-y += nvkm/engine/bsp/nvc0.o
+nvkm-y += nvkm/engine/bsp/nve0.o
diff --git a/drivers/gpu/drm/nouveau/core/engine/bsp/nv84.c b/drivers/gpu/drm/nouveau/nvkm/engine/bsp/nv84.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/bsp/nv84.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/bsp/nv84.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/bsp/nv98.c b/drivers/gpu/drm/nouveau/nvkm/engine/bsp/nv98.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/bsp/nv98.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/bsp/nv98.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/bsp/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/engine/bsp/nvc0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/bsp/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/bsp/nvc0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/bsp/nve0.c b/drivers/gpu/drm/nouveau/nvkm/engine/bsp/nve0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/bsp/nve0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/bsp/nve0.c
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/copy/Kbuild b/drivers/gpu/drm/nouveau/nvkm/engine/copy/Kbuild
new file mode 100644
index 0000000..d8aa5ed
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/copy/Kbuild
@@ -0,0 +1,3 @@
+nvkm-y += nvkm/engine/copy/nva3.o
+nvkm-y += nvkm/engine/copy/nvc0.o
+nvkm-y += nvkm/engine/copy/nve0.o
diff --git a/drivers/gpu/drm/nouveau/core/engine/copy/fuc/nva3.fuc b/drivers/gpu/drm/nouveau/nvkm/engine/copy/fuc/com.fuc
similarity index 98%
rename from drivers/gpu/drm/nouveau/core/engine/copy/fuc/nva3.fuc
rename to drivers/gpu/drm/nouveau/nvkm/engine/copy/fuc/com.fuc
index 219850d..33b67dc 100644
--- a/drivers/gpu/drm/nouveau/core/engine/copy/fuc/nva3.fuc
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/copy/fuc/com.fuc
@@ -30,19 +30,19 @@
  *    m4 -DNVC0 nva3_copy.fuc | envyas -a -w -m fuc -V nva3 -o nvc0_copy.fuc.h
  */
 
-ifdef(`NVA3',
+#ifdef NVA3
 .section #nva3_pcopy_data
-,
+#else
 .section #nvc0_pcopy_data
-)
+#endif
 
 ctx_object:                   .b32 0
-ifdef(`NVA3',
+#ifdef NVA3
 ctx_dma:
 ctx_dma_query:                .b32 0
 ctx_dma_src:                  .b32 0
 ctx_dma_dst:                  .b32 0
-,)
+#endif
 .equ #ctx_dma_count 3
 ctx_query_address_high:       .b32 0
 ctx_query_address_low:        .b32 0
@@ -86,14 +86,14 @@
 // mthd 0x0140, PM_TRIGGER
 .b16 0x050 1
 .b32 0x00010000 + #cmd_pm_trigger    ~0xffffffff
-ifdef(`NVA3', `
+#ifdef NVA3
 // mthd 0x0180-0x018c, DMA_
 .b16 0x060 #ctx_dma_count
 dispatch_dma:
 .b32 0x00010000 + #cmd_dma           ~0xffffffff
 .b32 0x00010000 + #cmd_dma           ~0xffffffff
 .b32 0x00010000 + #cmd_dma           ~0xffffffff
-',)
+#endif
 // mthd 0x0200-0x0218, SRC_TILE
 .b16 0x80 7
 .b32 #ctx_src_tile_mode              ~0x00000fff
@@ -134,11 +134,11 @@
 .b32 #ctx_query_counter              ~0xffffffff
 .b16 0x800 0
 
-ifdef(`NVA3',
+#ifdef NVA3
 .section #nva3_pcopy_code
-,
+#else
 .section #nvc0_pcopy_code
-)
+#endif
 
 main:
    clear b32 $r0
@@ -190,10 +190,10 @@
 swctx:
    mov $r4 0x7700
    mov $xtargets $r4
-ifdef(`NVA3', `
+#ifdef NVA3
    // target 7 hardcoded to ctx dma object
    mov $xdbase $r0
-', ` // NVC0
+#else
    // read SCRATCH3 to decide if we are PCOPY0 or PCOPY1
    mov $r4 0x2100
    iord $r4 I[$r4 + 0]
@@ -231,7 +231,7 @@
    shl b32 $r6 24
    or $r4 $r6
    mov $xdbase $r4
-')
+#endif
    // 256-byte context, at start of data segment
    mov b32 $r4 $r0
    sethi $r4 0x60000
@@ -271,7 +271,7 @@
    bra e #chsw_finish_load
       bset $flags $p1
       call #swctx
-ifdef(`NVA3',
+#ifdef NVA3
       // load dma objects back into TARGET regs
       mov $r5 #ctx_dma
       mov $r6 #ctx_dma_count
@@ -282,8 +282,7 @@
          iowr I[$r8] $r7
          sub b32 $r6 1
          bra nc #chsw_load_ctx_dma
-,)
-
+#endif
    chsw_finish_load:
    mov $r3 2
    iowr I[$r2 + 0x200] $r3
@@ -397,7 +396,7 @@
    iowr I[$r2] $r3
    ret
 
-ifdef(`NVA3',
+#ifdef NVA3
 // SET_DMA_* method handler
 //
 // Inputs:
@@ -419,7 +418,7 @@
    shl b32 $r4 6
    iowr I[$r4] $r3
    ret
-,)
+#endif
 
 // Calculates the hw swizzle mask and adjusts the surface's xcnt to match
 //
@@ -548,11 +547,11 @@
    ld b32 $r7 D[$r5 + #ctx_src_tile_mode]
    extr $r9 $r7 8:11
    extr $r8 $r7 4:7
-ifdef(`NVA3',
+#ifdef NVA3
    add b32 $r8 2
-,
+#else
    add b32 $r8 3
-)
+#endif
    extr $r7 $r7 0:3
    cmp b32 $r7 0xe
    bra ne #xtile64
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/copy/fuc/nva3.fuc3 b/drivers/gpu/drm/nouveau/nvkm/engine/copy/fuc/nva3.fuc3
new file mode 100644
index 0000000..e670620
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/copy/fuc/nva3.fuc3
@@ -0,0 +1,2 @@
+#define NVA3
+#include "com.fuc"
diff --git a/drivers/gpu/drm/nouveau/core/engine/copy/fuc/nva3.fuc.h b/drivers/gpu/drm/nouveau/nvkm/engine/copy/fuc/nva3.fuc3.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/copy/fuc/nva3.fuc.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/copy/fuc/nva3.fuc3.h
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/copy/fuc/nvc0.fuc3 b/drivers/gpu/drm/nouveau/nvkm/engine/copy/fuc/nvc0.fuc3
new file mode 100644
index 0000000..df6866c
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/copy/fuc/nvc0.fuc3
@@ -0,0 +1,2 @@
+#define NVC0
+#include "com.fuc"
diff --git a/drivers/gpu/drm/nouveau/core/engine/copy/fuc/nvc0.fuc.h b/drivers/gpu/drm/nouveau/nvkm/engine/copy/fuc/nvc0.fuc3.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/copy/fuc/nvc0.fuc.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/copy/fuc/nvc0.fuc3.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/copy/nva3.c b/drivers/gpu/drm/nouveau/nvkm/engine/copy/nva3.c
similarity index 99%
rename from drivers/gpu/drm/nouveau/core/engine/copy/nva3.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/copy/nva3.c
index abb410e..13c05e0 100644
--- a/drivers/gpu/drm/nouveau/core/engine/copy/nva3.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/copy/nva3.c
@@ -33,7 +33,7 @@
 #include <core/enum.h>
 
 
-#include "fuc/nva3.fuc.h"
+#include "fuc/nva3.fuc3.h"
 
 struct nva3_copy_priv {
 	struct nouveau_falcon base;
diff --git a/drivers/gpu/drm/nouveau/core/engine/copy/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/engine/copy/nvc0.c
similarity index 99%
rename from drivers/gpu/drm/nouveau/core/engine/copy/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/copy/nvc0.c
index 20a8cd7..abe3249 100644
--- a/drivers/gpu/drm/nouveau/core/engine/copy/nvc0.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/copy/nvc0.c
@@ -29,7 +29,7 @@
 #include <core/enum.h>
 #include <core/enum.h>
 
-#include "fuc/nvc0.fuc.h"
+#include "fuc/nvc0.fuc3.h"
 
 struct nvc0_copy_priv {
 	struct nouveau_falcon base;
diff --git a/drivers/gpu/drm/nouveau/core/engine/copy/nve0.c b/drivers/gpu/drm/nouveau/nvkm/engine/copy/nve0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/copy/nve0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/copy/nve0.c
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/crypt/Kbuild b/drivers/gpu/drm/nouveau/nvkm/engine/crypt/Kbuild
new file mode 100644
index 0000000..eaeafdf
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/crypt/Kbuild
@@ -0,0 +1,2 @@
+nvkm-y += nvkm/engine/crypt/nv84.o
+nvkm-y += nvkm/engine/crypt/nv98.o
diff --git a/drivers/gpu/drm/nouveau/core/engine/crypt/fuc/nv98.fuc b/drivers/gpu/drm/nouveau/nvkm/engine/crypt/fuc/nv98.fuc0s
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/crypt/fuc/nv98.fuc
rename to drivers/gpu/drm/nouveau/nvkm/engine/crypt/fuc/nv98.fuc0s
diff --git a/drivers/gpu/drm/nouveau/core/engine/crypt/fuc/nv98.fuc.h b/drivers/gpu/drm/nouveau/nvkm/engine/crypt/fuc/nv98.fuc0s.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/crypt/fuc/nv98.fuc.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/crypt/fuc/nv98.fuc0s.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/crypt/nv84.c b/drivers/gpu/drm/nouveau/nvkm/engine/crypt/nv84.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/crypt/nv84.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/crypt/nv84.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/crypt/nv98.c b/drivers/gpu/drm/nouveau/nvkm/engine/crypt/nv98.c
similarity index 99%
rename from drivers/gpu/drm/nouveau/core/engine/crypt/nv98.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/crypt/nv98.c
index 5571c09..e0838c4 100644
--- a/drivers/gpu/drm/nouveau/core/engine/crypt/nv98.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/crypt/nv98.c
@@ -34,7 +34,7 @@
 #include <engine/fifo.h>
 #include <engine/crypt.h>
 
-#include "fuc/nv98.fuc.h"
+#include "fuc/nv98.fuc0s.h"
 
 struct nv98_crypt_priv {
 	struct nouveau_falcon base;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/Kbuild b/drivers/gpu/drm/nouveau/nvkm/engine/device/Kbuild
new file mode 100644
index 0000000..77d06d4
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/Kbuild
@@ -0,0 +1,12 @@
+nvkm-y += nvkm/engine/device/acpi.o
+nvkm-y += nvkm/engine/device/base.o
+nvkm-y += nvkm/engine/device/ctrl.o
+nvkm-y += nvkm/engine/device/nv04.o
+nvkm-y += nvkm/engine/device/nv10.o
+nvkm-y += nvkm/engine/device/nv20.o
+nvkm-y += nvkm/engine/device/nv30.o
+nvkm-y += nvkm/engine/device/nv40.o
+nvkm-y += nvkm/engine/device/nv50.o
+nvkm-y += nvkm/engine/device/nvc0.o
+nvkm-y += nvkm/engine/device/nve0.o
+nvkm-y += nvkm/engine/device/gm100.o
diff --git a/drivers/gpu/drm/nouveau/core/engine/device/acpi.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/acpi.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/device/acpi.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/device/acpi.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/device/acpi.h b/drivers/gpu/drm/nouveau/nvkm/engine/device/acpi.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/device/acpi.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/device/acpi.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/device/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/device/base.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/device/ctrl.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/device/ctrl.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/device/gm100.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/device/gm100.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/device/nv04.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/device/nv04.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/device/nv10.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/device/nv10.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/device/nv20.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/device/nv20.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/device/nv30.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/device/nv30.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/device/nv40.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/device/nv40.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/device/nv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/device/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/device/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/nvc0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/device/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/device/nvc0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/device/nve0.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/nve0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/device/nve0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/device/nve0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/device/priv.h b/drivers/gpu/drm/nouveau/nvkm/engine/device/priv.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/device/priv.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/device/priv.h
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild b/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild
new file mode 100644
index 0000000..50bd1e2
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild
@@ -0,0 +1,29 @@
+nvkm-y += nvkm/engine/disp/base.o
+nvkm-y += nvkm/engine/disp/conn.o
+nvkm-y += nvkm/engine/disp/outp.o
+nvkm-y += nvkm/engine/disp/outpdp.o
+nvkm-y += nvkm/engine/disp/nv04.o
+nvkm-y += nvkm/engine/disp/nv50.o
+nvkm-y += nvkm/engine/disp/nv84.o
+nvkm-y += nvkm/engine/disp/nv94.o
+nvkm-y += nvkm/engine/disp/nva0.o
+nvkm-y += nvkm/engine/disp/nva3.o
+nvkm-y += nvkm/engine/disp/nvd0.o
+nvkm-y += nvkm/engine/disp/nve0.o
+nvkm-y += nvkm/engine/disp/nvf0.o
+nvkm-y += nvkm/engine/disp/gm107.o
+nvkm-y += nvkm/engine/disp/gm204.o
+nvkm-y += nvkm/engine/disp/dacnv50.o
+nvkm-y += nvkm/engine/disp/dport.o
+nvkm-y += nvkm/engine/disp/hdanva3.o
+nvkm-y += nvkm/engine/disp/hdanvd0.o
+nvkm-y += nvkm/engine/disp/hdminv84.o
+nvkm-y += nvkm/engine/disp/hdminva3.o
+nvkm-y += nvkm/engine/disp/hdminvd0.o
+nvkm-y += nvkm/engine/disp/hdminve0.o
+nvkm-y += nvkm/engine/disp/piornv50.o
+nvkm-y += nvkm/engine/disp/sornv50.o
+nvkm-y += nvkm/engine/disp/sornv94.o
+nvkm-y += nvkm/engine/disp/sornvd0.o
+nvkm-y += nvkm/engine/disp/sorgm204.o
+nvkm-y += nvkm/engine/disp/vga.o
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/base.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/conn.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/conn.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/conn.h b/drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/conn.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/dacnv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/dacnv50.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/dport.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/dport.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/dport.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/dport.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/dport.h b/drivers/gpu/drm/nouveau/nvkm/engine/disp/dport.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/dport.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/dport.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/gm107.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/gm107.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/gm204.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/gm204.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/gm204.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/gm204.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/hdanva3.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdanva3.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/hdanva3.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/hdanva3.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/hdanvd0.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdanvd0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/hdanvd0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/hdanvd0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/hdminv84.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdminv84.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/hdminv84.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/hdminv84.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/hdminva3.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdminva3.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/hdminva3.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/hdminva3.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/hdminvd0.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdminvd0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/hdminvd0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/hdminvd0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/hdminve0.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdminve0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/hdminve0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/hdminve0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/nv04.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv04.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/nv04.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/nv04.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/nv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/nv50.h b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/nv50.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/nv84.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv84.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/nv84.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/nv84.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/nv94.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv94.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/nv94.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/nv94.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/nva0.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nva0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/nva0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/nva0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/nva3.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nva3.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/nva3.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/nva3.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/nvd0.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nvd0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/nvd0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/nvd0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/nve0.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nve0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/nve0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/nve0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/nvf0.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nvf0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/nvf0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/nvf0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/outp.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/outp.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/outp.h b/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/outp.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/outpdp.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/outpdp.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/outpdp.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/outpdp.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/outpdp.h b/drivers/gpu/drm/nouveau/nvkm/engine/disp/outpdp.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/outpdp.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/outpdp.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/piornv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/piornv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/piornv50.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/piornv50.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/priv.h b/drivers/gpu/drm/nouveau/nvkm/engine/disp/priv.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/priv.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/priv.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/sorgm204.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm204.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/sorgm204.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm204.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/sornv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sornv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/sornv50.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/sornv50.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/sornv94.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sornv94.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/sornv94.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/sornv94.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/sornvd0.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sornvd0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/sornvd0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/sornvd0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/vga.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/vga.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/disp/vga.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/disp/vga.c
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/Kbuild b/drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/Kbuild
new file mode 100644
index 0000000..4f9286a
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/Kbuild
@@ -0,0 +1,5 @@
+nvkm-y += nvkm/engine/dmaobj/base.o
+nvkm-y += nvkm/engine/dmaobj/nv04.o
+nvkm-y += nvkm/engine/dmaobj/nv50.o
+nvkm-y += nvkm/engine/dmaobj/nvc0.o
+nvkm-y += nvkm/engine/dmaobj/nvd0.o
diff --git a/drivers/gpu/drm/nouveau/core/engine/dmaobj/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/dmaobj/base.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/base.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/dmaobj/nv04.c b/drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nv04.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/dmaobj/nv04.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nv04.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/dmaobj/nv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/dmaobj/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/dmaobj/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nvc0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/dmaobj/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nvc0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/dmaobj/nvd0.c b/drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nvd0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/dmaobj/nvd0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nvd0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/dmaobj/priv.h b/drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/priv.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/dmaobj/priv.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/priv.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/falcon.c b/drivers/gpu/drm/nouveau/nvkm/engine/falcon.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/falcon.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/falcon.c
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/Kbuild b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/Kbuild
new file mode 100644
index 0000000..f38820f
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/Kbuild
@@ -0,0 +1,11 @@
+nvkm-y += nvkm/engine/fifo/base.o
+nvkm-y += nvkm/engine/fifo/nv04.o
+nvkm-y += nvkm/engine/fifo/nv10.o
+nvkm-y += nvkm/engine/fifo/nv17.o
+nvkm-y += nvkm/engine/fifo/nv40.o
+nvkm-y += nvkm/engine/fifo/nv50.o
+nvkm-y += nvkm/engine/fifo/nv84.o
+nvkm-y += nvkm/engine/fifo/nvc0.o
+nvkm-y += nvkm/engine/fifo/nve0.o
+nvkm-y += nvkm/engine/fifo/gk20a.o
+nvkm-y += nvkm/engine/fifo/nv108.o
diff --git a/drivers/gpu/drm/nouveau/core/engine/fifo/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/fifo/base.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/fifo/gk20a.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk20a.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/fifo/gk20a.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk20a.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/fifo/nv04.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/fifo/nv04.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/fifo/nv04.h b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/fifo/nv04.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/fifo/nv10.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/fifo/nv10.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/fifo/nv108.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv108.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/fifo/nv108.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv108.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/fifo/nv17.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/fifo/nv17.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/fifo/nv40.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/fifo/nv40.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/fifo/nv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/fifo/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/fifo/nv50.h b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/fifo/nv50.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/fifo/nv84.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv84.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/fifo/nv84.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv84.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/fifo/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nvc0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/fifo/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/fifo/nvc0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/fifo/nve0.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nve0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/fifo/nve0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/fifo/nve0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/fifo/nve0.h b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nve0.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/fifo/nve0.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/fifo/nve0.h
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/graph/Kbuild b/drivers/gpu/drm/nouveau/nvkm/engine/graph/Kbuild
new file mode 100644
index 0000000..fd56e97
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/graph/Kbuild
@@ -0,0 +1,36 @@
+nvkm-y += nvkm/engine/graph/ctxnv40.o
+nvkm-y += nvkm/engine/graph/ctxnv50.o
+nvkm-y += nvkm/engine/graph/ctxnvc0.o
+nvkm-y += nvkm/engine/graph/ctxnvc1.o
+nvkm-y += nvkm/engine/graph/ctxnvc4.o
+nvkm-y += nvkm/engine/graph/ctxnvc8.o
+nvkm-y += nvkm/engine/graph/ctxnvd7.o
+nvkm-y += nvkm/engine/graph/ctxnvd9.o
+nvkm-y += nvkm/engine/graph/ctxnve4.o
+nvkm-y += nvkm/engine/graph/ctxgk20a.o
+nvkm-y += nvkm/engine/graph/ctxnvf0.o
+nvkm-y += nvkm/engine/graph/ctxgk110b.o
+nvkm-y += nvkm/engine/graph/ctxnv108.o
+nvkm-y += nvkm/engine/graph/ctxgm107.o
+nvkm-y += nvkm/engine/graph/nv04.o
+nvkm-y += nvkm/engine/graph/nv10.o
+nvkm-y += nvkm/engine/graph/nv20.o
+nvkm-y += nvkm/engine/graph/nv25.o
+nvkm-y += nvkm/engine/graph/nv2a.o
+nvkm-y += nvkm/engine/graph/nv30.o
+nvkm-y += nvkm/engine/graph/nv34.o
+nvkm-y += nvkm/engine/graph/nv35.o
+nvkm-y += nvkm/engine/graph/nv40.o
+nvkm-y += nvkm/engine/graph/nv50.o
+nvkm-y += nvkm/engine/graph/nvc0.o
+nvkm-y += nvkm/engine/graph/nvc1.o
+nvkm-y += nvkm/engine/graph/nvc4.o
+nvkm-y += nvkm/engine/graph/nvc8.o
+nvkm-y += nvkm/engine/graph/nvd7.o
+nvkm-y += nvkm/engine/graph/nvd9.o
+nvkm-y += nvkm/engine/graph/nve4.o
+nvkm-y += nvkm/engine/graph/gk20a.o
+nvkm-y += nvkm/engine/graph/nvf0.o
+nvkm-y += nvkm/engine/graph/gk110b.o
+nvkm-y += nvkm/engine/graph/nv108.o
+nvkm-y += nvkm/engine/graph/gm107.o
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctx.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/ctx.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/ctx.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/ctx.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxgk110b.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxgk110b.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/ctxgk110b.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxgk110b.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxgk20a.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxgk20a.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/ctxgk20a.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxgk20a.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxgm107.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxgm107.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/ctxgm107.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxgm107.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnv108.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnv108.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/ctxnv108.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnv108.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnv40.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnv40.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/ctxnv40.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnv40.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/ctxnv50.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnv50.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnvc0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnvc0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnvc0.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnvc0.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc1.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnvc1.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc1.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnvc1.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc4.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnvc4.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc4.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnvc4.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc8.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnvc8.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc8.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnvc8.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvd7.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnvd7.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/ctxnvd7.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnvd7.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvd9.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnvd9.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/ctxnvd9.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnvd9.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnve4.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnve4.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/ctxnve4.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnve4.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvf0.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnvf0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/ctxnvf0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/ctxnvf0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/com.fuc b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/com.fuc
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/com.fuc
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/com.fuc
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpc.fuc b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpc.fuc
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpc.fuc
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpc.fuc
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcgm107.fuc5 b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcgm107.fuc5
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcgm107.fuc5
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcgm107.fuc5
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcgm107.fuc5.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcgm107.fuc5.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcgm107.fuc5.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcgm107.fuc5.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnv108.fuc5 b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnv108.fuc5
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnv108.fuc5
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnv108.fuc5
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnv108.fuc5.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnv108.fuc5.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnv108.fuc5.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnv108.fuc5.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnvc0.fuc3
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnvc0.fuc3
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnvc0.fuc3.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnvc0.fuc3.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvd7.fuc b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnvd7.fuc3
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvd7.fuc
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnvd7.fuc3
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvd7.fuc.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnvd7.fuc3.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvd7.fuc.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnvd7.fuc3.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnve0.fuc b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnve0.fuc3
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnve0.fuc
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnve0.fuc3
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnve0.fuc.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnve0.fuc3.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnve0.fuc.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnve0.fuc3.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvf0.fuc b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnvf0.fuc3
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvf0.fuc
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnvf0.fuc3
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvf0.fuc.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnvf0.fuc3.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvf0.fuc.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/gpcnvf0.fuc3.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hub.fuc b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hub.fuc
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/hub.fuc
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hub.fuc
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubgm107.fuc5 b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubgm107.fuc5
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubgm107.fuc5
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubgm107.fuc5
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubgm107.fuc5.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubgm107.fuc5.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubgm107.fuc5.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubgm107.fuc5.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnv108.fuc5 b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnv108.fuc5
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnv108.fuc5
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnv108.fuc5
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnv108.fuc5.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnv108.fuc5.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnv108.fuc5.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnv108.fuc5.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnvc0.fuc3
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnvc0.fuc3
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnvc0.fuc3.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnvc0.fuc3.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvd7.fuc b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnvd7.fuc3
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvd7.fuc
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnvd7.fuc3
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvd7.fuc.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnvd7.fuc3.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvd7.fuc.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnvd7.fuc3.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnve0.fuc b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnve0.fuc3
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnve0.fuc
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnve0.fuc3
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnve0.fuc.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnve0.fuc3.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnve0.fuc.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnve0.fuc3.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnvf0.fuc3
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnvf0.fuc3
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnvf0.fuc3.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/hubnvf0.fuc3.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/macros.fuc b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/macros.fuc
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/macros.fuc
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/macros.fuc
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/os.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/os.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/fuc/os.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/fuc/os.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/gk110b.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/gk110b.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/gk110b.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/gk110b.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/gk20a.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/gk20a.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/gk20a.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/gk20a.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/gm107.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/gm107.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/gm107.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/gm107.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nv04.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nv04.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nv04.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nv04.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nv10.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nv10.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nv10.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nv10.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nv108.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nv108.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nv108.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nv108.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nv20.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nv20.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nv20.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nv20.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nv20.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nv20.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nv20.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nv20.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nv25.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nv25.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nv25.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nv25.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nv2a.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nv2a.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nv2a.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nv2a.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nv30.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nv30.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nv30.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nv30.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nv34.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nv34.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nv34.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nv34.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nv35.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nv35.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nv35.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nv35.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nv40.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nv40.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nv40.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nv40.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nv40.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nv40.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nv40.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nv40.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nv50.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nv50.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nv50.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nv50.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nvc0.c
similarity index 99%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nvc0.c
index 17251e4..3e90e43 100644
--- a/drivers/gpu/drm/nouveau/core/engine/graph/nvc0.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nvc0.c
@@ -1630,7 +1630,7 @@
 	return 0;
 }
 
-#include "fuc/hubnvc0.fuc.h"
+#include "fuc/hubnvc0.fuc3.h"
 
 struct nvc0_graph_ucode
 nvc0_graph_fecs_ucode = {
@@ -1640,7 +1640,7 @@
 	.data.size = sizeof(nvc0_grhub_data),
 };
 
-#include "fuc/gpcnvc0.fuc.h"
+#include "fuc/gpcnvc0.fuc3.h"
 
 struct nvc0_graph_ucode
 nvc0_graph_gpccs_ucode = {
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nvc0.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nvc0.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nvc0.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nvc0.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nvc1.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nvc1.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nvc1.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nvc1.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nvc4.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nvc4.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nvc4.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nvc4.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nvc8.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nvc8.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nvc8.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nvc8.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nvd7.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nvd7.c
similarity index 98%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nvd7.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nvd7.c
index 41e8445..6f9f5ed 100644
--- a/drivers/gpu/drm/nouveau/core/engine/graph/nvd7.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nvd7.c
@@ -99,7 +99,7 @@
  * PGRAPH engine/subdev functions
  ******************************************************************************/
 
-#include "fuc/hubnvd7.fuc.h"
+#include "fuc/hubnvd7.fuc3.h"
 
 struct nvc0_graph_ucode
 nvd7_graph_fecs_ucode = {
@@ -109,7 +109,7 @@
 	.data.size = sizeof(nvd7_grhub_data),
 };
 
-#include "fuc/gpcnvd7.fuc.h"
+#include "fuc/gpcnvd7.fuc3.h"
 
 struct nvc0_graph_ucode
 nvd7_graph_gpccs_ucode = {
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nvd9.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nvd9.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nvd9.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nvd9.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nve4.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nve4.c
similarity index 99%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nve4.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nve4.c
index 0c71f5c..83a966f 100644
--- a/drivers/gpu/drm/nouveau/core/engine/graph/nve4.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nve4.c
@@ -309,7 +309,7 @@
 	return nvc0_graph_init_ctxctl(priv);
 }
 
-#include "fuc/hubnve0.fuc.h"
+#include "fuc/hubnve0.fuc3.h"
 
 static struct nvc0_graph_ucode
 nve4_graph_fecs_ucode = {
@@ -319,7 +319,7 @@
 	.data.size = sizeof(nve0_grhub_data),
 };
 
-#include "fuc/gpcnve0.fuc.h"
+#include "fuc/gpcnve0.fuc3.h"
 
 static struct nvc0_graph_ucode
 nve4_graph_gpccs_ucode = {
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nvf0.c b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nvf0.c
similarity index 98%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nvf0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nvf0.c
index c306c0f..73f77fa 100644
--- a/drivers/gpu/drm/nouveau/core/engine/graph/nvf0.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/graph/nvf0.c
@@ -207,7 +207,7 @@
 	return nouveau_graph_fini(&priv->base, suspend);
 }
 
-#include "fuc/hubnvf0.fuc.h"
+#include "fuc/hubnvf0.fuc3.h"
 
 struct nvc0_graph_ucode
 nvf0_graph_fecs_ucode = {
@@ -217,7 +217,7 @@
 	.data.size = sizeof(nvf0_grhub_data),
 };
 
-#include "fuc/gpcnvf0.fuc.h"
+#include "fuc/gpcnvf0.fuc3.h"
 
 struct nvc0_graph_ucode
 nvf0_graph_gpccs_ucode = {
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/regs.h b/drivers/gpu/drm/nouveau/nvkm/engine/graph/regs.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/graph/regs.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/regs.h
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/Kbuild b/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/Kbuild
new file mode 100644
index 0000000..39a045b
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/Kbuild
@@ -0,0 +1,5 @@
+nvkm-y += nvkm/engine/mpeg/nv31.o
+nvkm-y += nvkm/engine/mpeg/nv40.o
+nvkm-y += nvkm/engine/mpeg/nv44.o
+nvkm-y += nvkm/engine/mpeg/nv50.o
+nvkm-y += nvkm/engine/mpeg/nv84.o
diff --git a/drivers/gpu/drm/nouveau/core/engine/mpeg/nv31.c b/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/mpeg/nv31.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/mpeg/nv31.h b/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/mpeg/nv31.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/mpeg/nv40.c b/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/mpeg/nv40.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/mpeg/nv44.c b/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/mpeg/nv44.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/mpeg/nv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/mpeg/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/mpeg/nv84.c b/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv84.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/mpeg/nv84.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv84.c
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/perfmon/Kbuild b/drivers/gpu/drm/nouveau/nvkm/engine/perfmon/Kbuild
new file mode 100644
index 0000000..d5f574c
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/perfmon/Kbuild
@@ -0,0 +1,9 @@
+nvkm-y += nvkm/engine/perfmon/base.o
+nvkm-y += nvkm/engine/perfmon/daemon.o
+nvkm-y += nvkm/engine/perfmon/nv40.o
+nvkm-y += nvkm/engine/perfmon/nv50.o
+nvkm-y += nvkm/engine/perfmon/nv84.o
+nvkm-y += nvkm/engine/perfmon/nva3.o
+nvkm-y += nvkm/engine/perfmon/nvc0.o
+nvkm-y += nvkm/engine/perfmon/nve0.o
+nvkm-y += nvkm/engine/perfmon/nvf0.o
diff --git a/drivers/gpu/drm/nouveau/core/engine/perfmon/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/perfmon/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/perfmon/base.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/perfmon/base.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/perfmon/daemon.c b/drivers/gpu/drm/nouveau/nvkm/engine/perfmon/daemon.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/perfmon/daemon.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/perfmon/daemon.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/perfmon/nv40.c b/drivers/gpu/drm/nouveau/nvkm/engine/perfmon/nv40.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/perfmon/nv40.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/perfmon/nv40.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/perfmon/nv40.h b/drivers/gpu/drm/nouveau/nvkm/engine/perfmon/nv40.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/perfmon/nv40.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/perfmon/nv40.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/perfmon/nv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/perfmon/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/perfmon/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/perfmon/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/perfmon/nv84.c b/drivers/gpu/drm/nouveau/nvkm/engine/perfmon/nv84.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/perfmon/nv84.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/perfmon/nv84.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/perfmon/nva3.c b/drivers/gpu/drm/nouveau/nvkm/engine/perfmon/nva3.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/perfmon/nva3.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/perfmon/nva3.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/perfmon/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/engine/perfmon/nvc0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/perfmon/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/perfmon/nvc0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/perfmon/nvc0.h b/drivers/gpu/drm/nouveau/nvkm/engine/perfmon/nvc0.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/perfmon/nvc0.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/perfmon/nvc0.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/perfmon/nve0.c b/drivers/gpu/drm/nouveau/nvkm/engine/perfmon/nve0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/perfmon/nve0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/perfmon/nve0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/perfmon/nvf0.c b/drivers/gpu/drm/nouveau/nvkm/engine/perfmon/nvf0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/perfmon/nvf0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/perfmon/nvf0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/perfmon/priv.h b/drivers/gpu/drm/nouveau/nvkm/engine/perfmon/priv.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/perfmon/priv.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/perfmon/priv.h
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/ppp/Kbuild b/drivers/gpu/drm/nouveau/nvkm/engine/ppp/Kbuild
new file mode 100644
index 0000000..0c1de97
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/ppp/Kbuild
@@ -0,0 +1,2 @@
+nvkm-y += nvkm/engine/ppp/nv98.o
+nvkm-y += nvkm/engine/ppp/nvc0.o
diff --git a/drivers/gpu/drm/nouveau/core/engine/ppp/nv98.c b/drivers/gpu/drm/nouveau/nvkm/engine/ppp/nv98.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/ppp/nv98.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/ppp/nv98.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/ppp/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/engine/ppp/nvc0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/ppp/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/ppp/nvc0.c
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/software/Kbuild b/drivers/gpu/drm/nouveau/nvkm/engine/software/Kbuild
new file mode 100644
index 0000000..e1332a1
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/software/Kbuild
@@ -0,0 +1,4 @@
+nvkm-y += nvkm/engine/software/nv04.o
+nvkm-y += nvkm/engine/software/nv10.o
+nvkm-y += nvkm/engine/software/nv50.o
+nvkm-y += nvkm/engine/software/nvc0.o
diff --git a/drivers/gpu/drm/nouveau/core/engine/software/nv04.c b/drivers/gpu/drm/nouveau/nvkm/engine/software/nv04.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/software/nv04.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/software/nv04.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/software/nv10.c b/drivers/gpu/drm/nouveau/nvkm/engine/software/nv10.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/software/nv10.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/software/nv10.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/software/nv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/software/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/software/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/software/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/software/nv50.h b/drivers/gpu/drm/nouveau/nvkm/engine/software/nv50.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/software/nv50.h
rename to drivers/gpu/drm/nouveau/nvkm/engine/software/nv50.h
diff --git a/drivers/gpu/drm/nouveau/core/engine/software/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/engine/software/nvc0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/software/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/software/nvc0.c
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/vp/Kbuild b/drivers/gpu/drm/nouveau/nvkm/engine/vp/Kbuild
new file mode 100644
index 0000000..6c1d9d1
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/vp/Kbuild
@@ -0,0 +1,4 @@
+nvkm-y += nvkm/engine/vp/nv84.o
+nvkm-y += nvkm/engine/vp/nv98.o
+nvkm-y += nvkm/engine/vp/nvc0.o
+nvkm-y += nvkm/engine/vp/nve0.o
diff --git a/drivers/gpu/drm/nouveau/core/engine/vp/nv84.c b/drivers/gpu/drm/nouveau/nvkm/engine/vp/nv84.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/vp/nv84.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/vp/nv84.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/vp/nv98.c b/drivers/gpu/drm/nouveau/nvkm/engine/vp/nv98.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/vp/nv98.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/vp/nv98.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/vp/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/engine/vp/nvc0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/vp/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/vp/nvc0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/vp/nve0.c b/drivers/gpu/drm/nouveau/nvkm/engine/vp/nve0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/vp/nve0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/vp/nve0.c
diff --git a/drivers/gpu/drm/nouveau/core/engine/xtensa.c b/drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/engine/xtensa.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/Kbuild
new file mode 100644
index 0000000..10ef07c
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/Kbuild
@@ -0,0 +1,19 @@
+include $(src)/nvkm/subdev/bar/Kbuild
+include $(src)/nvkm/subdev/bios/Kbuild
+include $(src)/nvkm/subdev/bus/Kbuild
+include $(src)/nvkm/subdev/clock/Kbuild
+include $(src)/nvkm/subdev/devinit/Kbuild
+include $(src)/nvkm/subdev/fb/Kbuild
+include $(src)/nvkm/subdev/fuse/Kbuild
+include $(src)/nvkm/subdev/gpio/Kbuild
+include $(src)/nvkm/subdev/i2c/Kbuild
+include $(src)/nvkm/subdev/ibus/Kbuild
+include $(src)/nvkm/subdev/instmem/Kbuild
+include $(src)/nvkm/subdev/ltc/Kbuild
+include $(src)/nvkm/subdev/mc/Kbuild
+include $(src)/nvkm/subdev/mxm/Kbuild
+include $(src)/nvkm/subdev/pwr/Kbuild
+include $(src)/nvkm/subdev/therm/Kbuild
+include $(src)/nvkm/subdev/timer/Kbuild
+include $(src)/nvkm/subdev/vm/Kbuild
+include $(src)/nvkm/subdev/volt/Kbuild
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bar/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/bar/Kbuild
new file mode 100644
index 0000000..922454f
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bar/Kbuild
@@ -0,0 +1,4 @@
+nvkm-y += nvkm/subdev/bar/base.o
+nvkm-y += nvkm/subdev/bar/nv50.o
+nvkm-y += nvkm/subdev/bar/nvc0.o
+nvkm-y += nvkm/subdev/bar/gk20a.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bar/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bar/base.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bar/gk20a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bar/gk20a.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bar/gk20a.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bar/gk20a.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bar/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bar/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bar/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bar/nvc0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bar/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bar/nvc0.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bar/priv.h b/drivers/gpu/drm/nouveau/nvkm/subdev/bar/priv.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bar/priv.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bar/priv.h
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/Kbuild
new file mode 100644
index 0000000..64730d5
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/Kbuild
@@ -0,0 +1,37 @@
+nvkm-y += nvkm/subdev/bios/base.o
+nvkm-y += nvkm/subdev/bios/bit.o
+nvkm-y += nvkm/subdev/bios/boost.o
+nvkm-y += nvkm/subdev/bios/conn.o
+nvkm-y += nvkm/subdev/bios/cstep.o
+nvkm-y += nvkm/subdev/bios/dcb.o
+nvkm-y += nvkm/subdev/bios/disp.o
+nvkm-y += nvkm/subdev/bios/dp.o
+nvkm-y += nvkm/subdev/bios/extdev.o
+nvkm-y += nvkm/subdev/bios/fan.o
+nvkm-y += nvkm/subdev/bios/gpio.o
+nvkm-y += nvkm/subdev/bios/i2c.o
+nvkm-y += nvkm/subdev/bios/image.o
+nvkm-y += nvkm/subdev/bios/init.o
+nvkm-y += nvkm/subdev/bios/mxm.o
+nvkm-y += nvkm/subdev/bios/npde.o
+nvkm-y += nvkm/subdev/bios/pcir.o
+nvkm-y += nvkm/subdev/bios/perf.o
+nvkm-y += nvkm/subdev/bios/pll.o
+nvkm-y += nvkm/subdev/bios/pmu.o
+nvkm-y += nvkm/subdev/bios/ramcfg.o
+nvkm-y += nvkm/subdev/bios/rammap.o
+nvkm-y += nvkm/subdev/bios/shadow.o
+nvkm-y += nvkm/subdev/bios/shadowacpi.o
+nvkm-y += nvkm/subdev/bios/shadowof.o
+nvkm-y += nvkm/subdev/bios/shadowpci.o
+nvkm-y += nvkm/subdev/bios/shadowramin.o
+nvkm-y += nvkm/subdev/bios/shadowrom.o
+nvkm-y += nvkm/subdev/bios/timing.o
+nvkm-y += nvkm/subdev/bios/therm.o
+nvkm-y += nvkm/subdev/bios/vmap.o
+nvkm-y += nvkm/subdev/bios/volt.o
+nvkm-y += nvkm/subdev/bios/xpio.o
+nvkm-y += nvkm/subdev/bios/M0203.o
+nvkm-y += nvkm/subdev/bios/M0205.o
+nvkm-y += nvkm/subdev/bios/M0209.o
+nvkm-y += nvkm/subdev/bios/P0260.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/M0203.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0203.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/M0203.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0203.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/M0205.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0205.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/M0205.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0205.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/M0209.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0209.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/M0209.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0209.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/P0260.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/P0260.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/P0260.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/P0260.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/base.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/bit.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/bit.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/bit.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/bit.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/boost.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/boost.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/boost.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/boost.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/conn.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/conn.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/conn.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/conn.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/cstep.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/cstep.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/cstep.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/cstep.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/dcb.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/dcb.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/disp.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/disp.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/disp.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/disp.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/dp.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/dp.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/dp.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/dp.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/extdev.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/extdev.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/extdev.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/extdev.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/fan.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/fan.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/fan.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/fan.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/gpio.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/gpio.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/gpio.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/gpio.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/i2c.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/i2c.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/i2c.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/i2c.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/image.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/image.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/image.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/image.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/init.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/init.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/mxm.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/mxm.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/npde.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/npde.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/npde.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/npde.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/pcir.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/pcir.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/pcir.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/pcir.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/perf.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/perf.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/perf.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/perf.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/pll.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/pll.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/pll.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/pll.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/pmu.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/pmu.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/priv.h b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/priv.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/priv.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/priv.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/ramcfg.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/ramcfg.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/ramcfg.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/ramcfg.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/rammap.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/rammap.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/rammap.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/rammap.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/shadow.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/shadow.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/shadowacpi.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowacpi.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/shadowacpi.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowacpi.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/shadowof.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/shadowof.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/shadowpci.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/shadowpci.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/shadowramin.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/shadowramin.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/shadowrom.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowrom.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/shadowrom.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowrom.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/therm.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/therm.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/timing.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/timing.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/timing.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/timing.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/vmap.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/vmap.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/vmap.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/vmap.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/volt.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/volt.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/volt.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/volt.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/xpio.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/xpio.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bios/xpio.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bios/xpio.c
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bus/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/bus/Kbuild
new file mode 100644
index 0000000..633e9b4
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bus/Kbuild
@@ -0,0 +1,6 @@
+nvkm-y += nvkm/subdev/bus/hwsq.o
+nvkm-y += nvkm/subdev/bus/nv04.o
+nvkm-y += nvkm/subdev/bus/nv31.o
+nvkm-y += nvkm/subdev/bus/nv50.o
+nvkm-y += nvkm/subdev/bus/nv94.o
+nvkm-y += nvkm/subdev/bus/nvc0.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bus/hwsq.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bus/hwsq.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bus/hwsq.h b/drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bus/hwsq.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bus/nv04.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv04.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bus/nv04.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv04.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bus/nv04.h b/drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv04.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bus/nv04.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv04.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bus/nv31.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv31.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bus/nv31.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv31.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bus/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bus/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bus/nv94.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv94.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bus/nv94.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv94.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bus/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bus/nvc0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/bus/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/bus/nvc0.c
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/clock/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/clock/Kbuild
new file mode 100644
index 0000000..f0a8602
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/clock/Kbuild
@@ -0,0 +1,12 @@
+nvkm-y += nvkm/subdev/clock/base.o
+nvkm-y += nvkm/subdev/clock/nv04.o
+nvkm-y += nvkm/subdev/clock/nv40.o
+nvkm-y += nvkm/subdev/clock/nv50.o
+nvkm-y += nvkm/subdev/clock/nv84.o
+nvkm-y += nvkm/subdev/clock/nva3.o
+nvkm-y += nvkm/subdev/clock/nvaa.o
+nvkm-y += nvkm/subdev/clock/nvc0.o
+nvkm-y += nvkm/subdev/clock/nve0.o
+nvkm-y += nvkm/subdev/clock/gk20a.o
+nvkm-y += nvkm/subdev/clock/pllnv04.o
+nvkm-y += nvkm/subdev/clock/pllnva3.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clock/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/clock/base.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/clock/base.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/gk20a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clock/gk20a.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/clock/gk20a.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/clock/gk20a.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/nv04.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clock/nv04.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/clock/nv04.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/clock/nv04.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/nv40.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clock/nv40.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/clock/nv40.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/clock/nv40.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clock/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/clock/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/clock/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/nv50.h b/drivers/gpu/drm/nouveau/nvkm/subdev/clock/nv50.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/clock/nv50.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/clock/nv50.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/nv84.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clock/nv84.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/clock/nv84.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/clock/nv84.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/nva3.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clock/nva3.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/clock/nva3.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/clock/nva3.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/nva3.h b/drivers/gpu/drm/nouveau/nvkm/subdev/clock/nva3.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/clock/nva3.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/clock/nva3.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/nvaa.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clock/nvaa.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/clock/nvaa.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/clock/nvaa.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clock/nvc0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/clock/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/clock/nvc0.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/nve0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clock/nve0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/clock/nve0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/clock/nve0.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/pll.h b/drivers/gpu/drm/nouveau/nvkm/subdev/clock/pll.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/clock/pll.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/clock/pll.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/pllnv04.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clock/pllnv04.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/clock/pllnv04.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/clock/pllnv04.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/pllnva3.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clock/pllnva3.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/clock/pllnva3.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/clock/pllnva3.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/seq.h b/drivers/gpu/drm/nouveau/nvkm/subdev/clock/seq.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/clock/seq.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/clock/seq.h
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/Kbuild
new file mode 100644
index 0000000..4321e28
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/Kbuild
@@ -0,0 +1,14 @@
+nvkm-y += nvkm/subdev/devinit/base.o
+nvkm-y += nvkm/subdev/devinit/nv04.o
+nvkm-y += nvkm/subdev/devinit/nv05.o
+nvkm-y += nvkm/subdev/devinit/nv10.o
+nvkm-y += nvkm/subdev/devinit/nv1a.o
+nvkm-y += nvkm/subdev/devinit/nv20.o
+nvkm-y += nvkm/subdev/devinit/nv50.o
+nvkm-y += nvkm/subdev/devinit/nv84.o
+nvkm-y += nvkm/subdev/devinit/nv98.o
+nvkm-y += nvkm/subdev/devinit/nva3.o
+nvkm-y += nvkm/subdev/devinit/nvaf.o
+nvkm-y += nvkm/subdev/devinit/nvc0.o
+nvkm-y += nvkm/subdev/devinit/gm107.o
+nvkm-y += nvkm/subdev/devinit/gm204.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/devinit/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/devinit/base.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/devinit/base.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/devinit/fbmem.h b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/fbmem.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/devinit/fbmem.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/devinit/fbmem.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/devinit/gm107.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm107.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/devinit/gm107.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm107.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/devinit/gm204.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm204.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/devinit/gm204.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm204.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/devinit/nv04.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/devinit/nv04.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/devinit/nv04.h b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/devinit/nv04.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/devinit/nv05.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv05.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/devinit/nv05.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv05.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/devinit/nv10.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv10.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/devinit/nv10.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv10.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/devinit/nv1a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv1a.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/devinit/nv1a.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv1a.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/devinit/nv20.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv20.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/devinit/nv20.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv20.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/devinit/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/devinit/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/devinit/nv50.h b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/devinit/nv50.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/devinit/nv84.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv84.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/devinit/nv84.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv84.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/devinit/nv98.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv98.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/devinit/nv98.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv98.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/devinit/nva3.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nva3.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/devinit/nva3.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nva3.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/devinit/nvaf.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nvaf.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/devinit/nvaf.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nvaf.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/devinit/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nvc0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/devinit/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nvc0.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/devinit/priv.h b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/priv.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/devinit/priv.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/devinit/priv.h
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/Kbuild
new file mode 100644
index 0000000..bfd0166
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/Kbuild
@@ -0,0 +1,45 @@
+nvkm-y += nvkm/subdev/fb/base.o
+nvkm-y += nvkm/subdev/fb/nv04.o
+nvkm-y += nvkm/subdev/fb/nv10.o
+nvkm-y += nvkm/subdev/fb/nv1a.o
+nvkm-y += nvkm/subdev/fb/nv20.o
+nvkm-y += nvkm/subdev/fb/nv25.o
+nvkm-y += nvkm/subdev/fb/nv30.o
+nvkm-y += nvkm/subdev/fb/nv35.o
+nvkm-y += nvkm/subdev/fb/nv36.o
+nvkm-y += nvkm/subdev/fb/nv40.o
+nvkm-y += nvkm/subdev/fb/nv41.o
+nvkm-y += nvkm/subdev/fb/nv44.o
+nvkm-y += nvkm/subdev/fb/nv46.o
+nvkm-y += nvkm/subdev/fb/nv47.o
+nvkm-y += nvkm/subdev/fb/nv49.o
+nvkm-y += nvkm/subdev/fb/nv4e.o
+nvkm-y += nvkm/subdev/fb/nv50.o
+nvkm-y += nvkm/subdev/fb/nv84.o
+nvkm-y += nvkm/subdev/fb/nva3.o
+nvkm-y += nvkm/subdev/fb/nvaa.o
+nvkm-y += nvkm/subdev/fb/nvaf.o
+nvkm-y += nvkm/subdev/fb/nvc0.o
+nvkm-y += nvkm/subdev/fb/nve0.o
+nvkm-y += nvkm/subdev/fb/gk20a.o
+nvkm-y += nvkm/subdev/fb/gm107.o
+nvkm-y += nvkm/subdev/fb/ramnv04.o
+nvkm-y += nvkm/subdev/fb/ramnv10.o
+nvkm-y += nvkm/subdev/fb/ramnv1a.o
+nvkm-y += nvkm/subdev/fb/ramnv20.o
+nvkm-y += nvkm/subdev/fb/ramnv40.o
+nvkm-y += nvkm/subdev/fb/ramnv41.o
+nvkm-y += nvkm/subdev/fb/ramnv44.o
+nvkm-y += nvkm/subdev/fb/ramnv49.o
+nvkm-y += nvkm/subdev/fb/ramnv4e.o
+nvkm-y += nvkm/subdev/fb/ramnv50.o
+nvkm-y += nvkm/subdev/fb/ramnva3.o
+nvkm-y += nvkm/subdev/fb/ramnvaa.o
+nvkm-y += nvkm/subdev/fb/ramnvc0.o
+nvkm-y += nvkm/subdev/fb/ramnve0.o
+nvkm-y += nvkm/subdev/fb/ramgk20a.o
+nvkm-y += nvkm/subdev/fb/ramgm107.o
+nvkm-y += nvkm/subdev/fb/sddr2.o
+nvkm-y += nvkm/subdev/fb/sddr3.o
+nvkm-y += nvkm/subdev/fb/gddr3.o
+nvkm-y += nvkm/subdev/fb/gddr5.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/base.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/gddr3.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr3.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/gddr3.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr3.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/gddr5.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr5.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/gddr5.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr5.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/gk20a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk20a.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/gk20a.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk20a.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/gm107.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/gm107.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/gm107.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/gm107.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv04.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv04.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv04.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv04.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv04.h b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv04.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv04.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv04.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv10.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv10.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv10.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv10.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv1a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv1a.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv1a.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv1a.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv20.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv20.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv20.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv20.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv25.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv25.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv25.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv25.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv30.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv30.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv30.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv30.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv35.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv35.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv35.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv35.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv36.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv36.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv36.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv36.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv40.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv40.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv40.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv40.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv40.h b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv40.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv40.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv40.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv41.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv41.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv41.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv41.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv44.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv44.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv44.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv44.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv46.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv46.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv46.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv46.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv47.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv47.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv47.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv47.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv49.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv49.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv49.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv49.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv4e.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv4e.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv4e.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv4e.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv50.h b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv50.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nv84.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv84.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nv84.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv84.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nva3.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nva3.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nva3.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nva3.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nvaa.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nvaa.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nvaa.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nvaa.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nvaf.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nvaf.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nvaf.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nvaf.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nvc0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nvc0.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nvc0.h b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nvc0.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nvc0.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nvc0.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/nve0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/nve0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/nve0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/nve0.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/priv.h b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/priv.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/priv.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/priv.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramfuc.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramfuc.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramgk20a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk20a.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/ramgk20a.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk20a.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramgm107.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgm107.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/ramgm107.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgm107.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramnv04.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv04.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/ramnv04.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv04.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramnv10.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv10.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/ramnv10.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv10.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramnv1a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/ramnv1a.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramnv20.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv20.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/ramnv20.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv20.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramnv40.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv40.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/ramnv40.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv40.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramnv41.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv41.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/ramnv41.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv41.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramnv44.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv44.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/ramnv44.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv44.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramnv49.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv49.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/ramnv49.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv49.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramnv4e.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv4e.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/ramnv4e.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv4e.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramnv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/ramnv50.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramnva3.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnva3.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/ramnva3.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnva3.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramnvaa.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnvaa.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/ramnvaa.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnvaa.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramnvc0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnvc0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/ramnvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnvc0.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramnve0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnve0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/ramnve0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnve0.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramseq.h b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramseq.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/ramseq.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramseq.h
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/fb/regsnv04.h b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/regsnv04.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/include/subdev/fb/regsnv04.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/regsnv04.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/sddr2.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/sddr2.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/sddr2.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/sddr2.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/sddr3.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/sddr3.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fb/sddr3.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fb/sddr3.c
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fuse/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/fuse/Kbuild
new file mode 100644
index 0000000..0458bce
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fuse/Kbuild
@@ -0,0 +1,4 @@
+nvkm-y += nvkm/subdev/fuse/base.o
+nvkm-y += nvkm/subdev/fuse/g80.o
+nvkm-y += nvkm/subdev/fuse/gf100.o
+nvkm-y += nvkm/subdev/fuse/gm107.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fuse/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fuse/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fuse/base.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fuse/base.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fuse/g80.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fuse/g80.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fuse/g80.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fuse/g80.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fuse/gf100.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gf100.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fuse/gf100.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gf100.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fuse/gm107.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gm107.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fuse/gm107.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gm107.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fuse/priv.h b/drivers/gpu/drm/nouveau/nvkm/subdev/fuse/priv.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/fuse/priv.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/fuse/priv.h
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/Kbuild
new file mode 100644
index 0000000..77bc886
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/Kbuild
@@ -0,0 +1,6 @@
+nvkm-y += nvkm/subdev/gpio/base.o
+nvkm-y += nvkm/subdev/gpio/nv10.o
+nvkm-y += nvkm/subdev/gpio/nv50.o
+nvkm-y += nvkm/subdev/gpio/nv94.o
+nvkm-y += nvkm/subdev/gpio/nvd0.o
+nvkm-y += nvkm/subdev/gpio/nve0.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/gpio/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/gpio/base.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/gpio/nv10.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv10.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/gpio/nv10.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv10.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/gpio/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/gpio/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/gpio/nv94.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv94.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/gpio/nv94.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv94.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/gpio/nvd0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nvd0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/gpio/nvd0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nvd0.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/gpio/nve0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nve0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/gpio/nve0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nve0.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/gpio/priv.h b/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/priv.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/gpio/priv.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/gpio/priv.h
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/Kbuild
new file mode 100644
index 0000000..cc8bd83
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/Kbuild
@@ -0,0 +1,16 @@
+nvkm-y += nvkm/subdev/i2c/base.o
+nvkm-y += nvkm/subdev/i2c/anx9805.o
+nvkm-y += nvkm/subdev/i2c/aux.o
+nvkm-y += nvkm/subdev/i2c/bit.o
+nvkm-y += nvkm/subdev/i2c/pad.o
+nvkm-y += nvkm/subdev/i2c/padnv04.o
+nvkm-y += nvkm/subdev/i2c/padnv94.o
+nvkm-y += nvkm/subdev/i2c/padgm204.o
+nvkm-y += nvkm/subdev/i2c/nv04.o
+nvkm-y += nvkm/subdev/i2c/nv4e.o
+nvkm-y += nvkm/subdev/i2c/nv50.o
+nvkm-y += nvkm/subdev/i2c/nv94.o
+nvkm-y += nvkm/subdev/i2c/nvd0.o
+nvkm-y += nvkm/subdev/i2c/gf117.o
+nvkm-y += nvkm/subdev/i2c/nve0.o
+nvkm-y += nvkm/subdev/i2c/gm204.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/anx9805.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/anx9805.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/anx9805.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/anx9805.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/aux.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/aux.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/base.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/bit.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bit.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/bit.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bit.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/gf117.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf117.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/gf117.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf117.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/gm204.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gm204.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/gm204.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gm204.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/nv04.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv04.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/nv04.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv04.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/nv4e.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv4e.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/nv4e.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv4e.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/nv50.h b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/nv50.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/nv94.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv94.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/nv94.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv94.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/nvd0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nvd0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/nvd0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nvd0.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/nve0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nve0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/nve0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nve0.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/pad.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/pad.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/pad.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/pad.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/pad.h b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/pad.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/pad.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/pad.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/padgm204.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padgm204.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/padgm204.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padgm204.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/padnv04.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padnv04.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/padnv04.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padnv04.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/padnv94.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padnv94.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/padnv94.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padnv94.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/port.h b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/port.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/port.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/port.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/i2c/priv.h b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/priv.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/i2c/priv.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/i2c/priv.h
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/ibus/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/ibus/Kbuild
new file mode 100644
index 0000000..a006e53
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/ibus/Kbuild
@@ -0,0 +1,3 @@
+nvkm-y += nvkm/subdev/ibus/nvc0.o
+nvkm-y += nvkm/subdev/ibus/nve0.o
+nvkm-y += nvkm/subdev/ibus/gk20a.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/ibus/gk20a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gk20a.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/ibus/gk20a.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gk20a.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/ibus/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/ibus/nvc0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/ibus/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/ibus/nvc0.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/ibus/nve0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/ibus/nve0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/ibus/nve0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/ibus/nve0.c
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/Kbuild
new file mode 100644
index 0000000..e6f35ab
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/Kbuild
@@ -0,0 +1,4 @@
+nvkm-y += nvkm/subdev/instmem/base.o
+nvkm-y += nvkm/subdev/instmem/nv04.o
+nvkm-y += nvkm/subdev/instmem/nv40.o
+nvkm-y += nvkm/subdev/instmem/nv50.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/instmem/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/instmem/base.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/instmem/base.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/instmem/nv04.c b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/instmem/nv04.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/instmem/nv04.h b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/instmem/nv04.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/instmem/nv40.c b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/instmem/nv40.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/instmem/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/instmem/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/instmem/priv.h b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/priv.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/instmem/priv.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/instmem/priv.h
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/ltc/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/ltc/Kbuild
new file mode 100644
index 0000000..e5df3d8
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/ltc/Kbuild
@@ -0,0 +1,4 @@
+nvkm-y += nvkm/subdev/ltc/base.o
+nvkm-y += nvkm/subdev/ltc/gf100.o
+nvkm-y += nvkm/subdev/ltc/gk104.o
+nvkm-y += nvkm/subdev/ltc/gm107.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/ltc/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/ltc/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/ltc/base.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/ltc/base.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/ltc/gf100.c b/drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gf100.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/ltc/gf100.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gf100.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/ltc/gk104.c b/drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gk104.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/ltc/gk104.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gk104.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/ltc/gm107.c b/drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm107.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/ltc/gm107.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm107.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/ltc/priv.h b/drivers/gpu/drm/nouveau/nvkm/subdev/ltc/priv.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/ltc/priv.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/ltc/priv.h
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mc/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/mc/Kbuild
new file mode 100644
index 0000000..24b589b
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mc/Kbuild
@@ -0,0 +1,11 @@
+nvkm-y += nvkm/subdev/mc/base.o
+nvkm-y += nvkm/subdev/mc/nv04.o
+nvkm-y += nvkm/subdev/mc/nv40.o
+nvkm-y += nvkm/subdev/mc/nv44.o
+nvkm-y += nvkm/subdev/mc/nv4c.o
+nvkm-y += nvkm/subdev/mc/nv50.o
+nvkm-y += nvkm/subdev/mc/nv94.o
+nvkm-y += nvkm/subdev/mc/nv98.o
+nvkm-y += nvkm/subdev/mc/nvc0.o
+nvkm-y += nvkm/subdev/mc/nvc3.o
+nvkm-y += nvkm/subdev/mc/gk20a.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mc/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/mc/base.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mc/gk20a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mc/gk20a.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/mc/gk20a.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/mc/gk20a.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mc/nv04.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv04.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/mc/nv04.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv04.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mc/nv04.h b/drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv04.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/mc/nv04.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv04.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mc/nv40.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv40.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/mc/nv40.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv40.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mc/nv44.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv44.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/mc/nv44.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv44.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mc/nv4c.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv4c.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/mc/nv4c.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv4c.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mc/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/mc/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mc/nv94.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv94.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/mc/nv94.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv94.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mc/nv98.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv98.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/mc/nv98.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv98.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mc/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mc/nvc0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/mc/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/mc/nvc0.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mc/nvc3.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mc/nvc3.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/mc/nvc3.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/mc/nvc3.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mc/priv.h b/drivers/gpu/drm/nouveau/nvkm/subdev/mc/priv.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/mc/priv.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/mc/priv.h
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mxm/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/mxm/Kbuild
new file mode 100644
index 0000000..1a479e0
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mxm/Kbuild
@@ -0,0 +1,3 @@
+nvkm-y += nvkm/subdev/mxm/base.o
+nvkm-y += nvkm/subdev/mxm/mxms.o
+nvkm-y += nvkm/subdev/mxm/nv50.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mxm/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/mxm/base.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mxm/mxms.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/mxm/mxms.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mxm/mxms.h b/drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/mxm/mxms.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mxm/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/mxm/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/Kbuild
new file mode 100644
index 0000000..a664886
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/Kbuild
@@ -0,0 +1,8 @@
+nvkm-y += nvkm/subdev/pwr/base.o
+nvkm-y += nvkm/subdev/pwr/memx.o
+nvkm-y += nvkm/subdev/pwr/nva3.o
+nvkm-y += nvkm/subdev/pwr/nvc0.o
+nvkm-y += nvkm/subdev/pwr/nvd0.o
+nvkm-y += nvkm/subdev/pwr/gk104.o
+nvkm-y += nvkm/subdev/pwr/nv108.o
+nvkm-y += nvkm/subdev/pwr/gk20a.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/base.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/base.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/arith.fuc b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/arith.fuc
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/arith.fuc
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/arith.fuc
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/host.fuc b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/host.fuc
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/host.fuc
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/host.fuc
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/i2c_.fuc b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/i2c_.fuc
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/i2c_.fuc
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/i2c_.fuc
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/idle.fuc b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/idle.fuc
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/idle.fuc
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/idle.fuc
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/kernel.fuc b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/kernel.fuc
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/kernel.fuc
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/kernel.fuc
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/macros.fuc b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/macros.fuc
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/macros.fuc
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/macros.fuc
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/memx.fuc b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/memx.fuc
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/memx.fuc
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/memx.fuc
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/nv108.fuc5
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/nv108.fuc5
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc.h b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/nv108.fuc5.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/nv108.fuc5.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/nva3.fuc3
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/nva3.fuc3
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc.h b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/nva3.fuc3.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/nva3.fuc3.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/nvc0.fuc3
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/nvc0.fuc3
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc.h b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/nvc0.fuc3.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/nvc0.fuc3.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/nvd0.fuc4
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/nvd0.fuc4
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc.h b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/nvd0.fuc4.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/nvd0.fuc4.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/os.h b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/os.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/os.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/os.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/perf.fuc b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/perf.fuc
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/perf.fuc
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/perf.fuc
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/test.fuc b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/test.fuc
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/test.fuc
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/fuc/test.fuc
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/gk104.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/gk104.c
similarity index 98%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/gk104.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/gk104.c
index d766129..9bb419c 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/pwr/gk104.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/gk104.c
@@ -26,7 +26,7 @@
 
 #define nvd0_pwr_code gk104_pwr_code
 #define nvd0_pwr_data gk104_pwr_data
-#include "fuc/nvd0.fuc.h"
+#include "fuc/nvd0.fuc4.h"
 
 static void
 gk104_pwr_pgob(struct nouveau_pwr *ppwr, bool enable)
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/gk20a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/gk20a.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/gk20a.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/gk20a.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/memx.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/memx.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/memx.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/memx.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/nv108.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/nv108.c
similarity index 97%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/nv108.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/nv108.c
index 04ff7c3..dacee08 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/pwr/nv108.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/nv108.c
@@ -23,7 +23,7 @@
  */
 
 #include "priv.h"
-#include "fuc/nv108.fuc.h"
+#include "fuc/nv108.fuc5.h"
 
 struct nouveau_oclass *
 nv108_pwr_oclass = &(struct nvkm_pwr_impl) {
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/nva3.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/nva3.c
similarity index 98%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/nva3.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/nva3.c
index 998d530..f8325a6 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/pwr/nva3.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/nva3.c
@@ -23,7 +23,7 @@
  */
 
 #include "priv.h"
-#include "fuc/nva3.fuc.h"
+#include "fuc/nva3.fuc3.h"
 
 static int
 nva3_pwr_init(struct nouveau_object *object)
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/nvc0.c
similarity index 98%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/nvc0.c
index 9a773e6..669417c 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/pwr/nvc0.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/nvc0.c
@@ -23,7 +23,7 @@
  */
 
 #include "priv.h"
-#include "fuc/nvc0.fuc.h"
+#include "fuc/nvc0.fuc3.h"
 
 struct nouveau_oclass *
 nvc0_pwr_oclass = &(struct nvkm_pwr_impl) {
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/nvd0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/nvd0.c
similarity index 98%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/nvd0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/nvd0.c
index 2b29be5..d6e33d0 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/pwr/nvd0.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/nvd0.c
@@ -23,7 +23,7 @@
  */
 
 #include "priv.h"
-#include "fuc/nvd0.fuc.h"
+#include "fuc/nvd0.fuc4.h"
 
 struct nouveau_oclass *
 nvd0_pwr_oclass = &(struct nvkm_pwr_impl) {
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/priv.h b/drivers/gpu/drm/nouveau/nvkm/subdev/pwr/priv.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/priv.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/priv.h
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/Kbuild
new file mode 100644
index 0000000..9ac82070
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/Kbuild
@@ -0,0 +1,13 @@
+nvkm-y += nvkm/subdev/therm/base.o
+nvkm-y += nvkm/subdev/therm/fan.o
+nvkm-y += nvkm/subdev/therm/fannil.o
+nvkm-y += nvkm/subdev/therm/fanpwm.o
+nvkm-y += nvkm/subdev/therm/fantog.o
+nvkm-y += nvkm/subdev/therm/ic.o
+nvkm-y += nvkm/subdev/therm/temp.o
+nvkm-y += nvkm/subdev/therm/nv40.o
+nvkm-y += nvkm/subdev/therm/nv50.o
+nvkm-y += nvkm/subdev/therm/nv84.o
+nvkm-y += nvkm/subdev/therm/nva3.o
+nvkm-y += nvkm/subdev/therm/nvd0.o
+nvkm-y += nvkm/subdev/therm/gm107.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/therm/base.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/fan.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/therm/fan.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/fannil.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fannil.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/therm/fannil.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/therm/fannil.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/fanpwm.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/therm/fanpwm.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/fantog.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/therm/fantog.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/gm107.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm107.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/therm/gm107.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm107.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/ic.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/therm/ic.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/nv40.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/therm/nv40.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/therm/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/nv84.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv84.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/therm/nv84.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv84.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/nva3.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/nva3.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/therm/nva3.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/therm/nva3.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/nvd0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/nvd0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/therm/nvd0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/therm/nvd0.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/priv.h b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/priv.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/therm/priv.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/therm/priv.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/temp.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/therm/temp.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/timer/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/timer/Kbuild
new file mode 100644
index 0000000..d1d38b4
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/timer/Kbuild
@@ -0,0 +1,3 @@
+nvkm-y += nvkm/subdev/timer/base.o
+nvkm-y += nvkm/subdev/timer/nv04.o
+nvkm-y += nvkm/subdev/timer/gk20a.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/timer/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/timer/base.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/timer/gk20a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/timer/gk20a.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/timer/gk20a.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/timer/gk20a.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/timer/nv04.c b/drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/timer/nv04.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/timer/nv04.h b/drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/timer/nv04.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/timer/priv.h b/drivers/gpu/drm/nouveau/nvkm/subdev/timer/priv.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/timer/priv.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/timer/priv.h
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/vm/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/vm/Kbuild
new file mode 100644
index 0000000..b0290c0
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/vm/Kbuild
@@ -0,0 +1,6 @@
+nvkm-y += nvkm/subdev/vm/base.o
+nvkm-y += nvkm/subdev/vm/nv04.o
+nvkm-y += nvkm/subdev/vm/nv41.o
+nvkm-y += nvkm/subdev/vm/nv44.o
+nvkm-y += nvkm/subdev/vm/nv50.o
+nvkm-y += nvkm/subdev/vm/nvc0.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/vm/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/vm/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/vm/base.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/vm/base.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/vm/nv04.c b/drivers/gpu/drm/nouveau/nvkm/subdev/vm/nv04.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/vm/nv04.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/vm/nv04.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/vm/nv04.h b/drivers/gpu/drm/nouveau/nvkm/subdev/vm/nv04.h
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/vm/nv04.h
rename to drivers/gpu/drm/nouveau/nvkm/subdev/vm/nv04.h
diff --git a/drivers/gpu/drm/nouveau/core/subdev/vm/nv41.c b/drivers/gpu/drm/nouveau/nvkm/subdev/vm/nv41.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/vm/nv41.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/vm/nv41.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/vm/nv44.c b/drivers/gpu/drm/nouveau/nvkm/subdev/vm/nv44.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/vm/nv44.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/vm/nv44.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/vm/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/vm/nv50.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/vm/nv50.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/vm/nv50.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/vm/nvc0.c b/drivers/gpu/drm/nouveau/nvkm/subdev/vm/nvc0.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/vm/nvc0.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/vm/nvc0.c
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/volt/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/volt/Kbuild
new file mode 100644
index 0000000..6b46ff4
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/volt/Kbuild
@@ -0,0 +1,4 @@
+nvkm-y += nvkm/subdev/volt/base.o
+nvkm-y += nvkm/subdev/volt/gpio.o
+nvkm-y += nvkm/subdev/volt/nv40.o
+nvkm-y += nvkm/subdev/volt/gk20a.o
diff --git a/drivers/gpu/drm/nouveau/core/subdev/volt/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/volt/base.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/volt/gk20a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk20a.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/volt/gk20a.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk20a.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/volt/gpio.c b/drivers/gpu/drm/nouveau/nvkm/subdev/volt/gpio.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/volt/gpio.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/volt/gpio.c
diff --git a/drivers/gpu/drm/nouveau/core/subdev/volt/nv40.c b/drivers/gpu/drm/nouveau/nvkm/subdev/volt/nv40.c
similarity index 100%
rename from drivers/gpu/drm/nouveau/core/subdev/volt/nv40.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/volt/nv40.c