Module Name:    src
Committed By:   snj
Date:           Sun Jan 11 05:59:18 UTC 2015

Modified Files:
        src/distrib/sets/lists/modules [netbsd-7]: md.amd64 md.i386
        src/sys/dev/ic [netbsd-7]: pcdisplayvar.h vgavar.h
        src/sys/external/bsd/drm/dist/bsd-core [netbsd-7]: drm_drv.c
        src/sys/external/bsd/drm2/dist/drm [netbsd-7]: drm_stub.c
        src/sys/external/bsd/drm2/dist/drm/i915 [netbsd-7]: i915_drv.h
        src/sys/external/bsd/drm2/dist/drm/radeon [netbsd-7]: cik.c ni.c si.c
        src/sys/external/bsd/drm2/dist/include/drm [netbsd-7]: drmP.h
        src/sys/external/bsd/drm2/drm [netbsd-7]: drm_drv.c drm_module.c
            drm_vm.c files.drmkms
        src/sys/external/bsd/drm2/i915drm [netbsd-7]: files.i915drmkms
            i915_module.c
        src/sys/external/bsd/drm2/include/linux [netbsd-7]: hdmi.h module.h
            moduleparam.h pci.h
        src/sys/external/bsd/drm2/linux [netbsd-7]: linux_module.c
        src/sys/external/bsd/drm2/nouveau [netbsd-7]: files.nouveau
            nouveau_module.c
        src/sys/external/bsd/drm2/pci [netbsd-7]: drm_pci.c drm_pci_module.c
        src/sys/external/bsd/drm2/radeon [netbsd-7]: radeon_module.c
        src/sys/modules [netbsd-7]: Makefile
        src/sys/modules/drmkms [netbsd-7]: Makefile
        src/sys/modules/drmkms_linux [netbsd-7]: Makefile
        src/sys/modules/i915drmkms [netbsd-7]: Makefile
Added Files:
        src/sys/external/bsd/drm2/drm [netbsd-7]: drm_sysctl.c
        src/sys/external/bsd/drm2/include/drm [netbsd-7]: drm_sysctl.h
        src/sys/external/bsd/drm2/ttm [netbsd-7]: files.ttm
Removed Files:
        src/sys/modules/drm2pci [netbsd-7]: Makefile

