CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: kre Date: Sun Jan 27 05:00:48 UTC 2019 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: Fix merge botch. To generate a diff of this commit: cvs rdiff -u -r1.35 -r1.36 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.35 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.36 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.35 Sun Jan 27 02:08:42 2019 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Sun Jan 27 05:00:48 2019 @@ -1,6 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.35 2019/01/27 02:08:42 pgoyette Exp $ - -version 20180827 +# $NetBSD: files.i915drmkms,v 1.36 2019/01/27 05:00:48 kre Exp $ version 20180827
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: dholland Date: Sat Jan 19 16:58:29 UTC 2019 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: i915drmkms requires firmload. PR 53892 To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.33 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.34 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.33 Fri Sep 21 11:27:13 2018 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Sat Jan 19 16:58:29 2019 @@ -1,9 +1,9 @@ -# $NetBSD: files.i915drmkms,v 1.33 2018/09/21 11:27:13 kamil Exp $ +# $NetBSD: files.i915drmkms,v 1.34 2019/01/19 16:58:29 dholland Exp $ version 20180827 define intelfbbus { } -device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 +device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810, firmload attach i915drmkms at pci device intelfb: intelfbbus, drmfb, drmfb_pci, wsemuldisplaydev
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: kamil Date: Fri Sep 21 11:27:13 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: Appease GCC with a kernel sanitizer Add -Wno-maybe-uninitialized for intel_sprite.c that is a false positive. To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.32 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.33 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.32 Mon Aug 27 16:06:01 2018 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Fri Sep 21 11:27:13 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.32 2018/08/27 16:06:01 riastradh Exp $ +# $NetBSD: files.i915drmkms,v 1.33 2018/09/21 11:27:13 kamil Exp $ version 20180827 @@ -22,6 +22,8 @@ makeoptions i915drmkms "CWARNFLAGS.i915d 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_sprite.c"+="${${ACTIVE_CC} == gcc:? -Wno-maybe-uninitialized :}" + file external/bsd/drm2/i915drm/i915_module.c i915drmkms file external/bsd/drm2/i915drm/i915_pci.c i915drmkms file external/bsd/drm2/i915drm/intel_gtt.c i915drmkms
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 16:15:23 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: intel_gtt.c Log Message: Convert to uintmax_t if we're going to use %jx. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/sys/external/bsd/drm2/i915drm/intel_gtt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/intel_gtt.c diff -u src/sys/external/bsd/drm2/i915drm/intel_gtt.c:1.10 src/sys/external/bsd/drm2/i915drm/intel_gtt.c:1.11 --- src/sys/external/bsd/drm2/i915drm/intel_gtt.c:1.10 Mon Aug 27 16:15:09 2018 +++ src/sys/external/bsd/drm2/i915drm/intel_gtt.c Mon Aug 27 16:15:23 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: intel_gtt.c,v 1.10 2018/08/27 16:15:09 riastradh Exp $ */ +/* $NetBSD: intel_gtt.c,v 1.11 2018/08/27 16:15:23 riastradh Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ /* Intel GTT stubs */ #include -__KERNEL_RCSID(0, "$NetBSD: intel_gtt.c,v 1.10 2018/08/27 16:15:09 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: intel_gtt.c,v 1.11 2018/08/27 16:15:23 riastradh Exp $"); #include #include @@ -187,7 +187,7 @@ intel_gtt_insert_sg_entries(bus_dmamap_t } KASSERTMSG(len == 0, "segment length not divisible by PAGE_SIZE: %jx", - dmamap->dm_segs[seg].ds_len); + (uintmax_t)dmamap->dm_segs[seg].ds_len); } agp_i810_post_gtt_entry(isc, (va - PAGE_SIZE)); intel_gtt_chipset_flush();
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 14:48:35 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: intel_gtt.c Log Message: Cope with multi-page segments. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/external/bsd/drm2/i915drm/intel_gtt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/intel_gtt.c diff -u src/sys/external/bsd/drm2/i915drm/intel_gtt.c:1.8 src/sys/external/bsd/drm2/i915drm/intel_gtt.c:1.9 --- src/sys/external/bsd/drm2/i915drm/intel_gtt.c:1.8 Mon Aug 27 07:17:01 2018 +++ src/sys/external/bsd/drm2/i915drm/intel_gtt.c Mon Aug 27 14:48:35 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: intel_gtt.c,v 1.8 2018/08/27 07:17:01 riastradh Exp $ */ +/* $NetBSD: intel_gtt.c,v 1.9 2018/08/27 14:48:35 riastradh Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ /* Intel GTT stubs */ #include -__KERNEL_RCSID(0, "$NetBSD: intel_gtt.c,v 1.8 2018/08/27 07:17:01 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: intel_gtt.c,v 1.9 2018/08/27 14:48:35 riastradh Exp $"); #include #include @@ -170,17 +170,24 @@ intel_gtt_insert_sg_entries(bus_dmamap_t for (seg = 0; seg < dmamap->dm_nsegs; seg++) { const bus_addr_t addr = dmamap->dm_segs[seg].ds_addr; + bus_size_t len; - KASSERT(dmamap->dm_segs[seg].ds_len == PAGE_SIZE); - - /* XXX Respect flags. */ - error = agp_i810_write_gtt_entry(isc, va, addr, gtt_flags); - if (error) - device_printf(agp_i810_sc->as_dev, - "write gtt entry" - " %"PRIxMAX" -> %"PRIxMAX" failed: %d\n", - (uintmax_t)va, (uintmax_t)(addr | 1), error); - va += PAGE_SIZE; + for (len = dmamap->dm_segs[seg].ds_len; + len >= PAGE_SIZE; + len -= PAGE_SIZE, va += PAGE_SIZE) { + /* XXX Respect flags. */ + error = agp_i810_write_gtt_entry(isc, va, addr, + gtt_flags); + if (error) +device_printf(agp_i810_sc->as_dev, +"write gtt entry" +" %"PRIxMAX" -> %"PRIxMAX" failed: %d\n", +(uintmax_t)va, (uintmax_t)(addr | 1), +error); + } + KASSERTMSG(len == 0, + "segment length not divisible by PAGE_SIZE: %jx", + dmamap->dm_segs[seg].ds_len); } agp_i810_post_gtt_entry(isc, (va - PAGE_SIZE)); intel_gtt_chipset_flush();
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 13:54:15 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: Put override directory first in CPPFLAGS. To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.30 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.29 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.30 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.29 Mon Aug 27 13:54:04 2018 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Mon Aug 27 13:54:15 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.29 2018/08/27 13:54:04 riastradh Exp $ +# $NetBSD: files.i915drmkms,v 1.30 2018/08/27 13:54:15 riastradh Exp $ define intelfbbus { } device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 @@ -7,9 +7,10 @@ attach i915drmkms at pci device intelfb: intelfbbus, drmfb, drmfb_pci, wsemuldisplaydev 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 CPPFLAGS+="-I$S/external/bsd/drm2/dist/drm/i915" + makeoptions i915drmkms CPPFLAGS+="-DCONFIG_DRM_I915_FBDEV=1" makeoptions i915drmkms CPPFLAGS+="-DCONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT=0" makeoptions i915drmkms CPPFLAGS+="-DCONFIG_DRM_FBDEV_EMULATION=1"
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 13:54:05 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: Move CPPFLAGS to top, CWARNFLAGS below. To generate a diff of this commit: cvs rdiff -u -r1.28 -r1.29 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.28 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.29 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.28 Mon Aug 27 13:53:52 2018 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Mon Aug 27 13:54:04 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.28 2018/08/27 13:53:52 riastradh Exp $ +# $NetBSD: files.i915drmkms,v 1.29 2018/08/27 13:54:04 riastradh Exp $ define intelfbbus { } device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 @@ -10,16 +10,15 @@ 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 CPPFLAGS+="-DCONFIG_DRM_I915_FBDEV=1" +makeoptions i915drmkms CPPFLAGS+="-DCONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT=0" +makeoptions i915drmkms CPPFLAGS+="-DCONFIG_DRM_FBDEV_EMULATION=1" + makeoptions i915drmkms "CWARNFLAGS.i915drmkms"+="-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 :}" -# XXX x86 kludge. -makeoptions i915drmkms CPPFLAGS+="-DCONFIG_DRM_I915_FBDEV=1" -makeoptions i915drmkms CPPFLAGS+="-DCONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT=0" -makeoptions i915drmkms CPPFLAGS+="-DCONFIG_DRM_FBDEV_EMULATION=1" - file external/bsd/drm2/i915drm/i915_module.c i915drmkms file external/bsd/drm2/i915drm/i915_pci.c i915drmkms file external/bsd/drm2/i915drm/intel_gtt.c i915drmkms
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 13:53:52 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: Omit commented warn flag, evidently needless. To generate a diff of this commit: cvs rdiff -u -r1.27 -r1.28 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.27 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.28 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.27 Mon Aug 27 13:35:15 2018 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Mon Aug 27 13:53:52 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.27 2018/08/27 13:35:15 riastradh Exp $ +# $NetBSD: files.i915drmkms,v 1.28 2018/08/27 13:53:52 riastradh Exp $ define intelfbbus { } device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 @@ -14,7 +14,6 @@ makeoptions i915drmkms "CWARNFLAGS.i915d 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-conversion" # XXX x86 kludge. makeoptions i915drmkms CPPFLAGS+="-DCONFIG_DRM_I915_FBDEV=1"
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 13:40:03 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_pci.c Log Message: i915 needs firmware now too, so defer to mountroot. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/external/bsd/drm2/i915drm/i915_pci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_pci.c diff -u src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.16 src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.17 --- src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.16 Mon Aug 27 07:57:12 2018 +++ src/sys/external/bsd/drm2/i915drm/i915_pci.c Mon Aug 27 13:40:03 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_pci.c,v 1.16 2018/08/27 07:57:12 riastradh Exp $ */ +/* $NetBSD: i915_pci.c,v 1.17 2018/08/27 13:40:03 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.16 2018/08/27 07:57:12 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.17 2018/08/27 13:40:03 riastradh Exp $"); #include #include @@ -47,6 +47,7 @@ SIMPLEQ_HEAD(i915drmkms_task_head, i915d struct i915drmkms_softc { device_t sc_dev; + struct pci_attach_args sc_pa; enum { I915DRMKMS_TASK_ATTACH, I915DRMKMS_TASK_WORKQUEUE, @@ -64,6 +65,7 @@ static const struct intel_device_info * static int i915drmkms_match(device_t, cfdata_t, void *); static void i915drmkms_attach(device_t, device_t, void *); +static void i915drmkms_attach_real(device_t); static int i915drmkms_detach(device_t, int); static bool i915drmkms_suspend(device_t, const pmf_qual_t *); @@ -139,14 +141,6 @@ i915drmkms_attach(device_t parent, devic { struct i915drmkms_softc *const sc = device_private(self); const struct pci_attach_args *const pa = aux; - const struct intel_device_info *const info = i915drmkms_pci_lookup(pa); - const unsigned long cookie = - (unsigned long)(uintptr_t)(const void *)info; - int error; - - KASSERT(info != NULL); - - sc->sc_dev = self; pci_aprint_devinfo(pa, NULL); @@ -154,6 +148,29 @@ i915drmkms_attach(device_t parent, devic &i915drmkms_resume)) aprint_error_dev(self, "unable to establish power handler\n"); + /* + * Trivial initialization first; the rest will come after we + * have mounted the root file system and can load firmware + * images. + */ + sc->sc_dev = self; + sc->sc_pa = *pa; + + config_mountroot(self, &i915drmkms_attach_real); +} + +static void +i915drmkms_attach_real(device_t self) +{ + struct i915drmkms_softc *const sc = device_private(self); + struct pci_attach_args *const pa = &sc->sc_pa; + const struct intel_device_info *const info = i915drmkms_pci_lookup(pa); + const unsigned long cookie = + (unsigned long)(uintptr_t)(const void *)info; + int error; + + KASSERT(info != NULL); + sc->sc_task_state = I915DRMKMS_TASK_ATTACH; SIMPLEQ_INIT(&sc->sc_task_u.attach);
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 13:35:15 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Added Files: src/sys/external/bsd/drm2/i915drm: intel_dsi.c Log Message: Stub out intel_dsi_init. To generate a diff of this commit: cvs rdiff -u -r1.26 -r1.27 src/sys/external/bsd/drm2/i915drm/files.i915drmkms cvs rdiff -u -r0 -r1.1 src/sys/external/bsd/drm2/i915drm/intel_dsi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.26 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.27 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.26 Mon Aug 27 07:56:59 2018 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Mon Aug 27 13:35:15 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.26 2018/08/27 07:56:59 riastradh Exp $ +# $NetBSD: files.i915drmkms,v 1.27 2018/08/27 13:35:15 riastradh Exp $ define intelfbbus { } device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 @@ -69,7 +69,7 @@ file external/bsd/drm2/dist/drm/i915/int file external/bsd/drm2/dist/drm/i915/intel_display.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_dp.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_dp_mst.c i915drmkms -#file external/bsd/drm2/dist/drm/i915/intel_dsi.c i915drmkms +file external/bsd/drm2/i915drm/intel_dsi.c i915drmkms #file external/bsd/drm2/dist/drm/i915/intel_dsi_panel_vbt.c i915drmkms #file external/bsd/drm2/dist/drm/i915/intel_dsi_pll.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_dvo.c i915drmkms Added files: Index: src/sys/external/bsd/drm2/i915drm/intel_dsi.c diff -u /dev/null src/sys/external/bsd/drm2/i915drm/intel_dsi.c:1.1 --- /dev/null Mon Aug 27 13:35:15 2018 +++ src/sys/external/bsd/drm2/i915drm/intel_dsi.c Mon Aug 27 13:35:15 2018 @@ -0,0 +1,40 @@ +/* $NetBSD: intel_dsi.c,v 1.1 2018/08/27 13:35:15 riastradh Exp $ */ + +/*- + * Copyright (c) 2018 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Taylor R. Campbell. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__KERNEL_RCSID(0, "$NetBSD: intel_dsi.c,v 1.1 2018/08/27 13:35:15 riastradh Exp $"); + +#include "i915_drv.h" + +void +intel_dsi_init(struct drm_device *dev) +{ +}
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:56:14 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Added Files: src/sys/external/bsd/drm2/i915drm: i915_gem_userptr.c Log Message: Override i915_gem_userptr.c with stubs for now. To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.25 src/sys/external/bsd/drm2/i915drm/files.i915drmkms cvs rdiff -u -r0 -r1.1 src/sys/external/bsd/drm2/i915drm/i915_gem_userptr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.24 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.25 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.24 Mon Aug 27 07:55:17 2018 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Mon Aug 27 07:56:13 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.24 2018/08/27 07:55:17 riastradh Exp $ +# $NetBSD: files.i915drmkms,v 1.25 2018/08/27 07:56:13 riastradh Exp $ define intelfbbus { } device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 @@ -49,7 +49,7 @@ file external/bsd/drm2/dist/drm/i915/i91 file external/bsd/drm2/dist/drm/i915/i915_gem_shrinker.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_gem_stolen.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_gem_tiling.c i915drmkms -#file external/bsd/drm2/dist/drm/i915/i915_gem_userptr.c i915drmkms +file external/bsd/drm2/i915drm/i915_gem_userptr.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_gpu_error.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_guc_submission.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_irq.c i915drmkms Added files: Index: src/sys/external/bsd/drm2/i915drm/i915_gem_userptr.c diff -u /dev/null src/sys/external/bsd/drm2/i915drm/i915_gem_userptr.c:1.1 --- /dev/null Mon Aug 27 07:56:14 2018 +++ src/sys/external/bsd/drm2/i915drm/i915_gem_userptr.c Mon Aug 27 07:56:13 2018 @@ -0,0 +1,48 @@ +/* $NetBSD: i915_gem_userptr.c,v 1.1 2018/08/27 07:56:13 riastradh Exp $ */ + +/*- + * Copyright (c) 2018 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Taylor R. Campbell. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__KERNEL_RCSID(0, "$NetBSD: i915_gem_userptr.c,v 1.1 2018/08/27 07:56:13 riastradh Exp $"); + +#include "i915_drv.h" + +int +i915_gem_init_userptr(struct drm_device *dev) +{ + return 0; +} + +int +i915_gem_userptr_ioctl(struct drm_device *dev, void *data, +struct drm_file *file) +{ + return -ENODEV; +}
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:55:17 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms i915drmkms2netbsd Log Message: Restore intel_fbdev.c. To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 src/sys/external/bsd/drm2/i915drm/files.i915drmkms cvs rdiff -u -r1.1 -r1.2 src/sys/external/bsd/drm2/i915drm/i915drmkms2netbsd Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.23 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.24 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.23 Mon Aug 27 07:26:18 2018 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Mon Aug 27 07:55:17 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.23 2018/08/27 07:26:18 riastradh Exp $ +# $NetBSD: files.i915drmkms,v 1.24 2018/08/27 07:55:17 riastradh Exp $ define intelfbbus { } device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 @@ -74,6 +74,7 @@ file external/bsd/drm2/dist/drm/i915/int #file external/bsd/drm2/dist/drm/i915/intel_dsi_pll.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_dvo.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_fbc.c i915drmkms +file external/bsd/drm2/dist/drm/i915/intel_fbdev.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_fifo_underrun.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_frontbuffer.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_guc_loader.c i915drmkms Index: src/sys/external/bsd/drm2/i915drm/i915drmkms2netbsd diff -u src/sys/external/bsd/drm2/i915drm/i915drmkms2netbsd:1.1 src/sys/external/bsd/drm2/i915drm/i915drmkms2netbsd:1.2 --- src/sys/external/bsd/drm2/i915drm/i915drmkms2netbsd:1.1 Mon Aug 27 05:36:15 2018 +++ src/sys/external/bsd/drm2/i915drm/i915drmkms2netbsd Mon Aug 27 07:55:17 2018 @@ -1,6 +1,6 @@ #!/bin/sh -# $NetBSD: i915drmkms2netbsd,v 1.1 2018/08/27 05:36:15 riastradh Exp $ +# $NetBSD: i915drmkms2netbsd,v 1.2 2018/08/27 07:55:17 riastradh Exp $ # # $ /path/to/i915drmkms2netbsd > /path/to/files.i915drmkms.new # @@ -15,6 +15,7 @@ i915drmkms_top=external/bsd/drm2/dist/dr i915drmkms_flag=i915drmkms env CONFIG_ACPI=y \ +env CONFIG_DRM_FBDEV_EMULATION=y \ env src=. \ make -f Makefile -V '$(i915-y)' \ | tr ' ' '\n' \
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:26:18 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: Disable mipi dsi stuff until I can figure it out. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.22 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.23 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.22 Mon Aug 27 07:21:01 2018 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Mon Aug 27 07:26:18 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.22 2018/08/27 07:21:01 riastradh Exp $ +# $NetBSD: files.i915drmkms,v 1.23 2018/08/27 07:26:18 riastradh Exp $ define intelfbbus { } device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 @@ -69,9 +69,9 @@ file external/bsd/drm2/dist/drm/i915/int file external/bsd/drm2/dist/drm/i915/intel_display.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_dp.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_dp_mst.c i915drmkms -file external/bsd/drm2/dist/drm/i915/intel_dsi.c i915drmkms -file external/bsd/drm2/dist/drm/i915/intel_dsi_panel_vbt.c i915drmkms -file external/bsd/drm2/dist/drm/i915/intel_dsi_pll.c i915drmkms +#file external/bsd/drm2/dist/drm/i915/intel_dsi.c i915drmkms +#file external/bsd/drm2/dist/drm/i915/intel_dsi_panel_vbt.c i915drmkms +#file external/bsd/drm2/dist/drm/i915/intel_dsi_pll.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_dvo.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_fbc.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_fifo_underrun.c i915drmkms
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:21:01 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: Just do all of i915drmkms with -Wno-shadow. To generate a diff of this commit: cvs rdiff -u -r1.21 -r1.22 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.21 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.22 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.21 Mon Aug 27 07:19:34 2018 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Mon Aug 27 07:21:01 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.21 2018/08/27 07:19:34 riastradh Exp $ +# $NetBSD: files.i915drmkms,v 1.22 2018/08/27 07:21:01 riastradh Exp $ define intelfbbus { } device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 @@ -10,15 +10,11 @@ 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.i915drmkms"+="-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.i915_gem.c"+="-Wno-shadow" -makeoptions i915drmkms "CWARNFLAGS.i915_gem_gtt.c"+="-Wno-shadow" -makeoptions i915drmkms "CWARNFLAGS.i915_gpu_error.c"+="-Wno-shadow" -makeoptions i915drmkms "CWARNFLAGS.i915_vgpu.c"+="-Wno-shadow" -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" +#makeoptions i915drmkms "CWARNFLAGS.intel_display.c"+="-Wno-conversion" # XXX x86 kludge. makeoptions i915drmkms CPPFLAGS+="-DCONFIG_DRM_I915_FBDEV=1"
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:19:34 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: Disable intel_audio.c until we figure out how to make it talk to hdaudio. To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.20 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.21 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.20 Mon Aug 27 07:17:21 2018 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Mon Aug 27 07:19:34 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.20 2018/08/27 07:17:21 riastradh Exp $ +# $NetBSD: files.i915drmkms,v 1.21 2018/08/27 07:19:34 riastradh Exp $ define intelfbbus { } device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 @@ -65,7 +65,7 @@ file external/bsd/drm2/dist/drm/i915/i91 file external/bsd/drm2/dist/drm/i915/intel_acpi.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_atomic.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_atomic_plane.c i915drmkms -file external/bsd/drm2/dist/drm/i915/intel_audio.c i915drmkms +#file external/bsd/drm2/dist/drm/i915/intel_audio.c i915drmkms # XXX hdaudio file external/bsd/drm2/dist/drm/i915/intel_bios.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_crt.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_csr.c i915drmkms
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:17:21 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: i915_gem_gtt.c shadows. To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.19 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.20 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.19 Mon Aug 27 07:15:39 2018 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Mon Aug 27 07:17:21 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.19 2018/08/27 07:15:39 riastradh Exp $ +# $NetBSD: files.i915drmkms,v 1.20 2018/08/27 07:17:21 riastradh Exp $ define intelfbbus { } device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 @@ -13,6 +13,7 @@ makeoptions i915drmkms CPPFLAGS+="-I$S/e 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.i915_gem.c"+="-Wno-shadow" +makeoptions i915drmkms "CWARNFLAGS.i915_gem_gtt.c"+="-Wno-shadow" makeoptions i915drmkms "CWARNFLAGS.i915_gpu_error.c"+="-Wno-shadow" makeoptions i915drmkms "CWARNFLAGS.i915_vgpu.c"+="-Wno-shadow" makeoptions i915drmkms "CWARNFLAGS.intel_display.c"+="-Wno-shadow -Wno-conversion"
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:15:39 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: Override i915_sysfs.c. To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.18 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.19 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.18 Mon Aug 27 07:15:29 2018 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Mon Aug 27 07:15:39 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.18 2018/08/27 07:15:29 riastradh Exp $ +# $NetBSD: files.i915drmkms,v 1.19 2018/08/27 07:15:39 riastradh Exp $ define intelfbbus { } device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 @@ -58,7 +58,7 @@ file external/bsd/drm2/dist/drm/i915/i91 file external/bsd/drm2/dist/drm/i915/i915_irq.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_params.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_suspend.c i915drmkms -file external/bsd/drm2/dist/drm/i915/i915_sysfs.c i915drmkms +file external/bsd/drm2/i915drm/i915_sysfs.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_trace_points.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_vgpu.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_acpi.c i915drmkms
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:15:29 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: Allow shadowing in i915_vgpu.c. To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.17 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.18 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.17 Mon Aug 27 07:09:17 2018 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Mon Aug 27 07:15:29 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.17 2018/08/27 07:09:17 riastradh Exp $ +# $NetBSD: files.i915drmkms,v 1.18 2018/08/27 07:15:29 riastradh Exp $ define intelfbbus { } device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 @@ -14,6 +14,7 @@ makeoptions i915drmkms "CWARNFLAGS.i91 makeoptions i915drmkms "CWARNFLAGS.i915_drv.c"+="${${ACTIVE_CC} == clang:? -Wno-initializer-overrides :}" makeoptions i915drmkms "CWARNFLAGS.i915_gem.c"+="-Wno-shadow" makeoptions i915drmkms "CWARNFLAGS.i915_gpu_error.c"+="-Wno-shadow" +makeoptions i915drmkms "CWARNFLAGS.i915_vgpu.c"+="-Wno-shadow" 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"
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:09:17 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: i915_gpu_error.c shadows, don't worry about it. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.16 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.17 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.16 Mon Aug 27 07:06:50 2018 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Mon Aug 27 07:09:17 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.16 2018/08/27 07:06:50 riastradh Exp $ +# $NetBSD: files.i915drmkms,v 1.17 2018/08/27 07:09:17 riastradh Exp $ define intelfbbus { } device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 @@ -13,6 +13,7 @@ makeoptions i915drmkms CPPFLAGS+="-I$S/e 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.i915_gem.c"+="-Wno-shadow" +makeoptions i915drmkms "CWARNFLAGS.i915_gpu_error.c"+="-Wno-shadow" 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"
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:06:50 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: Don't worry about shadowing here. To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.15 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.16 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.15 Mon Aug 27 06:34:56 2018 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Mon Aug 27 07:06:50 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.15 2018/08/27 06:34:56 riastradh Exp $ +# $NetBSD: files.i915drmkms,v 1.16 2018/08/27 07:06:50 riastradh Exp $ define intelfbbus { } device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 @@ -12,6 +12,7 @@ makeoptions i915drmkms CPPFLAGS+="-I$S/e 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.i915_gem.c"+="-Wno-shadow" 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"
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 06:34:56 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: Think we're gonna need to override i915_gem_userptr.c. To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.14 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.15 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.14 Mon Aug 27 06:16:37 2018 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Mon Aug 27 06:34:56 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.14 2018/08/27 06:16:37 riastradh Exp $ +# $NetBSD: files.i915drmkms,v 1.15 2018/08/27 06:34:56 riastradh Exp $ define intelfbbus { } device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 @@ -49,7 +49,7 @@ file external/bsd/drm2/dist/drm/i915/i91 file external/bsd/drm2/dist/drm/i915/i915_gem_shrinker.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_gem_stolen.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_gem_tiling.c i915drmkms -file external/bsd/drm2/dist/drm/i915/i915_gem_userptr.c i915drmkms +#file external/bsd/drm2/dist/drm/i915/i915_gem_userptr.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_gpu_error.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_guc_submission.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_irq.c i915drmkms
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 05:44:57 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: regen files.i915drmkms To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.12 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.13 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.12 Mon Aug 27 05:36:26 2018 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Mon Aug 27 05:44:57 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.12 2018/08/27 05:36:26 riastradh Exp $ +# $NetBSD: files.i915drmkms,v 1.13 2018/08/27 05:44:57 riastradh Exp $ define intelfbbus { } device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 @@ -33,45 +33,67 @@ file external/bsd/drm2/dist/drm/i915/dvo file external/bsd/drm2/dist/drm/i915/dvo_sil164.c i915drmkms file external/bsd/drm2/dist/drm/i915/dvo_tfp410.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c i915drmkms -#file external/bsd/drm2/dist/drm/i915/i915_debugfs.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_dma.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_drv.c i915drmkms -file external/bsd/drm2/dist/drm/i915/i915_gem.c i915drmkms +file external/bsd/drm2/dist/drm/i915/i915_gem.c i915drmkms +file external/bsd/drm2/dist/drm/i915/i915_gem_batch_pool.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_gem_context.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_gem_debug.c i915drmkms -#file external/bsd/drm2/dist/drm/i915/i915_gem_dmabuf.c i915drmkms +#file external/bsd/drm2/dist/drm/i915/i915_gem_dmabuf.c i915drmkms # XXX i915 prime file external/bsd/drm2/dist/drm/i915/i915_gem_evict.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_gem_execbuffer.c i915drmkms -file external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c i915drmkms +file external/bsd/drm2/dist/drm/i915/i915_gem_fence.c i915drmkms +file external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c i915drmkms +file external/bsd/drm2/dist/drm/i915/i915_gem_render_state.c i915drmkms +file external/bsd/drm2/dist/drm/i915/i915_gem_shrinker.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_gem_stolen.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_gem_tiling.c i915drmkms +file external/bsd/drm2/dist/drm/i915/i915_gem_userptr.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_gpu_error.c i915drmkms -#file external/bsd/drm2/dist/drm/i915/i915_ioc32.c i915drmkms +file external/bsd/drm2/dist/drm/i915/i915_guc_submission.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_irq.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_params.c i915drmkms file external/bsd/drm2/dist/drm/i915/i915_suspend.c i915drmkms -file external/bsd/drm2/i915drm/i915_sysfs.c i915drmkms -file external/bsd/drm2/dist/drm/i915/i915_ums.c i915drmkms +file external/bsd/drm2/dist/drm/i915/i915_sysfs.c i915drmkms +file external/bsd/drm2/dist/drm/i915/i915_trace_points.c i915drmkms +file external/bsd/drm2/dist/drm/i915/i915_vgpu.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_acpi.c i915drmkms +file external/bsd/drm2/dist/drm/i915/intel_atomic.c i915drmkms +file external/bsd/drm2/dist/drm/i915/intel_atomic_plane.c i915drmkms +file external/bsd/drm2/dist/drm/i915/intel_audio.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_bios.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_crt.c i915drmkms +file external/bsd/drm2/dist/drm/i915/intel_csr.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_ddi.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_display.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_dp.c i915drmkms +file external/bsd/drm2/dist/drm/i915/intel_dp_mst.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_dsi.c i915drmkms -file external/bsd/drm2/dist/drm/i915/intel_dsi_cmd.c i915drmkms +file external/bsd/drm2/dist/drm/i915/intel_dsi_panel_vbt.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_dsi_pll.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_dvo.c i915drmkms -file external/bsd/drm2/dist/drm/i915/intel_fbdev.c i915drmkms +file external/bsd/drm2/dist/drm/i915/intel_fbc.c i915drmkms +file external/bsd/drm2/dist/drm/i915/intel_fifo_underrun.c i915drmkms +file external/bsd/drm2/dist/drm/i915/intel_frontbuffer.c i915drmkms +file external/bsd/drm2/dist/drm/i915/intel_guc_loader.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_hdmi.c i915drmkms +file external/bsd/drm2/dist/drm/i915/intel_hotplug.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_i2c.c i915drmkms +file external/bsd/drm2/dist/drm/i915/intel_lrc.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_lvds.c i915drmkms +file externa
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 27 05:36:26 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: Move local i915 files earlier to make them more obvious. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.11 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.12 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.11 Thu Aug 20 21:41:12 2015 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Mon Aug 27 05:36:26 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.11 2015/08/20 21:41:12 skrll Exp $ +# $NetBSD: files.i915drmkms,v 1.12 2018/08/27 05:36:26 riastradh Exp $ define intelfbbus { } device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 @@ -20,6 +20,12 @@ makeoptions i915drmkms "CWARNFLAGS.int makeoptions i915drmkms CPPFLAGS+="-DCONFIG_DRM_I915_FBDEV=1" makeoptions i915drmkms CPPFLAGS+="-DCONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT=0" +file external/bsd/drm2/i915drm/i915_module.c i915drmkms +file external/bsd/drm2/i915drm/i915_pci.c i915drmkms +file external/bsd/drm2/i915drm/intel_gtt.c i915drmkms + +file external/bsd/drm2/i915drm/intelfb.c intelfb + file external/bsd/drm2/dist/drm/i915/dvo_ch7017.c i915drmkms file external/bsd/drm2/dist/drm/i915/dvo_ch7xxx.c i915drmkms file external/bsd/drm2/dist/drm/i915/dvo_ivch.c i915drmkms @@ -71,9 +77,3 @@ file external/bsd/drm2/dist/drm/i915/int file external/bsd/drm2/dist/drm/i915/intel_sprite.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_tv.c i915drmkms file external/bsd/drm2/dist/drm/i915/intel_uncore.c i915drmkms - -file external/bsd/drm2/i915drm/i915_module.c i915drmkms -file external/bsd/drm2/i915drm/i915_pci.c i915drmkms -file external/bsd/drm2/i915drm/intel_gtt.c i915drmkms - -file external/bsd/drm2/i915drm/intelfb.c intelfb
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon Aug 6 00:30:15 UTC 2018 Modified Files: src/sys/external/bsd/drm2/i915drm: intel_gtt.c Log Message: Flush chipset writes after GGTT update. Echoes Linux commit: commit 8516673a996870ea0ceb337ee4f83c33c5ec3111 Author: Chris Wilson Date: Fri Dec 8 21:46:16 2017 + agp/intel: Flush all chipset writes after updating the GGTT Before accessing the GGTT we must flush the PTE writes and make them visible to the chipset, or else the indirect access may end up in the wrong page. In commit 3497971a71d8 ("agp/intel: Flush chipset writes after updating a single PTE"), we noticed corruption of the uploads for pwrite and for capturing GPU error states, but it was presumed that the explicit calls to intel_gtt_chipset_flush() were sufficient for the execbuffer path. However, we have not been flushing the chipset between the PTE writes and access via the GTT itself. For simplicity, do the flush after any PTE update rather than try and batch the flushes on a just-in-time basis. References: 3497971a71d8 ("agp/intel: Flush chipset writes after updating a single PTE") Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Cc: Mika Kuoppala Cc: drm-intel-fi...@lists.freedesktop.org Reviewed-by: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20171208214616.30147-1-ch...@chris-wilson.co.uk XXX pullup To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/external/bsd/drm2/i915drm/intel_gtt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/intel_gtt.c diff -u src/sys/external/bsd/drm2/i915drm/intel_gtt.c:1.5 src/sys/external/bsd/drm2/i915drm/intel_gtt.c:1.6 --- src/sys/external/bsd/drm2/i915drm/intel_gtt.c:1.5 Fri Mar 6 22:03:06 2015 +++ src/sys/external/bsd/drm2/i915drm/intel_gtt.c Mon Aug 6 00:30:15 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: intel_gtt.c,v 1.5 2015/03/06 22:03:06 riastradh Exp $ */ +/* $NetBSD: intel_gtt.c,v 1.6 2018/08/06 00:30:15 riastradh Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ /* Intel GTT stubs */ #include -__KERNEL_RCSID(0, "$NetBSD: intel_gtt.c,v 1.5 2015/03/06 22:03:06 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: intel_gtt.c,v 1.6 2018/08/06 00:30:15 riastradh Exp $"); #include #include @@ -176,6 +176,7 @@ intel_gtt_insert_entries(bus_dmamap_t dm va += PAGE_SIZE; } agp_i810_post_gtt_entry(isc, (va - PAGE_SIZE)); + intel_gtt_chipset_flush(); } void
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: joerg Date: Fri Nov 14 14:32:49 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: Fix build with clang. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.8 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.9 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.8 Wed Nov 5 23:46:09 2014 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Fri Nov 14 14:32:49 2014 @@ -1,4 +1,4 @@ -# $NetBSD: files.i915drmkms,v 1.8 2014/11/05 23:46:09 nonaka Exp $ +# $NetBSD: files.i915drmkms,v 1.9 2014/11/14 14:32:49 joerg Exp $ define intelfbbus { } device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 @@ -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"
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: christos Date: Sun Nov 2 02:03:31 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: files.i915drmkms Log Message: We need the i810 agp here, intel_gtt has it hard-coded. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/sys/external/bsd/drm2/i915drm/files.i915drmkms Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/files.i915drmkms diff -u src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.6 src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.7 --- src/sys/external/bsd/drm2/i915drm/files.i915drmkms:1.6 Mon Aug 18 12:55:34 2014 +++ src/sys/external/bsd/drm2/i915drm/files.i915drmkms Sat Nov 1 22:03:31 2014 @@ -1,7 +1,7 @@ -# $NetBSD: files.i915drmkms,v 1.6 2014/08/18 16:55:34 riastradh Exp $ +# $NetBSD: files.i915drmkms,v 1.7 2014/11/02 02:03:31 christos Exp $ define intelfbbus { } -device i915drmkms: drmkms, drmkms_pci, intelfbbus +device i915drmkms: drmkms, drmkms_pci, intelfbbus, agp_i810 attach i915drmkms at pci device intelfb: intelfbbus, genfb, wsemuldisplaydev
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Sun Sep 14 16:02:15 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: intelfb.c Log Message: Disable VGA plane after vga_cndetach. Disabling the VGA plane requires access to the VGA registers, which don't become available until vga_cndetach. Oops! To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/external/bsd/drm2/i915drm/intelfb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/intelfb.c diff -u src/sys/external/bsd/drm2/i915drm/intelfb.c:1.9 src/sys/external/bsd/drm2/i915drm/intelfb.c:1.10 --- src/sys/external/bsd/drm2/i915drm/intelfb.c:1.9 Sat Aug 9 12:46:07 2014 +++ src/sys/external/bsd/drm2/i915drm/intelfb.c Sun Sep 14 16:02:15 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: intelfb.c,v 1.9 2014/08/09 12:46:07 jmcneill Exp $ */ +/* $NetBSD: intelfb.c,v 1.10 2014/09/14 16:02:15 riastradh Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.9 2014/08/09 12:46:07 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.10 2014/09/14 16:02:15 riastradh Exp $"); #ifdef _KERNEL_OPT #include "vga.h" @@ -218,8 +218,8 @@ intelfb_setconfig_task(struct i915drmkms if (vga_is_console(dev->pdev->pd_pa.pa_iot, -1)) { what_was_cons = CONS_VGA; prop_dictionary_set_bool(dict, "is_console", true); - i915_disable_vga(dev); vga_cndetach(); + i915_disable_vga(dev); } else #endif if (genfb_is_console() && genfb_is_enabled()) {
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: jmcneill Date: Sat Aug 9 12:46:07 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: intelfb.c Log Message: no need to call drm_fb_helper_set_config after genfb attaches, as the setmode callback is called by genfb_attach To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/external/bsd/drm2/i915drm/intelfb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/intelfb.c diff -u src/sys/external/bsd/drm2/i915drm/intelfb.c:1.8 src/sys/external/bsd/drm2/i915drm/intelfb.c:1.9 --- src/sys/external/bsd/drm2/i915drm/intelfb.c:1.8 Fri Aug 8 02:27:40 2014 +++ src/sys/external/bsd/drm2/i915drm/intelfb.c Sat Aug 9 12:46:07 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: intelfb.c,v 1.8 2014/08/08 02:27:40 jmcneill Exp $ */ +/* $NetBSD: intelfb.c,v 1.9 2014/08/09 12:46:07 jmcneill Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.8 2014/08/08 02:27:40 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.9 2014/08/09 12:46:07 jmcneill Exp $"); #ifdef _KERNEL_OPT #include "vga.h" @@ -248,8 +248,6 @@ intelfb_setconfig_task(struct i915drmkms pmf_device_register1(sc->sc_dev, NULL, NULL, intelfb_genfb_shutdown); - drm_fb_helper_set_config(sc->sc_ifa.ifa_fb_helper); - /* Success! */ sc->sc_scheduled = false; return;
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: jmcneill Date: Fri Aug 8 02:27:40 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: intelfb.c Log Message: add a pmf shutdown handler to switch genfb into polling mode To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/i915drm/intelfb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/intelfb.c diff -u src/sys/external/bsd/drm2/i915drm/intelfb.c:1.7 src/sys/external/bsd/drm2/i915drm/intelfb.c:1.8 --- src/sys/external/bsd/drm2/i915drm/intelfb.c:1.7 Wed Aug 6 22:16:38 2014 +++ src/sys/external/bsd/drm2/i915drm/intelfb.c Fri Aug 8 02:27:40 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: intelfb.c,v 1.7 2014/08/06 22:16:38 jmcneill Exp $ */ +/* $NetBSD: intelfb.c,v 1.8 2014/08/08 02:27:40 jmcneill Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.7 2014/08/06 22:16:38 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.8 2014/08/08 02:27:40 jmcneill Exp $"); #ifdef _KERNEL_OPT #include "vga.h" @@ -90,6 +90,7 @@ static int intelfb_genfb_ioctl(void *, v static paddr_t intelfb_genfb_mmap(void *, void *, off_t, int); static int intelfb_genfb_enable_polling(void *); static int intelfb_genfb_disable_polling(void *); +static bool intelfb_genfb_shutdown(device_t, int); static bool intelfb_genfb_setmode(struct genfb_softc *, int); static const struct genfb_mode_callback intelfb_genfb_mode_callback = { @@ -244,6 +245,9 @@ intelfb_setconfig_task(struct i915drmkms } sc->sc_attached = true; + pmf_device_register1(sc->sc_dev, NULL, NULL, + intelfb_genfb_shutdown); + drm_fb_helper_set_config(sc->sc_ifa.ifa_fb_helper); /* Success! */ @@ -421,6 +425,13 @@ intelfb_genfb_disable_polling(void *cook } static bool +intelfb_genfb_shutdown(device_t self, int flags) +{ + genfb_enable_polling(self); + return true; +} + +static bool intelfb_genfb_setmode(struct genfb_softc *genfb, int mode) { struct intelfb_softc *sc = (struct intelfb_softc *)genfb;
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: jmcneill Date: Wed Aug 6 22:16:38 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: intelfb.c Log Message: provide a setmode callback for genfb; with this change, vt switching in and out of X works To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/sys/external/bsd/drm2/i915drm/intelfb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/intelfb.c diff -u src/sys/external/bsd/drm2/i915drm/intelfb.c:1.6 src/sys/external/bsd/drm2/i915drm/intelfb.c:1.7 --- src/sys/external/bsd/drm2/i915drm/intelfb.c:1.6 Tue Aug 5 20:28:56 2014 +++ src/sys/external/bsd/drm2/i915drm/intelfb.c Wed Aug 6 22:16:38 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: intelfb.c,v 1.6 2014/08/05 20:28:56 riastradh Exp $ */ +/* $NetBSD: intelfb.c,v 1.7 2014/08/06 22:16:38 jmcneill Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.6 2014/08/05 20:28:56 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.7 2014/08/06 22:16:38 jmcneill Exp $"); #ifdef _KERNEL_OPT #include "vga.h" @@ -90,6 +90,11 @@ static int intelfb_genfb_ioctl(void *, v static paddr_t intelfb_genfb_mmap(void *, void *, off_t, int); static int intelfb_genfb_enable_polling(void *); static int intelfb_genfb_disable_polling(void *); +static bool intelfb_genfb_setmode(struct genfb_softc *, int); + +static const struct genfb_mode_callback intelfb_genfb_mode_callback = { + .gmc_setmode = intelfb_genfb_setmode, +}; CFATTACH_DECL_NEW(intelfb, sizeof(struct intelfb_softc), intelfb_match, intelfb_attach, intelfb_detach, NULL); @@ -204,6 +209,9 @@ intelfb_setconfig_task(struct i915drmkms (uint64_t)(uintptr_t)bus_space_vaddr(sc->sc_ifa.ifa_fb_bst, sc->sc_fb_bsh)); + prop_dictionary_set_uint64(dict, "mode_callback", + (uint64_t)(uintptr_t)&intelfb_genfb_mode_callback); + /* XXX Whattakludge! */ #if NVGA > 0 if (vga_is_console(dev->pdev->pd_pa.pa_iot, -1)) { @@ -411,3 +419,15 @@ intelfb_genfb_disable_polling(void *cook return drm_fb_helper_debug_leave_fb(sc->sc_ifa.ifa_fb_helper); } + +static bool +intelfb_genfb_setmode(struct genfb_softc *genfb, int mode) +{ + struct intelfb_softc *sc = (struct intelfb_softc *)genfb; + + if (mode == WSDISPLAYIO_MODE_EMUL) { + drm_fb_helper_set_config(sc->sc_ifa.ifa_fb_helper); + } + + return true; +}
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Tue Aug 5 20:28:56 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: intelfb.c Log Message: Use surface_width/height, not fb_width/height. This matches the sizes the upstream code uses. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/external/bsd/drm2/i915drm/intelfb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/intelfb.c diff -u src/sys/external/bsd/drm2/i915drm/intelfb.c:1.5 src/sys/external/bsd/drm2/i915drm/intelfb.c:1.6 --- src/sys/external/bsd/drm2/i915drm/intelfb.c:1.5 Fri Jul 25 16:35:43 2014 +++ src/sys/external/bsd/drm2/i915drm/intelfb.c Tue Aug 5 20:28:56 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: intelfb.c,v 1.5 2014/07/25 16:35:43 riastradh Exp $ */ +/* $NetBSD: intelfb.c,v 1.6 2014/08/05 20:28:56 riastradh Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.5 2014/07/25 16:35:43 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.6 2014/08/05 20:28:56 riastradh Exp $"); #ifdef _KERNEL_OPT #include "vga.h" @@ -192,11 +192,12 @@ intelfb_setconfig_task(struct i915drmkms 0, sc->sc_ifa.ifa_fb_size); /* XXX Ugh... Pass these parameters some other way! */ - prop_dictionary_set_uint32(dict, "width", sizes->fb_width); - prop_dictionary_set_uint32(dict, "height", sizes->fb_height); + prop_dictionary_set_uint32(dict, "width", sizes->surface_width); + prop_dictionary_set_uint32(dict, "height", sizes->surface_height); prop_dictionary_set_uint8(dict, "depth", sizes->surface_bpp); prop_dictionary_set_uint16(dict, "linebytes", - roundup2((sizes->fb_width * howmany(sizes->surface_bpp, 8)), 64)); + roundup2((sizes->surface_width * howmany(sizes->surface_bpp, 8)), + 64)); prop_dictionary_set_uint32(dict, "address", 0); /* XXX >32-bit */ CTASSERT(sizeof(uintptr_t) <= sizeof(uint64_t)); prop_dictionary_set_uint64(dict, "virtual_address",
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Thu Jul 24 22:13:23 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_pci.c Log Message: Tweak i915drmkms_detach to be more robust. To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/external/bsd/drm2/i915drm/i915_pci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_pci.c diff -u src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.14 src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.15 --- src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.14 Thu Jul 24 21:18:40 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_pci.c Thu Jul 24 22:13:23 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_pci.c,v 1.14 2014/07/24 21:18:40 riastradh Exp $ */ +/* $NetBSD: i915_pci.c,v 1.15 2014/07/24 22:13:23 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.14 2014/07/24 21:18:40 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.15 2014/07/24 22:13:23 riastradh Exp $"); #include #include @@ -195,16 +195,19 @@ i915drmkms_detach(device_t self, int fla if (error) return error; - KASSERT(sc->sc_task_state == I915DRMKMS_TASK_WORKQUEUE); - if (sc->sc_task_u.workqueue == NULL) + if (sc->sc_task_state == I915DRMKMS_TASK_ATTACH) goto out; - workqueue_destroy(sc->sc_task_u.workqueue); + if (sc->sc_task_u.workqueue != NULL) { + workqueue_destroy(sc->sc_task_u.workqueue); + sc->sc_task_u.workqueue = NULL; + } if (sc->sc_drm_dev == NULL) goto out; /* XXX errno Linux->NetBSD */ error = -drm_pci_detach(sc->sc_drm_dev, flags); if (error) + /* XXX Kinda too late to fail now... */ return error; sc->sc_drm_dev = NULL;
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Thu Jul 24 21:45:03 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: intelfb.c Log Message: Remove leftover debugging kludge. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/i915drm/intelfb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/intelfb.c diff -u src/sys/external/bsd/drm2/i915drm/intelfb.c:1.3 src/sys/external/bsd/drm2/i915drm/intelfb.c:1.4 --- src/sys/external/bsd/drm2/i915drm/intelfb.c:1.3 Thu Jul 24 21:37:35 2014 +++ src/sys/external/bsd/drm2/i915drm/intelfb.c Thu Jul 24 21:45:03 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: intelfb.c,v 1.3 2014/07/24 21:37:35 riastradh Exp $ */ +/* $NetBSD: intelfb.c,v 1.4 2014/07/24 21:45:03 riastradh Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.3 2014/07/24 21:37:35 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.4 2014/07/24 21:45:03 riastradh Exp $"); #ifdef _KERNEL_OPT #include "vga.h" @@ -66,25 +66,6 @@ __KERNEL_RCSID(0, "$NetBSD: intelfb.c,v #include "i915_pci.h" #include "intelfb.h" -extern void comcnputc(dev_t, int); -static void __printflike(1,2) __unused -comprintf(const char *fmt, ...) -{ - char buf[1024], *p; - va_list va; - - va_start(va, fmt); - vsnprintf(buf, sizeof buf, fmt, va); - va_end(va); - - buf[sizeof buf - 1] = '\0'; - for (p = buf; *p != '\0'; p++) { - comcnputc(NODEV, *p); - if (*p == '\n') - comcnputc(NODEV, '\r'); - } -} - struct intelfb_softc { /* XXX genfb requires the genfb_softc to be first. */ struct genfb_softc sc_genfb;
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Thu Jul 24 21:37:35 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: intelfb.c Log Message: Make ddb enter/exit work while X is running with i915drmkms. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/i915drm/intelfb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/intelfb.c diff -u src/sys/external/bsd/drm2/i915drm/intelfb.c:1.2 src/sys/external/bsd/drm2/i915drm/intelfb.c:1.3 --- src/sys/external/bsd/drm2/i915drm/intelfb.c:1.2 Thu Jul 24 21:28:44 2014 +++ src/sys/external/bsd/drm2/i915drm/intelfb.c Thu Jul 24 21:37:35 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: intelfb.c,v 1.2 2014/07/24 21:28:44 riastradh Exp $ */ +/* $NetBSD: intelfb.c,v 1.3 2014/07/24 21:37:35 riastradh Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.2 2014/07/24 21:28:44 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.3 2014/07/24 21:37:35 riastradh Exp $"); #ifdef _KERNEL_OPT #include "vga.h" @@ -107,10 +107,8 @@ static int intelfb_genfb_dpms(struct drm static int intelfb_genfb_ioctl(void *, void *, unsigned long, void *, int, struct lwp *); static paddr_t intelfb_genfb_mmap(void *, void *, off_t, int); -#if notyet /* XXX */ static int intelfb_genfb_enable_polling(void *); static int intelfb_genfb_disable_polling(void *); -#endif CFATTACH_DECL_NEW(intelfb, sizeof(struct intelfb_softc), intelfb_match, intelfb_attach, intelfb_detach, NULL); @@ -242,10 +240,8 @@ intelfb_setconfig_task(struct i915drmkms genfb_init(&sc->sc_genfb); genfb_ops.genfb_ioctl = intelfb_genfb_ioctl; genfb_ops.genfb_mmap = intelfb_genfb_mmap; -#if notyet /* XXX */ genfb_ops.genfb_enable_polling = intelfb_genfb_enable_polling; genfb_ops.genfb_disable_polling = intelfb_genfb_disable_polling; -#endif error = genfb_attach(&sc->sc_genfb, &genfb_ops); if (error) { @@ -411,7 +407,6 @@ intelfb_genfb_mmap(void *v, void *vs, of return -1; } -#if notyet /* XXX */ static int intelfb_genfb_enable_polling(void *cookie) { @@ -431,4 +426,3 @@ intelfb_genfb_disable_polling(void *cook return drm_fb_helper_debug_leave_fb(sc->sc_ifa.ifa_fb_helper); } -#endif
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Thu Jul 24 21:28:44 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: intelfb.c Log Message: Fix WSDISPLAYIO_GET_BUSID on new intelfb(4). Need to pass the PCI device, not one of its children (which intelfb is), to wsdisplayio_busid_pci. Fixes starting X. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/external/bsd/drm2/i915drm/intelfb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/intelfb.c diff -u src/sys/external/bsd/drm2/i915drm/intelfb.c:1.1 src/sys/external/bsd/drm2/i915drm/intelfb.c:1.2 --- src/sys/external/bsd/drm2/i915drm/intelfb.c:1.1 Thu Jul 24 21:18:40 2014 +++ src/sys/external/bsd/drm2/i915drm/intelfb.c Thu Jul 24 21:28:44 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: intelfb.c,v 1.1 2014/07/24 21:18:40 riastradh Exp $ */ +/* $NetBSD: intelfb.c,v 1.2 2014/07/24 21:28:44 riastradh Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.1 2014/07/24 21:18:40 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: intelfb.c,v 1.2 2014/07/24 21:28:44 riastradh Exp $"); #ifdef _KERNEL_OPT #include "vga.h" @@ -316,8 +316,8 @@ intelfb_genfb_ioctl(void *v, void *vs, u return pci_devioctl(pa->pa_pc, pa->pa_tag, cmd, data, flag, l); case WSDISPLAYIO_GET_BUSID: - return wsdisplayio_busid_pci(genfb->sc_dev, - pa->pa_pc, pa->pa_tag, data); + return wsdisplayio_busid_pci(dev->dev, pa->pa_pc, pa->pa_tag, + data); /* * Screen blanking ioctls. Not to be confused with backlight
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Wed Jul 23 18:05:44 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_pci.c Log Message: Omit redundant vga_is_console test. This was a copypasta error -- before it tested iot then memt -- but I see no evidence that passing memt to vga_is_console is ever sensible. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/external/bsd/drm2/i915drm/i915_pci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_pci.c diff -u src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.12 src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.13 --- src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.12 Wed Jul 16 23:25:18 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_pci.c Wed Jul 23 18:05:44 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_pci.c,v 1.12 2014/07/16 23:25:18 riastradh Exp $ */ +/* $NetBSD: i915_pci.c,v 1.13 2014/07/23 18:05:44 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.12 2014/07/16 23:25:18 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.13 2014/07/23 18:05:44 riastradh Exp $"); #ifdef _KERNEL_OPT #include "vga.h" @@ -301,8 +301,7 @@ intel_genfb_attach(struct drm_device *de int ret; #if NVGA > 0 - if (vga_is_console(dev->pdev->pd_pa.pa_iot, -1) || - vga_is_console(dev->pdev->pd_pa.pa_iot, -1)) { + if (vga_is_console(dev->pdev->pd_pa.pa_iot, -1)) { what_was_cons = CONS_VGA; prop_dictionary_set_bool(dict, "is_console", true); /*
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: mlelstv Date: Sun Jul 13 01:17:15 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_pci.c Log Message: The vga driver now detaches wscons. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/external/bsd/drm2/i915drm/i915_pci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_pci.c diff -u src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.9 src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.10 --- src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.9 Tue Jul 1 20:03:21 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_pci.c Sun Jul 13 01:17:15 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_pci.c,v 1.9 2014/07/01 20:03:21 riastradh Exp $ */ +/* $NetBSD: i915_pci.c,v 1.10 2014/07/13 01:17:15 mlelstv Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.9 2014/07/01 20:03:21 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.10 2014/07/13 01:17:15 mlelstv Exp $"); #ifdef _KERNEL_OPT #include "vga.h" @@ -211,11 +211,9 @@ i915drm_attach(device_t parent, device_t * which kernel messages will go into a black hole, * until genfb replays the console. Whattakludge. * - * wsdisplay_cndetach must come first, to clear cn_tab, - * so that nothing will use it; then vga_cndetach - * unmaps the bus space that it would have used. + * vga_cndetach detaches wscons and unmaps the bus space + * that it would have used. */ - wsdisplay_cndetach(); vga_cndetach(); } else #endif
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Tue Jul 1 20:03:21 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_pci.c Log Message: Implement i915drmkms wsdisplay blank/backlight/brightness controls. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/external/bsd/drm2/i915drm/i915_pci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_pci.c diff -u src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.8 src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.9 --- src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.8 Fri Apr 25 19:02:51 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_pci.c Tue Jul 1 20:03:21 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_pci.c,v 1.8 2014/04/25 19:02:51 riastradh Exp $ */ +/* $NetBSD: i915_pci.c,v 1.9 2014/07/01 20:03:21 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.8 2014/04/25 19:02:51 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.9 2014/07/01 20:03:21 riastradh Exp $"); #ifdef _KERNEL_OPT #include "vga.h" @@ -73,6 +73,8 @@ struct i915drm_softc { struct drm_i915_gem_object *sc_fb_obj; bus_space_handle_t sc_fb_bsh; struct genfb_softc sc_genfb; + struct genfb_parameter_callback sc_genfb_backlight_callback; + struct genfb_parameter_callback sc_genfb_brightness_callback; struct list_head sc_fb_list; /* XXX Kludge! */ boolsc_console; }; @@ -97,10 +99,19 @@ static int i915drm_fb_create_handle(stru struct drm_file *, unsigned int *); static void i915drm_fb_destroy(struct drm_framebuffer *); +static int i915drm_fb_dpms(struct i915drm_softc *, int); + static int i915drm_genfb_ioctl(void *, void *, unsigned long, void *, int, struct lwp *); static paddr_t i915drm_genfb_mmap(void *, void *, off_t, int); +static int i915drm_genfb_get_backlight(void *, int *); +static int i915drm_genfb_set_backlight(void *, int); +static int i915drm_genfb_upd_backlight(void *, int); +static int i915drm_genfb_get_brightness(void *, int *); +static int i915drm_genfb_set_brightness(void *, int); +static int i915drm_genfb_upd_brightness(void *, int); + CFATTACH_DECL_NEW(i915drmkms, sizeof(struct i915drm_softc), i915drm_match, i915drm_attach, i915drm_detach, NULL); @@ -467,6 +478,25 @@ i915drm_fb_probe(struct drm_fb_helper *f CTASSERT(sizeof(uintptr_t) <= sizeof(uint64_t)); prop_dictionary_set_uint64(dict, "virtual_address", (uint64_t)(uintptr_t)bus_space_vaddr(dev->bst, sc->sc_fb_bsh)); + + sc->sc_genfb_backlight_callback = (struct genfb_parameter_callback) { + .gpc_cookie = sc, + .gpc_get_parameter = &i915drm_genfb_get_backlight, + .gpc_set_parameter = &i915drm_genfb_set_backlight, + .gpc_upd_parameter = &i915drm_genfb_upd_backlight, + }; + prop_dictionary_set_uint64(dict, "backlight_callback", + (uint64_t)(uintptr_t)&sc->sc_genfb_backlight_callback); + + sc->sc_genfb_brightness_callback = (struct genfb_parameter_callback) { + .gpc_cookie = sc, + .gpc_get_parameter = &i915drm_genfb_get_brightness, + .gpc_set_parameter = &i915drm_genfb_set_brightness, + .gpc_upd_parameter = &i915drm_genfb_upd_brightness, + }; + prop_dictionary_set_uint64(dict, "brightness_callback", + (uint64_t)(uintptr_t)&sc->sc_genfb_brightness_callback); + sc->sc_genfb.sc_dev = sc->sc_dev; genfb_init(&sc->sc_genfb); @@ -494,6 +524,28 @@ fail0: KASSERT(ret < 0); return ret; } +static int +i915drm_fb_dpms(struct i915drm_softc *sc, int dpms_mode) +{ + struct drm_device *const dev = &sc->sc_drm_dev; + struct drm_i915_private *const dev_priv = dev->dev_private; + /* XXX What guarantees dev_priv->fbdev stays around? */ + struct drm_fb_helper *const fb_helper = &dev_priv->fbdev->helper; + unsigned i; + + mutex_lock(&dev->mode_config.mutex); + for (i = 0; i < fb_helper->connector_count; i++) { + struct drm_connector *const connector = + fb_helper->connector_info[i]->connector; + (*connector->funcs->dpms)(connector, dpms_mode); + drm_object_property_set_value(&connector->base, + dev->mode_config.dpms_property, dpms_mode); + } + mutex_unlock(&dev->mode_config.mutex); + + return 0; +} + static void i915drm_fb_detach(struct drm_fb_helper *fb_helper) { @@ -549,6 +601,29 @@ i915drm_genfb_ioctl(void *v, void *vs, u return wsdisplayio_busid_pci(genfb->sc_dev, pa->pa_pc, pa->pa_tag, data); + /* + * Screen blanking ioctls. Not to be confused with backlight + * (can be disabled while stuff is still drawn on the screen), + * brightness, or contrast (which we don't support). Backlight + * and brightness are done through WSDISPLAYIO_{GET,SET}PARAM. + * This toggles between DPMS ON and DPMS OFF; backlight toggles + * between DPMS ON and DPMS SUSPEND. + */ + case WSDISPLAYIO_GVIDEO: { + int *onp = (int *)data; + + /* XXX Can't really determine a si
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Tue Jun 3 19:49:37 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_gem_gtt.c Log Message: Rework gen6 aperture/gtt size detection. Mark variables __diagused. To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c diff -u src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.14 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.15 --- src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.14 Thu May 29 22:05:24 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Tue Jun 3 19:49:37 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_gem_gtt.c,v 1.14 2014/05/29 22:05:24 riastradh Exp $ */ +/* $NetBSD: i915_gem_gtt.c,v 1.15 2014/06/03 19:49:37 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.14 2014/05/29 22:05:24 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.15 2014/06/03 19:49:37 riastradh Exp $"); #include #include @@ -447,8 +447,8 @@ static void agp_ggtt_bind_object(struct drm_i915_gem_object *obj, enum i915_cache_level cache_level) { - struct drm_device *const dev = obj->base.dev; - struct drm_i915_private *const dev_priv = dev->dev_private; + struct drm_device *const dev __diagused = obj->base.dev; + struct drm_i915_private *const dev_priv __diagused = dev->dev_private; struct agp_i810_softc *const isc = agp_i810_sc->as_chipc; const off_t start = obj->gtt_space->start; bus_addr_t addr; @@ -505,10 +505,6 @@ agp_ggtt_clear_range(struct drm_device * * Gen6+ GTT */ -#define SNB_GMCH_GGMS (SNB_GMCH_GGMS_MASK << SNB_GMCH_GGMS_SHIFT) -#define SNB_GMCH_GMS (SNB_GMCH_GMS_MASK << SNB_GMCH_GMS_SHIFT) -#define IVB_GMCH_GMS (IVB_GMCH_GMS_MASK << IVB_GMCH_GMS_SHIFT) - typedef uint32_t gtt_pte_t; #define GEN6_PTE_VALID 0x01 @@ -570,6 +566,15 @@ gen6_pte_decode(gtt_pte_t pte) return ((bus_addr_t)(addr & 0xff0) << 28) | (addr & ~(uint32_t)0xff0); } +#define GEN6_PCI_MGGC 0x50 +#define GEN6_PCI_MGGC_GGMS __BITS(9,8) +#define GEN6_PCI_MGGC_GGMS_NONE 0x0 +#define GEN6_PCI_MGGC_GGMS_1MB 0x1 +#define GEN6_PCI_MGGC_GGMS_2MB 0x2 +#define GEN6_PCI_MGGC_GMS __BITS(7,3) +#define GEN6_PCI_MGGC_GMS_MAX 0xa +#define GEN6_PCI_MGGC_GMS_IVB_1GB 0xb /* IVB-specific */ + static int gen6_gtt_init(struct drm_device *dev) { @@ -578,29 +583,44 @@ gen6_gtt_init(struct drm_device *dev) struct intel_gtt *gtt = dev_priv->mm.gtt; bus_addr_t gtt_addr; bus_size_t gtt_size; - uint16_t snb_gmch_ctl, ggms, gms; + pcireg_t mggc; + unsigned ggms, gms; int ret; gtt->do_idle_maps = false; - snb_gmch_ctl = pci_conf_read(pa->pa_pc, pa->pa_tag, SNB_GMCH_CTRL); + /* MGGC: Mirror of GMCH Graphics Control */ + mggc = pci_conf_read(pa->pa_pc, pa->pa_tag, GEN6_PCI_MGGC); - /* GMS: Graphics Mode Select. */ - if (INTEL_INFO(dev)->gen < 7) { - gms = __SHIFTOUT(snb_gmch_ctl, SNB_GMCH_GMS); - gtt->stolen_size = (gms << 25); - } else { - gms = __SHIFTOUT(snb_gmch_ctl, IVB_GMCH_GMS); - static const unsigned sizes[] = { - 0, 0, 0, 0, 0, 32, 48, 64, 128, 256, 96, 160, 224, 352 - }; - gtt->stolen_size = sizes[gms] << 20; + /* GGMS: GTT Graphics Memory Size */ + ggms = __SHIFTOUT(mggc, GEN6_PCI_MGGC_GGMS); + switch (ggms) { + case GEN6_PCI_MGGC_GGMS_NONE: + gtt->gtt_total_entries = 0; + break; + case GEN6_PCI_MGGC_GGMS_1MB: + gtt->gtt_total_entries = (1*1024*1024) / 4; + break; + case GEN6_PCI_MGGC_GGMS_2MB: + gtt->gtt_total_entries = (2*1024*1024) / 4; + break; + default: + DRM_ERROR("unknown GTT Graphics Memory Size: %u\n", ggms); + gtt->gtt_total_entries = 0; + break; } - /* GGMS: GTT Graphics Memory Size, in megabytes. */ - ggms = __SHIFTOUT(snb_gmch_ctl, SNB_GMCH_GGMS); - CTASSERT(SNB_GMCH_GGMS_MASK <= (INT_MAX >> 20)); - gtt->gtt_total_entries = (ggms << 20) / sizeof(gtt_pte_t); + /* GMS: Graphics Mode Select */ + gms = __SHIFTOUT(mggc, GEN6_PCI_MGGC_GMS); + if (gms <= GEN6_PCI_MGGC_GMS_MAX) { + gtt->stolen_size = gms * 32*1024*1024; + } else if ((INTEL_INFO(dev)->gen == 7) && + (gms == GEN6_PCI_MGGC_GMS_IVB_1GB)) { + gtt->stolen_size = 1*1024*1024*1024; + } else { + DRM_ERROR("unknown Graphics Mode Select: %u\n", gms); + gtt->stolen_size = 0; + } /* Linux sez: For GEN6+ the PTEs for the ggtt live at 2MB + BAR0 */ gtt_addr = (2<<20);
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Thu May 29 22:05:24 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_gem_gtt.c Log Message: Work around broken GTT size detection in agp_i810 code. This will do until I work out the twisty maze of registers, all different, to reliably determine the size of the GTT (and hence the GPU's virtual address space) separately from the size of the AGP aperture. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c diff -u src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.13 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.14 --- src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.13 Wed May 28 15:44:02 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Thu May 29 22:05:24 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_gem_gtt.c,v 1.13 2014/05/28 15:44:02 riastradh Exp $ */ +/* $NetBSD: i915_gem_gtt.c,v 1.14 2014/05/29 22:05:24 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.13 2014/05/28 15:44:02 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.14 2014/05/29 22:05:24 riastradh Exp $"); #include #include @@ -405,7 +405,14 @@ agp_gtt_init(struct drm_device *dev) gtt->gma_bus_addr = agp_i810_sc->as_apaddr; gtt->gtt_mappable_entries = (agp_i810_sc->as_apsize >> AGP_PAGE_SHIFT); gtt->stolen_size = (isc->stolen << AGP_PAGE_SHIFT); - gtt->gtt_total_entries = isc->gtt_size/4; + + /* + * XXX Not quite right -- on some devices (i965), there are + * more entries in the GTT than fit in the aperture. However, + * this is a safe approximation until we work out the fake AGP + * code to detect the correct number of GTT entries. + */ + gtt->gtt_total_entries = gtt->gtt_mappable_entries; product = PCI_PRODUCT(dev->pdev->pd_pa.pa_id); if (((product == PCI_PRODUCT_INTEL_IRONLAKE_M_HB) ||
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Wed May 28 15:44:02 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_gem_gtt.c Log Message: Fix bogus GTT total size calculation. Omit gtt_bsh for `agp' gtt. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c diff -u src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.12 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.13 --- src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.12 Fri May 23 23:02:47 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Wed May 28 15:44:02 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_gem_gtt.c,v 1.12 2014/05/23 23:02:47 riastradh Exp $ */ +/* $NetBSD: i915_gem_gtt.c,v 1.13 2014/05/28 15:44:02 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.12 2014/05/23 23:02:47 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.13 2014/05/28 15:44:02 riastradh Exp $"); #include #include @@ -405,9 +405,7 @@ agp_gtt_init(struct drm_device *dev) gtt->gma_bus_addr = agp_i810_sc->as_apaddr; gtt->gtt_mappable_entries = (agp_i810_sc->as_apsize >> AGP_PAGE_SHIFT); gtt->stolen_size = (isc->stolen << AGP_PAGE_SHIFT); - gtt->gtt_total_entries = - (gtt->gtt_mappable_entries + (gtt->stolen_size >> AGP_PAGE_SHIFT)); - gtt->gtt_bsh = isc->gtt_bsh; + gtt->gtt_total_entries = isc->gtt_size/4; product = PCI_PRODUCT(dev->pdev->pd_pa.pa_id); if (((product == PCI_PRODUCT_INTEL_IRONLAKE_M_HB) ||
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Fri May 23 23:02:47 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_gem_gtt.c Log Message: Fix GTT PTE flag bits. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c diff -u src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.11 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.12 --- src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.11 Tue May 20 15:50:11 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Fri May 23 23:02:47 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_gem_gtt.c,v 1.11 2014/05/20 15:50:11 riastradh Exp $ */ +/* $NetBSD: i915_gem_gtt.c,v 1.12 2014/05/23 23:02:47 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.11 2014/05/20 15:50:11 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.12 2014/05/23 23:02:47 riastradh Exp $"); #include #include @@ -89,6 +89,8 @@ i915_gem_gtt_init(struct drm_device *dev * physical addresses. * * XXX pci_set_dma_mask? pci_set_consistent_dma_mask? + * + * XXX DMA limits */ if (INTEL_INFO(dev)->gen < 4) drm_limit_dma_space(dev, 0, @@ -504,11 +506,11 @@ agp_ggtt_clear_range(struct drm_device * typedef uint32_t gtt_pte_t; -#define GEN6_PTE_VALID __BIT(0) -#define GEN6_PTE_UNCACHED __BIT(1) -#define HSW_PTE_UNCACHED (0) -#define GEN6_PTE_CACHE_LLC __BIT(2) -#define GEN6_PTE_CACHE_LLC_MLC __BIT(3) +#define GEN6_PTE_VALID 0x01 +#define GEN6_PTE_UNCACHED 0x02 +#define HSW_PTE_UNCACHED 0x00 +#define GEN6_PTE_CACHE_LLC 0x04 +#define GEN6_PTE_CACHE_LLC_MLC 0x06 static uint32_t gen6_pte_addr_encode(bus_addr_t addr)
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Fri May 23 22:59:23 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: intel_gtt.c Log Message: Implement intel_gtt_chipset_flush correctly. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/i915drm/intel_gtt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/intel_gtt.c diff -u src/sys/external/bsd/drm2/i915drm/intel_gtt.c:1.2 src/sys/external/bsd/drm2/i915drm/intel_gtt.c:1.3 --- src/sys/external/bsd/drm2/i915drm/intel_gtt.c:1.2 Tue Mar 18 18:20:42 2014 +++ src/sys/external/bsd/drm2/i915drm/intel_gtt.c Fri May 23 22:59:23 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: intel_gtt.c,v 1.2 2014/03/18 18:20:42 riastradh Exp $ */ +/* $NetBSD: intel_gtt.c,v 1.3 2014/05/23 22:59:23 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ /* Intel GTT stubs */ #include -__KERNEL_RCSID(0, "$NetBSD: intel_gtt.c,v 1.2 2014/03/18 18:20:42 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: intel_gtt.c,v 1.3 2014/05/23 22:59:23 riastradh Exp $"); #include /* XXX pcivar.h needs...@!^ */ @@ -59,9 +59,6 @@ void intel_gtt_chipset_flush(void) { - /* - * XXX If the Linux code is any indication, this is not - * sufficient...but it'll probably do for now. - */ - agp_flush_cache(); + KASSERT(agp_i810_sc != NULL); + agp_i810_chipset_flush(agp_i810_sc->as_chipc); }
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Tue May 20 15:50:11 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_gem_gtt.c Log Message: Miscellaneous little fixes for harmless issues: - Fix sense of subtraction in i915_gem_restore_gtt_mappings (not currently used, so this was harmless). - Program gtt->gtt_scratch_map->dm_segs[0].ds_addr rather than gtt->gtt_scratch_seg.ds_addr into the GTT for consistency with the bus_dma API. These are currently the same, but if we ever start using x86 iommu perhaps that may change. - Kassert that the scratch PTE decodes into the scratch address. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c diff -u src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.10 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.11 --- src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.10 Mon May 19 14:57:37 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Tue May 20 15:50:11 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_gem_gtt.c,v 1.10 2014/05/19 14:57:37 riastradh Exp $ */ +/* $NetBSD: i915_gem_gtt.c,v 1.11 2014/05/20 15:50:11 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.10 2014/05/19 14:57:37 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.11 2014/05/20 15:50:11 riastradh Exp $"); #include #include @@ -345,7 +345,7 @@ i915_gem_restore_gtt_mappings(struct drm struct drm_i915_gem_object *obj; i915_ggtt_clear_range(dev, (dev_priv->mm.gtt_start >> PAGE_SHIFT), - ((dev_priv->mm.gtt_start - dev_priv->mm.gtt_end) >> PAGE_SHIFT)); + ((dev_priv->mm.gtt_end - dev_priv->mm.gtt_start) >> PAGE_SHIFT)); list_for_each_entry(obj, &dev_priv->mm.bound_list, gtt_list) { i915_gem_clflush_object(obj); @@ -483,7 +483,7 @@ agp_ggtt_clear_range(struct drm_device * { struct drm_i915_private *const dev_priv = dev->dev_private; struct intel_gtt *const gtt = dev_priv->mm.gtt; - const bus_addr_t addr = gtt->gtt_scratch_seg.ds_addr; + const bus_addr_t addr = gtt->gtt_scratch_map->dm_segs[0].ds_addr; struct agp_i810_softc *const isc = agp_i810_sc->as_chipc; unsigned page; @@ -716,15 +716,15 @@ gen6_ggtt_clear_range(struct drm_device struct drm_i915_private *const dev_priv = dev->dev_private; const bus_space_tag_t bst = dev->bst; const bus_space_handle_t bsh = dev_priv->mm.gtt->gtt_bsh; - const gtt_pte_t scratch_pte = gen6_pte_encode(dev, - dev_priv->mm.gtt->gtt_scratch_map->dm_segs[0].ds_addr, + const bus_addr_t scratch_addr = + dev_priv->mm.gtt->gtt_scratch_map->dm_segs[0].ds_addr; + const gtt_pte_t scratch_pte = gen6_pte_encode(dev, scratch_addr, I915_CACHE_LLC); unsigned int i; KASSERT(start_page < dev_priv->mm.gtt->gtt_total_entries); KASSERT(npages <= (dev_priv->mm.gtt->gtt_total_entries - start_page)); - KASSERT(dev_priv->mm.gtt->gtt_scratch_map->dm_segs[0].ds_addr == - gen6_pte_decode(scratch_pte)); + KASSERT(scratch_addr == gen6_pte_decode(scratch_pte)); for (i = 0; i < npages; i++) bus_space_write_4(bst, bsh, 4*(start_page + i), scratch_pte);
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon May 19 14:57:37 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_gem_gtt.c Log Message: Remove (bad) debugging message that crept into i915_gem_gtt_init. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c diff -u src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.9 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.10 --- src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.9 Mon May 19 14:55:46 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Mon May 19 14:57:37 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_gem_gtt.c,v 1.9 2014/05/19 14:55:46 riastradh Exp $ */ +/* $NetBSD: i915_gem_gtt.c,v 1.10 2014/05/19 14:57:37 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.9 2014/05/19 14:55:46 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.10 2014/05/19 14:57:37 riastradh Exp $"); #include #include @@ -83,16 +83,6 @@ i915_gem_gtt_init(struct drm_device *dev if (ret) goto fail0; - aprint_error_dev(dev->dev, "GTT:\n" - "- gma_bus_addr %"PRIxMAX"\n" - "- gtt_mappable_entries %"PRIxMAX"\n" - "- stolen_size %"PRIxMAX"\n" - "- gtt_total_entries %"PRIxMAX"\n", - (uintmax_t)gtt->gma_bus_addr, - (uintmax_t)gtt->gtt_mappable_entries, - (uintmax_t)gtt->stolen_size, - (uintmax_t)gtt->gtt_total_entries); - /* * The GTT entries are limited to 32-bit physical addresses up * until gen4, at and after which they are limited to 36-bit
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon May 19 14:55:46 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_gem_gtt.c Log Message: Fix page/byte sense of AGP GTT parameter calculations. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c diff -u src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.8 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.9 --- src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.8 Mon May 19 14:44:36 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Mon May 19 14:55:46 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_gem_gtt.c,v 1.8 2014/05/19 14:44:36 riastradh Exp $ */ +/* $NetBSD: i915_gem_gtt.c,v 1.9 2014/05/19 14:55:46 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.8 2014/05/19 14:44:36 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.9 2014/05/19 14:55:46 riastradh Exp $"); #include #include @@ -83,6 +83,16 @@ i915_gem_gtt_init(struct drm_device *dev if (ret) goto fail0; + aprint_error_dev(dev->dev, "GTT:\n" + "- gma_bus_addr %"PRIxMAX"\n" + "- gtt_mappable_entries %"PRIxMAX"\n" + "- stolen_size %"PRIxMAX"\n" + "- gtt_total_entries %"PRIxMAX"\n", + (uintmax_t)gtt->gma_bus_addr, + (uintmax_t)gtt->gtt_mappable_entries, + (uintmax_t)gtt->stolen_size, + (uintmax_t)gtt->gtt_total_entries); + /* * The GTT entries are limited to 32-bit physical addresses up * until gen4, at and after which they are limited to 36-bit @@ -402,9 +412,9 @@ agp_gtt_init(struct drm_device *dev) gtt->gma_bus_addr = agp_i810_sc->as_apaddr; gtt->gtt_mappable_entries = (agp_i810_sc->as_apsize >> AGP_PAGE_SHIFT); - gtt->stolen_size = (isc->stolen >> AGP_PAGE_SHIFT); + gtt->stolen_size = (isc->stolen << AGP_PAGE_SHIFT); gtt->gtt_total_entries = - (gtt->gtt_mappable_entries + gtt->stolen_size); + (gtt->gtt_mappable_entries + (gtt->stolen_size >> AGP_PAGE_SHIFT)); gtt->gtt_bsh = isc->gtt_bsh; product = PCI_PRODUCT(dev->pdev->pd_pa.pa_id);
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon May 19 14:44:36 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_gem_gtt.c Log Message: Use correct value for gtt->gtt_bsh in agp case (unused, so harmless). To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c diff -u src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.7 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.8 --- src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.7 Mon May 19 14:39:33 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Mon May 19 14:44:36 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_gem_gtt.c,v 1.7 2014/05/19 14:39:33 riastradh Exp $ */ +/* $NetBSD: i915_gem_gtt.c,v 1.8 2014/05/19 14:44:36 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.7 2014/05/19 14:39:33 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.8 2014/05/19 14:44:36 riastradh Exp $"); #include #include @@ -405,7 +405,7 @@ agp_gtt_init(struct drm_device *dev) gtt->stolen_size = (isc->stolen >> AGP_PAGE_SHIFT); gtt->gtt_total_entries = (gtt->gtt_mappable_entries + gtt->stolen_size); - gtt->gtt_bsh = isc->bsh; + gtt->gtt_bsh = isc->gtt_bsh; product = PCI_PRODUCT(dev->pdev->pd_pa.pa_id); if (((product == PCI_PRODUCT_INTEL_IRONLAKE_M_HB) ||
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Mon May 19 14:39:33 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_gem_gtt.c Log Message: Use the scratch page, not zero, to clear ggtt entries for gen<6. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c diff -u src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.6 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.7 --- src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.6 Wed May 14 15:58:24 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Mon May 19 14:39:33 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_gem_gtt.c,v 1.6 2014/05/14 15:58:24 riastradh Exp $ */ +/* $NetBSD: i915_gem_gtt.c,v 1.7 2014/05/19 14:39:33 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.6 2014/05/14 15:58:24 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.7 2014/05/19 14:39:33 riastradh Exp $"); #include #include @@ -481,13 +481,17 @@ static void agp_ggtt_clear_range(struct drm_device *dev, unsigned start_page, unsigned npages) { + struct drm_i915_private *const dev_priv = dev->dev_private; + struct intel_gtt *const gtt = dev_priv->mm.gtt; + const bus_addr_t addr = gtt->gtt_scratch_seg.ds_addr; struct agp_i810_softc *const isc = agp_i810_sc->as_chipc; unsigned page; for (page = start_page; npages--; page++) - agp_i810_write_gtt_entry(isc, (off_t)page << PAGE_SHIFT, 0); + agp_i810_write_gtt_entry(isc, (off_t)page << PAGE_SHIFT, + (addr | 1)); - agp_i810_post_gtt_entry(isc, ((page - 1) << PAGE_SHIFT)); + agp_i810_post_gtt_entry(isc, ((off_t)(page - 1) << PAGE_SHIFT)); } /*
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Wed May 14 15:58:24 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_gem_gtt.c Log Message: Tweak i915 gen6_gtt_init calculations for clarity. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c diff -u src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.5 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.6 --- src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.5 Fri May 2 14:36:10 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Wed May 14 15:58:24 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_gem_gtt.c,v 1.5 2014/05/02 14:36:10 riastradh Exp $ */ +/* $NetBSD: i915_gem_gtt.c,v 1.6 2014/05/14 15:58:24 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.5 2014/05/02 14:36:10 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.6 2014/05/14 15:58:24 riastradh Exp $"); #include #include @@ -565,13 +565,13 @@ gen6_gtt_init(struct drm_device *dev) struct drm_i915_private *const dev_priv = dev->dev_private; struct pci_attach_args *const pa = &dev->pdev->pd_pa; struct intel_gtt *gtt = dev_priv->mm.gtt; + bus_addr_t gtt_addr; + bus_size_t gtt_size; uint16_t snb_gmch_ctl, ggms, gms; int ret; gtt->do_idle_maps = false; - gtt->gma_bus_addr = dev->bus_maps[2].bm_base; - snb_gmch_ctl = pci_conf_read(pa->pa_pc, pa->pa_tag, SNB_GMCH_CTRL); /* GMS: Graphics Mode Select. */ @@ -586,38 +586,47 @@ gen6_gtt_init(struct drm_device *dev) gtt->stolen_size = sizes[gms] << 20; } - /* GGMS: GTT Graphics Memory Size. */ + /* GGMS: GTT Graphics Memory Size, in megabytes. */ ggms = __SHIFTOUT(snb_gmch_ctl, SNB_GMCH_GGMS); + CTASSERT(SNB_GMCH_GGMS_MASK <= (INT_MAX >> 20)); gtt->gtt_total_entries = (ggms << 20) / sizeof(gtt_pte_t); - gtt->gtt_mappable_entries = (dev->bus_maps[2].bm_size >> PAGE_SHIFT); - if (((gtt->gtt_mappable_entries >> 8) < 64) || - (gtt->gtt_total_entries < gtt->gtt_mappable_entries)) { - DRM_ERROR("unknown GMADR entries: %d\n", - gtt->gtt_mappable_entries); - ret = -ENXIO; - goto fail0; - } - /* Linux sez: For GEN6+ the PTEs for the ggtt live at 2MB + BAR0 */ - if (dev->bus_maps[0].bm_size < (gtt->gtt_total_entries * - sizeof(gtt_pte_t))) { - DRM_ERROR("BAR0 too small for GTT: 0x%"PRIxMAX" < 0x%"PRIxMAX - "\n", + gtt_addr = (2<<20); + gtt_size = (gtt->gtt_total_entries * sizeof(gtt_pte_t)); + if ((gtt_addr > (__type_max(bus_addr_t) - dev->bus_maps[0].bm_base)) || + (gtt_size > (__type_max(bus_addr_t) - + (dev->bus_maps[0].bm_base + gtt_addr { + DRM_ERROR("GTT doesn't fit in BAR0:" + " base 0x%"PRIxMAX + " size 0x%"PRIxMAX"," + " gtt_addr 0x%"PRIxMAX"" + " gtt_total_entries 0x%"PRIxMAX"\n", + (uintmax_t)dev->bus_maps[0].bm_base, (uintmax_t)dev->bus_maps[0].bm_size, - (uintmax_t)(gtt->gtt_total_entries * sizeof(gtt_pte_t))); + (uintmax_t)gtt_addr, + (uintmax_t)gtt->gtt_total_entries); ret = -ENODEV; goto fail0; } - if (bus_space_map(dev->bst, (dev->bus_maps[0].bm_base + (2<<20)), - (gtt->gtt_total_entries * sizeof(gtt_pte_t)), - 0, - >t->gtt_bsh)) { + + if (bus_space_map(dev->bst, (dev->bus_maps[0].bm_base + gtt_addr), + gtt_size, 0, >t->gtt_bsh)) { DRM_ERROR("unable to map GTT\n"); ret = -ENODEV; goto fail0; } + gtt->gma_bus_addr = dev->bus_maps[2].bm_base; + gtt->gtt_mappable_entries = (dev->bus_maps[2].bm_size >> PAGE_SHIFT); + if (((gtt->gtt_mappable_entries >> 8) < 64) || + (gtt->gtt_total_entries < gtt->gtt_mappable_entries)) { + DRM_ERROR("unknown GMADR entries: %d\n", + gtt->gtt_mappable_entries); + ret = -ENXIO; + goto fail1; + } + ret = i915_gem_gtt_init_scratch_page(gtt, dev->dmat); if (ret) goto fail1; @@ -627,8 +636,7 @@ gen6_gtt_init(struct drm_device *dev) fail2: __unused i915_gem_gtt_fini_scratch_page(gtt, dev->dmat); -fail1: bus_space_unmap(dev->bst, gtt->gtt_bsh, - (gtt->gtt_total_entries * sizeof(gtt_pte_t))); +fail1: bus_space_unmap(dev->bst, gtt->gtt_bsh, gtt_size); fail0: return ret; }
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Fri May 2 14:36:10 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_gem_gtt.c Log Message: Cast from uint32_t to bus_addr_t earlier, since it may exceed 32 bits. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c diff -u src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.4 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.5 --- src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.4 Thu May 1 14:37:36 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Fri May 2 14:36:10 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_gem_gtt.c,v 1.4 2014/05/01 14:37:36 riastradh Exp $ */ +/* $NetBSD: i915_gem_gtt.c,v 1.5 2014/05/02 14:36:10 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.4 2014/05/01 14:37:36 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.5 2014/05/02 14:36:10 riastradh Exp $"); #include #include @@ -556,7 +556,7 @@ gen6_pte_decode(gtt_pte_t pte) { const uint32_t addr = (pte & ~(uint32_t)0xf); - return ((addr & 0xff0) << 28) | (addr & ~(uint32_t)0xff0); + return ((bus_addr_t)(addr & 0xff0) << 28) | (addr & ~(uint32_t)0xff0); } static int
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Thu May 1 14:37:36 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_gem_gtt.c Log Message: Clear only the requested range in gen6_ggtt_clear_range. Sprinkle kasserts throughout i915_gem_gtt.c. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c diff -u src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.3 src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.4 --- src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c:1.3 Thu Apr 3 19:18:29 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_gem_gtt.c Thu May 1 14:37:36 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_gem_gtt.c,v 1.3 2014/04/03 19:18:29 riastradh Exp $ */ +/* $NetBSD: i915_gem_gtt.c,v 1.4 2014/05/01 14:37:36 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.3 2014/04/03 19:18:29 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.4 2014/05/01 14:37:36 riastradh Exp $"); #include #include @@ -518,6 +518,7 @@ gen6_pte_addr_encode(bus_addr_t addr) #if __x86_64__ KASSERT(addr <= __BITS(39, 0)); #endif + KASSERT((addr & 0xfff) == 0); return (addr | ((addr >> 28) & 0xff0)); } @@ -550,6 +551,14 @@ gen6_pte_encode(struct drm_device *dev, return (gen6_pte_addr_encode(addr) | flags); } +static bus_addr_t __diagused +gen6_pte_decode(gtt_pte_t pte) +{ + const uint32_t addr = (pte & ~(uint32_t)0xf); + + return ((addr & 0xff0) << 28) | (addr & ~(uint32_t)0xff0); +} + static int gen6_gtt_init(struct drm_device *dev) { @@ -653,6 +662,9 @@ gen6_ggtt_bind_object(struct drm_i915_ge do { KASSERT(PAGE_SIZE <= len); KASSERT(0 == (len % PAGE_SIZE)); + KASSERT(addr == + gen6_pte_decode(gen6_pte_encode(dev, addr, +cache_level))); bus_space_write_4(bst, bsh, 4*(first_entry + i), gen6_pte_encode(dev, addr, cache_level)); addr += PAGE_SIZE; @@ -677,6 +689,8 @@ gen6_ggtt_bind_object(struct drm_i915_ge aprint_error_dev(dev->dev, "mismatched PTE" ": 0x%"PRIxMAX" != 0x%"PRIxMAX"\n", (uintmax_t)actual, (uintmax_t)expected); + KASSERTMSG((seg == obj->igo_dmamap->dm_nsegs), + "seg = %u, nsegs = %u", seg, obj->igo_dmamap->dm_nsegs); } I915_WRITE(GFX_FLSH_CNTL_GEN6, GFX_FLSH_CNTL_EN); @@ -690,13 +704,17 @@ gen6_ggtt_clear_range(struct drm_device struct drm_i915_private *const dev_priv = dev->dev_private; const bus_space_tag_t bst = dev->bst; const bus_space_handle_t bsh = dev_priv->mm.gtt->gtt_bsh; - const unsigned n = (dev_priv->mm.gtt->gtt_total_entries - start_page); const gtt_pte_t scratch_pte = gen6_pte_encode(dev, dev_priv->mm.gtt->gtt_scratch_map->dm_segs[0].ds_addr, I915_CACHE_LLC); unsigned int i; - for (i = 0; i < n; i++) + KASSERT(start_page < dev_priv->mm.gtt->gtt_total_entries); + KASSERT(npages <= (dev_priv->mm.gtt->gtt_total_entries - start_page)); + KASSERT(dev_priv->mm.gtt->gtt_scratch_map->dm_segs[0].ds_addr == + gen6_pte_decode(scratch_pte)); + + for (i = 0; i < npages; i++) bus_space_write_4(bst, bsh, 4*(start_page + i), scratch_pte); bus_space_read_4(bst, bsh, 4*start_page); }
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Fri Apr 25 19:02:51 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_pci.c Log Message: Take the console only from vga or generic genfb. Adapted from a patch by nonaka@ in PR 48705. While here, attach i915 genfb earlier as in PR 48706. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/i915drm/i915_pci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_pci.c diff -u src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.7 src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.8 --- src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.7 Sun Apr 6 16:42:00 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_pci.c Fri Apr 25 19:02:51 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_pci.c,v 1.7 2014/04/06 16:42:00 riastradh Exp $ */ +/* $NetBSD: i915_pci.c,v 1.8 2014/04/25 19:02:51 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,11 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.7 2014/04/06 16:42:00 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.8 2014/04/25 19:02:51 riastradh Exp $"); + +#ifdef _KERNEL_OPT +#include "vga.h" +#endif #include #ifndef _MODULE @@ -46,6 +50,18 @@ __KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v #include #include +#if NVGA > 0 +/* + * XXX All we really need is vga_is_console from vgavar.h, but the + * header files are missing their own dependencies, so we need to + * explicitly drag in the other crap. + */ +#include +#include +#include +#include +#endif + #include #include "i915_drv.h" @@ -58,6 +74,7 @@ struct i915drm_softc { bus_space_handle_t sc_fb_bsh; struct genfb_softc sc_genfb; struct list_head sc_fb_list; /* XXX Kludge! */ + boolsc_console; }; static int i915drm_match(device_t, cfdata_t, void *); @@ -168,6 +185,35 @@ i915drm_attach(device_t parent, device_t i915_drm_driver->driver_features &=~ DRIVER_USE_AGP; } + /* + * Figure out whether to grab the console. + * + * XXX This is much too hairy! Can we simplify it and + * x86/consinit.c? + */ +#if NVGA > 0 + if (vga_is_console(pa->pa_iot, -1) || + vga_is_console(pa->pa_memt, -1)) { + sc->sc_console = true; + /* + * There is a window from here until genfb attaches in + * which kernel messages will go into a black hole, + * until genfb replays the console. Whattakludge. + * + * wsdisplay_cndetach must come first, to clear cn_tab, + * so that nothing will use it; then vga_cndetach + * unmaps the bus space that it would have used. + */ + wsdisplay_cndetach(); + vga_cndetach(); + } else +#endif + if (genfb_is_console() && genfb_is_enabled()) { + sc->sc_console = true; + } else { + sc->sc_console = false; + } + /* Initialize the drm pci driver state. */ sc->sc_drm_dev.driver = i915_drm_driver; drm_pci_attach(self, pa, &sc->sc_pci_dev, &sc->sc_drm_dev); @@ -180,8 +226,8 @@ i915drm_attach(device_t parent, device_t return; } - /* Attach a framebuffer, but not until interrupts work. */ - config_interrupts(self, &i915drm_attach_framebuffer); + /* Attach a framebuffer. */ + i915drm_attach_framebuffer(self); } static int @@ -412,7 +458,7 @@ i915drm_fb_probe(struct drm_fb_helper *f goto fail3; } - prop_dictionary_set_bool(dict, "is_console", 1); /* XXX */ + prop_dictionary_set_bool(dict, "is_console", sc->sc_console); prop_dictionary_set_uint32(dict, "width", mode_cmd.width); prop_dictionary_set_uint32(dict, "height", mode_cmd.height); prop_dictionary_set_uint8(dict, "depth", sizes->surface_bpp);
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Sun Apr 6 16:42:00 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_pci.c Log Message: Restore is_console=1 for i915, even if I keep it off for debugging. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/sys/external/bsd/drm2/i915drm/i915_pci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_pci.c diff -u src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.6 src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.7 --- src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.6 Sun Apr 6 16:38:34 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_pci.c Sun Apr 6 16:42:00 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_pci.c,v 1.6 2014/04/06 16:38:34 riastradh Exp $ */ +/* $NetBSD: i915_pci.c,v 1.7 2014/04/06 16:42:00 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.6 2014/04/06 16:38:34 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.7 2014/04/06 16:42:00 riastradh Exp $"); #include #ifndef _MODULE @@ -412,7 +412,7 @@ i915drm_fb_probe(struct drm_fb_helper *f goto fail3; } - prop_dictionary_set_bool(dict, "is_console", 0); /* XXX */ + prop_dictionary_set_bool(dict, "is_console", 1); /* XXX */ prop_dictionary_set_uint32(dict, "width", mode_cmd.width); prop_dictionary_set_uint32(dict, "height", mode_cmd.height); prop_dictionary_set_uint8(dict, "depth", sizes->surface_bpp);
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Sun Apr 6 16:38:34 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_pci.c Log Message: Add missing declaration from last commit. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/external/bsd/drm2/i915drm/i915_pci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_pci.c diff -u src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.5 src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.6 --- src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.5 Fri Apr 4 16:02:34 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_pci.c Sun Apr 6 16:38:34 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_pci.c,v 1.5 2014/04/04 16:02:34 riastradh Exp $ */ +/* $NetBSD: i915_pci.c,v 1.6 2014/04/06 16:38:34 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.5 2014/04/04 16:02:34 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.6 2014/04/06 16:38:34 riastradh Exp $"); #include #ifndef _MODULE @@ -75,6 +75,7 @@ static int i915drm_detach_framebuffer(de static int i915drm_fb_probe(struct drm_fb_helper *, struct drm_fb_helper_surface_size *); +static void i915drm_fb_detach(struct drm_fb_helper *); static int i915drm_fb_create_handle(struct drm_framebuffer *, struct drm_file *, unsigned int *); static void i915drm_fb_destroy(struct drm_framebuffer *); @@ -411,7 +412,7 @@ i915drm_fb_probe(struct drm_fb_helper *f goto fail3; } - prop_dictionary_set_bool(dict, "is_console", 1); /* XXX */ + prop_dictionary_set_bool(dict, "is_console", 0); /* XXX */ prop_dictionary_set_uint32(dict, "width", mode_cmd.width); prop_dictionary_set_uint32(dict, "height", mode_cmd.height); prop_dictionary_set_uint8(dict, "depth", sizes->surface_bpp);
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Fri Apr 4 16:02:34 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_pci.c Log Message: Tweak i915 framebuffer attachment in preparation for detach/reconfig. Can't do this yet because genfb can't detach or reconfigure... To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/i915drm/i915_pci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_pci.c diff -u src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.4 src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.5 --- src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.4 Thu Apr 3 19:18:29 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_pci.c Fri Apr 4 16:02:34 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_pci.c,v 1.4 2014/04/03 19:18:29 riastradh Exp $ */ +/* $NetBSD: i915_pci.c,v 1.5 2014/04/04 16:02:34 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.4 2014/04/03 19:18:29 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.5 2014/04/04 16:02:34 riastradh Exp $"); #include #ifndef _MODULE @@ -248,6 +248,7 @@ i915drm_attach_framebuffer(device_t self INIT_LIST_HEAD(&sc->sc_fb_list); + KASSERT(dev_priv->fbdev == NULL); dev_priv->fbdev = kmem_zalloc(sizeof(*dev_priv->fbdev), KM_SLEEP); struct drm_fb_helper *const fb_helper = &dev_priv->fbdev->helper; @@ -267,6 +268,8 @@ i915drm_attach_framebuffer(device_t self /* Success! */ return; +fail1: __unused + drm_fb_helper_fini(fb_helper); fail0: kmem_free(dev_priv->fbdev, sizeof(*dev_priv->fbdev)); dev_priv->fbdev = NULL; } @@ -282,21 +285,9 @@ i915drm_detach_framebuffer(device_t self if (fbdev != NULL) { struct drm_fb_helper *const fb_helper = &fbdev->helper; - if (fb_helper->fb != NULL) { - struct drm_i915_gem_object *const obj = sc->sc_fb_obj; - - /* - * genfb children have already been detached, - * so all we need do is unmap the space and - * clean up the drm structures. - */ - bus_space_unmap(dev->bst, sc->sc_fb_bsh, - obj->base.size); - drm_framebuffer_unreference(fb_helper->fb); - fb_helper->fb = NULL; - drm_gem_object_unreference_unlocked(&obj->base); - sc->sc_fb_obj = NULL; - } + if (fb_helper->fb != NULL) + i915drm_fb_detach(fb_helper); + KASSERT(fb_helper->fb == NULL); KASSERT(sc->sc_fb_obj == NULL); drm_fb_helper_fini(fb_helper); @@ -336,9 +327,13 @@ i915drm_fb_probe(struct drm_fb_helper *f sizes->surface_depth); if (fb_helper->fb != NULL) { +#if notyet /* XXX genfb detach */ + i915drm_fb_detach(fb_helper); +#else aprint_debug_dev(sc->sc_dev, "already have a framebuffer" ": %p\n", fb_helper->fb); return 0; +#endif } /* @@ -453,6 +448,22 @@ fail0: KASSERT(ret < 0); } static void +i915drm_fb_detach(struct drm_fb_helper *fb_helper) +{ + struct drm_device *const dev = fb_helper->dev; + struct i915drm_softc *const sc = container_of(dev, + struct i915drm_softc, sc_drm_dev); + struct drm_i915_gem_object *const obj = sc->sc_fb_obj; + + /* XXX How to detach genfb? */ + bus_space_unmap(dev->bst, sc->sc_fb_bsh, obj->base.size); + drm_framebuffer_unreference(fb_helper->fb); + fb_helper->fb = NULL; + drm_gem_object_unreference_unlocked(&obj->base); + sc->sc_fb_obj = NULL; +} + +static void i915drm_fb_destroy(struct drm_framebuffer *fb) {
CVS commit: src/sys/external/bsd/drm2/i915drm
Module Name:src Committed By: riastradh Date: Thu Apr 3 14:45:44 UTC 2014 Modified Files: src/sys/external/bsd/drm2/i915drm: i915_pci.c Log Message: Make i915drmkms grab the console by default. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/i915drm/i915_pci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/i915drm/i915_pci.c diff -u src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.2 src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.3 --- src/sys/external/bsd/drm2/i915drm/i915_pci.c:1.2 Tue Mar 18 18:20:42 2014 +++ src/sys/external/bsd/drm2/i915drm/i915_pci.c Thu Apr 3 14:45:44 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: i915_pci.c,v 1.2 2014/03/18 18:20:42 riastradh Exp $ */ +/* $NetBSD: i915_pci.c,v 1.3 2014/04/03 14:45:44 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.2 2014/03/18 18:20:42 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: i915_pci.c,v 1.3 2014/04/03 14:45:44 riastradh Exp $"); #include #ifndef _MODULE @@ -416,7 +416,7 @@ i915drm_fb_probe(struct drm_fb_helper *f goto fail3; } - prop_dictionary_set_bool(dict, "is_console", 0); /* XXX */ + prop_dictionary_set_bool(dict, "is_console", 1); /* XXX */ prop_dictionary_set_uint32(dict, "width", mode_cmd.width); prop_dictionary_set_uint32(dict, "height", mode_cmd.height); prop_dictionary_set_uint8(dict, "depth", sizes->surface_bpp);