Module Name:    src
Committed By:   riastradh
Date:           Wed Aug  6 13:36:08 UTC 2014

Added Files:
        src/sys/external/bsd/drm2/nouveau: files.nouveau nouveau_module.c

Log Message:
Add local support files for nouveau.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/sys/external/bsd/drm2/nouveau/files.nouveau \
    src/sys/external/bsd/drm2/nouveau/nouveau_module.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: src/sys/external/bsd/drm2/nouveau/files.nouveau
diff -u /dev/null src/sys/external/bsd/drm2/nouveau/files.nouveau:1.1
--- /dev/null	Wed Aug  6 13:36:08 2014
+++ src/sys/external/bsd/drm2/nouveau/files.nouveau	Wed Aug  6 13:36:07 2014
@@ -0,0 +1,352 @@
+#	$NetBSD: files.nouveau,v 1.1 2014/08/06 13:36:07 riastradh Exp $
+
+device	nouveau: drmkms, drmkms_pci, drmkms_ttm, genfb, wsemuldisplaydev
+attach	nouveau at pci
+
+makeoptions	nouveau	CPPFLAGS+="-I$S/external/bsd/drm2/dist/drm/nouveau"
+makeoptions	nouveau	CPPFLAGS+="-I$S/external/bsd/drm2/dist/drm/nouveau/core"
+makeoptions	nouveau	CPPFLAGS+="-I$S/external/bsd/drm2/dist/drm/nouveau/core/include"
+
+# XXX DEBUG ALL THE BUGS!
+makeoptions	nouveau	CPPFLAGS+="-DCONFIG_NOUVEAU_DEBUG=1000"
+makeoptions	nouveau	CPPFLAGS+="-DCONFIG_NOUVEAU_DEBUG_DEFAULT=6"
+
+makeoptions	nouveau	"CWARNFLAGS.nouveau_core_client.c"+="-Wno-missing-field-initializers"
+makeoptions	nouveau	"CWARNFLAGS.nouveau_core_gpuobj.c"+="-Wno-missing-field-initializers"
+
+file	external/bsd/drm2/nouveau/nouveau_module.c	nouveau
+
+# Generated from nouveau2netbsd.
+file	external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_client.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_engctx.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_engine.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_enum.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_event.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_gpuobj.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_handle.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_mm.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_namedb.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_object.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_option.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_parent.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_printk.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_ramht.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/core/nouveau_core_subdev.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/bsp/nouveau_engine_bsp_nv84.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/bsp/nouveau_engine_bsp_nv98.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/bsp/nouveau_engine_bsp_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/bsp/nouveau_engine_bsp_nve0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/copy/nouveau_engine_copy_nva3.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/copy/nouveau_engine_copy_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/copy/nouveau_engine_copy_nve0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/crypt/nouveau_engine_crypt_nv84.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/crypt/nouveau_engine_crypt_nv98.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_ctrl.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_gm100.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_nv04.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_nv10.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_nv20.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_nv30.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_nv40.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_nve0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_dacnv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_dport.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_gm107.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_hdanva3.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_hdanvd0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_hdminv84.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_hdminva3.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_hdminvd0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nv04.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nv84.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nv94.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nva0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nva3.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nvd0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nve0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nvf0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_piornv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_sornv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_sornv94.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_sornvd0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_vga.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/dmaobj/nouveau_engine_dmaobj_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/dmaobj/nouveau_engine_dmaobj_nv04.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/dmaobj/nouveau_engine_dmaobj_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/dmaobj/nouveau_engine_dmaobj_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/dmaobj/nouveau_engine_dmaobj_nvd0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nv04.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nv10.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nv108.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nv17.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nv40.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nv84.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_ctxgm107.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_ctxnv108.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_ctxnv40.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_ctxnv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_ctxnvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_ctxnvc1.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_ctxnvc4.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_ctxnvc8.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_ctxnvd7.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_ctxnvd9.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_ctxnve4.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_ctxnvf0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_gm107.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nv04.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nv10.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nv108.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nv20.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nv25.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nv2a.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nv30.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nv34.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nv35.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nv40.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nvc1.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nvc4.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nvc8.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nvd7.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nvd9.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nve4.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_nvf0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/mpeg/nouveau_engine_mpeg_nv31.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/mpeg/nouveau_engine_mpeg_nv40.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/mpeg/nouveau_engine_mpeg_nv44.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/mpeg/nouveau_engine_mpeg_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/mpeg/nouveau_engine_mpeg_nv84.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/nouveau_engine_falcon.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/nouveau_engine_xtensa.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/perfmon/nouveau_engine_perfmon_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/perfmon/nouveau_engine_perfmon_daemon.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/perfmon/nouveau_engine_perfmon_nv40.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/perfmon/nouveau_engine_perfmon_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/perfmon/nouveau_engine_perfmon_nv84.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/perfmon/nouveau_engine_perfmon_nva3.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/perfmon/nouveau_engine_perfmon_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/perfmon/nouveau_engine_perfmon_nve0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/perfmon/nouveau_engine_perfmon_nvf0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/ppp/nouveau_engine_ppp_nv98.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/ppp/nouveau_engine_ppp_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/software/nouveau_engine_software_nv04.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/software/nouveau_engine_software_nv10.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/software/nouveau_engine_software_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/software/nouveau_engine_software_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/vp/nouveau_engine_vp_nv84.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/vp/nouveau_engine_vp_nv98.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/vp/nouveau_engine_vp_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/engine/vp/nouveau_engine_vp_nve0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bar/nouveau_subdev_bar_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bar/nouveau_subdev_bar_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bar/nouveau_subdev_bar_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_P0260.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_bit.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_boost.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_conn.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_cstep.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_dcb.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_disp.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_dp.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_extdev.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_gpio.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_i2c.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_init.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_mxm.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_perf.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_pll.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_ramcfg.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_rammap.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_therm.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_timing.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_vmap.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_volt.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bios/nouveau_subdev_bios_xpio.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bus/nouveau_subdev_bus_hwsq.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bus/nouveau_subdev_bus_nv04.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bus/nouveau_subdev_bus_nv31.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bus/nouveau_subdev_bus_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bus/nouveau_subdev_bus_nv94.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/bus/nouveau_subdev_bus_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_nv04.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_nv40.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_nv84.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_nva3.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_nvaa.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_nve0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_pllnv04.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/clock/nouveau_subdev_clock_pllnva3.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_gm107.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_nv04.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_nv05.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_nv10.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_nv1a.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_nv20.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_nv84.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_nv98.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_nva3.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_nvaf.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/devinit/nouveau_subdev_devinit_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_gddr5.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_gm107.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv04.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv10.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv1a.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv20.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv25.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv30.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv35.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv36.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv40.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv41.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv44.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv46.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv47.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv49.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv4e.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv84.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nva3.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nvaa.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nvaf.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nve0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_ramgm107.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_ramnv04.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_ramnv10.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_ramnv1a.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_ramnv20.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_ramnv40.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_ramnv41.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_ramnv44.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_ramnv49.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_ramnv4e.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_ramnv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_ramnva3.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_ramnvaa.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_ramnvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_ramnve0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_sddr3.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/gpio/nouveau_subdev_gpio_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/gpio/nouveau_subdev_gpio_nv10.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/gpio/nouveau_subdev_gpio_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/gpio/nouveau_subdev_gpio_nvd0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/gpio/nouveau_subdev_gpio_nve0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/i2c/nouveau_subdev_i2c_anx9805.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/i2c/nouveau_subdev_i2c_aux.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/i2c/nouveau_subdev_i2c_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/i2c/nouveau_subdev_i2c_bit.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/i2c/nouveau_subdev_i2c_nv04.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/i2c/nouveau_subdev_i2c_nv4e.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/i2c/nouveau_subdev_i2c_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/i2c/nouveau_subdev_i2c_nv94.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/i2c/nouveau_subdev_i2c_nvd0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/ibus/nouveau_subdev_ibus_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/ibus/nouveau_subdev_ibus_nve0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/instmem/nouveau_subdev_instmem_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/instmem/nouveau_subdev_instmem_nv04.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/instmem/nouveau_subdev_instmem_nv40.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/instmem/nouveau_subdev_instmem_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/ltcg/nouveau_subdev_ltcg_gf100.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/ltcg/nouveau_subdev_ltcg_gm107.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/mc/nouveau_subdev_mc_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/mc/nouveau_subdev_mc_nv04.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/mc/nouveau_subdev_mc_nv40.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/mc/nouveau_subdev_mc_nv44.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/mc/nouveau_subdev_mc_nv4c.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/mc/nouveau_subdev_mc_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/mc/nouveau_subdev_mc_nv94.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/mc/nouveau_subdev_mc_nv98.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/mc/nouveau_subdev_mc_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/mc/nouveau_subdev_mc_nvc3.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/mxm/nouveau_subdev_mxm_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/mxm/nouveau_subdev_mxm_mxms.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/mxm/nouveau_subdev_mxm_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/pwr/nouveau_subdev_pwr_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/pwr/nouveau_subdev_pwr_memx.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/pwr/nouveau_subdev_pwr_nv108.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/pwr/nouveau_subdev_pwr_nva3.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/pwr/nouveau_subdev_pwr_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/pwr/nouveau_subdev_pwr_nvd0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/therm/nouveau_subdev_therm_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/therm/nouveau_subdev_therm_fan.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/therm/nouveau_subdev_therm_fannil.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/therm/nouveau_subdev_therm_fanpwm.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/therm/nouveau_subdev_therm_fantog.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/therm/nouveau_subdev_therm_ic.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/therm/nouveau_subdev_therm_nv40.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/therm/nouveau_subdev_therm_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/therm/nouveau_subdev_therm_nv84.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/therm/nouveau_subdev_therm_nva3.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/therm/nouveau_subdev_therm_nvd0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/therm/nouveau_subdev_therm_temp.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/timer/nouveau_subdev_timer_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/timer/nouveau_subdev_timer_gk20a.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/timer/nouveau_subdev_timer_nv04.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv04.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv41.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv44.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv50.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nvc0.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/volt/nouveau_subdev_volt_base.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/volt/nouveau_subdev_volt_gpio.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/core/subdev/volt/nouveau_subdev_volt_nv40.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_arb.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_crtc.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_cursor.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_dac.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_dfp.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_disp.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_hw.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_overlay.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_tvmodesnv17.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_tvnv04.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_tvnv17.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_abi16.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_agp.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_bios.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_chan.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_connector.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_display.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_dma.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_dp.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_hwmon.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_nv04_fbcon.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_nv04_fence.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_nv10_fence.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_nv17_fence.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_fbcon.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_fence.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_nv84_fence.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_nvc0_fbcon.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_nvc0_fence.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_prime.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_sgdma.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_sysfs.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.c	nouveau
+file	external/bsd/drm2/dist/drm/nouveau/nouveau_vga.c	nouveau
Index: src/sys/external/bsd/drm2/nouveau/nouveau_module.c
diff -u /dev/null src/sys/external/bsd/drm2/nouveau/nouveau_module.c:1.1
--- /dev/null	Wed Aug  6 13:36:08 2014
+++ src/sys/external/bsd/drm2/nouveau/nouveau_module.c	Wed Aug  6 13:36:07 2014
@@ -0,0 +1,143 @@
+/*	$NetBSD: nouveau_module.c,v 1.1 2014/08/06 13:36:07 riastradh Exp $	*/
+
+/*-
+ * Copyright (c) 2014 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Taylor R. Campbell.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: nouveau_module.c,v 1.1 2014/08/06 13:36:07 riastradh Exp $");
+
+#include <sys/types.h>
+#include <sys/module.h>
+#ifndef _MODULE
+#include <sys/once.h>
+#endif
+#include <sys/systm.h>
+
+#include <drm/drmP.h>
+
+#include <core/object.h>
+
+MODULE(MODULE_CLASS_DRIVER, nouveau, "drmkms,drmkms_pci"); /* XXX drmkms_i2c, drmkms_ttm */
+
+#ifdef _MODULE
+#include "ioconf.c"
+#endif
+
+static int
+nouveau_init(void)
+{
+	extern int drm_guarantee_initialized(void);
+	int error;
+
+	error = drm_guarantee_initialized();
+	if (error)
+		return error;
+
+	error = drm_pci_init(nouveau_drm_driver, NULL);
+	if (error) {
+		aprint_error("nouveau: failed to init pci: %d\n", error);
+		return error;
+	}
+
+	nouveau_objects_init();
+#if 0				/* XXX nouveau acpi */
+	nouveau_register_dsm_handler();
+#endif
+}
+
+int	nouveau_guarantee_initialized(void); /* XXX */
+int
+nouveau_guarantee_initialized(void)
+{
+#ifdef _MODULE
+	return 0;
+#else
+	static ONCE_DECL(nouveau_init_once);
+
+	return RUN_ONCE(&nouveau_init_once, &nouveau_init);
+#endif
+}
+
+static void
+nouveau_fini(void)
+{
+
+#if 0				/* XXX nouveau acpi */
+	nouveau_unregister_dsm_handler();
+#endif
+	nouveau_objects_fini();
+	drm_pci_exit(nouveau_drm_driver, NULL);
+}
+
+static int
+nouveau_modcmd(modcmd_t cmd, void *arg __unused)
+{
+	int error;
+
+	switch (cmd) {
+	case MODULE_CMD_INIT:
+#ifdef _MODULE
+		error = nouveau_init();
+#else
+		error = nouveau_guarantee_initialized();
+#endif
+		if (error) {
+			aprint_error("nouveau: failed to initialize: %d\n",
+			    error);
+			return error;
+		}
+#ifdef _MODULE
+		error = config_init_component(cfdriver_ioconf_nouveau,
+		    cfattach_ioconf_nouveau, cfdata_ioconf_nouveau);
+		if (error) {
+			aprint_error("nouveau: failed to init component"
+			    ": %d\n", error);
+			nouveau_fini();
+			return error;
+		}
+#endif
+		return 0;
+
+	case MODULE_CMD_FINI:
+#ifdef _MODULE
+		error = config_fini_component(cfdriver_ioconf_nouveau,
+		    cfattach_ioconf_nouveau, cfdata_ioconf_nouveau);
+		if (error) {
+			aprint_error("nouveau: failed to fini component"
+			    ": %d\n", error);
+			return error;
+		}
+#endif
+		nouveau_fini();
+		return 0;
+
+	default:
+		return ENOTTY;
+	}
+}

Reply via email to