Log Message:
Pull up following revision(s) (requested by chs in ticket #401):
        distrib/sets/lists/modules/md.amd64: revisions 1.46, 1.47 via patch
        distrib/sets/lists/modules/md.i386: revisions 1.49, 1.50
        sys/dev/ic/pcdisplayvar.h: revision 1.20
        sys/dev/ic/vgavar.h: revision 1.32
        sys/external/bsd/drm/dist/bsd-core/drm_drv.c: revision 1.26
        sys/external/bsd/drm2/dist/drm/drm_agpsupport.c: revisions 1.5, 1.6
        sys/external/bsd/drm2/dist/drm/drm_pci.c: revisions 1.4, 1.5
        sys/external/bsd/drm2/dist/drm/drm_stub.c: revisions 1.6-1.8
        sys/external/bsd/drm2/dist/drm/i915/i915_drv.h: revision 1.11
        sys/external/bsd/drm2/dist/drm/radeon/cik.c: revision 1.3
        sys/external/bsd/drm2/dist/drm/radeon/ni.c: revision 1.3
        sys/external/bsd/drm2/dist/drm/radeon/si.c: revision 1.3
        sys/external/bsd/drm2/dist/include/drm/drmP.h: revisions 1.8, 1.9
        sys/external/bsd/drm2/dist/include/drm/drm_agpsupport.h: revisions 1.3, 
1.4
        sys/external/bsd/drm2/drm/drm_drv.c: revision 1.11
        sys/external/bsd/drm2/drm/drm_module.c: revision 1.9
        sys/external/bsd/drm2/drm/drm_sysctl.c: revisions 1.1-1.4
        sys/external/bsd/drm2/drm/drm_vm.c: revision 1.7
        sys/external/bsd/drm2/drm/files.drmkms: revisions 1.8, 1.9
        sys/external/bsd/drm2/i915drm/files.i915drmkms: revision 1.9
        sys/external/bsd/drm2/i915drm/i915_module.c: revisions 1.4, 1.5
        sys/external/bsd/drm2/include/drm/drm_sysctl.h: revisions 1.1, 1.2
        sys/external/bsd/drm2/include/linux/hdmi.h: revisions 1.3-1.5
        sys/external/bsd/drm2/include/linux/module.h: revision 1.5
        sys/external/bsd/drm2/include/linux/moduleparam.h: revisions 1.3, 1.4
        sys/external/bsd/drm2/include/linux/pci.h: revision 1.11
        sys/external/bsd/drm2/linux/linux_module.c: revision 1.5
        sys/external/bsd/drm2/nouveau/files.nouveau: revision 1.4
        sys/external/bsd/drm2/nouveau/nouveau_module.c: revision 1.3
        sys/external/bsd/drm2/pci/drm_pci.c: revision 1.8
        sys/external/bsd/drm2/pci/drm_pci_module.c: revision 1.3
        sys/external/bsd/drm2/radeon/radeon_module.c: revision 1.3
        sys/external/bsd/drm2/ttm/files.ttm: revision 1.1
        sys/modules/drm2pci/Makefile: file removal
        sys/modules/drmkms/Makefile: revisions 1.4-1.7
        sys/modules/drmkms_linux/Makefile: revision 1.5
        sys/modules/drmkms_pci/Makefile: revisions 1.3, 1.4
        sys/modules/i915drmkms/Makefile: revisions 1.5-1.7
Split drm ttm config into a separate file.
--
Fix module build of drmkms_linux.
--
Remove vestigial drm2pci module, replaced by drmkms_pci.
--
fix the module class.
--
add the drmkms modules
--
make a drm_agp_destroy() function to resolve the circular dependency between
drmkms and drmkms_pci
--
finalize the idr code.
--
add drm_agp_destroy
--
fix drmkms module path for xen.
--
fix build failure.
/tmp/bracket/build/2014.11.10.22.43.46-i386/src/sys/external/bsd/drm2/include/linux/pci.h:36:20:
 fatal error: acpica.h: No such file or directory
--
make this work: add agpsupport and sysctl code
--
move agpsupport to drmkms to avoid circular dependencies.
--
turn on dynamic ldscript creation to handle link set symbol definitions
used in the automatic sysctl creation.
--
Add __link_set based code to automatically convert the linux module parameters
into sysctls.
--
this module needs MKLDSCRIPT too now
--
more _KERNEL_OPT
--
prettify and add to all the modules that have it.
--
fix description setting.
--
Adjust flags to allow building with clang.
--
Fix build with clang.
--
Drop casts in favour of expressions that actually give the right
pointer.
--
Move all PCI/AGP code back to drmkms_pci module where it belongs.
--
Use correct length for hdmi_infoframe_header_pack in <linux/hdmi.h>.
Fixes PR kern/49411.
--
Back out previous, fix PR kern/49411 correctly.
frame->header.length is not initialized in the vendor packet case.
Instead, make hdmi_infoframe_header_pack take the packet length and
subtract the size of the header when packing the header.
(Could make it take the payload length instead, but for callers it is
more convenient to have a name for the whole packet length.)
--
Fix bounds checking in hdmi_infoframe_header_pack (PR kern/49411).
--
Trivial build fix for no options SYSCTL_INCLUDE_DESCR case, to
avoid -Werror.
OK christos@ and riastradh@
--
fix debugging compilation (ALL kernel)
--
nouveau_nv50_fence.c needs -Wno-shadow.
--
fix a confusion between dev_t and devmajor_t, and include the primary
minor when calling makedev().


To generate a diff of this commit:
cvs rdiff -u -r1.41.2.1 -r1.41.2.2 src/distrib/sets/lists/modules/md.amd64
cvs rdiff -u -r1.46 -r1.46.2.1 src/distrib/sets/lists/modules/md.i386
cvs rdiff -u -r1.19 -r1.19.38.1 src/sys/dev/ic/pcdisplayvar.h
cvs rdiff -u -r1.30 -r1.30.12.1 src/sys/dev/ic/vgavar.h
cvs rdiff -u -r1.25 -r1.25.2.1 \
    src/sys/external/bsd/drm/dist/bsd-core/drm_drv.c
cvs rdiff -u -r1.5 -r1.5.2.1 src/sys/external/bsd/drm2/dist/drm/drm_stub.c
cvs rdiff -u -r1.7.2.3 -r1.7.2.4 \
    src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h
cvs rdiff -u -r1.2 -r1.2.4.1 src/sys/external/bsd/drm2/dist/drm/radeon/cik.c \
    src/sys/external/bsd/drm2/dist/drm/radeon/ni.c \
    src/sys/external/bsd/drm2/dist/drm/radeon/si.c
cvs rdiff -u -r1.7 -r1.7.2.1 \
    src/sys/external/bsd/drm2/dist/include/drm/drmP.h
cvs rdiff -u -r1.9.2.1 -r1.9.2.2 src/sys/external/bsd/drm2/drm/drm_drv.c
cvs rdiff -u -r1.7.2.1 -r1.7.2.2 src/sys/external/bsd/drm2/drm/drm_module.c
cvs rdiff -u -r0 -r1.4.4.2 src/sys/external/bsd/drm2/drm/drm_sysctl.c
cvs rdiff -u -r1.5.2.1 -r1.5.2.2 src/sys/external/bsd/drm2/drm/drm_vm.c
cvs rdiff -u -r1.7 -r1.7.2.1 src/sys/external/bsd/drm2/drm/files.drmkms
cvs rdiff -u -r1.5.2.2 -r1.5.2.3 \
    src/sys/external/bsd/drm2/i915drm/files.i915drmkms
cvs rdiff -u -r1.3 -r1.3.2.1 src/sys/external/bsd/drm2/i915drm/i915_module.c
cvs rdiff -u -r0 -r1.2.4.2 src/sys/external/bsd/drm2/include/drm/drm_sysctl.h
cvs rdiff -u -r1.2 -r1.2.4.1 src/sys/external/bsd/drm2/include/linux/hdmi.h
cvs rdiff -u -r1.4 -r1.4.2.1 src/sys/external/bsd/drm2/include/linux/module.h
cvs rdiff -u -r1.2 -r1.2.8.1 \
    src/sys/external/bsd/drm2/include/linux/moduleparam.h
cvs rdiff -u -r1.7.2.3 -r1.7.2.4 \
    src/sys/external/bsd/drm2/include/linux/pci.h
cvs rdiff -u -r1.4 -r1.4.2.1 src/sys/external/bsd/drm2/linux/linux_module.c
cvs rdiff -u -r1.2.4.1 -r1.2.4.2 \
    src/sys/external/bsd/drm2/nouveau/files.nouveau
cvs rdiff -u -r1.1.4.1 -r1.1.4.2 \
    src/sys/external/bsd/drm2/nouveau/nouveau_module.c
cvs rdiff -u -r1.6 -r1.6.2.1 src/sys/external/bsd/drm2/pci/drm_pci.c
cvs rdiff -u -r1.2 -r1.2.8.1 src/sys/external/bsd/drm2/pci/drm_pci_module.c
cvs rdiff -u -r1.2 -r1.2.4.1 src/sys/external/bsd/drm2/radeon/radeon_module.c
cvs rdiff -u -r0 -r1.1.4.2 src/sys/external/bsd/drm2/ttm/files.ttm
cvs rdiff -u -r1.140 -r1.140.2.1 src/sys/modules/Makefile
cvs rdiff -u -r1.2 -r0 src/sys/modules/drm2pci/Makefile
cvs rdiff -u -r1.3 -r1.3.2.1 src/sys/modules/drmkms/Makefile
cvs rdiff -u -r1.4 -r1.4.2.1 src/sys/modules/drmkms_linux/Makefile
cvs rdiff -u -r1.4 -r1.4.2.1 src/sys/modules/i915drmkms/Makefile

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

Modified files:

Index: src/distrib/sets/lists/modules/md.amd64
diff -u src/distrib/sets/lists/modules/md.amd64:1.41.2.1 src/distrib/sets/lists/modules/md.amd64:1.41.2.2
--- src/distrib/sets/lists/modules/md.amd64:1.41.2.1	Fri Aug 15 12:53:54 2014
+++ src/distrib/sets/lists/modules/md.amd64	Sun Jan 11 05:59:16 2015
@@ -1,4 +1,4 @@
-# $NetBSD: md.amd64,v 1.41.2.1 2014/08/15 12:53:54 martin Exp $
+# $NetBSD: md.amd64,v 1.41.2.2 2015/01/11 05:59:16 snj Exp $
 #
 # NOTE that there are two sets of files here:
 # @MODULEDIR@ and amd64-xen
@@ -61,6 +61,12 @@
 ./@MODULEDIR@/cxdtv/cxdtv.kmod			base-kernel-modules	kmod
 ./@MODULEDIR@/drm				base-kernel-modules	kmod
 ./@MODULEDIR@/drm/drm.kmod			base-kernel-modules	kmod
+./@MODULEDIR@/drmkms				base-kernel-modules	kmod
+./@MODULEDIR@/drmkms/drmkms.kmod		base-kernel-modules	kmod
+./@MODULEDIR@/drmkms_linux			base-kernel-modules	kmod
+./@MODULEDIR@/drmkms_linux/drmkms_linux.kmod	base-kernel-modules	kmod
+./@MODULEDIR@/drmkms_pci			base-kernel-modules	kmod
+./@MODULEDIR@/drmkms_pci/drmkms_pci.kmod	base-kernel-modules	kmod
 ./@MODULEDIR@/emdtv				base-kernel-modules	kmod
 ./@MODULEDIR@/emdtv/emdtv.kmod			base-kernel-modules	kmod
 ./@MODULEDIR@/est				base-kernel-modules	kmod
@@ -87,6 +93,8 @@
 ./@MODULEDIR@/hpqlb/hpqlb.kmod			base-kernel-modules	kmod
 ./@MODULEDIR@/i915drm				base-kernel-modules	kmod
 ./@MODULEDIR@/i915drm/i915drm.kmod		base-kernel-modules	kmod
+./@MODULEDIR@/i915drmkms			base-kernel-modules	kmod
+./@MODULEDIR@/i915drmkms/i915drmkms.kmod	base-kernel-modules	kmod
 ./@MODULEDIR@/itesio				base-kernel-modules	kmod
 ./@MODULEDIR@/itesio/itesio.kmod		base-kernel-modules	kmod
 ./@MODULEDIR@/lg3303				base-kernel-modules	kmod
@@ -252,6 +260,12 @@
 ./stand/amd64-xen/@OSRELEASE@/modules/dtrace/dtrace.kmod		base-kernel-modules	kmod,dtrace,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/drm				base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/drm/drm.kmod			base-kernel-modules	kmod,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/drmkms				base-kernel-modules	kmod,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/drmkms/drmkms.kmod		base-kernel-modules	kmod,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/drmkms_linux			base-kernel-modules	kmod,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/drmkms_linux/drmkms_linux.kmod	base-kernel-modules	kmod,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/drmkms_pci			base-kernel-modules	kmod,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/drmkms_pci/drmkms_pci.kmod	base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/dtv				base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/dtv/dtv.kmod			base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/dtv_math				base-kernel-modules	kmod,compatmodules
@@ -314,6 +328,8 @@
 ./stand/amd64-xen/@OSRELEASE@/modules/hythygtemp/hythygtemp.kmod	base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/i915drm				base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/i915drm/i915drm.kmod		base-kernel-modules	kmod,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/i915drmkms			base-kernel-modules	kmod,compatmodules
+./stand/amd64-xen/@OSRELEASE@/modules/i915drmkms/i915drmkms.kmod	base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/if_axe				base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/if_axe/if_axe.kmod		base-kernel-modules	kmod,compatmodules
 ./stand/amd64-xen/@OSRELEASE@/modules/if_axen				base-kernel-modules	kmod,compatmodules

Index: src/distrib/sets/lists/modules/md.i386
diff -u src/distrib/sets/lists/modules/md.i386:1.46 src/distrib/sets/lists/modules/md.i386:1.46.2.1
--- src/distrib/sets/lists/modules/md.i386:1.46	Mon Aug 11 05:19:16 2014
+++ src/distrib/sets/lists/modules/md.i386	Sun Jan 11 05:59:16 2015
@@ -1,4 +1,4 @@
-# $NetBSD: md.i386,v 1.46 2014/08/11 05:19:16 jnemeth Exp $
+# $NetBSD: md.i386,v 1.46.2.1 2015/01/11 05:59:16 snj Exp $
 #
 # NOTE that there are three sets of files here:
 # @MODULEDIR@, i386-xen, and i386pae-xen
@@ -65,6 +65,12 @@
 ./@MODULEDIR@/cxdtv/cxdtv.kmod			base-kernel-modules	kmod
 ./@MODULEDIR@/drm				base-kernel-modules	kmod
 ./@MODULEDIR@/drm/drm.kmod			base-kernel-modules	kmod
+./@MODULEDIR@/drmkms				base-kernel-modules	kmod
+./@MODULEDIR@/drmkms/drmkms.kmod		base-kernel-modules	kmod
+./@MODULEDIR@/drmkms_linux			base-kernel-modules	kmod
+./@MODULEDIR@/drmkms_linux/drmkms_linux.kmod	base-kernel-modules	kmod
+./@MODULEDIR@/drmkms_pci			base-kernel-modules	kmod
+./@MODULEDIR@/drmkms_pci/drmkms_pci.kmod	base-kernel-modules	kmod
 ./@MODULEDIR@/emdtv				base-kernel-modules	kmod
 ./@MODULEDIR@/emdtv/emdtv.kmod			base-kernel-modules	kmod
 ./@MODULEDIR@/est				base-kernel-modules	kmod
@@ -91,6 +97,8 @@
 ./@MODULEDIR@/hpqlb/hpqlb.kmod			base-kernel-modules	kmod
 ./@MODULEDIR@/i915drm				base-kernel-modules	kmod
 ./@MODULEDIR@/i915drm/i915drm.kmod		base-kernel-modules	kmod
+./@MODULEDIR@/i915drmkms			base-kernel-modules	kmod
+./@MODULEDIR@/i915drmkms/i915drmkms.kmod	base-kernel-modules	kmod
 ./@MODULEDIR@/itesio				base-kernel-modules	kmod
 ./@MODULEDIR@/itesio/itesio.kmod		base-kernel-modules	kmod
 ./@MODULEDIR@/lg3303				base-kernel-modules	kmod
@@ -278,6 +286,12 @@
 ./stand/i386-xen/@OSRELEASE@/modules/dm/dm.kmod				base-kernel-modules	kmod,compatmodules
 ./stand/i386-xen/@OSRELEASE@/modules/drm				base-kernel-modules	kmod,compatmodules
 ./stand/i386-xen/@OSRELEASE@/modules/drm/drm.kmod			base-kernel-modules	kmod,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/drmkms					base-kernel-modules	kmod
+./stand/i386-xen/@OSRELEASE@/modules/drmkms/drmkms.kmod				base-kernel-modules	kmod
+./stand/i386-xen/@OSRELEASE@/modules/drmkms_linux				base-kernel-modules	kmod
+./stand/i386-xen/@OSRELEASE@/modules/drmkms_linux/drmkms_linux.kmod		base-kernel-modules	kmod
+./stand/i386-xen/@OSRELEASE@/modules/drmkms_pci					base-kernel-modules	kmod
+./stand/i386-xen/@OSRELEASE@/modules/drmkms_pci/drmkms_pci.kmod			base-kernel-modules	kmod
 ./stand/i386-xen/@OSRELEASE@/modules/dtv				base-kernel-modules	kmod,compatmodules
 ./stand/i386-xen/@OSRELEASE@/modules/dtv/dtv.kmod			base-kernel-modules	kmod,compatmodules
 ./stand/i386-xen/@OSRELEASE@/modules/dtv_math				base-kernel-modules	kmod,compatmodules
@@ -338,6 +352,8 @@
 ./stand/i386-xen/@OSRELEASE@/modules/hythygtemp/hythygtemp.kmod		base-kernel-modules	kmod,compatmodules
 ./stand/i386-xen/@OSRELEASE@/modules/i915drm				base-kernel-modules	kmod,compatmodules
 ./stand/i386-xen/@OSRELEASE@/modules/i915drm/i915drm.kmod		base-kernel-modules	kmod,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/i915drmkms				base-kernel-modules	kmod,compatmodules
+./stand/i386-xen/@OSRELEASE@/modules/i915drmkms/i915drmkms.kmod		base-kernel-modules	kmod,compatmodules
 ./stand/i386-xen/@OSRELEASE@/modules/if_axe				base-kernel-modules	kmod,compatmodules
 ./stand/i386-xen/@OSRELEASE@/modules/if_axe/if_axe.kmod			base-kernel-modules	kmod,compatmodules
 ./stand/i386-xen/@OSRELEASE@/modules/if_axen				base-kernel-modules	kmod,compatmodules
@@ -657,6 +673,12 @@
 ./stand/i386pae-xen/@OSRELEASE@/modules/dm/dm.kmod			base-kernel-modules	kmod,compatmodules
 ./stand/i386pae-xen/@OSRELEASE@/modules/drm				base-kernel-modules	kmod,compatmodules
 ./stand/i386pae-xen/@OSRELEASE@/modules/drm/drm.kmod			base-kernel-modules	kmod,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/drmkms					base-kernel-modules	kmod
+./stand/i386pae-xen/@OSRELEASE@/modules/drmkms/drmkms.kmod			base-kernel-modules	kmod
+./stand/i386pae-xen/@OSRELEASE@/modules/drmkms_linux				base-kernel-modules	kmod
+./stand/i386pae-xen/@OSRELEASE@/modules/drmkms_linux/drmkms_linux.kmod		base-kernel-modules	kmod
+./stand/i386pae-xen/@OSRELEASE@/modules/drmkms_pci				base-kernel-modules	kmod
+./stand/i386pae-xen/@OSRELEASE@/modules/drmkms_pci/drmkms_pci.kmod		base-kernel-modules	kmod
 ./stand/i386pae-xen/@OSRELEASE@/modules/dtv				base-kernel-modules	kmod,compatmodules
 ./stand/i386pae-xen/@OSRELEASE@/modules/dtv/dtv.kmod			base-kernel-modules	kmod,compatmodules
 ./stand/i386pae-xen/@OSRELEASE@/modules/dtv_math			base-kernel-modules	kmod,compatmodules
@@ -717,6 +739,8 @@
 ./stand/i386pae-xen/@OSRELEASE@/modules/hythygtemp/hythygtemp.kmod	base-kernel-modules	kmod,compatmodules
 ./stand/i386pae-xen/@OSRELEASE@/modules/i915drm				base-kernel-modules	kmod,compatmodules
 ./stand/i386pae-xen/@OSRELEASE@/modules/i915drm/i915drm.kmod		base-kernel-modules	kmod,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/i915drmkms			base-kernel-modules	kmod,compatmodules
+./stand/i386pae-xen/@OSRELEASE@/modules/i915drmkms/i915drmkms.kmod	base-kernel-modules	kmod,compatmodules
 ./stand/i386pae-xen/@OSRELEASE@/modules/if_axe				base-kernel-modules	kmod,compatmodules
 ./stand/i386pae-xen/@OSRELEASE@/modules/if_axe/if_axe.kmod		base-kernel-modules	kmod,compatmodules
 ./stand/i386pae-xen/@OSRELEASE@/modules/if_axen				base-kernel-modules	kmod,compatmodules

Index: src/sys/dev/ic/pcdisplayvar.h
diff -u src/sys/dev/ic/pcdisplayvar.h:1.19 src/sys/dev/ic/pcdisplayvar.h:1.19.38.1
--- src/sys/dev/ic/pcdisplayvar.h:1.19	Sun Mar 15 15:52:12 2009
+++ src/sys/dev/ic/pcdisplayvar.h	Sun Jan 11 05:59:16 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: pcdisplayvar.h,v 1.19 2009/03/15 15:52:12 cegger Exp $ */
+/* $NetBSD: pcdisplayvar.h,v 1.19.38.1 2015/01/11 05:59:16 snj Exp $ */
 
 /*
  * Copyright (c) 1998
@@ -26,7 +26,9 @@
  *
  */
 
+#ifdef _KERNEL_OPT
 #include "opt_pcdisplay.h"
+#endif
 
 struct pcdisplayscreen {
 	struct pcdisplay_handle *hdl;

Index: src/sys/dev/ic/vgavar.h
diff -u src/sys/dev/ic/vgavar.h:1.30 src/sys/dev/ic/vgavar.h:1.30.12.1
--- src/sys/dev/ic/vgavar.h:1.30	Mon Jan 21 19:49:15 2013
+++ src/sys/dev/ic/vgavar.h	Sun Jan 11 05:59:16 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: vgavar.h,v 1.30 2013/01/21 19:49:15 mlelstv Exp $ */
+/* $NetBSD: vgavar.h,v 1.30.12.1 2015/01/11 05:59:16 snj Exp $ */
 
 /*
  * Copyright (c) 1995, 1996 Carnegie-Mellon University.
@@ -29,7 +29,9 @@
 
 #include <sys/callout.h>
 
+#ifdef _KERNEL_OPT
 #include "opt_vga.h"
+#endif
 
 struct vga_handle {
 	struct pcdisplay_handle vh_ph;

Index: src/sys/external/bsd/drm/dist/bsd-core/drm_drv.c
diff -u src/sys/external/bsd/drm/dist/bsd-core/drm_drv.c:1.25 src/sys/external/bsd/drm/dist/bsd-core/drm_drv.c:1.25.2.1
--- src/sys/external/bsd/drm/dist/bsd-core/drm_drv.c:1.25	Fri Jul 25 08:10:39 2014
+++ src/sys/external/bsd/drm/dist/bsd-core/drm_drv.c	Sun Jan 11 05:59:16 2015
@@ -1124,7 +1124,7 @@ drm_linux_ioctl(DRM_STRUCTPROC *p, struc
 #if defined(__NetBSD__)
 /* Module support */
 
-MODULE(MODULE_CLASS_MISC, drm, "pci");
+MODULE(MODULE_CLASS_DRIVER, drm, "pci");
 
 static int
 drm_modcmd(modcmd_t cmd, void *arg)

Index: src/sys/external/bsd/drm2/dist/drm/drm_stub.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_stub.c:1.5 src/sys/external/bsd/drm2/dist/drm/drm_stub.c:1.5.2.1
--- src/sys/external/bsd/drm2/dist/drm/drm_stub.c:1.5	Wed Jul 16 20:56:24 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_stub.c	Sun Jan 11 05:59:16 2015
@@ -341,7 +341,9 @@ static int drm_minor_register(struct drm
 {
 	struct drm_minor *new_minor;
 	unsigned long flags;
+#ifndef __NetBSD__
 	int ret;
+#endif
 	int minor_id;
 
 	DRM_DEBUG("\n");
@@ -365,6 +367,7 @@ static int drm_minor_register(struct drm
 
 	new_minor->index = minor_id;
 
+#ifndef __NetBSD__
 	ret = drm_debugfs_init(new_minor, minor_id, drm_debugfs_root);
 	if (ret) {
 		DRM_ERROR("DRM: Failed to initialize /sys/kernel/debug/dri.\n");
@@ -376,7 +379,7 @@ static int drm_minor_register(struct drm
 		DRM_ERROR("DRM: Error sysfs_device_add.\n");
 		goto err_debugfs;
 	}
-
+#endif
 	/* replace NULL with @minor so lookups will succeed from now on */
 	spin_lock_irqsave(&drm_minor_lock, flags);
 	idr_replace(&drm_minors_idr, new_minor, new_minor->index);
@@ -385,6 +388,7 @@ static int drm_minor_register(struct drm
 	DRM_DEBUG("new minor assigned %d\n", minor_id);
 	return 0;
 
+#ifndef __NetBSD__
 err_debugfs:
 	drm_debugfs_cleanup(new_minor);
 err_id:
@@ -393,6 +397,7 @@ err_id:
 	spin_unlock_irqrestore(&drm_minor_lock, flags);
 	new_minor->index = 0;
 	return ret;
+#endif
 }
 
 static void drm_minor_unregister(struct drm_device *dev, unsigned int type)
@@ -848,8 +853,10 @@ void drm_dev_unregister(struct drm_devic
 	if (dev->driver->unload)
 		dev->driver->unload(dev);
 
+#ifndef __NetBSD__		/* Moved to drm_pci.  */
 	if (dev->agp)
 		drm_pci_agp_destroy(dev);
+#endif
 
 	drm_vblank_cleanup(dev);
 

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.7.2.3 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.7.2.4
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.7.2.3	Tue Nov 11 09:06:32 2014
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h	Sun Jan 11 05:59:17 2015
@@ -30,12 +30,16 @@
 #ifndef _I915_DRV_H_
 #define _I915_DRV_H_
 
-#if defined(__NetBSD__) && (defined(i386) || defined(amd64))
+#if defined(__NetBSD__)
+#ifdef _KERNEL_OPT
+#if defined(i386) || defined(amd64)
 #include "acpica.h"
+#endif	/* i386 || amd64 */
+#endif	/* _KERNEL_OPT */
 #if (NACPICA > 0)
 #define CONFIG_ACPI
-#endif
-#endif
+#endif	/* NACPICA > 0 */
+#endif	/* __NetBSD__ */
 
 #include <uapi/drm/i915_drm.h>
 

Index: src/sys/external/bsd/drm2/dist/drm/radeon/cik.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.2.4.1
--- src/sys/external/bsd/drm2/dist/drm/radeon/cik.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/cik.c	Sun Jan 11 05:59:17 2015
@@ -1771,7 +1771,7 @@ int ci_mc_load_microcode(struct radeon_d
 {
 	const __be32 *fw_data;
 	u32 running, blackout = 0;
-	u32 *io_mc_regs;
+	const u32 *io_mc_regs;
 	int i, regs_size, ucode_size;
 
 	if (!rdev->mc_fw)
@@ -1781,11 +1781,11 @@ int ci_mc_load_microcode(struct radeon_d
 
 	switch (rdev->family) {
 	case CHIP_BONAIRE:
-		io_mc_regs = (u32 *)&bonaire_io_mc_regs;
+		io_mc_regs = &bonaire_io_mc_regs[0][0];
 		regs_size = BONAIRE_IO_MC_REGS_SIZE;
 		break;
 	case CHIP_HAWAII:
-		io_mc_regs = (u32 *)&hawaii_io_mc_regs;
+		io_mc_regs = &hawaii_io_mc_regs[0][0];
 		regs_size = HAWAII_IO_MC_REGS_SIZE;
 		break;
 	default:
Index: src/sys/external/bsd/drm2/dist/drm/radeon/ni.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/ni.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/ni.c:1.2.4.1
--- src/sys/external/bsd/drm2/dist/drm/radeon/ni.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/ni.c	Sun Jan 11 05:59:17 2015
@@ -609,7 +609,7 @@ int ni_mc_load_microcode(struct radeon_d
 {
 	const __be32 *fw_data;
 	u32 mem_type, running, blackout = 0;
-	u32 *io_mc_regs;
+	const u32 *io_mc_regs;
 	int i, ucode_size, regs_size;
 
 	if (!rdev->mc_fw)
@@ -617,23 +617,23 @@ int ni_mc_load_microcode(struct radeon_d
 
 	switch (rdev->family) {
 	case CHIP_BARTS:
-		io_mc_regs = (u32 *)&barts_io_mc_regs;
+		io_mc_regs = &barts_io_mc_regs[0][0];
 		ucode_size = BTC_MC_UCODE_SIZE;
 		regs_size = BTC_IO_MC_REGS_SIZE;
 		break;
 	case CHIP_TURKS:
-		io_mc_regs = (u32 *)&turks_io_mc_regs;
+		io_mc_regs = &turks_io_mc_regs[0][0];
 		ucode_size = BTC_MC_UCODE_SIZE;
 		regs_size = BTC_IO_MC_REGS_SIZE;
 		break;
 	case CHIP_CAICOS:
 	default:
-		io_mc_regs = (u32 *)&caicos_io_mc_regs;
+		io_mc_regs = &caicos_io_mc_regs[0][0];
 		ucode_size = BTC_MC_UCODE_SIZE;
 		regs_size = BTC_IO_MC_REGS_SIZE;
 		break;
 	case CHIP_CAYMAN:
-		io_mc_regs = (u32 *)&cayman_io_mc_regs;
+		io_mc_regs = &cayman_io_mc_regs[0][0];
 		ucode_size = CAYMAN_MC_UCODE_SIZE;
 		regs_size = BTC_IO_MC_REGS_SIZE;
 		break;
Index: src/sys/external/bsd/drm2/dist/drm/radeon/si.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/si.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/si.c:1.2.4.1
--- src/sys/external/bsd/drm2/dist/drm/radeon/si.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/si.c	Sun Jan 11 05:59:17 2015
@@ -1471,7 +1471,7 @@ int si_mc_load_microcode(struct radeon_d
 {
 	const __be32 *fw_data;
 	u32 running, blackout = 0;
-	u32 *io_mc_regs;
+	const u32 *io_mc_regs;
 	int i, regs_size, ucode_size;
 
 	if (!rdev->mc_fw)
@@ -1481,24 +1481,24 @@ int si_mc_load_microcode(struct radeon_d
 
 	switch (rdev->family) {
 	case CHIP_TAHITI:
-		io_mc_regs = (u32 *)&tahiti_io_mc_regs;
+		io_mc_regs = &tahiti_io_mc_regs[0][0];
 		regs_size = TAHITI_IO_MC_REGS_SIZE;
 		break;
 	case CHIP_PITCAIRN:
-		io_mc_regs = (u32 *)&pitcairn_io_mc_regs;
+		io_mc_regs = &pitcairn_io_mc_regs[0][0];
 		regs_size = TAHITI_IO_MC_REGS_SIZE;
 		break;
 	case CHIP_VERDE:
 	default:
-		io_mc_regs = (u32 *)&verde_io_mc_regs;
+		io_mc_regs = &verde_io_mc_regs[0][0];
 		regs_size = TAHITI_IO_MC_REGS_SIZE;
 		break;
 	case CHIP_OLAND:
-		io_mc_regs = (u32 *)&oland_io_mc_regs;
+		io_mc_regs = &oland_io_mc_regs[0][0];
 		regs_size = TAHITI_IO_MC_REGS_SIZE;
 		break;
 	case CHIP_HAINAN:
-		io_mc_regs = (u32 *)&hainan_io_mc_regs;
+		io_mc_regs = &hainan_io_mc_regs[0][0];
 		regs_size = TAHITI_IO_MC_REGS_SIZE;
 		break;
 	}

Index: src/sys/external/bsd/drm2/dist/include/drm/drmP.h
diff -u src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.7 src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.7.2.1
--- src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.7	Sat Jul 26 21:15:45 2014
+++ src/sys/external/bsd/drm2/dist/include/drm/drmP.h	Sun Jan 11 05:59:17 2015
@@ -1607,9 +1607,11 @@ struct drm_agp_hooks {
 	drm_ioctl_t	*agph_bind_ioctl;
 	drm_ioctl_t	*agph_unbind_ioctl;
 	int		(*agph_release)(struct drm_device *);
+	void		(*agph_clear)(struct drm_device *);
 };
 
 extern int drm_agp_release_hook(struct drm_device *);
+extern void drm_agp_clear_hook(struct drm_device *);
 
 extern int drm_agp_register(const struct drm_agp_hooks *);
 extern void drm_agp_deregister(const struct drm_agp_hooks *);
@@ -1635,9 +1637,10 @@ extern unsigned int drm_timestamp_precis
 extern unsigned int drm_timestamp_monotonic;
 
 extern struct class *drm_class;
+#ifndef __NetBSD__
 extern struct dentry *drm_debugfs_root;
 
-#ifdef __NetBSD__
+#else
 extern spinlock_t drm_minor_lock;
 #endif
 extern struct idr drm_minors_idr;

Index: src/sys/external/bsd/drm2/drm/drm_drv.c
diff -u src/sys/external/bsd/drm2/drm/drm_drv.c:1.9.2.1 src/sys/external/bsd/drm2/drm/drm_drv.c:1.9.2.2
--- src/sys/external/bsd/drm2/drm/drm_drv.c:1.9.2.1	Wed Dec 31 06:44:00 2014
+++ src/sys/external/bsd/drm2/drm/drm_drv.c	Sun Jan 11 05:59:17 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_drv.c,v 1.9.2.1 2014/12/31 06:44:00 snj Exp $	*/
+/*	$NetBSD: drm_drv.c,v 1.9.2.2 2015/01/11 05:59:17 snj Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: drm_drv.c,v 1.9.2.1 2014/12/31 06:44:00 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_drv.c,v 1.9.2.2 2015/01/11 05:59:17 snj Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -392,7 +392,7 @@ drm_lastclose(struct drm_device *dev)
 		drm_irq_uninstall(dev);
 
 	mutex_lock(&dev->struct_mutex);
-	drm_agp_clear(dev);
+	drm_agp_clear_hook(dev);
 	drm_legacy_sg_cleanup(dev);
 	list_for_each_entry_safe(vma, vma_temp, &dev->vmalist, head) {
 		list_del(&vma->head);
@@ -761,25 +761,39 @@ drm_agp_deregister(const struct drm_agp_
 		    hooks, drm_current_agp_hooks);
 }
 
+static void __dead
+drm_noagp_panic(struct drm_device *dev)
+{
+	if ((dev != NULL) &&
+	    (dev->control != NULL) &&
+	    (dev->control->kdev != NULL))
+		panic("%s: no agp loaded", device_xname(dev->control->kdev));
+	else
+		panic("drm_device %p: no agp loaded", dev);
+}
+
 int
 drm_agp_release_hook(struct drm_device *dev)
 {
 	const struct drm_agp_hooks *const hooks = drm_current_agp_hooks;
 
-	if (hooks == NULL) {
-		if ((dev != NULL) &&
-		    (dev->control != NULL) &&
-		    (dev->control->kdev != NULL))
-			panic("drm_agp_release(%s): no agp loaded",
-			    device_xname(dev->control->kdev));
-		else
-			panic("drm_agp_release(drm_device %p): no agp loaded",
-			    dev);
-	}
+	if (hooks == NULL)
+		drm_noagp_panic(dev);
 	membar_consumer();
 	return (*hooks->agph_release)(dev);
 }
 
+void
+drm_agp_clear_hook(struct drm_device *dev)
+{
+	const struct drm_agp_hooks *const hooks = drm_current_agp_hooks;
+
+	if (hooks == NULL)
+		drm_noagp_panic(dev);
+	membar_consumer();
+	(*hooks->agph_clear)(dev);
+}
+
 #define	DEFINE_AGP_HOOK_IOCTL(NAME, HOOK)				      \
 static int								      \
 NAME(struct drm_device *dev, void *data, struct drm_file *file)		      \

Index: src/sys/external/bsd/drm2/drm/drm_module.c
diff -u src/sys/external/bsd/drm2/drm/drm_module.c:1.7.2.1 src/sys/external/bsd/drm2/drm/drm_module.c:1.7.2.2
--- src/sys/external/bsd/drm2/drm/drm_module.c:1.7.2.1	Mon Nov 10 19:45:54 2014
+++ src/sys/external/bsd/drm2/drm/drm_module.c	Sun Jan 11 05:59:17 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_module.c,v 1.7.2.1 2014/11/10 19:45:54 martin Exp $	*/
+/*	$NetBSD: drm_module.c,v 1.7.2.2 2015/01/11 05:59:17 snj Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: drm_module.c,v 1.7.2.1 2014/11/10 19:45:54 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_module.c,v 1.7.2.2 2015/01/11 05:59:17 snj Exp $");
 
 #include <sys/types.h>
 #include <sys/conf.h>
@@ -45,6 +45,7 @@ __KERNEL_RCSID(0, "$NetBSD: drm_module.c
 #include <linux/mutex.h>
 
 #include <drm/drmP.h>
+#include <drm/drm_sysctl.h>
 
 /*
  * XXX I2C stuff should be moved to a separate drmkms_i2c module.
@@ -53,6 +54,8 @@ MODULE(MODULE_CLASS_DRIVER, drmkms, "iic
 
 struct mutex	drm_global_mutex;
 
+struct drm_sysctl_def drm_def = DRM_SYSCTL_INIT();
+
 static int
 drm_init(void)
 {
@@ -71,6 +74,7 @@ drm_init(void)
 	linux_mutex_init(&drm_global_mutex);
 	drm_connector_ida_init();
 	drm_global_init();
+	drm_sysctl_init(&drm_def);
 
 	return 0;
 }
@@ -91,7 +95,7 @@ drm_guarantee_initialized(void)
 static void
 drm_fini(void)
 {
-
+	drm_sysctl_fini(&drm_def);
 	drm_global_release();
 	drm_connector_ida_destroy();
 	linux_mutex_destroy(&drm_global_mutex);

Index: src/sys/external/bsd/drm2/drm/drm_vm.c
diff -u src/sys/external/bsd/drm2/drm/drm_vm.c:1.5.2.1 src/sys/external/bsd/drm2/drm/drm_vm.c:1.5.2.2
--- src/sys/external/bsd/drm2/drm/drm_vm.c:1.5.2.1	Wed Dec 31 06:44:00 2014
+++ src/sys/external/bsd/drm2/drm/drm_vm.c	Sun Jan 11 05:59:17 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_vm.c,v 1.5.2.1 2014/12/31 06:44:00 snj Exp $	*/
+/*	$NetBSD: drm_vm.c,v 1.5.2.2 2015/01/11 05:59:17 snj Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: drm_vm.c,v 1.5.2.1 2014/12/31 06:44:00 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_vm.c,v 1.5.2.2 2015/01/11 05:59:17 snj Exp $");
 
 #include <sys/types.h>
 #include <sys/conf.h>
@@ -49,7 +49,8 @@ int
 drm_mmap_object(struct drm_device *dev, off_t offset, size_t size, int prot,
     struct uvm_object **uobjp, voff_t *uoffsetp, struct file *file __unused)
 {
-	dev_t devno = cdevsw_lookup_major(&drm_cdevsw);
+	devmajor_t maj = cdevsw_lookup_major(&drm_cdevsw);
+	dev_t devno = makedev(maj, dev->primary->index);
 	struct uvm_object *uobj;
 
 	KASSERT(offset == (offset & ~(PAGE_SIZE-1)));

Index: src/sys/external/bsd/drm2/drm/files.drmkms
diff -u src/sys/external/bsd/drm2/drm/files.drmkms:1.7 src/sys/external/bsd/drm2/drm/files.drmkms:1.7.2.1
--- src/sys/external/bsd/drm2/drm/files.drmkms:1.7	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/drm/files.drmkms	Sun Jan 11 05:59:17 2015
@@ -1,4 +1,4 @@
-#	$NetBSD: files.drmkms,v 1.7 2014/07/16 20:59:57 riastradh Exp $
+#	$NetBSD: files.drmkms,v 1.7.2.1 2015/01/11 05:59:17 snj Exp $
 
 include "external/bsd/drm2/linux/files.drmkms_linux"
 
@@ -65,28 +65,6 @@ file	external/bsd/drm2/drm/drm_vma_manag
 
 file	external/bsd/drm2/drm/drm_gem_vm.c		drmkms
 file	external/bsd/drm2/drm/drm_module.c		drmkms
+file	external/bsd/drm2/drm/drm_sysctl.c		drmkms
 
-# TTM, the texture and tiling manager.
-
-define	drmkms_ttm: drmkms
-
-file	external/bsd/drm2/ttm/ttm_agp_backend.c			drmkms_ttm
-file	external/bsd/drm2/dist/drm/ttm/ttm_memory.c		drmkms_ttm
-file	external/bsd/drm2/dist/drm/ttm/ttm_tt.c			drmkms_ttm
-file	external/bsd/drm2/dist/drm/ttm/ttm_bo.c			drmkms_ttm
-file	external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c		drmkms_ttm
-file	external/bsd/drm2/ttm/ttm_bo_vm.c			drmkms_ttm
-# Linux module goo.
-#file	external/bsd/drm2/dist/drm/ttm/ttm_module.c		drmkms_ttm
-# Used only by vmwgfx.  Needs porting for rcu -> pserialize.
-#file	external/bsd/drm2/dist/drm/ttm/ttm_object.c		drmkms_ttm
-# Used only by vmwgfx.  Needs porting.  Does silly things like SIGKILL.
-#file	external/bsd/drm2/dist/drm/ttm/ttm_lock.c		drmkms_ttm
-file	external/bsd/drm2/dist/drm/ttm/ttm_execbuf_util.c	drmkms_ttm
-# Replaced locally by ttm_bus_dma.c.
-#file	external/bsd/drm2/dist/drm/ttm/ttm_page_alloc.c		drmkms_ttm
-file	external/bsd/drm2/dist/drm/ttm/ttm_bo_manager.c		drmkms_ttm
-# Replaced locally by ttm_bus_dma.c.
-#file	external/bsd/drm2/dist/drm/ttm/ttm_page_alloc_dma.c	drmkms_ttm
-
-file	external/bsd/drm2/ttm/ttm_bus_dma.c			drmkms_ttm
+include "external/bsd/drm2/ttm/files.ttm"

Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms
diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.5.2.2 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.5.2.3
--- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.5.2.2	Tue Nov 11 09:06:32 2014
+++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms	Sun Jan 11 05:59:17 2015
@@ -1,4 +1,4 @@
-#	$NetBSD: files.i915drmkms,v 1.5.2.2 2014/11/11 09:06:32 martin Exp $
+#	$NetBSD: files.i915drmkms,v 1.5.2.3 2015/01/11 05:59:17 snj Exp $
 
 define	intelfbbus	{ }
 device	i915drmkms: drmkms, drmkms_pci, intelfbbus
@@ -10,8 +10,9 @@ attach	intelfb at intelfbbus
 makeoptions	i915drmkms	CPPFLAGS+="-I$S/external/bsd/drm2/dist/drm/i915"
 makeoptions	i915drmkms	CPPFLAGS+="-I$S/external/bsd/drm2/i915drm"
 
-makeoptions 	i915drmkms 	"CWARNFLAGS.i915_drv.c"+="-Wno-override-init"
-makeoptions 	i915drmkms 	"CWARNFLAGS.intel_display.c"+="-Wno-shadow"
+makeoptions 	i915drmkms 	"CWARNFLAGS.i915_drv.c"+="${${ACTIVE_CC} == gcc:? -Wno-override-init :}"
+makeoptions 	i915drmkms 	"CWARNFLAGS.i915_drv.c"+="${${ACTIVE_CC} == clang:? -Wno-initializer-overrides :}"
+makeoptions 	i915drmkms 	"CWARNFLAGS.intel_display.c"+="-Wno-shadow -Wno-conversion"
 makeoptions 	i915drmkms 	"CWARNFLAGS.intel_panel.c"+="-Wno-shadow"
 makeoptions 	i915drmkms 	"CWARNFLAGS.intel_pm.c"+="-Wno-shadow"
 

Index: src/sys/external/bsd/drm2/i915drm/i915_module.c
diff -u src/sys/external/bsd/drm2/i915drm/i915_module.c:1.3 src/sys/external/bsd/drm2/i915drm/i915_module.c:1.3.2.1
--- src/sys/external/bsd/drm2/i915drm/i915_module.c:1.3	Wed Jul 16 20:56:25 2014
+++ src/sys/external/bsd/drm2/i915drm/i915_module.c	Sun Jan 11 05:59:17 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_module.c,v 1.3 2014/07/16 20:56:25 riastradh Exp $	*/
+/*	$NetBSD: i915_module.c,v 1.3.2.1 2015/01/11 05:59:17 snj Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i915_module.c,v 1.3 2014/07/16 20:56:25 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_module.c,v 1.3.2.1 2015/01/11 05:59:17 snj Exp $");
 
 #include <sys/types.h>
 #include <sys/module.h>
@@ -40,6 +40,7 @@ __KERNEL_RCSID(0, "$NetBSD: i915_module.
 #include <sys/systm.h>
 
 #include <drm/drmP.h>
+#include <drm/drm_sysctl.h>
 
 #include "i915_drv.h"
 
@@ -54,6 +55,8 @@ extern struct drm_driver *const i915_drm
 extern const struct pci_device_id *const i915_device_ids;
 extern const size_t i915_n_device_ids;
 
+struct drm_sysctl_def i915_def = DRM_SYSCTL_INIT();
+
 static int
 i915drmkms_init(void)
 {
@@ -74,6 +77,7 @@ i915drmkms_init(void)
 		    error);
 		return error;
 	}
+	drm_sysctl_init(&i915_def);
 
 	return 0;
 }
@@ -96,6 +100,7 @@ i915drmkms_fini(void)
 {
 
 	drm_pci_exit(i915_drm_driver, NULL);
+	drm_sysctl_fini(&i915_def);
 }
 
 static int

Index: src/sys/external/bsd/drm2/include/linux/hdmi.h
diff -u src/sys/external/bsd/drm2/include/linux/hdmi.h:1.2 src/sys/external/bsd/drm2/include/linux/hdmi.h:1.2.4.1
--- src/sys/external/bsd/drm2/include/linux/hdmi.h:1.2	Wed Jul 16 20:59:58 2014
+++ src/sys/external/bsd/drm2/include/linux/hdmi.h	Sun Jan 11 05:59:17 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: hdmi.h,v 1.2 2014/07/16 20:59:58 riastradh Exp $	*/
+/*	$NetBSD: hdmi.h,v 1.2.4.1 2015/01/11 05:59:17 snj Exp $	*/
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -197,13 +197,14 @@ hdmi_infoframe_header_pack(const struct 
 {
 	uint8_t *const p = buf;
 
-	if ((size < length) ||
-	    (size - length < HDMI_INFOFRAME_HEADER_SIZE))
+	if (length < HDMI_INFOFRAME_HEADER_SIZE)
+		return -ENOSPC;
+	if (size < length)
 		return -ENOSPC;
 
 	p[0] = header->type;
 	p[1] = header->version;
-	p[2] = length;
+	p[2] = (length - HDMI_INFOFRAME_HEADER_SIZE);
 	p[3] = 0;		/* checksum */
 
 	return HDMI_INFOFRAME_HEADER_SIZE;
@@ -263,6 +264,7 @@ hdmi_audio_infoframe_pack(const struct h
 	ret = hdmi_infoframe_header_pack(&frame->header, length, p, size);
 	if (ret < 0)
 		return ret;
+	KASSERT(ret == HDMI_INFOFRAME_HEADER_SIZE);
 	p += HDMI_INFOFRAME_HEADER_SIZE;
 	size -= HDMI_INFOFRAME_HEADER_SIZE;
 
@@ -338,6 +340,7 @@ hdmi_avi_infoframe_pack(const struct hdm
 	ret = hdmi_infoframe_header_pack(&frame->header, length, p, size);
 	if (ret < 0)
 		return ret;
+	KASSERT(ret == HDMI_INFOFRAME_HEADER_SIZE);
 	p += HDMI_INFOFRAME_HEADER_SIZE;
 	size -= HDMI_INFOFRAME_HEADER_SIZE;
 
@@ -427,6 +430,7 @@ hdmi_spd_infoframe_pack(struct hdmi_spd_
 	ret = hdmi_infoframe_header_pack(&frame->header, length, p, size);
 	if (ret < 0)
 		return ret;
+	KASSERT(ret == HDMI_INFOFRAME_HEADER_SIZE);
 	p += HDMI_INFOFRAME_HEADER_SIZE;
 	size -= HDMI_INFOFRAME_HEADER_SIZE;
 
@@ -493,6 +497,7 @@ hdmi_vendor_infoframe_pack(const struct 
 	ret = hdmi_infoframe_header_pack(&frame->header, length, p, size);
 	if (ret < 0)
 		return ret;
+	KASSERT(ret == HDMI_INFOFRAME_HEADER_SIZE);
 	p += HDMI_INFOFRAME_HEADER_SIZE;
 	size -= HDMI_INFOFRAME_HEADER_SIZE;
 

Index: src/sys/external/bsd/drm2/include/linux/module.h
diff -u src/sys/external/bsd/drm2/include/linux/module.h:1.4 src/sys/external/bsd/drm2/include/linux/module.h:1.4.2.1
--- src/sys/external/bsd/drm2/include/linux/module.h:1.4	Wed Aug  6 13:49:33 2014
+++ src/sys/external/bsd/drm2/include/linux/module.h	Sun Jan 11 05:59:17 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: module.h,v 1.4 2014/08/06 13:49:33 riastradh Exp $	*/
+/*	$NetBSD: module.h,v 1.4.2.1 2015/01/11 05:59:17 snj Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -43,7 +43,17 @@
 #define	MODULE_DEVICE_TABLE(DESCRIPTION, IDLIST)
 #define	MODULE_FIRMWARE(FIRMWARE)
 #define	MODULE_LICENSE(LICENSE)
-#define	MODULE_PARM_DESC(PARAMETER, DESCRIPTION)
+struct linux_module_param_desc {
+	const char *name;
+	const char *description;
+};
+#define	MODULE_PARM_DESC(PARAMETER, DESCRIPTION) \
+static __attribute__((__used__)) \
+const struct linux_module_param_desc PARAMETER ## _desc = { \
+    .name = # PARAMETER, \
+    .description = DESCRIPTION, \
+}; \
+__link_set_add_rodata(linux_module_param_desc, PARAMETER ## _desc)
 
 #define	THIS_MODULE	0
 

Index: src/sys/external/bsd/drm2/include/linux/moduleparam.h
diff -u src/sys/external/bsd/drm2/include/linux/moduleparam.h:1.2 src/sys/external/bsd/drm2/include/linux/moduleparam.h:1.2.8.1
--- src/sys/external/bsd/drm2/include/linux/moduleparam.h:1.2	Tue Mar 18 18:20:43 2014
+++ src/sys/external/bsd/drm2/include/linux/moduleparam.h	Sun Jan 11 05:59:17 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: moduleparam.h,v 1.2 2014/03/18 18:20:43 riastradh Exp $	*/
+/*	$NetBSD: moduleparam.h,v 1.2.8.1 2015/01/11 05:59:17 snj Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -32,6 +32,27 @@
 #ifndef _LINUX_MODULEPARAM_H_
 #define _LINUX_MODULEPARAM_H_
 
-#define	module_param_named(NAME, VAR, TYPE, MODE)
+#include <sys/types.h>
+
+struct linux_module_param_info {
+	const char *dname;	// Name used for description
+	const char *name;	// Name for sysctl
+	void *ptr;		// Pointer to variable value
+	int type;		// MTYPE_ 
+	mode_t mode;		// 600 (rw) or 400 (r)
+};
+
+#define MTYPE_int	0
+#define MTYPE_bool	1
+
+#define	module_param_named(NAME, VAR, TYPE, MODE) \
+static __attribute__((__used__)) struct linux_module_param_info info_ ## NAME = { \
+	.dname = # NAME, \
+	.name = # VAR, \
+	.ptr = & VAR, \
+	.type = MTYPE_ ## TYPE, \
+	.mode = MODE, \
+}; \
+__link_set_add_data(linux_module_param_info, info_ ## NAME)
 
 #endif  /* _LINUX_MODULEPARAM_H_ */

Index: src/sys/external/bsd/drm2/include/linux/pci.h
diff -u src/sys/external/bsd/drm2/include/linux/pci.h:1.7.2.3 src/sys/external/bsd/drm2/include/linux/pci.h:1.7.2.4
--- src/sys/external/bsd/drm2/include/linux/pci.h:1.7.2.3	Tue Nov 11 09:06:32 2014
+++ src/sys/external/bsd/drm2/include/linux/pci.h	Sun Jan 11 05:59:17 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: pci.h,v 1.7.2.3 2014/11/11 09:06:32 martin Exp $	*/
+/*	$NetBSD: pci.h,v 1.7.2.4 2015/01/11 05:59:17 snj Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -32,11 +32,13 @@
 #ifndef _LINUX_PCI_H_
 #define _LINUX_PCI_H_
 
+#ifdef _KERNEL_OPT
 #if defined(i386) || defined(amd64)
 #include "acpica.h"
 #else	/* !(i386 || amd64) */
 #define NACPICA	0
 #endif	/* i386 || amd64 */
+#endif
 
 #include <sys/types.h>
 #include <sys/param.h>

Index: src/sys/external/bsd/drm2/linux/linux_module.c
diff -u src/sys/external/bsd/drm2/linux/linux_module.c:1.4 src/sys/external/bsd/drm2/linux/linux_module.c:1.4.2.1
--- src/sys/external/bsd/drm2/linux/linux_module.c:1.4	Wed Jul 16 20:59:58 2014
+++ src/sys/external/bsd/drm2/linux/linux_module.c	Sun Jan 11 05:59:17 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_module.c,v 1.4 2014/07/16 20:59:58 riastradh Exp $	*/
+/*	$NetBSD: linux_module.c,v 1.4.2.1 2015/01/11 05:59:17 snj Exp $	*/
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_module.c,v 1.4 2014/07/16 20:59:58 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_module.c,v 1.4.2.1 2015/01/11 05:59:17 snj Exp $");
 
 #include <sys/module.h>
 #ifndef _MODULE
@@ -108,6 +108,7 @@ linux_fini(void)
 	linux_writecomb_fini();
 	linux_workqueue_fini();
 	linux_kmap_fini();
+	linux_idr_module_fini();
 }
 
 static int

Index: src/sys/external/bsd/drm2/nouveau/files.nouveau
diff -u src/sys/external/bsd/drm2/nouveau/files.nouveau:1.2.4.1 src/sys/external/bsd/drm2/nouveau/files.nouveau:1.2.4.2
--- src/sys/external/bsd/drm2/nouveau/files.nouveau:1.2.4.1	Sun Sep 21 17:41:53 2014
+++ src/sys/external/bsd/drm2/nouveau/files.nouveau	Sun Jan 11 05:59:17 2015
@@ -1,4 +1,4 @@
-#	$NetBSD: files.nouveau,v 1.2.4.1 2014/09/21 17:41:53 snj Exp $
+#	$NetBSD: files.nouveau,v 1.2.4.2 2015/01/11 05:59:17 snj Exp $
 
 device	nouveau: drmkms, drmkms_pci, drmkms_ttm, genfb, wsemuldisplaydev
 attach	nouveau at pci
@@ -111,6 +111,7 @@ makeoptions	nouveau	"CWARNFLAGS.nouveau_
 makeoptions	nouveau	"CWARNFLAGS.nouveau_engine_vp_nv98.c"+="-Wno-missing-field-initializers"
 makeoptions	nouveau	"CWARNFLAGS.nouveau_engine_vp_nvc0.c"+="-Wno-missing-field-initializers"
 makeoptions	nouveau	"CWARNFLAGS.nouveau_engine_vp_nve0.c"+="-Wno-missing-field-initializers"
+makeoptions	nouveau	"CWARNFLAGS.nouveau_nv50_fence.c"+="-Wno-shadow"
 makeoptions	nouveau	"CWARNFLAGS.nouveau_subdev_bar_base.c"+="-Wno-missing-field-initializers"
 makeoptions	nouveau	"CWARNFLAGS.nouveau_subdev_bar_nvc0.c"+="-Wno-missing-field-initializers"
 

Index: src/sys/external/bsd/drm2/nouveau/nouveau_module.c
diff -u src/sys/external/bsd/drm2/nouveau/nouveau_module.c:1.1.4.1 src/sys/external/bsd/drm2/nouveau/nouveau_module.c:1.1.4.2
--- src/sys/external/bsd/drm2/nouveau/nouveau_module.c:1.1.4.1	Sun Sep 21 17:41:53 2014
+++ src/sys/external/bsd/drm2/nouveau/nouveau_module.c	Sun Jan 11 05:59:17 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_module.c,v 1.1.4.1 2014/09/21 17:41:53 snj Exp $	*/
+/*	$NetBSD: nouveau_module.c,v 1.1.4.2 2015/01/11 05:59:17 snj Exp $	*/
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_module.c,v 1.1.4.1 2014/09/21 17:41:53 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_module.c,v 1.1.4.2 2015/01/11 05:59:17 snj Exp $");
 
 #include <sys/types.h>
 #include <sys/module.h>
@@ -40,6 +40,7 @@ __KERNEL_RCSID(0, "$NetBSD: nouveau_modu
 #include <sys/systm.h>
 
 #include <drm/drmP.h>
+#include <drm/drm_sysctl.h>
 
 #include <core/object.h>
 #include <engine/device.h>
@@ -50,6 +51,8 @@ MODULE(MODULE_CLASS_DRIVER, nouveau, "dr
 #include "ioconf.c"
 #endif
 
+struct drm_sysctl_def nouveau_def = DRM_SYSCTL_INIT();
+
 extern struct drm_driver *const nouveau_drm_driver; /* XXX */
 
 static int
@@ -73,6 +76,7 @@ nouveau_init(void)
 #if 0				/* XXX nouveau acpi */
 	nouveau_register_dsm_handler();
 #endif
+	drm_sysctl_init(&nouveau_def);
 
 	return 0;
 }
@@ -94,6 +98,7 @@ static void
 nouveau_fini(void)
 {
 
+	drm_sysctl_fini(&nouveau_def);
 #if 0				/* XXX nouveau acpi */
 	nouveau_unregister_dsm_handler();
 #endif

Index: src/sys/external/bsd/drm2/pci/drm_pci.c
diff -u src/sys/external/bsd/drm2/pci/drm_pci.c:1.6 src/sys/external/bsd/drm2/pci/drm_pci.c:1.6.2.1
--- src/sys/external/bsd/drm2/pci/drm_pci.c:1.6	Sat Jul 26 07:53:14 2014
+++ src/sys/external/bsd/drm2/pci/drm_pci.c	Sun Jan 11 05:59:17 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_pci.c,v 1.6 2014/07/26 07:53:14 riastradh Exp $	*/
+/*	$NetBSD: drm_pci.c,v 1.6.2.1 2015/01/11 05:59:17 snj Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: drm_pci.c,v 1.6 2014/07/26 07:53:14 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_pci.c,v 1.6.2.1 2015/01/11 05:59:17 snj Exp $");
 
 #include <sys/types.h>
 #include <sys/errno.h>
@@ -181,12 +181,7 @@ drm_pci_detach(struct drm_device *dev, i
 	drm_dev_unregister(dev);
 
 	/* Tear down AGP stuff if necessary.  */
-	if (dev->agp) {
-		arch_phys_wc_del(dev->agp->agp_mtrr);
-		drm_agp_clear(dev);
-		kfree(dev->agp); /* XXX Should go in drm_agp_clear...  */
-		dev->agp = NULL;
-	}
+	drm_pci_agp_destroy(dev);
 
 	/* Free the record of available bus space mappings.  */
 	dev->bus_nmaps = 0;

Index: src/sys/external/bsd/drm2/pci/drm_pci_module.c
diff -u src/sys/external/bsd/drm2/pci/drm_pci_module.c:1.2 src/sys/external/bsd/drm2/pci/drm_pci_module.c:1.2.8.1
--- src/sys/external/bsd/drm2/pci/drm_pci_module.c:1.2	Tue Mar 18 18:20:43 2014
+++ src/sys/external/bsd/drm2/pci/drm_pci_module.c	Sun Jan 11 05:59:17 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_pci_module.c,v 1.2 2014/03/18 18:20:43 riastradh Exp $	*/
+/*	$NetBSD: drm_pci_module.c,v 1.2.8.1 2015/01/11 05:59:17 snj Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: drm_pci_module.c,v 1.2 2014/03/18 18:20:43 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_pci_module.c,v 1.2.8.1 2015/01/11 05:59:17 snj Exp $");
 
 #include <sys/module.h>
 
@@ -48,6 +48,7 @@ const struct drm_agp_hooks drmkms_pci_ag
 	.agph_bind_ioctl = &drm_agp_bind_ioctl,
 	.agph_unbind_ioctl = &drm_agp_unbind_ioctl,
 	.agph_release = &drm_agp_release,
+	.agph_clear = &drm_agp_clear,
 };
 
 static int

Index: src/sys/external/bsd/drm2/radeon/radeon_module.c
diff -u src/sys/external/bsd/drm2/radeon/radeon_module.c:1.2 src/sys/external/bsd/drm2/radeon/radeon_module.c:1.2.4.1
--- src/sys/external/bsd/drm2/radeon/radeon_module.c:1.2	Sat Jul 26 21:12:43 2014
+++ src/sys/external/bsd/drm2/radeon/radeon_module.c	Sun Jan 11 05:59:17 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_module.c,v 1.2 2014/07/26 21:12:43 riastradh Exp $	*/
+/*	$NetBSD: radeon_module.c,v 1.2.4.1 2015/01/11 05:59:17 snj Exp $	*/
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: radeon_module.c,v 1.2 2014/07/26 21:12:43 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_module.c,v 1.2.4.1 2015/01/11 05:59:17 snj Exp $");
 
 #include <sys/types.h>
 #include <sys/module.h>
@@ -40,6 +40,7 @@ __KERNEL_RCSID(0, "$NetBSD: radeon_modul
 #include <sys/systm.h>
 
 #include <drm/drmP.h>
+#include <drm/drm_sysctl.h>
 
 #include "radeon_drv.h"
 
@@ -53,6 +54,8 @@ MODULE(MODULE_CLASS_DRIVER, radeon, "drm
 extern struct drm_driver *const radeon_drm_driver;
 extern int radeon_max_kms_ioctl;
 
+struct drm_sysctl_def radeon_def = DRM_SYSCTL_INIT();
+
 static int
 radeon_init(void)
 {
@@ -72,6 +75,7 @@ radeon_init(void)
 		    error);
 		return error;
 	}
+	drm_sysctl_init(&radeon_def);
 
 	return 0;
 }
@@ -92,7 +96,7 @@ radeon_guarantee_initialized(void)
 static void
 radeon_fini(void)
 {
-
+	drm_sysctl_fini(&radeon_def);
 	drm_pci_exit(radeon_drm_driver, NULL);
 }
 

Index: src/sys/modules/Makefile
diff -u src/sys/modules/Makefile:1.140 src/sys/modules/Makefile:1.140.2.1
--- src/sys/modules/Makefile:1.140	Sun Aug 10 11:50:15 2014
+++ src/sys/modules/Makefile	Sun Jan 11 05:59:18 2015
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.140 2014/08/10 11:50:15 bad Exp $
+#	$NetBSD: Makefile,v 1.140.2.1 2015/01/11 05:59:18 snj Exp $
 
 .include <bsd.own.mk>
 
@@ -195,28 +195,18 @@ SUBDIR+=	wmimsi
 .endif
 
 .if ${MACHINE_ARCH} == "x86_64"
-SUBDIR+=	azalia
-SUBDIR+=	compat_linux
 SUBDIR+=	compat_linux32
 SUBDIR+=	compat_netbsd32
-SUBDIR+=	drm
-SUBDIR+=	i915drm
-SUBDIR+=	pad
 .endif
 
 .if ${MACHINE_ARCH} == "i386"
 SUBDIR+=	ati_pcigart
-SUBDIR+=	azalia
 SUBDIR+=	compat_freebsd
 SUBDIR+=	compat_ibcs2
-SUBDIR+=	compat_linux
 SUBDIR+=	compat_svr4
-SUBDIR+=	drm
-SUBDIR+=	i915drm
 SUBDIR+=	mach64drm
 SUBDIR+=	mgadrm
 SUBDIR+=	nsclpcsio
-SUBDIR+=	pad
 SUBDIR+=	padlock
 SUBDIR+=	r128drm
 SUBDIR+=	radeondrm
@@ -227,11 +217,20 @@ SUBDIR+=	viac7temp
 SUBDIR+=	viadrm
 .endif
 
+.if ${MACHINE_ARCH} == "i386" || \
+    ${MACHINE_ARCH} == "x86_64"
+SUBDIR+=	azalia
+SUBDIR+=	compat_linux
+SUBDIR+=	drm
+SUBDIR+=	drmkms
+SUBDIR+=	drmkms_linux
+SUBDIR+=	drmkms_pci
+SUBDIR+=	i915drm
+SUBDIR+=	i915drmkms
+SUBDIR+=	pad
 #
 # ISA modules
 #
-.if ${MACHINE_ARCH} == "i386" || \
-    ${MACHINE_ARCH} == "x86_64"
 SUBDIR+=	aps
 SUBDIR+=	finsio
 SUBDIR+=	itesio

Index: src/sys/modules/drmkms/Makefile
diff -u src/sys/modules/drmkms/Makefile:1.3 src/sys/modules/drmkms/Makefile:1.3.2.1
--- src/sys/modules/drmkms/Makefile:1.3	Wed Jul 16 20:56:25 2014
+++ src/sys/modules/drmkms/Makefile	Sun Jan 11 05:59:18 2015
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.3 2014/07/16 20:56:25 riastradh Exp $
+# $NetBSD: Makefile,v 1.3.2.1 2015/01/11 05:59:18 snj Exp $
 
 .include "../Makefile.inc"
 .include "Makefile.inc"
@@ -7,6 +7,7 @@
 .PATH:	${S}/external/bsd/drm2/pci
 .PATH:	${S}/external/bsd/drm2/dist/drm
 
+MKLDSCRIPT=yes
 KMOD=	drmkms
 
 # Upstream source files.
@@ -46,6 +47,7 @@ SRCS+=	drm_probe_helper.c
 SRCS+=	drm_rect.c
 SRCS+=	drm_scatter.c
 SRCS+=	drm_stub.c
+SRCS+=	drm_sysctl.c
 SRCS+=	drm_sysfs.c
 SRCS+=	drm_vm.c
 SRCS+=	drm_vma_manager.c
@@ -58,4 +60,6 @@ COPTS.drm_crtc.c+=	-Wno-shadow
 COPTS.drm_crtc.c+=	-Wno-missing-field-initializers
 COPTS.drm_edid.c+=	-Wno-shadow
 
+CPPFLAGS+=		-DNACPICA=1
+
 .include <bsd.kmodule.mk>

Index: src/sys/modules/drmkms_linux/Makefile
diff -u src/sys/modules/drmkms_linux/Makefile:1.4 src/sys/modules/drmkms_linux/Makefile:1.4.2.1
--- src/sys/modules/drmkms_linux/Makefile:1.4	Thu Jul 17 13:52:22 2014
+++ src/sys/modules/drmkms_linux/Makefile	Sun Jan 11 05:59:18 2015
@@ -1,9 +1,10 @@
-# $NetBSD: Makefile,v 1.4 2014/07/17 13:52:22 riastradh Exp $
+# $NetBSD: Makefile,v 1.4.2.1 2015/01/11 05:59:18 snj Exp $
 
 .include "../Makefile.inc"
 
 .PATH: ${S}/external/bsd/drm2/linux
 
+CPPFLAGS+=	-I${S}/external/bsd/common/include
 CPPFLAGS+=	-I${S}/external/bsd/drm2/include
 
 # XXX Kludge!

Index: src/sys/modules/i915drmkms/Makefile
diff -u src/sys/modules/i915drmkms/Makefile:1.4 src/sys/modules/i915drmkms/Makefile:1.4.2.1
--- src/sys/modules/i915drmkms/Makefile:1.4	Thu Jul 24 21:18:40 2014
+++ src/sys/modules/i915drmkms/Makefile	Sun Jan 11 05:59:18 2015
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.4 2014/07/24 21:18:40 riastradh Exp $
+# $NetBSD: Makefile,v 1.4.2.1 2015/01/11 05:59:18 snj Exp $
 
 .include "../Makefile.inc"
 .include "../drmkms/Makefile.inc"
@@ -11,6 +11,7 @@ CPPFLAGS+=	-I${S}/external/bsd/drm2/i915
 
 KMOD=	i915drmkms
 IOCONF=	i915drmkms.ioconf
+MKLDSCRIPT=yes
 
 SRCS+=	dvo_ch7017.c
 SRCS+=	dvo_ch7xxx.c
@@ -38,7 +39,7 @@ SRCS+=	i915_params.c
 SRCS+=	i915_suspend.c
 SRCS+=	i915_sysfs.c		# XXX No sysfs in NetBSD.
 SRCS+=	i915_ums.c
-#SRCS+=	intel_acpi.c		# XXX ACPI
+SRCS+=	intel_acpi.c
 SRCS+=	intel_bios.c
 SRCS+=	intel_crt.c
 SRCS+=	intel_ddi.c
@@ -53,7 +54,7 @@ SRCS+=	intel_hdmi.c
 SRCS+=	intel_i2c.c
 SRCS+=	intel_lvds.c
 SRCS+=	intel_modes.c
-#SRCS+=	intel_opregion.c	# XXX ACPI
+SRCS+=	intel_opregion.c
 SRCS+=	intel_overlay.c
 SRCS+=	intel_panel.c
 SRCS+=	intel_pm.c
@@ -69,11 +70,16 @@ SRCS+=	i915_pci.c
 SRCS+=	intel_gtt.c
 SRCS+=	intelfb.c
 
-COPTS.i915_drv.c+=	-Wno-override-init
-COPTS.intel_display.c+=	-Wno-shadow
+COPTS.i915_drv.c+=	${${ACTIVE_CC} == "gcc":? -Wno-override-init :}
+COPTS.i915_drv.c+=	${${ACTIVE_CC} == "clang":? -Wno-initializer-overrides :}
+
+COPTS.intel_display.c+=	-Wno-shadow -Wno-conversion
 COPTS.intel_panel.c+=	-Wno-shadow
 COPTS.intel_pm.c+=	-Wno-shadow
 
 CPPFLAGS+=		-DCONFIG_DRM_I915_FBDEV
 
+CPPFLAGS+=		-DNACPICA=1
+CPPFLAGS+=		-DNVGA=1
+
 .include <bsd.kmodule.mk>

Added files:

Index: src/sys/external/bsd/drm2/drm/drm_sysctl.c
diff -u /dev/null src/sys/external/bsd/drm2/drm/drm_sysctl.c:1.4.4.2
--- /dev/null	Sun Jan 11 05:59:18 2015
+++ src/sys/external/bsd/drm2/drm/drm_sysctl.c	Sun Jan 11 05:59:17 2015
@@ -0,0 +1,163 @@
+/*-
+ * Copyright (c) 2014 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Christos Zoulas.
+ *
+ * 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: drm_sysctl.c,v 1.4.4.2 2015/01/11 05:59:17 snj Exp $");
+
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/systm.h>
+#include <sys/sysctl.h>
+#include <linux/module.h>
+#include <linux/moduleparam.h>
+/* We need to specify the type programmatically */
+#undef sysctl_createv
+
+#include <drm/drm_sysctl.h>
+
+#ifdef SYSCTL_INCLUDE_DESCR
+static const char *
+drm_sysctl_get_description(const struct linux_module_param_info *p,
+    const struct drm_sysctl_def *def)
+{
+	const void * const *b = def->bd, * const *e = def->ed;
+
+	for (; b < e; b++) {
+		const struct linux_module_param_desc *d = *b;
+		if (strcmp(p->dname, d->name) == 0)
+			return d->description;
+	}
+	return NULL;
+}
+#endif
+
+#ifdef notyet
+static uint64_t
+drm_sysctl_get_value(const struct linux_module_param_info *p)
+{
+	switch (p->type) {
+	case MTYPE_bool:
+		return *(bool *)p->ptr;
+	case MTYPE_int:
+		return *(int *)p->ptr;
+	default:
+		aprint_error("unhandled module param type %d for %s\n",
+		    p->type, p->name);
+		return 0;
+	}
+}
+
+static size_t
+drm_sysctl_get_size(const struct linux_module_param_info *p)
+{
+	switch (p->type) {
+	case MTYPE_bool:
+		return sizeof(bool);
+	case MTYPE_int:
+		return sizeof(int);
+	default:
+		aprint_error("unhandled module param type %d for %s\n",
+		    p->type, p->name);
+		return sizeof(void *);
+	}
+}
+#endif
+
+static int
+drm_sysctl_get_type(const struct linux_module_param_info *p)
+{
+	switch (p->type) {
+	case MTYPE_bool:
+		return CTLTYPE_BOOL;
+	case MTYPE_int:
+		return CTLTYPE_INT;
+	default:
+		aprint_error("unhandled module param type %d for %s\n",
+		    p->type, p->name);
+		return CTLTYPE_NODE;
+	}
+}
+
+
+static int
+drm_sysctl_node(const char *name, const struct sysctlnode **node,
+    struct sysctllog **log)
+{
+	return sysctl_createv(log, 0, node, node,
+	    CTLFLAG_PERMANENT, CTLTYPE_NODE, name, NULL,
+	    NULL, 0, NULL, 0, CTL_CREATE, CTL_EOL);
+}
+	
+
+void
+drm_sysctl_init(struct drm_sysctl_def *def)
+{
+	const void * const *b = def->bp, * const *e = def->ep;
+	const struct sysctlnode *rnode = NULL, *cnode;
+	const char *name = "drm2";
+
+	int error;
+	if ((error = sysctl_createv(&def->log, 0, NULL, &rnode,
+	    CTLFLAG_PERMANENT, CTLTYPE_NODE, name,
+	    SYSCTL_DESCR("DRM driver parameters"),
+	    NULL, 0, NULL, 0, CTL_HW, CTL_CREATE, CTL_EOL)) != 0) {
+		aprint_error("sysctl_createv returned %d, "
+		    "for %s ignoring\n", error, name);
+		return;
+	}
+
+	for (; b < e; b++) {
+		const struct linux_module_param_info *p = *b;
+		char copy[256], *n, *nn;
+		strlcpy(copy, p->name, sizeof(copy));
+		cnode = rnode;
+		for (n = copy; (nn = strchr(n, '.')) != NULL; n = nn) {
+			*nn++ = '\0';
+			if ((error = drm_sysctl_node(n, &cnode, &def->log))
+			    != 0) {
+				aprint_error("sysctl_createv returned %d, "
+				    "for %s ignoring\n", error, n);
+				continue;
+			}
+		}
+			
+	        if ((error = sysctl_createv(&def->log, 0, &cnode,
+		    &cnode, p->mode == 0600 ? CTLFLAG_READWRITE : 0,
+		    drm_sysctl_get_type(p), n,
+		    SYSCTL_DESCR(drm_sysctl_get_description(p, def)),
+		    NULL, 0, p->ptr, 0, CTL_CREATE, CTL_EOL)) != 0)
+			aprint_error("sysctl_createv returned %d, "
+			    "for %s ignoring\n", error, n);
+	}
+}
+
+void
+drm_sysctl_fini(struct drm_sysctl_def *def)
+{
+	sysctl_teardown(&def->log);
+}

Index: src/sys/external/bsd/drm2/include/drm/drm_sysctl.h
diff -u /dev/null src/sys/external/bsd/drm2/include/drm/drm_sysctl.h:1.2.4.2
--- /dev/null	Sun Jan 11 05:59:18 2015
+++ src/sys/external/bsd/drm2/include/drm/drm_sysctl.h	Sun Jan 11 05:59:17 2015
@@ -0,0 +1,48 @@
+/*-
+ * Copyright (c) 2014 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Christos Zoulas.
+ *
+ * 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.
+ */
+struct sysctllog;
+
+struct drm_sysctl_def {
+	struct sysctllog *log;
+	const void *bp, *ep, *bd, *ed;
+};
+
+void drm_sysctl_init(struct drm_sysctl_def *);
+void drm_sysctl_fini(struct drm_sysctl_def *);
+
+#define DRM_SYSCTL_INIT() {				\
+	NULL,						\
+	__link_set_start(linux_module_param_info),	\
+	__link_set_end(linux_module_param_info),	\
+	__link_set_start(linux_module_param_desc),	\
+	__link_set_end(linux_module_param_desc),	\
+};
+
+__link_set_decl(linux_module_param_info, struct linux_module_param_info);
+__link_set_decl(linux_module_param_desc, struct linux_module_param_desc);

Index: src/sys/external/bsd/drm2/ttm/files.ttm
diff -u /dev/null src/sys/external/bsd/drm2/ttm/files.ttm:1.1.4.2
--- /dev/null	Sun Jan 11 05:59:18 2015
+++ src/sys/external/bsd/drm2/ttm/files.ttm	Sun Jan 11 05:59:17 2015
@@ -0,0 +1,26 @@
+#	$NetBSD: files.ttm,v 1.1.4.2 2015/01/11 05:59:17 snj Exp $
+
+# TTM, the texture and tiling manager.
+
+define	drmkms_ttm: drmkms
+
+file	external/bsd/drm2/ttm/ttm_agp_backend.c			drmkms_ttm
+file	external/bsd/drm2/dist/drm/ttm/ttm_memory.c		drmkms_ttm
+file	external/bsd/drm2/dist/drm/ttm/ttm_tt.c			drmkms_ttm
+file	external/bsd/drm2/dist/drm/ttm/ttm_bo.c			drmkms_ttm
+file	external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c		drmkms_ttm
+file	external/bsd/drm2/ttm/ttm_bo_vm.c			drmkms_ttm
+# Linux module goo.
+#file	external/bsd/drm2/dist/drm/ttm/ttm_module.c		drmkms_ttm
+# Used only by vmwgfx.  Needs porting for rcu -> pserialize.
+#file	external/bsd/drm2/dist/drm/ttm/ttm_object.c		drmkms_ttm
+# Used only by vmwgfx.  Needs porting.  Does silly things like SIGKILL.
+#file	external/bsd/drm2/dist/drm/ttm/ttm_lock.c		drmkms_ttm
+file	external/bsd/drm2/dist/drm/ttm/ttm_execbuf_util.c	drmkms_ttm
+# Replaced locally by ttm_bus_dma.c.
+#file	external/bsd/drm2/dist/drm/ttm/ttm_page_alloc.c		drmkms_ttm
+file	external/bsd/drm2/dist/drm/ttm/ttm_bo_manager.c		drmkms_ttm
+# Replaced locally by ttm_bus_dma.c.
+#file	external/bsd/drm2/dist/drm/ttm/ttm_page_alloc_dma.c	drmkms_ttm
+
+file	external/bsd/drm2/ttm/ttm_bus_dma.c			drmkms_ttm

Reply via email to