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