diff --git a/drivers/gpu/drm/nouveau/Kbuild b/drivers/gpu/drm/nouveau/Kbuild
new file mode 100644
index 0000000000000000000000000000000000000000..2b765663c1a3f127f9f24e6c7788bbf77eb2348f
--- /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 1febf6ec0b697896a2e5c540815bcac1228e03ce..0000000000000000000000000000000000000000
--- 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 f1ac4859edd443f71aa1e3a591eb17630e44b6bd..0000000000000000000000000000000000000000
--- 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 1b798538a725269152ce2c7e95a041cd5135eab4..0000000000000000000000000000000000000000
--- 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 8569c86907c54c08f9e94e916d62cbd91eff7385..0000000000000000000000000000000000000000
--- 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 69d99292bca4b69ff249939f4f9c6f9b9c4277b6..0000000000000000000000000000000000000000
--- 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 28352f0882ec2345bb5d76397f082bdc9f81ebe2..8b0048426ee5ef42e1f097e83932a2a6c81759f8 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 43180f9fe630d6ae6f65c7bbc96e1579940a9d02..4aa1b93a8cd4f0ef24f71ec1c9f08ecf92da6bff 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 0000000000000000000000000000000000000000..cd57e238ddd34db82765d171b15e79c845b01bca
--- /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 3d1cfcb96b6bfd9e7dfa50e282d6e3761009f7e1..2e0d1d998ca679bd7d9f1f243b954bf92b992200 100644
--- a/drivers/gpu/drm/nouveau/nouveau_ttm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c
@@ -203,7 +203,7 @@ const struct ttm_mem_type_manager_func nouveau_gart_manager = {
 };
 
 /*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 0000000000000000000000000000000000000000..ff8ed3a04d0648db70b6adada843be04bfc0fb20
--- /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 3f7ac5bc8e03990426c70a2e3c17622fe9edfb53..80b96844221e1c19ce6247b0f08bf723d4308298 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 f477579725e3e482634a024d60ebc14736c2041a..6f72244c52cd89294c241d2e8d2ff5aaa764970d 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 dd85b56f6aa502a9ba65dcb9d9e9b2e61da7f664..3ab4e2f8cc12ef8b6b930304bc2d4c2cf2b801f4 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 bd744b2cf5cfac686829120d160867cfb386b299..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..2832147b676c33ea4140194f830699df99292cf4
--- /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 0000000000000000000000000000000000000000..a2bdb20691132ca49f82d4ec5807be3843a14a87
--- /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 0000000000000000000000000000000000000000..ebd30be3a62d4f45276a9d843106c3a3c8d0c70c
--- /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 0000000000000000000000000000000000000000..da54c5610a675264ed06a8a82176139940c975ba
--- /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 0000000000000000000000000000000000000000..d8aa5edba726034606d03c498dcaef834bef9693
--- /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 99%
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 219850d53286c967e5a09a0c259f29303b0a2ebd..33b67dc711ac726ae2f88c82721eff248a6c79bb 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 @@ dispatch_table:
 // 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 @@ dispatch_dma:
 .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 @@ ih:
 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 @@ ifdef(`NVA3', `
    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 @@ chsw:
    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 @@ ifdef(`NVA3',
          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 @@ cmd_pm_trigger:
    iowr I[$r2] $r3
    ret
 
-ifdef(`NVA3',
+#ifdef NVA3
 // SET_DMA_* method handler
 //
 // Inputs:
@@ -419,7 +418,7 @@ cmd_dma:
    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 @@ cmd_exec_set_surface_tiled:
    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 0000000000000000000000000000000000000000..e670620227e7f1d3fa0dd88443427757a94acd91
--- /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 0000000000000000000000000000000000000000..df6866c34e1613838c645c1ad607e1257c80a891
--- /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 abb410ef09eab09b4fe149c955d4504905d1d2f1..13c05e09ff873ab89ca83c795e18045923ee1082 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 20a8cd7f77309881c6c1c73675a5e821e12d2e9e..abe324993eaf3816e3267295c30ac81e1bd966b6 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 0000000000000000000000000000000000000000..eaeafdf3bc817007781ba75dba10d50cf63de444
--- /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 5571c09534cb6f8a07edfaf711ca0049d4d70a11..e0838c46ec177935e14ba1001f023b1408330755 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 0000000000000000000000000000000000000000..77d06d46eff4641003056e2592f0a527a01b0e40
--- /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 0000000000000000000000000000000000000000..50bd1e2bb8fac19152d442bfa658ab3891257e97
--- /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 0000000000000000000000000000000000000000..4f9286a038eff4dddd9e65b9354461ea62959ba0
--- /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 0000000000000000000000000000000000000000..f38820faf44f85e5699e827d5374b775d4c0234a
--- /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 0000000000000000000000000000000000000000..fd56e979344b02d8530e2b6ca97689961e82168e
--- /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 17251e4b9e8647c7dd52b4bc7eebbe052a485259..3e90e437dbbefbec034fa2d9c118fee28f56720d 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 @@ nvc0_graph_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
 	return 0;
 }
 
-#include "fuc/hubnvc0.fuc.h"
+#include "fuc/hubnvc0.fuc3.h"
 
 struct nvc0_graph_ucode
 nvc0_graph_fecs_ucode = {
@@ -1640,7 +1640,7 @@ nvc0_graph_fecs_ucode = {
 	.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 41e8445c7eeaa81e69b5732027c84b19ce556b85..6f9f5ede5588ed8d08cf31d09acfdf974905e7f0 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 @@ nvd7_graph_pack_mmio[] = {
  * 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 @@ nvd7_graph_fecs_ucode = {
 	.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 0c71f5c67ae029b73ddcb6fef7776e446ddf82b2..83a966fc5301b8bfdad79f67f7fde59c5d98b656 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 @@ nve4_graph_init(struct nouveau_object *object)
 	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 @@ nve4_graph_fecs_ucode = {
 	.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 99%
rename from drivers/gpu/drm/nouveau/core/engine/graph/nvf0.c
rename to drivers/gpu/drm/nouveau/nvkm/engine/graph/nvf0.c
index c306c0f2fc84a28d8c4ece9b2494b8cea437daa0..73f77fa04a623dff7a8ccc8f1432be9f765c6754 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 @@ nvf0_graph_fini(struct nouveau_object *object, bool suspend)
 	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 @@ nvf0_graph_fecs_ucode = {
 	.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 0000000000000000000000000000000000000000..39a045bcaf6e18dad8f3255de0b9834b77b3dc12
--- /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 0000000000000000000000000000000000000000..d5f574c4e7b2855308570d9094960da144f10aec
--- /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 0000000000000000000000000000000000000000..0c1de976f45ddc0a275725f3e04b82d65988dde4
--- /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 0000000000000000000000000000000000000000..e1332a15dc1b98e540e710e55eb26582445904e5
--- /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 0000000000000000000000000000000000000000..6c1d9d1ede946194b13654b0976a9cae3da793f3
--- /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 0000000000000000000000000000000000000000..10ef07cf3f91353a41cf850816e56cfb44c5669e
--- /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 0000000000000000000000000000000000000000..922454f97de2abcfa59982d98a7dc6b30be932c7
--- /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 0000000000000000000000000000000000000000..64730d5e9351c9d596065c432b1b5a36347acfb8
--- /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 0000000000000000000000000000000000000000..633e9b4b6a3aeee81d3f5e13c311e5333bccb1da
--- /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 0000000000000000000000000000000000000000..f0a86021fbb1621b396ab754dcf86bcbc5eb0438
--- /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 0000000000000000000000000000000000000000..4321e285c51c3e348e7379a452e7ac63643452e6
--- /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 0000000000000000000000000000000000000000..bfd0166d3e1bdef77c8034ad7c363e08647e9f90
--- /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 0000000000000000000000000000000000000000..0458bce2ceeb44a0b0982dc2c47ff973147360a2
--- /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 0000000000000000000000000000000000000000..77bc88672af6c3db485f06f80e8252d85e459414
--- /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 0000000000000000000000000000000000000000..cc8bd8368358031e18c7221e1e1d1e292b6afba7
--- /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 0000000000000000000000000000000000000000..a006e535e4508fedeb4140adeb22ab86025175ef
--- /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 0000000000000000000000000000000000000000..e6f35abe787973499cd212fc1ee40b40ddc40344
--- /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 0000000000000000000000000000000000000000..e5df3d865f0cfd6c1a095ae2e637445d847d56e2
--- /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 0000000000000000000000000000000000000000..24b589b5001a4137e1df7437fbbec4000ac2fdd1
--- /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 0000000000000000000000000000000000000000..1a479e050b5490599f3281921d75564946720bd8
--- /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 0000000000000000000000000000000000000000..a664886040f4d7ba28fddde4829c0b87c46b1ba4
--- /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 d76612999b9f34fcd23589fe303fa1ac7155d603..9bb419c9045117be40ea54cf139c7ec6583ff1d6 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 98%
rename from drivers/gpu/drm/nouveau/core/subdev/pwr/nv108.c
rename to drivers/gpu/drm/nouveau/nvkm/subdev/pwr/nv108.c
index 04ff7c3c34e96dff464bdbb9634058d9a502b907..dacee084a6b2c8dca464f2eb7f72bf00fa801ce1 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 998d53076b8b5d53d4140b608fffeac0994f40bc..f8325a697cd8350401d587c295c8a3315ca614d9 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 9a773e66efa432b765133ae15970163f69aec4c8..669417c23f9caf71a4541dd9aa16add3523c7bad 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 2b29be5d08ac5d3b834d14fcd266393bc85f5663..d6e33d0a0544cf6c633643d2b5f7291d6dd7208d 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 0000000000000000000000000000000000000000..9ac82070944a085a0933ceb66443b120a3054b93
--- /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 0000000000000000000000000000000000000000..d1d38b4ba30acb80096bc2e3d715d6dcea6aba29
--- /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 0000000000000000000000000000000000000000..b0290c05663076b6f6424caa48a696cd24dd9bc3
--- /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 0000000000000000000000000000000000000000..6b46ff4213a31c0359519884e0e41a59ad1bb2cf
--- /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