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