CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2021-05-29 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sat May 29 08:45:38 UTC 2021

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_drv.h

Log Message:
i915drmkms: Fix LOCKDEBUG panic and potential deadlock.

This path is taken with a spin lock held, and possibly even in
interrupt context, where taking vmobjlock is not kosher, but we are
guaranteed to have the queue populated and unchanging.

XXX pullup-9


To generate a diff of this commit:
cvs rdiff -u -r1.32 -r1.33 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h

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/dist/drm/i915/i915_drv.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.32 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.33
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.32	Sun Feb 23 15:46:40 2020
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h	Sat May 29 08:45:38 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_drv.h,v 1.32 2020/02/23 15:46:40 ad Exp $	*/
+/*	$NetBSD: i915_drv.h,v 1.33 2021/05/29 08:45:38 riastradh Exp $	*/
 
 /* i915_drv.h -- Private header for the I915 driver -*- linux-c -*-
  */
@@ -3021,9 +3021,10 @@ i915_gem_object_get_page(struct drm_i915
 		 * lock to prevent them from disappearing.
 		 */
 		KASSERT(obj->pages != NULL);
-		rw_enter(obj->base.filp->vmobjlock, RW_WRITER);
-		page = uvm_pagelookup(obj->base.filp, ptoa(n));
-		rw_exit(obj->base.filp->vmobjlock);
+		TAILQ_FOREACH(page, >pageq, pageq.queue) {
+			if (n-- == 0)
+break;
+		}
 	}
 	KASSERT(page != NULL);
 	return container_of(page, struct page, p_vmp);



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2020-10-30 Thread Maya Rashish
Module Name:src
Committed By:   maya
Date:   Sat Oct 31 04:05:42 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: intel_sprite.c

Log Message:
Match linux here and wait without interrupts.

>From David H. Gutteridge in PR port-amd64/5
There's a second part to the patch, but "make our code behave the way
the upstream code does" is very welcome.
Also PR kern/54515 and possibly others.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_sprite.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/dist/drm/i915/intel_sprite.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_sprite.c:1.10 src/sys/external/bsd/drm2/dist/drm/i915/intel_sprite.c:1.11
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_sprite.c:1.10	Fri Feb 14 04:36:12 2020
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_sprite.c	Sat Oct 31 04:05:42 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_sprite.c,v 1.10 2020/02/14 04:36:12 riastradh Exp $	*/
+/*	$NetBSD: intel_sprite.c,v 1.11 2020/10/31 04:05:42 maya Exp $	*/
 
 /*
  * Copyright © 2011 Intel Corporation
@@ -32,7 +32,7 @@
  * support.
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_sprite.c,v 1.10 2020/02/14 04:36:12 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_sprite.c,v 1.11 2020/10/31 04:05:42 maya Exp $");
 
 #include 
 #include 
@@ -124,7 +124,7 @@ void intel_pipe_update_start(struct inte
 	trace_i915_pipe_update_start(crtc);
 
 #ifdef __NetBSD__
-	DRM_SPIN_TIMED_WAIT_UNTIL(ret, wq, >vbl_lock, timeout,
+	DRM_SPIN_TIMED_WAIT_NOINTR_UNTIL(ret, wq, >vbl_lock, timeout,
 	(scanline = intel_get_crtc_scanline(crtc),
 		scanline < min || scanline > max));
 	if (ret <= 0)



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2020-10-20 Thread Ryo Shimizu
Module Name:src
Committed By:   ryo
Date:   Tue Oct 20 09:53:59 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_atombios_dp.c

Log Message:
add header file hack to resolve conflict of ALIGN macro. (on __BIG_ENDIAN)


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.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/dist/drm/radeon/radeon_atombios_dp.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c:1.2	Tue Jan  7 13:51:38 2020
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c	Tue Oct 20 09:53:59 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_atombios_dp.c,v 1.2 2020/01/07 13:51:38 msaitoh Exp $	*/
+/*	$NetBSD: radeon_atombios_dp.c,v 1.3 2020/10/20 09:53:59 ryo Exp $	*/
 
 /*
  * Copyright 2007-8 Advanced Micro Devices, Inc.
@@ -27,7 +27,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_atombios_dp.c,v 1.2 2020/01/07 13:51:38 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_atombios_dp.c,v 1.3 2020/10/20 09:53:59 ryo Exp $");
 
 #include 
 #include 
@@ -37,6 +37,8 @@ __KERNEL_RCSID(0, "$NetBSD: radeon_atomb
 #include "atom-bits.h"
 #include 
 
+#include 
+
 /* move these to drm_dp_helper.c/h */
 #define DP_LINK_CONFIGURATION_SIZE 9
 #define DP_DPCD_SIZE DP_RECEIVER_CAP_SIZE



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2020-10-17 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sat Oct 17 10:47:28 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_gart.c

Log Message:
mb (dsb sy) is not the same as membar_sync (dmb sy) on aarch64


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.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/dist/drm/amd/amdgpu/amdgpu_gart.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c:1.3 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c:1.3	Mon Aug 27 14:04:50 2018
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gart.c	Sat Oct 17 10:47:28 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_gart.c,v 1.3 2018/08/27 14:04:50 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_gart.c,v 1.4 2020/10/17 10:47:28 jmcneill Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_gart.c,v 1.3 2018/08/27 14:04:50 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_gart.c,v 1.4 2020/10/17 10:47:28 jmcneill Exp $");
 
 #include 
 #include 
@@ -289,7 +289,7 @@ amdgpu_gart_post_update(struct amdgpu_de
 		gpu_pgstart*entsize, gpu_npages*entsize,
 		BUS_DMASYNC_PREWRITE);
 	}
-	membar_sync();		/* XXX overkill */
+	mb();
 	amdgpu_gart_flush_gpu_tlb(adev, 0);
 }
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit

2020-10-17 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sat Oct 17 10:47:10 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit: fbmem.h

Log Message:
wmb (dsb ishst) is not the same as membar_producer (dmb ishst) on aarch64


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit/fbmem.h

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/dist/drm/nouveau/nvkm/subdev/devinit/fbmem.h
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit/fbmem.h:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit/fbmem.h:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit/fbmem.h:1.3	Mon Aug 27 14:51:33 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit/fbmem.h	Sat Oct 17 10:47:10 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: fbmem.h,v 1.3 2018/08/27 14:51:33 riastradh Exp $	*/
+/*	$NetBSD: fbmem.h,v 1.4 2020/10/17 10:47:10 jmcneill Exp $	*/
 
 /*
  * Copyright (C) 2010 Francisco Jerez.
@@ -112,11 +112,10 @@ fbmem_poke(struct io_mapping *fb, u32 of
 {
 	u8 __iomem *p = io_mapping_map_atomic_wc(fb, off & PAGE_MASK);
 	iowrite32(val, p + (off & ~PAGE_MASK));
+	wmb();
 #ifdef __NetBSD__
-	membar_producer();
 	io_mapping_unmap_atomic(fb, __UNVOLATILE(p));
 #else
-	wmb();
 	io_mapping_unmap_atomic(p);
 #endif
 }



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2020-10-17 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sat Oct 17 10:46:39 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_gart.c

Log Message:
mb (dsb sy) is not the same as membar_sync (dmb sy) on aarch64


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.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/dist/drm/radeon/radeon_gart.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.11 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.12
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.11	Mon Jan 20 23:22:09 2020
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c	Sat Oct 17 10:46:39 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_gart.c,v 1.11 2020/01/20 23:22:09 jmcneill Exp $	*/
+/*	$NetBSD: radeon_gart.c,v 1.12 2020/10/17 10:46:39 jmcneill Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_gart.c,v 1.11 2020/01/20 23:22:09 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_gart.c,v 1.12 2020/10/17 10:46:39 jmcneill Exp $");
 
 #include 
 #include 
@@ -306,7 +306,7 @@ radeon_gart_post_update(struct radeon_de
 		BUS_DMASYNC_PREWRITE);
 	}
 	if (rdev->gart.ptr != NULL) {
-		membar_sync();		/* XXX overkill */
+		mb();
 		radeon_gart_tlb_flush(rdev);
 	}
 }



CVS commit: src/sys/external/bsd/drm2/dist/drm

2020-06-27 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sat Jun 27 13:39:06 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_crtc.c

Log Message:
prop_dictionary_get_cstring -> prop_dictionary_get_string


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/sys/external/bsd/drm2/dist/drm/drm_crtc.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/dist/drm/drm_crtc.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.16 src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.17
--- src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.16	Fri Feb 14 14:34:57 2020
+++ src/sys/external/bsd/drm2/dist/drm/drm_crtc.c	Sat Jun 27 13:39:05 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_crtc.c,v 1.16 2020/02/14 14:34:57 maya Exp $	*/
+/*	$NetBSD: drm_crtc.c,v 1.17 2020/06/27 13:39:05 jmcneill Exp $	*/
 
 /*
  * Copyright (c) 2006-2008 Intel Corporation
@@ -32,7 +32,7 @@
  *  Jesse Barnes 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_crtc.c,v 1.16 2020/02/14 14:34:57 maya Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_crtc.c,v 1.17 2020/06/27 13:39:05 jmcneill Exp $");
 
 #include 
 #include 
@@ -825,13 +825,14 @@ EXPORT_SYMBOL(drm_display_info_set_bus_f
 static void drm_connector_get_cmdline_mode(struct drm_connector *connector)
 {
 	struct drm_cmdline_mode *mode = >cmdline_mode;
-	char *option = NULL;
 
 #ifdef __NetBSD__
+	const char *option;
 	prop_dictionary_t prop = device_properties(connector->dev->dev);
-	if (!prop_dictionary_get_cstring(prop, connector->name, ))
+	if (!prop_dictionary_get_string(prop, connector->name, ))
 		return;
 #else
+	char *option = NULL;
 	if (fb_get_options(connector->name, ))
 		return;
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2020-05-03 Thread Nia Alarie
Module Name:src
Committed By:   nia
Date:   Sun May  3 13:34:38 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: intel_i2c.c

Log Message:
drm/i915: There's no real reason the user should care that we're about to
fall back to bitbanging, so let's change the message from DRM_INFO to
DRM_DEBUG_KMS.

https://lists.freedesktop.org/archives/intel-gfx/2016-March/089133.html


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.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/dist/drm/i915/intel_i2c.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c:1.19 src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c:1.20
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c:1.19	Fri Feb 14 14:34:58 2020
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c	Sun May  3 13:34:38 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_i2c.c,v 1.19 2020/02/14 14:34:58 maya Exp $	*/
+/*	$NetBSD: intel_i2c.c,v 1.20 2020/05/03 13:34:38 nia Exp $	*/
 
 /*
  * Copyright (c) 2006 Dave Airlie 
@@ -29,7 +29,7 @@
  *	Chris Wilson 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_i2c.c,v 1.19 2020/02/14 14:34:58 maya Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_i2c.c,v 1.20 2020/05/03 13:34:38 nia Exp $");
 
 #include 
 #include 
@@ -643,8 +643,8 @@ clear_err:
 	goto out;
 
 timeout:
-	DRM_INFO("GMBUS [%s] timed out, falling back to bit banging on pin %d\n",
-		 bus->adapter.name, bus->reg0 & 0xff);
+	DRM_DEBUG_KMS("GMBUS [%s] timed out, falling back to bit banging on pin %d\n",
+		 bus->adapter.name, bus->reg0 & 0xff);
 	I915_WRITE(GMBUS0, 0);
 
 	/* Hardware may not support GMBUS over these pins? Try GPIO bitbanging instead. */



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2020-04-27 Thread Izumi Tsutsui
Module Name:src
Committed By:   tsutsui
Date:   Mon Apr 27 16:57:31 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_ttm.c

Log Message:
Fix possible bus_dmamap_load(9) leak.  PR/55127

"Looks good to me" from riastradh@.
Note it was also commented "that code path is likely to be reached"
so maybe pullups are not necessary.


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.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/dist/drm/radeon/radeon_ttm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.16 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.17
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c:1.16	Fri Feb 14 04:38:24 2020
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c	Mon Apr 27 16:57:31 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_ttm.c,v 1.16 2020/02/14 04:38:24 riastradh Exp $	*/
+/*	$NetBSD: radeon_ttm.c,v 1.17 2020/04/27 16:57:31 tsutsui Exp $	*/
 
 /*
  * Copyright 2009 Jerome Glisse.
@@ -32,7 +32,7 @@
  *Dave Airlie
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_ttm.c,v 1.16 2020/02/14 04:38:24 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_ttm.c,v 1.17 2020/04/27 16:57:31 tsutsui Exp $");
 
 #include 
 #include 
@@ -923,6 +923,11 @@ static void radeon_ttm_tt_unpopulate(str
 #endif
 	bool slave = !!(ttm->page_flags & TTM_PAGE_FLAG_SG);
 
+#ifdef __NetBSD__
+	if (slave && ttm->sg) {
+		bus_dmamap_unload(ttm->bdev->dmat, gtt->ttm.dma_address);
+	}
+#endif
 	if (gtt && gtt->userptr) {
 		kfree(ttm->sg);
 		ttm->page_flags &= ~TTM_PAGE_FLAG_SG;



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2020-04-25 Thread Simon Burge
Module Name:src
Committed By:   simonb
Date:   Sat Apr 25 12:39:15 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_display.c

Log Message:
Fix gcc uninitialised variable warning.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_display.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/dist/drm/amd/amdgpu/amdgpu_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_display.c:1.6 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_display.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_display.c:1.6	Fri Feb 14 04:38:13 2020
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_display.c	Sat Apr 25 12:39:15 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_display.c,v 1.6 2020/02/14 04:38:13 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_display.c,v 1.7 2020/04/25 12:39:15 simonb Exp $	*/
 
 /*
  * Copyright 2007-8 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  *  Alex Deucher
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_display.c,v 1.6 2020/02/14 04:38:13 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_display.c,v 1.7 2020/04/25 12:39:15 simonb Exp $");
 
 #include 
 #include 
@@ -78,7 +78,7 @@ static void amdgpu_flip_work_func(struct
 	struct drm_crtc *crtc = >base;
 	unsigned long flags;
 	unsigned i, repcnt = 4;
-	int vpos, hpos, stat, min_udelay = 0;
+	int vpos, hpos, stat = 0, min_udelay = 0;
 	struct drm_vblank_crtc *vblank = >dev->vblank[work->crtc_id];
 
 	amdgpu_flip_wait_fence(adev, >excl);



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau

2020-04-19 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sun Apr 19 19:12:38 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_nv50_display.c
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu:
nouveau_nvkm_subdev_mmu_nv44.c

Log Message:
Add missing BUS_DMA_COHERENT hints


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c
cvs rdiff -u -r1.3 -r1.4 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_nv44.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/dist/drm/nouveau/nouveau_nv50_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c:1.11 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c:1.12
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c:1.11	Fri Feb 14 14:34:58 2020
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c	Sun Apr 19 19:12:37 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nv50_display.c,v 1.11 2020/02/14 14:34:58 maya Exp $	*/
+/*	$NetBSD: nouveau_nv50_display.c,v 1.12 2020/04/19 19:12:37 jmcneill Exp $	*/
 
 /*
  * Copyright 2011 Red Hat Inc.
@@ -25,7 +25,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nv50_display.c,v 1.11 2020/02/14 14:34:58 maya Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nv50_display.c,v 1.12 2020/04/19 19:12:37 jmcneill Exp $");
 
 #include 
 
@@ -297,7 +297,7 @@ nv50_dmac_create(struct nvif_device *dev
 	}
 	/* XXX errno NetBSD->Linux */
 	ret = -bus_dmamem_map(dmat, >dmaseg, 1, PAGE_SIZE, >dmakva,
-	BUS_DMA_WAITOK);
+	BUS_DMA_WAITOK | BUS_DMA_COHERENT);
 	if (ret) {
 		bus_dmamap_destroy(dmat, dmac->dmamap);
 		bus_dmamem_free(dmat, >dmaseg, 1);

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_nv44.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_nv44.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_nv44.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_nv44.c:1.3	Mon Aug 27 07:41:09 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_nv44.c	Sun Apr 19 19:12:37 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_subdev_mmu_nv44.c,v 1.3 2018/08/27 07:41:09 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_subdev_mmu_nv44.c,v 1.4 2020/04/19 19:12:37 jmcneill Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_nv44.c,v 1.3 2018/08/27 07:41:09 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_nv44.c,v 1.4 2020/04/19 19:12:37 jmcneill Exp $");
 
 #include "nv04.h"
 
@@ -193,7 +193,7 @@ fail1:		bus_dmamem_free(dmat, >null
 
 	/* XXX errno NetBSD->Linux */
 	ret = -bus_dmamem_map(dmat, >nullseg, 1, nullsz,
-	>nullp, BUS_DMA_WAITOK);
+	>nullp, BUS_DMA_WAITOK | BUS_DMA_COHERENT);
 	if (ret) {
 fail2:		bus_dmamap_destroy(dmat, mmu->nullmap);
 		goto fail1;



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device

2020-04-19 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Apr 19 18:02:36 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device:
nouveau_nvkm_engine_device_base.c

Log Message:
Match Linux's criterion for byte-swapping on big-endian CPUs.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.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/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c:1.9 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c:1.10
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c:1.9	Fri Feb 14 04:35:20 2020
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c	Sun Apr 19 18:02:36 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_engine_device_base.c,v 1.9 2020/02/14 04:35:20 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_engine_device_base.c,v 1.10 2020/04/19 18:02:36 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_device_base.c,v 1.9 2020/02/14 04:35:20 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_device_base.c,v 1.10 2020/04/19 18:02:36 riastradh Exp $");
 
 #include "priv.h"
 #include "acpi.h"
@@ -2386,7 +2386,7 @@ nvkm_device_ctor(const struct nvkm_devic
 #ifndef __BIG_ENDIAN
 		if (bus_space_read_stream_4(mmiot, mmioh, 4) != 0)
 #else
-		if (bus_space_read_stream_4(mmiot, mmioh, 4) != 1)
+		if (bus_space_read_stream_4(mmiot, mmioh, 4) == 0)
 #endif
 		{
 			bus_space_write_stream_4(mmiot, mmioh, 4, 0x0101);



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio

2020-04-01 Thread SAITOH Masanobu
Module Name:src
Committed By:   msaitoh
Date:   Wed Apr  1 15:57:46 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio:
nouveau_nvkm_subdev_gpio_base.c

Log Message:
 Calculate mask correctly for bit 31 in nvkm_gpio_fini(). Found by kUBSan.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_base.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/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_base.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_base.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_base.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_base.c:1.2	Mon Aug 27 04:58:34 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_base.c	Wed Apr  1 15:57:46 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_subdev_gpio_base.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_subdev_gpio_base.c,v 1.3 2020/04/01 15:57:46 msaitoh Exp $	*/
 
 /*
  * Copyright 2011 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_gpio_base.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_gpio_base.c,v 1.3 2020/04/01 15:57:46 msaitoh Exp $");
 
 #include "priv.h"
 
@@ -169,7 +169,7 @@ static int
 nvkm_gpio_fini(struct nvkm_subdev *subdev, bool suspend)
 {
 	struct nvkm_gpio *gpio = nvkm_gpio(subdev);
-	u32 mask = (1 << gpio->func->lines) - 1;
+	u32 mask = (1ULL << gpio->func->lines) - 1;
 
 	gpio->func->intr_mask(gpio, NVKM_GPIO_TOGGLED, mask, 0);
 	gpio->func->intr_stat(gpio, , );



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev

2020-04-01 Thread SAITOH Masanobu
Module Name:src
Committed By:   msaitoh
Date:   Wed Apr  1 15:55:52 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio:
nouveau_nvkm_subdev_gpio_nv50.c
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/i2c:
nouveau_nvkm_subdev_i2c_g94.c

Log Message:
 Use unsigned to avoid undefined behavior. Found by kUBSan.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_nv50.c
cvs rdiff -u -r1.2 -r1.3 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/i2c/nouveau_nvkm_subdev_i2c_g94.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/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_nv50.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_nv50.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_nv50.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_nv50.c:1.2	Mon Aug 27 04:58:34 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_nv50.c	Wed Apr  1 15:55:52 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_subdev_gpio_nv50.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_subdev_gpio_nv50.c,v 1.3 2020/04/01 15:55:52 msaitoh Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_gpio_nv50.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_gpio_nv50.c,v 1.3 2020/04/01 15:55:52 msaitoh Exp $");
 
 #include "priv.h"
 
@@ -55,7 +55,7 @@ nv50_gpio_reset(struct nvkm_gpio *gpio, 
 
 		nvkm_gpio_set(gpio, 0, func, line, defs);
 
-		nvkm_mask(device, reg, 0x00010001 << lsh, val << lsh);
+		nvkm_mask(device, reg, 0x00010001U << lsh, val << lsh);
 	}
 }
 

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/i2c/nouveau_nvkm_subdev_i2c_g94.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/i2c/nouveau_nvkm_subdev_i2c_g94.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/i2c/nouveau_nvkm_subdev_i2c_g94.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/i2c/nouveau_nvkm_subdev_i2c_g94.c:1.2	Mon Aug 27 04:58:34 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/i2c/nouveau_nvkm_subdev_i2c_g94.c	Wed Apr  1 15:55:52 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_subdev_i2c_g94.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_subdev_i2c_g94.c,v 1.3 2020/04/01 15:55:52 msaitoh Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_i2c_g94.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_i2c_g94.c,v 1.3 2020/04/01 15:55:52 msaitoh Exp $");
 
 #include "priv.h"
 #include "pad.h"
@@ -39,7 +39,7 @@ g94_aux_stat(struct nvkm_i2c *i2c, u32 *
 		if ((stat & (1 << (i * 4 *hi |= 1 << i;
 		if ((stat & (2 << (i * 4 *lo |= 1 << i;
 		if ((stat & (4 << (i * 4 *rq |= 1 << i;
-		if ((stat & (8 << (i * 4 *tx |= 1 << i;
+		if ((stat & (8U << (i * 4 *tx |= 1 << i;
 	}
 	nvkm_wr32(device, 0x00e06c, intr);
 }



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2020-02-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Thu Feb 27 15:41:47 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_irq_kms.c

Log Message:
Take a mutex around mode config logic as the comment advises.

XXX pullup


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_irq_kms.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/dist/drm/radeon/radeon_irq_kms.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_irq_kms.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_irq_kms.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_irq_kms.c:1.4	Mon Aug 27 07:03:26 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_irq_kms.c	Thu Feb 27 15:41:47 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_irq_kms.c,v 1.4 2018/08/27 07:03:26 riastradh Exp $	*/
+/*	$NetBSD: radeon_irq_kms.c,v 1.5 2020/02/27 15:41:47 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_irq_kms.c,v 1.4 2018/08/27 07:03:26 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_irq_kms.c,v 1.5 2020/02/27 15:41:47 riastradh Exp $");
 
 #include 
 #include 
@@ -107,11 +107,12 @@ static void radeon_dp_work_func(struct w
 	struct drm_mode_config *mode_config = >mode_config;
 	struct drm_connector *connector;
 
-	/* this should take a mutex */
+	mutex_lock(_config->mutex);
 	if (mode_config->num_connector) {
 		list_for_each_entry(connector, _config->connector_list, head)
 			radeon_connector_hotplug(connector);
 	}
+	mutex_unlock(_config->mutex);
 }
 /**
  * radeon_driver_irq_preinstall_kms - drm irq preinstall callback



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2020-02-14 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Feb 14 09:39:57 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: intel_fbdev.c

Log Message:
Nix another conditional ALIGN.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_fbdev.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/dist/drm/i915/intel_fbdev.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_fbdev.c:1.11 src/sys/external/bsd/drm2/dist/drm/i915/intel_fbdev.c:1.12
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_fbdev.c:1.11	Fri Feb 14 09:39:37 2020
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_fbdev.c	Fri Feb 14 09:39:57 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_fbdev.c,v 1.11 2020/02/14 09:39:37 riastradh Exp $	*/
+/*	$NetBSD: intel_fbdev.c,v 1.12 2020/02/14 09:39:57 riastradh Exp $	*/
 
 /*
  * Copyright © 2007 David Airlie
@@ -27,7 +27,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_fbdev.c,v 1.11 2020/02/14 09:39:37 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_fbdev.c,v 1.12 2020/02/14 09:39:57 riastradh Exp $");
 
 #include 
 #include 
@@ -53,6 +53,7 @@ __KERNEL_RCSID(0, "$NetBSD: intel_fbdev.
 
 #ifdef __NetBSD__
 #include "intelfb.h"
+#include 
 #endif
 
 #ifndef __NetBSD__
@@ -145,13 +146,8 @@ static int intelfb_alloc(struct drm_fb_h
 	mode_cmd.width = sizes->surface_width;
 	mode_cmd.height = sizes->surface_height;
 
-#ifdef __NetBSD__
-	mode_cmd.pitches[0] = round_up(mode_cmd.width *
-DIV_ROUND_UP(sizes->surface_bpp, 8), 64);
-#else
 	mode_cmd.pitches[0] = ALIGN(mode_cmd.width *
 DIV_ROUND_UP(sizes->surface_bpp, 8), 64);
-#endif
 	mode_cmd.pixel_format = drm_mode_legacy_fb_format(sizes->surface_bpp,
 			  sizes->surface_depth);
 



CVS commit: src/sys/external/bsd/drm2/dist/drm

2020-02-14 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Feb 14 09:39:38 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: intel_bios.c intel_crt.c
intel_display.c intel_fbdev.c intel_lvds.c intel_pm.c intel_sdvo.c
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_chan.c

Log Message:
Reduce some more cosmetic diffs.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_lvds.c
cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/dist/drm/i915/intel_crt.c
cvs rdiff -u -r1.30 -r1.31 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c
cvs rdiff -u -r1.10 -r1.11 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_fbdev.c
cvs rdiff -u -r1.22 -r1.23 src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c
cvs rdiff -u -r1.13 -r1.14 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_chan.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/dist/drm/i915/intel_bios.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c:1.8 src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c:1.8	Fri Feb 14 04:30:05 2020
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c	Fri Feb 14 09:39:37 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_bios.c,v 1.8 2020/02/14 04:30:05 riastradh Exp $	*/
+/*	$NetBSD: intel_bios.c,v 1.9 2020/02/14 09:39:37 riastradh Exp $	*/
 
 /*
  * Copyright © 2006 Intel Corporation
@@ -27,7 +27,7 @@
  *
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_bios.c,v 1.8 2020/02/14 04:30:05 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_bios.c,v 1.9 2020/02/14 09:39:37 riastradh Exp $");
 
 #include 
 #include 
@@ -1248,7 +1248,7 @@ static const struct dmi_system_id intel_
 			DMI_MATCH(DMI_PRODUCT_NAME, "97027RG"),
 		},
 	},
-	{ 	.callback = NULL, }
+	{ }
 };
 
 static const struct bdb_header *validate_vbt(const void *base,
Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_lvds.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_lvds.c:1.8 src/sys/external/bsd/drm2/dist/drm/i915/intel_lvds.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_lvds.c:1.8	Fri Feb 14 04:36:12 2020
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_lvds.c	Fri Feb 14 09:39:37 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_lvds.c,v 1.8 2020/02/14 04:36:12 riastradh Exp $	*/
+/*	$NetBSD: intel_lvds.c,v 1.9 2020/02/14 09:39:37 riastradh Exp $	*/
 
 /*
  * Copyright © 2006-2007 Intel Corporation
@@ -30,7 +30,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_lvds.c,v 1.8 2020/02/14 04:36:12 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_lvds.c,v 1.9 2020/02/14 09:39:37 riastradh Exp $");
 
 #include 
 #include 
@@ -422,7 +422,7 @@ static const struct dmi_system_id intel_
 		},
 	},
 
-	{ .callback = NULL }	/* terminating entry */
+	{ }	/* terminating entry */
 };
 
 /*
@@ -784,7 +784,7 @@ static const struct dmi_system_id intel_
 		},
 	},
 
-	{ .callback = NULL }	/* terminating entry */
+	{ }	/* terminating entry */
 };
 
 /*
@@ -869,7 +869,7 @@ static const struct dmi_system_id intel_
 			DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro9,1"),
 		},
 	},
-	{ .callback = NULL }	/* terminating entry */
+	{ }	/* terminating entry */
 };
 
 bool intel_is_dual_link_lvds(struct drm_device *dev)

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_crt.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_crt.c:1.7 src/sys/external/bsd/drm2/dist/drm/i915/intel_crt.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_crt.c:1.7	Fri Feb 14 04:36:11 2020
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_crt.c	Fri Feb 14 09:39:37 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_crt.c,v 1.7 2020/02/14 04:36:11 riastradh Exp $	*/
+/*	$NetBSD: intel_crt.c,v 1.8 2020/02/14 09:39:37 riastradh Exp $	*/
 
 /*
  * Copyright © 2006-2007 Intel Corporation
@@ -27,7 +27,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_crt.c,v 1.7 2020/02/14 04:36:11 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_crt.c,v 1.8 2020/02/14 09:39:37 riastradh Exp $");
 
 #include 
 #include 
@@ -784,7 +784,7 @@ static const struct dmi_system_id intel_
 			DMI_MATCH(DMI_PRODUCT_NAME, "XPS 8700"),
 		},
 	},
-	{ .callback = NULL }
+	{ }
 };
 
 void intel_crt_init(struct drm_device *dev)

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.30 src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.31
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.30	Fri Feb 14 04:36:11 2020
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c	Fri Feb 14 09:39:37 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_display.c,v 1.30 2020/02/14 04:36:11 riastradh 

CVS commit: src/sys/external/bsd/drm2/dist/drm

2020-02-13 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Feb 14 04:37:29 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_crtc.c drm_fb_helper.c
drm_prime.c
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_abi16.c
src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv04:
nouveau_dispnv04_arb.c
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp:
nouveau_nvkm_engine_disp_dport.c
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios:
nouveau_nvkm_subdev_bios_pll.c
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit:
nouveau_nvkm_subdev_devinit_nv04.c
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm:
nouveau_nvkm_subdev_mxm_nv50.c
src/sys/external/bsd/drm2/dist/drm/radeon: atombios.h
src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo.c ttm_bo_util.c
src/sys/external/bsd/drm2/dist/drm/vmwgfx: vmwgfx_kms.c

Log Message:
Revert cosmetic changes.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/external/bsd/drm2/dist/drm/drm_crtc.c \
src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c
cvs rdiff -u -r1.8 -r1.9 src/sys/external/bsd/drm2/dist/drm/drm_prime.c
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_abi16.c
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_arb.c
cvs rdiff -u -r1.3 -r1.4 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp/nouveau_nvkm_engine_disp_dport.c
cvs rdiff -u -r1.2 -r1.3 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_pll.c
cvs rdiff -u -r1.2 -r1.3 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit/nouveau_nvkm_subdev_devinit_nv04.c
cvs rdiff -u -r1.2 -r1.3 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm/nouveau_nvkm_subdev_mxm_nv50.c
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/radeon/atombios.h
cvs rdiff -u -r1.17 -r1.18 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c \
src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/vmwgfx/vmwgfx_kms.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/dist/drm/drm_crtc.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.14 src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.15
--- src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.14	Fri Feb 14 04:36:55 2020
+++ src/sys/external/bsd/drm2/dist/drm/drm_crtc.c	Fri Feb 14 04:37:27 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_crtc.c,v 1.14 2020/02/14 04:36:55 riastradh Exp $	*/
+/*	$NetBSD: drm_crtc.c,v 1.15 2020/02/14 04:37:27 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2006-2008 Intel Corporation
@@ -32,7 +32,7 @@
  *  Jesse Barnes 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_crtc.c,v 1.14 2020/02/14 04:36:55 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_crtc.c,v 1.15 2020/02/14 04:37:27 riastradh Exp $");
 
 #include 
 #include 
@@ -3065,8 +3065,7 @@ int drm_mode_addfb(struct drm_device *de
 		   void *data, struct drm_file *file_priv)
 {
 	struct drm_mode_fb_cmd *or = data;
-	static const struct drm_mode_fb_cmd2 zero_fbcmd;
-	struct drm_mode_fb_cmd2 r = zero_fbcmd;
+	struct drm_mode_fb_cmd2 r = {};
 	int ret;
 
 	/* convert to new format and call new ioctl */
Index: src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.14 src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.15
--- src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.14	Fri Feb 14 04:37:09 2020
+++ src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c	Fri Feb 14 04:37:27 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_fb_helper.c,v 1.14 2020/02/14 04:37:09 riastradh Exp $	*/
+/*	$NetBSD: drm_fb_helper.c,v 1.15 2020/02/14 04:37:27 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2006-2009 Red Hat Inc.
@@ -30,7 +30,7 @@
  *  Jesse Barnes 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_fb_helper.c,v 1.14 2020/02/14 04:37:09 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_fb_helper.c,v 1.15 2020/02/14 04:37:27 riastradh Exp $");
 
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
@@ -584,7 +584,7 @@ static struct sysrq_key_op sysrq_drm_fb_
 	.action_msg = "Restore framebuffer console",
 };
 #else
-static struct sysrq_key_op sysrq_drm_fb_helper_restore_op;
+static struct sysrq_key_op sysrq_drm_fb_helper_restore_op = { };
 #endif
 
 #ifndef __NetBSD__		/* XXX fb info */

Index: src/sys/external/bsd/drm2/dist/drm/drm_prime.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_prime.c:1.8 src/sys/external/bsd/drm2/dist/drm/drm_prime.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/drm_prime.c:1.8	Fri Feb 14 04:35:19 2020
+++ src/sys/external/bsd/drm2/dist/drm/drm_prime.c	Fri Feb 14 04:37:27 2020

CVS commit: src/sys/external/bsd/drm2/dist/drm

2020-02-13 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Feb 14 04:38:24 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_cs.c amdgpu_gem.c
amdgpu_ttm.c
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_cs.c radeon_gem.c
radeon_ttm.c

Log Message:
Implement drm userptr with uvm_vslock & bus_dmamap_load_uio.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cs.c
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gem.c
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ttm.c
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_cs.c
cvs rdiff -u -r1.7 -r1.8 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c
cvs rdiff -u -r1.15 -r1.16 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.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/dist/drm/amd/amdgpu/amdgpu_cs.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cs.c:1.3 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cs.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cs.c:1.3	Mon Aug 27 14:04:50 2018
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cs.c	Fri Feb 14 04:38:23 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_cs.c,v 1.3 2018/08/27 14:04:50 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_cs.c,v 1.4 2020/02/14 04:38:23 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Jerome Glisse.
@@ -27,7 +27,7 @@
  *Jerome Glisse 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_cs.c,v 1.3 2018/08/27 14:04:50 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_cs.c,v 1.4 2020/02/14 04:38:23 riastradh Exp $");
 
 #include 
 #include 
@@ -406,7 +406,7 @@ static int amdgpu_cs_parser_relocs(struc
 	struct amdgpu_fpriv *fpriv = p->filp->driver_priv;
 	struct amdgpu_cs_buckets buckets;
 	struct list_head duplicates;
-	bool need_mmap_lock __diagused = false;
+	bool need_mmap_lock = false;
 	int i, r;
 
 	if (p->bo_list) {
@@ -426,9 +426,8 @@ static int amdgpu_cs_parser_relocs(struc
 		list_add(>uf_entry.tv.head, >validated);
 
 #ifdef __NetBSD__
-	KASSERTMSG(!need_mmap_lock,
-	"someone didn't finish adding support for userptr"
-	" and it wasn't me");
+	if (need_mmap_lock)
+		vm_map_lock_read(>p_vmspace->vm_map);
 #else
 	if (need_mmap_lock)
 		down_read(>mm->mmap_sem);
@@ -450,7 +449,10 @@ error_validate:
 		ttm_eu_backoff_reservation(>ticket, >validated);
 
 error_reserve:
-#ifndef __NetBSD__
+#ifdef __NetBSD__
+	if (need_mmap_lock)
+		vm_map_unlock_read(>p_vmspace->vm_map);
+#else
 	if (need_mmap_lock)
 		up_read(>mm->mmap_sem);
 #endif

Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gem.c:1.5 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gem.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gem.c:1.5	Fri Feb 14 04:35:19 2020
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gem.c	Fri Feb 14 04:38:23 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_gem.c,v 1.5 2020/02/14 04:35:19 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_gem.c,v 1.6 2020/02/14 04:38:23 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_gem.c,v 1.5 2020/02/14 04:35:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_gem.c,v 1.6 2020/02/14 04:38:23 riastradh Exp $");
 
 #include 
 #include 
@@ -228,15 +228,6 @@ error_unlock:
 int amdgpu_gem_userptr_ioctl(struct drm_device *dev, void *data,
 			 struct drm_file *filp)
 {
-#ifdef __NetBSD__
-	/*
-	 * XXX Too painful to contemplate for now.  If you add this,
-	 * make sure to update amdgpu_cs.c amdgpu_cs_parser_relocs
-	 * (need_mmap_lock), and anything else using
-	 * amdgpu_ttm_tt_has_userptr.
-	 */
-	return -ENODEV;
-#else
 	struct amdgpu_device *adev = dev->dev_private;
 	struct drm_amdgpu_gem_userptr *args = data;
 	struct drm_gem_object *gobj;
@@ -281,17 +272,29 @@ int amdgpu_gem_userptr_ioctl(struct drm_
 	}
 
 	if (args->flags & AMDGPU_GEM_USERPTR_VALIDATE) {
+#ifdef __NetBSD__
+		vm_map_lock_read(>p_vmspace->vm_map);
+#else
 		down_read(>mm->mmap_sem);
+#endif
 		r = amdgpu_bo_reserve(bo, true);
 		if (r) {
+#ifdef __NetBSD__
+			vm_map_unlock_read(>p_vmspace->vm_map);
+#else
 			up_read(>mm->mmap_sem);
+#endif
 			goto release_object;
 		}
 
 		amdgpu_ttm_placement_from_domain(bo, AMDGPU_GEM_DOMAIN_GTT);
 		r = ttm_bo_validate(>tbo, >placement, true, false);
 		amdgpu_bo_unreserve(bo);
+#ifdef __NetBSD__
+		vm_map_unlock_read(>p_vmspace->vm_map);
+#else
 		up_read(>mm->mmap_sem);
+#endif
 		if (r)
 			goto release_object;
 	}
@@ -312,7 +315,6 @@ handle_lockup:
 	r = amdgpu_gem_handle_lockup(adev, r);
 
 	return r;

CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2020-02-13 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Feb 14 04:38:13 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_display.c

Log Message:
Revert unnecessary change.

The only way this logic can reach the reference to stat is if repcnt
goes to zero, which -- since it starts at 4 -- can only happen if we
go through several iterations of the loop, which in turn implies that
stat is initialized.

If GCC still complains about this, it's wrong and should be dealt
with some other way.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_display.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/dist/drm/amd/amdgpu/amdgpu_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_display.c:1.5 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_display.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_display.c:1.5	Sat Feb 23 19:56:51 2019
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_display.c	Fri Feb 14 04:38:13 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_display.c,v 1.5 2019/02/23 19:56:51 kamil Exp $	*/
+/*	$NetBSD: amdgpu_display.c,v 1.6 2020/02/14 04:38:13 riastradh Exp $	*/
 
 /*
  * Copyright 2007-8 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  *  Alex Deucher
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_display.c,v 1.5 2019/02/23 19:56:51 kamil Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_display.c,v 1.6 2020/02/14 04:38:13 riastradh Exp $");
 
 #include 
 #include 
@@ -101,8 +101,7 @@ static void amdgpu_flip_work_func(struct
 	 * In practice this won't execute very often unless on very fast
 	 * machines because the time window for this to happen is very small.
 	 */
-	if (amdgpuCrtc->enabled) {
-	while (--repcnt) {
+	while (amdgpuCrtc->enabled && --repcnt) {
 		/* GET_DISTANCE_TO_VBLANKSTART returns distance to real vblank
 		 * start in hpos, and to the "fudged earlier" vblank start in
 		 * vpos.
@@ -135,7 +134,6 @@ static void amdgpu_flip_work_func(struct
  "hpos %d\n", work->crtc_id, min_udelay,
  vblank->framedur_ns / 1000,
  vblank->linedur_ns / 1000, stat, vpos, hpos);
-	}
 
 	/* do the flip (mmio) */
 	adev->mode_info.funcs->page_flip(adev, work->crtc_id, work->base);



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2020-02-13 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Feb 14 04:36:12 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_debugfs.c i915_dma.c
i915_drv.h i915_irq.c intel_audio.c intel_crt.c intel_ddi.c
intel_display.c intel_dp.c intel_dp_mst.c intel_drv.h intel_dsi.c
intel_dvo.c intel_fbc.c intel_fifo_underrun.c intel_hdmi.c
intel_lvds.c intel_overlay.c intel_panel.c intel_pm.c intel_psr.c
intel_runtime_pm.c intel_sdvo.c intel_sideband.c intel_sprite.c
intel_tv.c

Log Message:
Undo the `enum pipe' -> `enum i915_pipe' rename.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_debugfs.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_dp_mst.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_sideband.c
cvs rdiff -u -r1.29 -r1.30 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c
cvs rdiff -u -r1.30 -r1.31 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h
cvs rdiff -u -r1.17 -r1.18 src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_audio.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_fbc.c
cvs rdiff -u -r1.6 -r1.7 src/sys/external/bsd/drm2/dist/drm/i915/intel_crt.c
cvs rdiff -u -r1.10 -r1.11 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_ddi.c
cvs rdiff -u -r1.20 -r1.21 src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_drv.h
cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/dist/drm/i915/intel_dsi.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_dvo.c
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_fifo_underrun.c
cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/dist/drm/i915/intel_hdmi.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_lvds.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_psr.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_tv.c
cvs rdiff -u -r1.8 -r1.9 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_overlay.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_runtime_pm.c
cvs rdiff -u -r1.12 -r1.13 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c
cvs rdiff -u -r1.21 -r1.22 src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c
cvs rdiff -u -r1.9 -r1.10 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_sprite.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/dist/drm/i915/i915_debugfs.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_debugfs.c:1.3 src/sys/external/bsd/drm2/dist/drm/i915/i915_debugfs.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_debugfs.c:1.3	Mon Aug 27 04:58:23 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_debugfs.c	Fri Feb 14 04:36:11 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_debugfs.c,v 1.3 2018/08/27 04:58:23 riastradh Exp $	*/
+/*	$NetBSD: i915_debugfs.c,v 1.4 2020/02/14 04:36:11 riastradh Exp $	*/
 
 /*
  * Copyright © 2008 Intel Corporation
@@ -29,7 +29,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_debugfs.c,v 1.3 2018/08/27 04:58:23 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_debugfs.c,v 1.4 2020/02/14 04:36:11 riastradh Exp $");
 
 #include 
 #include 
@@ -3286,7 +3286,7 @@ static int i915_drrs_status(struct seq_f
 struct pipe_crc_info {
 	const char *name;
 	struct drm_device *dev;
-	enum i915_pipe pipe;
+	enum pipe pipe;
 };
 
 static int i915_dp_mst_info(struct seq_file *m, void *unused)
@@ -3462,7 +3462,7 @@ static struct pipe_crc_info i915_pipe_cr
 };
 
 static int i915_pipe_crc_create(struct dentry *root, struct drm_minor *minor,
-enum i915_pipe pipe)
+enum pipe pipe)
 {
 	struct drm_device *dev = minor->dev;
 	struct dentry *ent;
@@ -3536,7 +3536,7 @@ static int i8xx_pipe_crc_ctl_reg(enum in
 	return 0;
 }
 
-static int i9xx_pipe_crc_auto_source(struct drm_device *dev, enum i915_pipe pipe,
+static int i9xx_pipe_crc_auto_source(struct drm_device *dev, enum pipe pipe,
  enum intel_pipe_crc_source *source)
 {
 	struct intel_encoder *encoder;
@@ -3589,7 +3589,7 @@ static int i9xx_pipe_crc_auto_source(str
 }
 
 static int vlv_pipe_crc_ctl_reg(struct drm_device *dev,
-enum i915_pipe pipe,
+enum pipe pipe,
 enum intel_pipe_crc_source *source,
 uint32_t *val)
 {
@@ -3660,7 +3660,7 @@ static int vlv_pipe_crc_ctl_reg(struct d
 }
 
 static int i9xx_pipe_crc_ctl_reg(struct drm_device *dev,
- enum i915_pipe pipe,
+ enum pipe pipe,
  enum intel_pipe_crc_source *source,
  uint32_t *val)
 {
@@ -3736,7 +3736,7 @@ static int i9xx_pipe_crc_ctl_reg(struct 
 }
 
 static void vlv_undo_pipe_scramble_reset(struct drm_device *dev,
-	 enum i915_pipe pipe)
+	

CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2020-02-13 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Feb 14 04:29:42 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_ci_dpm.c
radeon_evergreen_cs.c radeon_rv770_dpm.c radeon_si_dpm.c
radeon_sumo_dpm.c radeon_trinity_dpm.c

Log Message:
We use -Wno-shadow for radeon; remove unused diff.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ci_dpm.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_si_dpm.c
cvs rdiff -u -r1.1 -r1.2 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_rv770_dpm.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_sumo_dpm.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_trinity_dpm.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/dist/drm/radeon/radeon_ci_dpm.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ci_dpm.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ci_dpm.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ci_dpm.c:1.2	Fri Feb 14 04:29:19 2020
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ci_dpm.c	Fri Feb 14 04:29:42 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_ci_dpm.c,v 1.2 2020/02/14 04:29:19 riastradh Exp $	*/
+/*	$NetBSD: radeon_ci_dpm.c,v 1.3 2020/02/14 04:29:42 riastradh Exp $	*/
 
 /*
  * Copyright 2013 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_ci_dpm.c,v 1.2 2020/02/14 04:29:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_ci_dpm.c,v 1.3 2020/02/14 04:29:42 riastradh Exp $");
 
 #include 
 #include "drmP.h"
@@ -386,29 +386,29 @@ static int ci_min_max_v_gnbl_pm_lid_from
 	struct ci_power_info *pi = ci_get_pi(rdev);
 	u8 *hi_vid = pi->smc_powertune_table.BapmVddCVidHiSidd;
 	u8 *lo_vid = pi->smc_powertune_table.BapmVddCVidLoSidd;
-	int i, vmin, vmax;
+	int i, min, max;
 
-	vmin = vmax = hi_vid[0];
+	min = max = hi_vid[0];
 	for (i = 0; i < 8; i++) {
 		if (0 != hi_vid[i]) {
-			if (vmin > hi_vid[i])
-vmin = hi_vid[i];
-			if (vmax < hi_vid[i])
-vmax = hi_vid[i];
+			if (min > hi_vid[i])
+min = hi_vid[i];
+			if (max < hi_vid[i])
+max = hi_vid[i];
 		}
 
 		if (0 != lo_vid[i]) {
-			if (vmin > lo_vid[i])
-vmin = lo_vid[i];
-			if (vmax < lo_vid[i])
-vmax = lo_vid[i];
+			if (min > lo_vid[i])
+min = lo_vid[i];
+			if (max < lo_vid[i])
+max = lo_vid[i];
 		}
 	}
 
-	if ((vmin == 0) || (vmax == 0))
+	if ((min == 0) || (max == 0))
 		return -EINVAL;
-	pi->smc_powertune_table.GnbLPMLMaxVid = (u8)vmax;
-	pi->smc_powertune_table.GnbLPMLMinVid = (u8)vmin;
+	pi->smc_powertune_table.GnbLPMLMaxVid = (u8)max;
+	pi->smc_powertune_table.GnbLPMLMinVid = (u8)min;
 
 	return 0;
 }
@@ -2443,15 +2443,15 @@ static u8 ci_get_sleep_divider_id_from_c
 {
 	u32 i;
 	u32 tmp;
-	u32 vmin = (min_sclk_in_sr > CISLAND_MINIMUM_ENGINE_CLOCK) ?
+	u32 min = (min_sclk_in_sr > CISLAND_MINIMUM_ENGINE_CLOCK) ?
 		min_sclk_in_sr : CISLAND_MINIMUM_ENGINE_CLOCK;
 
-	if (sclk < vmin)
+	if (sclk < min)
 		return 0;
 
 	for (i = CISLAND_MAX_DEEPSLEEP_DIVIDER_ID;  ; i--) {
 		tmp = sclk / (1 << i);
-		if (tmp >= vmin || i == 0)
+		if (tmp >= min || i == 0)
 			break;
 	}
 
Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c:1.2	Fri Feb  8 04:11:53 2019
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c	Fri Feb 14 04:29:42 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_evergreen_cs.c,v 1.2 2019/02/08 04:11:53 mrg Exp $	*/
+/*	$NetBSD: radeon_evergreen_cs.c,v 1.3 2020/02/14 04:29:42 riastradh Exp $	*/
 
 /*
  * Copyright 2010 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_evergreen_cs.c,v 1.2 2019/02/08 04:11:53 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_evergreen_cs.c,v 1.3 2020/02/14 04:29:42 riastradh Exp $");
 
 #include 
 #include "radeon.h"
@@ -37,8 +37,8 @@ __KERNEL_RCSID(0, "$NetBSD: radeon_everg
 #include "cayman_reg_safe.h"
 
 #ifndef __NetBSD__
-#define MAX(a,b)			(((a)>(b))?(a):(b))
-#define MIN(a,b)			(((a)<(b))?(a):(b))
+#define MAX(a,b)   (((a)>(b))?(a):(b))
+#define MIN(a,b)   (((a)<(b))?(a):(b))
 #endif
 
 #define REG_SAFE_BM_SIZE ARRAY_SIZE(evergreen_reg_safe_bm)
@@ -455,21 +455,21 @@ static int evergreen_cs_track_validate_c
 		 */
 		if (!surf.mode) {
 			uint32_t *ib = p->ib.ptr;
-			unsigned long tmp, nby, bsize, size, vmin = 0;
+			unsigned long tmp, nby, bsize, size, min = 0;
 
 			/* find the height the ddx wants */
 			if (surf.nby > 8) {
-vmin = surf.nby - 8;
+		

CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci

2020-02-12 Thread Jaromir Dolecek
Module Name:src
Committed By:   jdolecek
Date:   Wed Feb 12 22:34:51 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci:
nouveau_nvkm_subdev_pci_base.c

Log Message:
adjust the PCI interrupt allocation code to work the same as
drm_pci_request_irq(), now the driver successfully allocates MSI interrupt

[   3.6619808] nouveau0: info: NVIDIA GK208B (b06070b1)
[   3.7685336] nouveau0: info: bios: version 80.28.78.00.4b
[   3.7785491] nouveau0: interrupting at msi8 vec 0 (nouveau0)

related to PR kern/52440 by John D. Baker


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.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/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.6 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.6	Fri Feb  7 18:13:33 2020
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c	Wed Feb 12 22:34:51 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.6 2020/02/07 18:13:33 jmcneill Exp $	*/
+/*	$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.7 2020/02/12 22:34:51 jdolecek Exp $	*/
 
 /*
  * Copyright 2015 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.6 2020/02/07 18:13:33 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.7 2020/02/12 22:34:51 jdolecek Exp $");
 
 #include "priv.h"
 #include "agp.h"
@@ -141,22 +141,51 @@ nvkm_pci_init(struct nvkm_subdev *subdev
 
 #ifdef __NetBSD__
 {
+	const char *const name = device_xname(pci_dev_dev(pdev));
 	const struct pci_attach_args *pa = >pd_pa;
-	int counts[PCI_INTR_TYPE_SIZE] =  {
-			[PCI_INTR_TYPE_INTX] = 1,
-			[PCI_INTR_TYPE_MSI] = 0,
-			[PCI_INTR_TYPE_MSIX] = 0,
-	};
+	const char *intrstr;
+	char intrbuf[PCI_INTRSTR_LEN];
 
-	/* XXX errno NetBSD->Linux */
-	ret = -pci_intr_alloc(pa, >pci_ihp, counts, PCI_INTR_TYPE_INTX);
-	if (ret)
-		return ret;
+	/* XXX convert to use drm_pci_request_irq() */
+	if (pdev->msi_enabled) {
+		if (pdev->pd_intr_handles == NULL) {
+			if ((ret = pci_msi_alloc_exact(pa, >pci_ihp,
+			1))) {
+aprint_error_dev(pci_dev_dev(pdev),
+"couldn't allocate MSI (%s)\n", name);
+/* XXX errno NetBSD->Linux */
+return -ret;
+			}
+		} else {
+			pci->pci_ihp = pdev->pd_intr_handles;
+			pdev->pd_intr_handles = NULL;
+		}
+	} else {
+		if ((ret = pci_intx_alloc(pa, >pci_ihp))) {
+			aprint_error_dev(pci_dev_dev(pdev),
+			"couldn't allocate INTx interrupt (%s)\n",
+			name);
+
+			/* XXX errno NetBSD->Linux */
+			return -ret;
+		}
+	}
+
+	intrstr = pci_intr_string(pa->pa_pc, pci->pci_ihp[0],
+	intrbuf, sizeof(intrbuf));
 	pci->pci_intrcookie = pci_intr_establish_xname(pa->pa_pc,
 	pci->pci_ihp[0], IPL_DRM, nvkm_pci_intr, pci,
-	device_xname(pci_dev_dev(pdev)));
-	if (pci->pci_intrcookie == NULL)
+	name);
+	if (pci->pci_intrcookie == NULL) {
+		aprint_error_dev(pci_dev_dev(pdev),
+		"couldn't establish interrupt at %s (%s)\n", intrstr, name);
+		pci_intr_release(pa->pa_pc, pci->pci_ihp, 1);
+		pci->pci_ihp = NULL;
 		return -EIO;	/* XXX er? */
+	}
+
+	aprint_normal_dev(pci_dev_dev(pdev), "interrupting at %s (%s)\n",
+	intrstr, name);
 }
 #else
 	ret = request_irq(pdev->irq, nvkm_pci_intr, IRQF_SHARED, "nvkm", pci);



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau

2020-02-12 Thread Jaromir Dolecek
Module Name:src
Committed By:   jdolecek
Date:   Wed Feb 12 20:31:46 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_fbcon.c

Log Message:
remove superfluous static variable used only to zero attach args


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.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/dist/drm/nouveau/nouveau_fbcon.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c:1.7 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c:1.7	Wed Feb 12 20:25:48 2020
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c	Wed Feb 12 20:31:46 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_fbcon.c,v 1.7 2020/02/12 20:25:48 jdolecek Exp $	*/
+/*	$NetBSD: nouveau_fbcon.c,v 1.8 2020/02/12 20:31:46 jdolecek Exp $	*/
 
 /*
  * Copyright © 2007 David Airlie
@@ -27,7 +27,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_fbcon.c,v 1.7 2020/02/12 20:25:48 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_fbcon.c,v 1.8 2020/02/12 20:31:46 jdolecek Exp $");
 
 #include 
 #include 
@@ -434,10 +434,9 @@ nouveau_fbcon_create(struct drm_fb_helpe
 
 	nouveau_fbcon_zfill(dev, fbcon);
 
-{
-	static const struct nouveaufb_attach_args zero_nfa;
-	struct nouveaufb_attach_args nfa = zero_nfa;
+	struct nouveaufb_attach_args nfa;
 
+	memset(, 0, sizeof(nfa));
 	nfa.nfa_fb_helper = helper;
 	nfa.nfa_fb_sizes = *sizes;
 	nfa.nfa_fb_ptr = nvbo_kmap_obj_iovirtual(nvbo);
@@ -448,7 +447,7 @@ nouveau_fbcon_create(struct drm_fb_helpe
 	if (helper->fbdev == NULL) {
 		goto out_unlock;
 	}
-}
+
 	helper->fb = fb;
 
 	return 0;



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau

2020-02-12 Thread Jaromir Dolecek
Module Name:src
Committed By:   jdolecek
Date:   Wed Feb 12 20:25:48 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_fbcon.c

Log Message:
don't consider it error when nouveaufbbus fails to attach, it currently
can happen only not configured into the kernel


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.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/dist/drm/nouveau/nouveau_fbcon.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c:1.6 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c:1.6	Wed Feb 12 20:08:31 2020
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c	Wed Feb 12 20:25:48 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_fbcon.c,v 1.6 2020/02/12 20:08:31 jdolecek Exp $	*/
+/*	$NetBSD: nouveau_fbcon.c,v 1.7 2020/02/12 20:25:48 jdolecek Exp $	*/
 
 /*
  * Copyright © 2007 David Airlie
@@ -27,7 +27,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_fbcon.c,v 1.6 2020/02/12 20:08:31 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_fbcon.c,v 1.7 2020/02/12 20:25:48 jdolecek Exp $");
 
 #include 
 #include 
@@ -356,6 +356,17 @@ nouveau_fbcon_zfill(struct drm_device *d
 #endif
 }
 
+#ifdef __NetBSD__
+static int
+nouveau_fbcon_print(void *aux, const char *pnp)
+{
+	if (pnp)
+		aprint_normal("nouveaufbbus at %s", pnp);
+
+	return (UNCONF);
+}
+#endif
+
 static int
 nouveau_fbcon_create(struct drm_fb_helper *helper,
 		 struct drm_fb_helper_surface_size *sizes)
@@ -432,9 +443,9 @@ nouveau_fbcon_create(struct drm_fb_helpe
 	nfa.nfa_fb_ptr = nvbo_kmap_obj_iovirtual(nvbo);
 	nfa.nfa_fb_linebytes = mode_cmd.pitches[0];
 
-	helper->fbdev = config_found_ia(dev->dev, "nouveaufbbus", , NULL);
+	helper->fbdev = config_found_ia(dev->dev, "nouveaufbbus", ,
+	nouveau_fbcon_print);
 	if (helper->fbdev == NULL) {
-		DRM_ERROR("failed to attach nouveaufb\n");
 		goto out_unlock;
 	}
 }



CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm

2020-02-12 Thread Jaromir Dolecek
Module Name:src
Committed By:   jdolecek
Date:   Wed Feb 12 20:22:37 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo.c

Log Message:
mark case fallthrough to avoid warning


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.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/dist/drm/ttm/ttm_bo.c
diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.15 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.16
--- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.15	Sat Feb  2 21:46:27 2019
+++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c	Wed Feb 12 20:22:37 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: ttm_bo.c,v 1.15 2019/02/02 21:46:27 mrg Exp $	*/
+/*	$NetBSD: ttm_bo.c,v 1.16 2020/02/12 20:22:37 jdolecek Exp $	*/
 
 /**
  *
@@ -31,7 +31,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: ttm_bo.c,v 1.15 2019/02/02 21:46:27 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ttm_bo.c,v 1.16 2020/02/12 20:22:37 jdolecek Exp $");
 
 #define pr_fmt(fmt) "[TTM] " fmt
 
@@ -273,6 +273,7 @@ static int ttm_bo_add_ttm(struct ttm_buf
 	case ttm_bo_type_device:
 		if (zero_alloc)
 			page_flags |= TTM_PAGE_FLAG_ZERO_ALLOC;
+		/* FALLTHROUGH */
 	case ttm_bo_type_kernel:
 		bo->ttm = bdev->driver->ttm_tt_create(bdev, bo->num_pages << PAGE_SHIFT,
 		  page_flags, glob->dummy_read_page);



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau

2020-02-12 Thread Jaromir Dolecek
Module Name:src
Committed By:   jdolecek
Date:   Wed Feb 12 20:08:32 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_fbcon.c

Log Message:
fix error path when nouveaufb fails to attach (such as when it's not
actually configured into the kernel), the gem was not released
properly leading to:
panic: LOCKDEBUG: Reader / writer lock error: kmem_intr_free,289: allocation 
contains active lock


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.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/dist/drm/nouveau/nouveau_fbcon.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c:1.5 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c:1.5	Mon Aug 27 07:57:34 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c	Wed Feb 12 20:08:31 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_fbcon.c,v 1.5 2018/08/27 07:57:34 riastradh Exp $	*/
+/*	$NetBSD: nouveau_fbcon.c,v 1.6 2020/02/12 20:08:31 jdolecek Exp $	*/
 
 /*
  * Copyright © 2007 David Airlie
@@ -27,7 +27,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_fbcon.c,v 1.5 2018/08/27 07:57:34 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_fbcon.c,v 1.6 2020/02/12 20:08:31 jdolecek Exp $");
 
 #include 
 #include 
@@ -507,7 +507,7 @@ out_unlock:
 out_unpin:
 	nouveau_bo_unpin(nvbo);
 out_unref:
-	nouveau_bo_ref(NULL, );
+	nouveau_gem_object_del(>gem);
 out:
 	return ret;
 }



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2020-02-10 Thread Maya Rashish
Module Name:src
Committed By:   maya
Date:   Mon Feb 10 21:54:26 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: intel_opregion.c

Log Message:
Use a closer equivalent to MEMREMAP_WB: BUS_SPACE_MAP_CACHEABLE

Not a fix for PR port-amd64/54808


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.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/dist/drm/i915/intel_opregion.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c:1.14 src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c:1.15
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c:1.14	Mon Aug 27 13:54:48 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c	Mon Feb 10 21:54:26 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_opregion.c,v 1.14 2018/08/27 13:54:48 riastradh Exp $	*/
+/*	$NetBSD: intel_opregion.c,v 1.15 2020/02/10 21:54:26 maya Exp $	*/
 
 /*
  * Copyright 2008 Intel Corporation 
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_opregion.c,v 1.14 2018/08/27 13:54:48 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_opregion.c,v 1.15 2020/02/10 21:54:26 maya Exp $");
 
 #include 
 #include 
@@ -997,7 +997,7 @@ int intel_opregion_setup(struct drm_devi
 #ifdef __NetBSD__
 	opregion->bst = dev->pdev->pd_pa.pa_memt;
 	err = -bus_space_map(opregion->bst, asls, OPREGION_SIZE,
-	BUS_SPACE_MAP_LINEAR|BUS_SPACE_MAP_PREFETCHABLE, >bsh);
+	BUS_SPACE_MAP_LINEAR|BUS_SPACE_MAP_CACHEABLE, >bsh);
 	if (err) {
 		DRM_DEBUG_DRIVER("Failed to map opregion: %d\n", err);
 		return err;



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci

2020-02-03 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Mon Feb  3 16:22:25 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci:
nouveau_nvkm_subdev_pci_base.c

Log Message:
Use the correct PCI interrupt type based on what the driver has configured


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.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/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.4	Wed Dec 19 09:20:56 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c	Mon Feb  3 16:22:25 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.4 2018/12/19 09:20:56 maya Exp $	*/
+/*	$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.5 2020/02/03 16:22:25 jmcneill Exp $	*/
 
 /*
  * Copyright 2015 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.4 2018/12/19 09:20:56 maya Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.5 2020/02/03 16:22:25 jmcneill Exp $");
 
 #include "priv.h"
 #include "agp.h"
@@ -142,14 +142,18 @@ nvkm_pci_init(struct nvkm_subdev *subdev
 #ifdef __NetBSD__
 {
 	const struct pci_attach_args *pa = >pd_pa;
+	const pci_intr_type_t intr_type = pci->msi ?
+	PCI_INTR_TYPE_MSI : PCI_INTR_TYPE_INTX;
+
 	int counts[PCI_INTR_TYPE_SIZE] =  {
-			[PCI_INTR_TYPE_INTX] = 1,
+			[PCI_INTR_TYPE_INTX] = 0,
 			[PCI_INTR_TYPE_MSI] = 0,
 			[PCI_INTR_TYPE_MSIX] = 0,
 	};
+	counts[intr_type] = 1;
 
 	/* XXX errno NetBSD->Linux */
-	ret = -pci_intr_alloc(pa, >pci_ihp, counts, PCI_INTR_TYPE_INTX);
+	ret = -pci_intr_alloc(pa, >pci_ihp, counts, intr_type);
 	if (ret)
 		return ret;
 	pci->pci_intrcookie = pci_intr_establish_xname(pa->pa_pc,



CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm

2020-01-28 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Tue Jan 28 23:21:05 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo_util.c

Log Message:
ttm_io_prot: follow linux semantics and set either PMAP_WRITE_COMBINE or
PMAP_NOCACHE when existing cache flags are not set


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 \
src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.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/dist/drm/ttm/ttm_bo_util.c
diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.14 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.15
--- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.14	Thu Aug 30 01:19:49 2018
+++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c	Tue Jan 28 23:21:05 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: ttm_bo_util.c,v 1.14 2018/08/30 01:19:49 riastradh Exp $	*/
+/*	$NetBSD: ttm_bo_util.c,v 1.15 2020/01/28 23:21:05 jmcneill Exp $	*/
 
 /**
  *
@@ -31,7 +31,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.14 2018/08/30 01:19:49 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.15 2020/01/28 23:21:05 jmcneill Exp $");
 
 #include 
 #include 
@@ -565,17 +565,11 @@ pgprot_t ttm_io_prot(uint32_t caching_fl
 		return tmp;
 
 #ifdef __NetBSD__
-	switch (caching_flags & TTM_PL_MASK_CACHING) {
-	case TTM_PL_FLAG_CACHED:
-		return (tmp | PMAP_WRITE_BACK);
-	case TTM_PL_FLAG_WC:
+	tmp &= ~PMAP_CACHE_MASK;
+	if (caching_flags & TTM_PL_FLAG_WC)
 		return (tmp | PMAP_WRITE_COMBINE);
-	case TTM_PL_FLAG_UNCACHED:
+	else
 		return (tmp | PMAP_NOCACHE);
-	default:
-		panic("invalid caching flags: %"PRIx32"\n",
-		(caching_flags & TTM_PL_MASK_CACHING));
-	}
 #else
 #if defined(__i386__) || defined(__x86_64__)
 	if (caching_flags & TTM_PL_FLAG_WC)



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2020-01-26 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sun Jan 26 14:36:36 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon.h radeon_device.c

Log Message:
Zero the dummy page


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.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/dist/drm/radeon/radeon.h
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.6 src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.7
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h:1.6	Mon Aug 27 06:38:51 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon.h	Sun Jan 26 14:36:35 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon.h,v 1.6 2018/08/27 06:38:51 riastradh Exp $	*/
+/*	$NetBSD: radeon.h,v 1.7 2020/01/26 14:36:35 jmcneill Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -259,6 +259,7 @@ struct radeon_dummy_page {
 #ifdef __NetBSD__
 	bus_dma_segment_t	rdp_seg;
 	bus_dmamap_t		rdp_map;
+	void		*rdp_addr;
 #else
 	struct page	*page;
 #endif
Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c:1.6 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c:1.6	Mon Aug 27 07:48:40 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_device.c	Sun Jan 26 14:36:35 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_device.c,v 1.6 2018/08/27 07:48:40 riastradh Exp $	*/
+/*	$NetBSD: radeon_device.c,v 1.7 2020/01/26 14:36:35 jmcneill Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_device.c,v 1.6 2018/08/27 07:48:40 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_device.c,v 1.7 2020/01/26 14:36:35 jmcneill Exp $");
 
 #include 
 #include 
@@ -835,10 +835,17 @@ int radeon_dummy_page_init(struct radeon
 	BUS_DMA_WAITOK, >dummy_page.rdp_map);
 	if (error)
 		goto fail1;
-	error = bus_dmamap_load_raw(rdev->ddev->dmat, rdev->dummy_page.rdp_map,
-	>dummy_page.rdp_seg, 1, PAGE_SIZE, BUS_DMA_WAITOK);
+	error = bus_dmamem_map(rdev->ddev->dmat, >dummy_page.rdp_seg, 1,
+	PAGE_SIZE, >dummy_page.rdp_addr,
+	BUS_DMA_WAITOK|BUS_DMA_NOCACHE);
 	if (error)
 		goto fail2;
+	error = bus_dmamap_load(rdev->ddev->dmat, rdev->dummy_page.rdp_map,
+	rdev->dummy_page.rdp_addr, PAGE_SIZE, NULL, BUS_DMA_WAITOK);
+	if (error)
+		goto fail3;
+
+	memset(rdev->dummy_page.rdp_addr, 0, PAGE_SIZE);
 
 	/* Success!  */
 	rdev->dummy_page.addr = rdev->dummy_page.rdp_map->dm_segs[0].ds_addr;
@@ -846,8 +853,10 @@ int radeon_dummy_page_init(struct radeon
 		rdev->dummy_page.addr, RADEON_GART_PAGE_DUMMY);
 	return 0;
 
-fail3: __unused
+fail4: __unused
 	bus_dmamap_unload(rdev->ddev->dmat, rdev->dummy_page.rdp_map);
+fail3:	bus_dmamem_unmap(rdev->ddev->dmat, rdev->dummy_page.rdp_addr,
+	PAGE_SIZE);
 fail2:	bus_dmamap_destroy(rdev->ddev->dmat, rdev->dummy_page.rdp_map);
 fail1:	bus_dmamem_free(rdev->ddev->dmat, >dummy_page.rdp_seg, 1);
 fail0:	KASSERT(error);
@@ -888,6 +897,8 @@ void radeon_dummy_page_fini(struct radeo
 	if (rdev->dummy_page.rdp_map == NULL)
 		return;
 	bus_dmamap_unload(rdev->ddev->dmat, rdev->dummy_page.rdp_map);
+	bus_dmamem_unmap(rdev->ddev->dmat, rdev->dummy_page.rdp_addr,
+	PAGE_SIZE);
 	bus_dmamap_destroy(rdev->ddev->dmat, rdev->dummy_page.rdp_map);
 	bus_dmamem_free(rdev->ddev->dmat, >dummy_page.rdp_seg, 1);
 	rdev->dummy_page.rdp_map = NULL;



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo

2020-01-22 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Wed Jan 22 11:38:54 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo:
nouveau_nvkm_engine_fifo_gk104.c

Log Message:
Write pbdma timeout regs during initialisation on GK208B, GK208, and GM107.

Based on the following upstream commit:
https://github.com/torvalds/linux/commit/79bb4b617f965736d2e1c616235302c1d0e823b2


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.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/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c:1.3	Mon Aug 27 07:40:11 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c	Wed Jan 22 11:38:54 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.3 2018/08/27 07:40:11 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.4 2020/01/22 11:38:54 jmcneill Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.3 2018/08/27 07:40:11 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.4 2020/01/22 11:38:54 jmcneill Exp $");
 
 #include "gk104.h"
 #include "changk104.h"
@@ -752,6 +752,20 @@ gk104_fifo_init(struct nvkm_fifo *base)
 
 	nvkm_wr32(device, 0x002254, 0x1000 | fifo->user.bar.offset >> 12);
 
+	/* XXX NetBSD
+	 * write pbdma timeout regs during initialization
+	 * backport of:
+	 * https://github.com/torvalds/linux/commit/79bb4b617f965736d2e1c616235302c1d0e823b2
+	 */
+	switch (device->chipset) {
+	case 0x106:	/* GK208B */
+	case 0x108:	/* GK208 */
+	case 0x117:	/* GM107 */
+		for (i = 0; i < fifo->spoon_nr; i++)
+			nvkm_wr32(device, 0x04012c + (i * 0x2000), 0x);
+		break;
+	}
+
 	nvkm_wr32(device, 0x002100, 0x);
 	nvkm_wr32(device, 0x002140, 0x7fff);
 }



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2020-01-20 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Mon Jan 20 23:22:09 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_gart.c

Log Message:
add missing memset in radeon_gart_table_ram_alloc


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.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/dist/drm/radeon/radeon_gart.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.10 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.11
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c:1.10	Mon Aug 27 13:56:22 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gart.c	Mon Jan 20 23:22:09 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_gart.c,v 1.10 2018/08/27 13:56:22 riastradh Exp $	*/
+/*	$NetBSD: radeon_gart.c,v 1.11 2020/01/20 23:22:09 jmcneill Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_gart.c,v 1.10 2018/08/27 13:56:22 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_gart.c,v 1.11 2020/01/20 23:22:09 jmcneill Exp $");
 
 #include 
 #include 
@@ -93,6 +93,8 @@ int radeon_gart_table_ram_alloc(struct r
 	if (error)
 		goto fail3;
 
+	memset((void *)rdev->gart.ptr, 0, rdev->gart.table_size);
+
 	/* Success!  */
 	rdev->gart.table_addr = rdev->gart.rg_table_map->dm_segs[0].ds_addr;
 	return 0;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2020-01-19 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sun Jan 19 11:07:00 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_vce.c

Log Message:
Fix loading TAHITI VCE firmware.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vce.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/dist/drm/radeon/radeon_vce.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vce.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vce.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vce.c:1.3	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_vce.c	Sun Jan 19 11:07:00 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_vce.c,v 1.3 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_vce.c,v 1.4 2020/01/19 11:07:00 jmcneill Exp $	*/
 
 /*
  * Copyright 2013 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_vce.c,v 1.3 2018/08/27 04:58:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_vce.c,v 1.4 2020/01/19 11:07:00 jmcneill Exp $");
 
 #include 
 #include 
@@ -53,34 +53,38 @@ static void radeon_vce_idle_work_handler
 
 #ifdef __NetBSD__		/* XXX Ugh!  */
 static bool
-scan_2dec_u8(const char **sp, char delim, uint8_t *u8p)
+scan_2dec_uint(const char **sp, char delim, unsigned int *uintp)
 {
-	char c0, c1;
+	u_int val = 0, n;
+	char c;
 
-	if (!isdigit((unsigned char)(c0 = *(*sp)++)))
-		return false;
-	if (!isdigit((unsigned char)(c1 = *(*sp)++)))
-		return false;
-	if (*(*sp)++ != delim)
+	for (n = 0; n < 2; n++) {
+		c = *(*sp)++;
+		if (!isdigit((unsigned char)c))
+			return false;
+		if (n != 0)
+			val *= 10;
+		val += (c - '0');
+		if (*(*sp) == delim)
+			break;
+	}
+	if (*(*sp) != delim)
 		return false;
 
-	*u8p = ((c0 - '0') * 10) + (c1 - '0');
+	(*sp)++;
+	*uintp = val;
 	return true;
 }
 
 static bool
-scan_2dec_uint(const char **sp, char delim, unsigned int *uintp)
+scan_2dec_u8(const char **sp, char delim, uint8_t *u8p)
 {
-	char c0, c1;
+	unsigned int val;
 
-	if (!isdigit((unsigned char)(c0 = *(*sp)++)))
-		return false;
-	if (!isdigit((unsigned char)(c1 = *(*sp)++)))
-		return false;
-	if (*(*sp)++ != delim)
+	if (!scan_2dec_uint(sp, delim, ))
 		return false;
 
-	*uintp = ((c0 - '0') * 10) + (c1 - '0');
+	*u8p = (uint8_t)val;
 	return true;
 }
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm

2020-01-17 Thread Andrew Doran
Module Name:src
Committed By:   ad
Date:   Fri Jan 17 19:56:50 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_gem.c
src/sys/external/bsd/drm2/dist/drm/i915: i915_gem.c i915_gem_fence.c

Log Message:
Apply patch from kamil@: vmobjlock needs to be held for uvm_pagemarkdirty().


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/external/bsd/drm2/dist/drm/drm_gem.c
cvs rdiff -u -r1.55 -r1.56 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c
cvs rdiff -u -r1.6 -r1.7 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_fence.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/dist/drm/drm_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_gem.c:1.11 src/sys/external/bsd/drm2/dist/drm/drm_gem.c:1.12
--- src/sys/external/bsd/drm2/dist/drm/drm_gem.c:1.11	Wed Jan 15 17:55:43 2020
+++ src/sys/external/bsd/drm2/dist/drm/drm_gem.c	Fri Jan 17 19:56:49 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_gem.c,v 1.11 2020/01/15 17:55:43 ad Exp $	*/
+/*	$NetBSD: drm_gem.c,v 1.12 2020/01/17 19:56:49 ad Exp $	*/
 
 /*
  * Copyright © 2008 Intel Corporation
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_gem.c,v 1.11 2020/01/15 17:55:43 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_gem.c,v 1.12 2020/01/17 19:56:49 ad Exp $");
 
 #include 
 #include 
@@ -613,8 +613,10 @@ drm_gem_put_pages(struct drm_gem_object 
 
 	for (i = 0; i < (obj->size >> PAGE_SHIFT); i++) {
 		if (dirty) {
+			mutex_enter(obj->filp->vmobjlock);
 			uvm_pagemarkdirty([i]->p_vmp,
 			UVM_PAGE_STATUS_DIRTY);
+			mutex_exit(obj->filp->vmobjlock);
 		}
 	}
 

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.55 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.56
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.55	Wed Jan 15 17:55:43 2020
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Fri Jan 17 19:56:50 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gem.c,v 1.55 2020/01/15 17:55:43 ad Exp $	*/
+/*	$NetBSD: i915_gem.c,v 1.56 2020/01/17 19:56:50 ad Exp $	*/
 
 /*
  * Copyright © 2008-2015 Intel Corporation
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_gem.c,v 1.55 2020/01/15 17:55:43 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gem.c,v 1.56 2020/01/17 19:56:50 ad Exp $");
 
 #ifdef __NetBSD__
 #if 0/* XXX uvmhist option?  */
@@ -2643,10 +2643,12 @@ i915_gem_object_put_pages_gtt(struct drm
 		obj->dirty = 0;
 
 	if (obj->dirty) {
+		mutex_enter(obj->base.filp->vmobjlock);
 		TAILQ_FOREACH(page, >pageq, pageq.queue) {
 			uvm_pagemarkdirty(page, UVM_PAGE_STATUS_DIRTY);
 			/* XXX mark page accessed */
 		}
+		mutex_exit(obj->base.filp->vmobjlock);
 	}
 	obj->dirty = 0;
 

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_fence.c:1.6 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_fence.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_fence.c:1.6	Wed Jan 15 17:55:43 2020
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_fence.c	Fri Jan 17 19:56:50 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gem_fence.c,v 1.6 2020/01/15 17:55:43 ad Exp $	*/
+/*	$NetBSD: i915_gem_fence.c,v 1.7 2020/01/17 19:56:50 ad Exp $	*/
 
 /*
  * Copyright © 2008-2015 Intel Corporation
@@ -24,7 +24,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_gem_fence.c,v 1.6 2020/01/15 17:55:43 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gem_fence.c,v 1.7 2020/01/17 19:56:50 ad Exp $");
 
 #include 
 #include 
@@ -769,7 +769,9 @@ i915_gem_object_do_bit_17_swizzle(struct
 		(test_bit(i, obj->bit_17) != 0)) {
 			i915_gem_swizzle_page(container_of(page, struct page,
 p_vmp));
+			mutex_enter(obj->base.filp->vmobjlock);
 			uvm_pagemarkdirty(page, UVM_PAGE_STATUS_DIRTY);
+			mutex_exit(obj->base.filp->vmobjlock);
 		}
 		i += 1;
 	}



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device

2020-01-17 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Fri Jan 17 19:13:25 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device:
nouveau_nvkm_engine_device_pci.c

Log Message:
Enable the device on NetBSD too (don't rely on firmware to do it for us).


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_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/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c:1.8 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c:1.8	Mon Aug 27 14:17:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c	Fri Jan 17 19:13:25 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_engine_device_pci.c,v 1.8 2018/08/27 14:17:36 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_engine_device_pci.c,v 1.9 2020/01/17 19:13:25 jmcneill Exp $	*/
 
 /*
  * Copyright 2015 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_device_pci.c,v 1.8 2018/08/27 14:17:36 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_device_pci.c,v 1.9 2020/01/17 19:13:25 jmcneill Exp $");
 
 #include 
 #include "priv.h"
@@ -1673,15 +1673,11 @@ nvkm_device_pci_new(struct pci_dev *pci_
 	const struct nvkm_device_pci_vendor *pciv;
 	const char *name = NULL;
 	struct nvkm_device_pci *pdev;
-#ifndef __NetBSD__
 	int ret;
-#endif
 
-#ifndef __NetBSD__
-	ret = pci_enable_device(pci_dev);
+	ret = linux_pci_enable_device(pci_dev);
 	if (ret)
 		return ret;
-#endif
 
 	switch (pci_dev->vendor) {
 	case 0x10de: pcid = nvkm_device_pci_10de; break;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2020-01-07 Thread SAITOH Masanobu
Module Name:src
Committed By:   msaitoh
Date:   Tue Jan  7 13:51:38 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_atombios_dp.c

Log Message:
 Don't call memcpy() when the length is 0 (and the source pointer is NULL)
in radeon_dp_aux_transfer_atom() to avoid undefined behavior. Found by kUBSan.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.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/dist/drm/radeon/radeon_atombios_dp.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c:1.1 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c:1.2
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c:1.1	Mon Aug 27 14:38:20 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_atombios_dp.c	Tue Jan  7 13:51:38 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_atombios_dp.c,v 1.1 2018/08/27 14:38:20 riastradh Exp $	*/
+/*	$NetBSD: radeon_atombios_dp.c,v 1.2 2020/01/07 13:51:38 msaitoh Exp $	*/
 
 /*
  * Copyright 2007-8 Advanced Micro Devices, Inc.
@@ -27,7 +27,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_atombios_dp.c,v 1.1 2018/08/27 14:38:20 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_atombios_dp.c,v 1.2 2020/01/07 13:51:38 msaitoh Exp $");
 
 #include 
 #include 
@@ -196,9 +196,10 @@ radeon_dp_aux_transfer_atom(struct drm_d
 		tx_size = HEADER_SIZE + msg->size;
 		if (msg->size == 0)
 			tx_buf[3] |= BARE_ADDRESS_SIZE << 4;
-		else
+		else {
 			tx_buf[3] |= tx_size << 4;
-		memcpy(tx_buf + HEADER_SIZE, msg->buffer, msg->size);
+			memcpy(tx_buf + HEADER_SIZE, msg->buffer, msg->size);
+		}
 		ret = radeon_process_aux_ch(chan,
 	tx_buf, tx_size, NULL, 0, delay, );
 		if (ret >= 0)



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2019-12-18 Thread SAITOH Masanobu
Module Name:src
Committed By:   msaitoh
Date:   Wed Dec 18 13:25:58 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: sumod.h

Log Message:
 Use unsigned to avoid undefined behavior. Found by kUBSan.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/radeon/sumod.h

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/dist/drm/radeon/sumod.h
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/sumod.h:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/sumod.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/sumod.h:1.2	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/sumod.h	Wed Dec 18 13:25:58 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: sumod.h,v 1.2 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: sumod.h,v 1.3 2019/12/18 13:25:58 msaitoh Exp $	*/
 
 /*
  * Copyright 2012 Advanced Micro Devices, Inc.
@@ -197,7 +197,7 @@
 #   define SCLK_FSTATE_3_DIV(x) ((x) << 24)
 #   define SCLK_FSTATE_3_DIV_MASK   (0x7f << 24)
 #   define SCLK_FSTATE_3_DIV_SHIFT  24
-#   define SCLK_FSTATE_3_VLD(1 << 31)
+#   define SCLK_FSTATE_3_VLD(1U << 31)
 #define CG_SCLK_DPM_CTRL_2  0x688
 #define CG_GCOOR0x68c
 #   define PHC(x)   ((x) << 0)
@@ -243,7 +243,7 @@
 #   define DPM_SCLK_ENABLE  (1 << 18)
 #   define GNB_SLOW_FSTATE_0_MASK   (1 << 23)
 #   define GNB_SLOW_FSTATE_0_SHIFT  23
-#   define FORCE_NB_PSTATE_1(1 << 31)
+#   define FORCE_NB_PSTATE_1(1U << 31)
 
 #define CG_SSP  0x6e8
 #   define SST(x)   ((x) << 0)
@@ -263,7 +263,7 @@
 #   define DC_HDC_MASK  (0x3fff << 14)
 #   define DC_HDC_SHIFT 14
 #   define DC_HU(x) ((x) << 28)
-#   define DC_HU_MASK   (0xf << 28)
+#   define DC_HU_MASK   (0xfU << 28)
 #   define DC_HU_SHIFT  28
 #define CG_SCLK_DPM_CTRL_5  0x720
 #   define SCLK_FSTATE_BOOTUP(x)((x) << 0)
@@ -281,7 +281,7 @@
 #   define CG_R_MASK(0x << 0)
 #   define CG_R_SHIFT   0
 #   define CG_L(x)  ((x) << 16)
-#   define CG_L_MASK(0x << 16)
+#   define CG_L_MASK(0xU << 16)
 #   define CG_L_SHIFT   16
 #define CG_AT_1 0x72c
 #define CG_AT_2 0x730
@@ -351,7 +351,7 @@
 #   define HS(x)((x) << 4)
 #   define HS_MASK  (0xfff << 4)
 #   define HS_SHIFT 4
-#   define ENABLE_DS(1 << 31)
+#   define ENABLE_DS(1U << 31)
 #define DEEP_SLEEP_CNTL20x81c
 #   define LB_UFP_EN(1 << 0)
 #   define INOUT_C(x)   ((x) << 4)
@@ -363,7 +363,7 @@
 #define CG_SCLK_DPM_CTRL_11 0x830
 
 #define HW_REV   	0x5564
-#   define ATI_REV_ID_MASK  (0xf << 28)
+#   define ATI_REV_ID_MASK  (0xfU << 28)
 #   define ATI_REV_ID_SHIFT 28
 /* 0 = A0, 1 = A1, 2 = B0, 3 = C0, etc. */
 



CVS commit: src/sys/external/bsd/drm2/dist/drm

2019-12-09 Thread Jonathan A. Kollasch
Module Name:src
Committed By:   jakllsch
Date:   Mon Dec  9 15:36:16 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_panel.c

Log Message:
workaround netbsd incompatible LIST_HEAD

adapted from drm_bridge.c r1.3


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/drm_panel.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/dist/drm/drm_panel.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_panel.c:1.2 src/sys/external/bsd/drm2/dist/drm/drm_panel.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/drm_panel.c:1.2	Mon Aug 27 04:58:19 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_panel.c	Mon Dec  9 15:36:16 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_panel.c,v 1.2 2018/08/27 04:58:19 riastradh Exp $	*/
+/*	$NetBSD: drm_panel.c,v 1.3 2019/12/09 15:36:16 jakllsch Exp $	*/
 
 /*
  * Copyright (C) 2013, NVIDIA Corporation.  All rights reserved.
@@ -24,7 +24,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_panel.c,v 1.2 2018/08/27 04:58:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_panel.c,v 1.3 2019/12/09 15:36:16 jakllsch Exp $");
 
 #include 
 #include 
@@ -32,8 +32,13 @@ __KERNEL_RCSID(0, "$NetBSD: drm_panel.c,
 #include 
 #include 
 
+#ifdef __NetBSD__
+static struct mutex panel_lock;
+static struct list_head panel_list = LIST_HEAD_INIT(panel_list);
+#else
 static DEFINE_MUTEX(panel_lock);
 static LIST_HEAD(panel_list);
+#endif
 
 void drm_panel_init(struct drm_panel *panel)
 {



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif

2019-12-07 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sat Dec  7 13:31:41 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif: os.h

Log Message:
Fix build for ports without __BUS_SPACE_HAS_STREAM_METHODS defined


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/os.h

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/dist/drm/nouveau/include/nvif/os.h
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/os.h:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/os.h:1.5
--- src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/os.h:1.4	Mon Aug 27 07:35:13 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/os.h	Sat Dec  7 13:31:41 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: os.h,v 1.4 2018/08/27 07:35:13 riastradh Exp $	*/
+/*	$NetBSD: os.h,v 1.5 2019/12/07 13:31:41 jmcneill Exp $	*/
 
 #ifndef __NOUVEAU_OS_H__
 #define __NOUVEAU_OS_H__
@@ -74,4 +74,14 @@
 #endif /* !ioread32_native */
 #endif
 
+#ifdef __NetBSD__
+#include 
+#ifndef __BUS_SPACE_HAS_STREAM_METHODS
+#define	bus_space_read_stream_2	bus_space_read_2
+#define	bus_space_read_stream_4	bus_space_read_4
+#define	bus_space_write_stream_2 bus_space_write_2
+#define	bus_space_write_stream_4 bus_space_write_4
+#endif
+#endif
+
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2019-12-05 Thread Maya Rashish
Module Name:src
Committed By:   maya
Date:   Thu Dec  5 20:25:54 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_cmd_parser.c

Log Message:
Use the original linux function rather than my wrong translation.

...Include the header to have it.

Thanks Riastradh!


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.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/dist/drm/i915/i915_cmd_parser.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c:1.19 src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c:1.20
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c:1.19	Thu Dec  5 20:03:09 2019
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c	Thu Dec  5 20:25:54 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_cmd_parser.c,v 1.19 2019/12/05 20:03:09 maya Exp $	*/
+/*	$NetBSD: i915_cmd_parser.c,v 1.20 2019/12/05 20:25:54 maya Exp $	*/
 
 /*
  * Copyright © 2013 Intel Corporation
@@ -28,10 +28,11 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_cmd_parser.c,v 1.19 2019/12/05 20:03:09 maya Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_cmd_parser.c,v 1.20 2019/12/05 20:25:54 maya Exp $");
 
 #include "i915_drv.h"
 #include 
+#include 
 
 /**
  * DOC: batch buffer command parser
@@ -1259,7 +1260,7 @@ static void init_whitelist(struct intel_
 {
 	const u32 batch_cmds = DIV_ROUND_UP(batch_len, sizeof(u32));
 	const u32 exact_size = BITS_TO_LONGS(batch_cmds);
-	u32 next_size = BITS_TO_LONGS(powerof2(batch_cmds));
+	u32 next_size = BITS_TO_LONGS(roundup_pow_of_two(batch_cmds));
 	unsigned long *next_whitelist;
 
 	if (CMDPARSER_USES_GGTT(ctx->i915))



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu

2019-03-17 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Mon Mar 18 02:01:41 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu:
nouveau_nvkm_subdev_mmu_base.c

Log Message:
call destroy on a mutex before freeing it.
fixes LOCKDEBUG assert on a GT 6xx card.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.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/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c:1.4	Sat Sep  1 04:38:22 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c	Mon Mar 18 02:01:41 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.4 2018/09/01 04:38:22 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.5 2019/03/18 02:01:41 mrg Exp $	*/
 
 /*
  * Copyright 2010 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.4 2018/09/01 04:38:22 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.5 2019/03/18 02:01:41 mrg Exp $");
 
 #include "priv.h"
 
@@ -528,6 +528,11 @@ nvkm_vm_del(struct kref *kref)
 
 	nvkm_mm_fini(>mm);
 	vfree(vm->pgt);
+#ifdef __NetBSD__
+	linux_mutex_destroy(>mutex);
+#else
+	mutex_destroy(>mutex);
+#endif
 	kfree(vm);
 }
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2019-02-23 Thread Kamil Rytarowski
Module Name:src
Committed By:   kamil
Date:   Sat Feb 23 19:56:51 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_display.c

Log Message:
Rearrange code in amdgpu_display.c to prevent build error

GCC reports that stat can be uninitialized when used, prevent this with
changing the construction of the code a little bit.

Keep original indent in order to not generate diff with upstream.

Solution suggested by 

Detected with GCC7 when building NetBSD/i386 with kUBSan.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_display.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/dist/drm/amd/amdgpu/amdgpu_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_display.c:1.4 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_display.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_display.c:1.4	Mon Aug 27 15:22:54 2018
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_display.c	Sat Feb 23 19:56:51 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_display.c,v 1.4 2018/08/27 15:22:54 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_display.c,v 1.5 2019/02/23 19:56:51 kamil Exp $	*/
 
 /*
  * Copyright 2007-8 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  *  Alex Deucher
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_display.c,v 1.4 2018/08/27 15:22:54 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_display.c,v 1.5 2019/02/23 19:56:51 kamil Exp $");
 
 #include 
 #include 
@@ -101,7 +101,8 @@ static void amdgpu_flip_work_func(struct
 	 * In practice this won't execute very often unless on very fast
 	 * machines because the time window for this to happen is very small.
 	 */
-	while (amdgpuCrtc->enabled && --repcnt) {
+	if (amdgpuCrtc->enabled) {
+	while (--repcnt) {
 		/* GET_DISTANCE_TO_VBLANKSTART returns distance to real vblank
 		 * start in hpos, and to the "fudged earlier" vblank start in
 		 * vpos.
@@ -134,6 +135,7 @@ static void amdgpu_flip_work_func(struct
  "hpos %d\n", work->crtc_id, min_udelay,
  vblank->framedur_ns / 1000,
  vblank->linedur_ns / 1000, stat, vpos, hpos);
+	}
 
 	/* do the flip (mmio) */
 	adev->mode_info.funcs->page_flip(adev, work->crtc_id, work->base);



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2019-02-23 Thread Kamil Rytarowski
Module Name:src
Committed By:   kamil
Date:   Sat Feb 23 19:37:36 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_gfx_v8_0.c

Log Message:
Add missing break in amdgpu_gfx_v8_0.c

Reviewed by 

Detected with GCC7 with kUBSan build for NetBSD/i386


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gfx_v8_0.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/dist/drm/amd/amdgpu/amdgpu_gfx_v8_0.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gfx_v8_0.c:1.1 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gfx_v8_0.c:1.2
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gfx_v8_0.c:1.1	Mon Aug 27 14:10:14 2018
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gfx_v8_0.c	Sat Feb 23 19:37:36 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_gfx_v8_0.c,v 1.1 2018/08/27 14:10:14 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_gfx_v8_0.c,v 1.2 2019/02/23 19:37:36 kamil Exp $	*/
 
 /*
  * Copyright 2014 Advanced Micro Devices, Inc.
@@ -23,7 +23,7 @@
  *
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_gfx_v8_0.c,v 1.1 2018/08/27 14:10:14 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_gfx_v8_0.c,v 1.2 2019/02/23 19:37:36 kamil Exp $");
 
 #include 
 #include 
@@ -1640,6 +1640,7 @@ static void gfx_v8_0_tiling_mode_table_i
 			adev->gfx.config.macrotile_mode_array[reg_offset] = gb_tile_moden;
 			WREG32(mmGB_MACROTILE_MODE0 + reg_offset, gb_tile_moden);
 		}
+		break;
 	case CHIP_FIJI:
 		for (reg_offset = 0; reg_offset < num_tile_mode_states; reg_offset++) {
 			switch (reg_offset) {



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2019-02-23 Thread Kamil Rytarowski
Module Name:src
Committed By:   kamil
Date:   Sat Feb 23 19:36:15 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_cz_smc.c

Log Message:
Add missing break in amdgpu_cz_smc.c

Reviewed by 

Detected with GCC7 with kUBSan build for NetBSD/i386


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cz_smc.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/dist/drm/amd/amdgpu/amdgpu_cz_smc.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cz_smc.c:1.1 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cz_smc.c:1.2
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cz_smc.c:1.1	Mon Aug 27 14:10:14 2018
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cz_smc.c	Sat Feb 23 19:36:15 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_cz_smc.c,v 1.1 2018/08/27 14:10:14 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_cz_smc.c,v 1.2 2019/02/23 19:36:15 kamil Exp $	*/
 
 /*
  * Copyright 2014 Advanced Micro Devices, Inc.
@@ -23,7 +23,7 @@
  *
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_cz_smc.c,v 1.1 2018/08/27 14:10:14 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_cz_smc.c,v 1.2 2019/02/23 19:36:15 kamil Exp $");
 
 #include 
 #include 
@@ -251,6 +251,7 @@ static int cz_smu_check_finished(struct 
 	case AMDGPU_UCODE_ID_CP_PFP:
 		if (adev->smu.fw_flags & AMDGPU_CPPFP_UCODE_LOADED)
 			return 0;
+		break;
 	case AMDGPU_UCODE_ID_CP_ME:
 		if (adev->smu.fw_flags & AMDGPU_CPME_UCODE_LOADED)
 			return 0;



CVS commit: src/sys/external/bsd/drm2/dist/drm

2019-02-18 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Tue Feb 19 00:30:16 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: intel_ddi.c intel_display.c
intel_sdvo.c
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_bo.c

Log Message:
revert the upsteam portion of previous; we don't want to patch upstream
fallthrough/breaks.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/sys/external/bsd/drm2/dist/drm/i915/intel_ddi.c
cvs rdiff -u -r1.25 -r1.26 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c
cvs rdiff -u -r1.14 -r1.15 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.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/dist/drm/i915/intel_ddi.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_ddi.c:1.9 src/sys/external/bsd/drm2/dist/drm/i915/intel_ddi.c:1.10
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_ddi.c:1.9	Mon Feb 18 18:23:41 2019
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_ddi.c	Mon Feb 18 19:30:16 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_ddi.c,v 1.9 2019/02/18 23:23:41 christos Exp $	*/
+/*	$NetBSD: intel_ddi.c,v 1.10 2019/02/19 00:30:16 christos Exp $	*/
 
 /*
  * Copyright © 2012 Intel Corporation
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_ddi.c,v 1.9 2019/02/18 23:23:41 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_ddi.c,v 1.10 2019/02/19 00:30:16 christos Exp $");
 
 #include 
 
@@ -2228,7 +2228,6 @@ static uint32_t translate_signal_level(i
 	default:
 		DRM_DEBUG_KMS("Unsupported voltage swing/pre-emphasis level: 0x%x\n",
 			  signal_levels);
-		/*FALLTHROUGH*/
 	case DP_TRAIN_VOLTAGE_SWING_LEVEL_0 | DP_TRAIN_PRE_EMPH_LEVEL_0:
 		level = 0;
 		break;

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.25 src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.26
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.25	Mon Feb 18 18:23:41 2019
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c	Mon Feb 18 19:30:16 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_display.c,v 1.25 2019/02/18 23:23:41 christos Exp $	*/
+/*	$NetBSD: intel_display.c,v 1.26 2019/02/19 00:30:16 christos Exp $	*/
 
 /*
  * Copyright © 2006-2007 Intel Corporation
@@ -27,7 +27,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_display.c,v 1.25 2019/02/18 23:23:41 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_display.c,v 1.26 2019/02/19 00:30:16 christos Exp $");
 
 #include 
 #include 
@@ -5318,7 +5318,6 @@ intel_display_port_power_domain(struct i
 	case INTEL_OUTPUT_UNKNOWN:
 		/* Only DDI platforms should ever use this output type */
 		WARN_ON_ONCE(!HAS_DDI(dev));
-		/*FALLTHROUGH*/
 	case INTEL_OUTPUT_DISPLAYPORT:
 	case INTEL_OUTPUT_HDMI:
 	case INTEL_OUTPUT_EDP:
@@ -5353,7 +5352,6 @@ intel_display_port_aux_power_domain(stru
 		 * run the DP detection too.
 		 */
 		WARN_ON_ONCE(!HAS_DDI(dev));
-		/*FALLTHROUGH*/
 	case INTEL_OUTPUT_DISPLAYPORT:
 	case INTEL_OUTPUT_EDP:
 		intel_dig_port = enc_to_dig_port(_encoder->base);
@@ -6924,7 +6922,6 @@ static int pnv_get_display_clock_speed(s
 		return 20;
 	default:
 		DRM_ERROR("Unknown pnv display core clock 0x%04x\n", gcfgc);
-		/*FALLTHROUGH*/
 	case GC_DISPLAY_CLOCK_133_MHZ_PNV:
 		return 13;
 	case GC_DISPLAY_CLOCK_167_MHZ_PNV:
@@ -9960,7 +9957,6 @@ static bool haswell_get_pipe_config(stru
 		switch (tmp & TRANS_DDI_EDP_INPUT_MASK) {
 		default:
 			WARN(1, "unknown pipe linked to edp transcoder\n");
-			/*FALLTHROUGH*/
 		case TRANS_DDI_EDP_INPUT_A_ONOFF:
 		case TRANS_DDI_EDP_INPUT_A_ON:
 			trans_edp_pipe = PIPE_A;
@@ -12252,7 +12248,6 @@ static bool check_digital_port_conflicts
 		case INTEL_OUTPUT_UNKNOWN:
 			if (WARN_ON(!HAS_DDI(dev)))
 break;
-			/*FALLTHROUGH*/
 		case INTEL_OUTPUT_DISPLAYPORT:
 		case INTEL_OUTPUT_HDMI:
 		case INTEL_OUTPUT_EDP:

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c:1.11 src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c:1.12
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c:1.11	Mon Feb 18 18:23:41 2019
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c	Mon Feb 18 19:30:16 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_sdvo.c,v 1.11 2019/02/18 23:23:41 christos Exp $	*/
+/*	$NetBSD: intel_sdvo.c,v 1.12 2019/02/19 00:30:16 christos Exp $	*/
 
 /*
  * Copyright 2006 Dave Airlie 
@@ -28,7 +28,7 @@
  *	Eric Anholt 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_sdvo.c,v 1.11 2019/02/18 23:23:41 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_sdvo.c,v 1.12 2019/02/19 00:30:16 christos Exp $");
 
 #include 
 #include 
@@ -1278,7 +1278,6 @@ static void intel_sdvo_pre_enable(struct
 	switch 

CVS commit: src/sys/external/bsd/drm2/dist/drm

2019-02-18 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Feb 18 23:23:41 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: intel_ddi.c intel_display.c
intel_sdvo.c
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_bo.c nouveau_usif.c

Log Message:
add failthrough and break as appropriate.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/sys/external/bsd/drm2/dist/drm/i915/intel_ddi.c
cvs rdiff -u -r1.24 -r1.25 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c
cvs rdiff -u -r1.10 -r1.11 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c
cvs rdiff -u -r1.13 -r1.14 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c
cvs rdiff -u -r1.6 -r1.7 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_usif.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/dist/drm/i915/intel_ddi.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_ddi.c:1.8 src/sys/external/bsd/drm2/dist/drm/i915/intel_ddi.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_ddi.c:1.8	Thu Sep 13 04:25:55 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_ddi.c	Mon Feb 18 18:23:41 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_ddi.c,v 1.8 2018/09/13 08:25:55 mrg Exp $	*/
+/*	$NetBSD: intel_ddi.c,v 1.9 2019/02/18 23:23:41 christos Exp $	*/
 
 /*
  * Copyright © 2012 Intel Corporation
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_ddi.c,v 1.8 2018/09/13 08:25:55 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_ddi.c,v 1.9 2019/02/18 23:23:41 christos Exp $");
 
 #include 
 
@@ -2228,6 +2228,7 @@ static uint32_t translate_signal_level(i
 	default:
 		DRM_DEBUG_KMS("Unsupported voltage swing/pre-emphasis level: 0x%x\n",
 			  signal_levels);
+		/*FALLTHROUGH*/
 	case DP_TRAIN_VOLTAGE_SWING_LEVEL_0 | DP_TRAIN_PRE_EMPH_LEVEL_0:
 		level = 0;
 		break;

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.24 src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.25
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.24	Sun Sep 23 20:42:34 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c	Mon Feb 18 18:23:41 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_display.c,v 1.24 2018/09/24 00:42:34 christos Exp $	*/
+/*	$NetBSD: intel_display.c,v 1.25 2019/02/18 23:23:41 christos Exp $	*/
 
 /*
  * Copyright © 2006-2007 Intel Corporation
@@ -27,7 +27,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_display.c,v 1.24 2018/09/24 00:42:34 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_display.c,v 1.25 2019/02/18 23:23:41 christos Exp $");
 
 #include 
 #include 
@@ -5318,6 +5318,7 @@ intel_display_port_power_domain(struct i
 	case INTEL_OUTPUT_UNKNOWN:
 		/* Only DDI platforms should ever use this output type */
 		WARN_ON_ONCE(!HAS_DDI(dev));
+		/*FALLTHROUGH*/
 	case INTEL_OUTPUT_DISPLAYPORT:
 	case INTEL_OUTPUT_HDMI:
 	case INTEL_OUTPUT_EDP:
@@ -5352,6 +5353,7 @@ intel_display_port_aux_power_domain(stru
 		 * run the DP detection too.
 		 */
 		WARN_ON_ONCE(!HAS_DDI(dev));
+		/*FALLTHROUGH*/
 	case INTEL_OUTPUT_DISPLAYPORT:
 	case INTEL_OUTPUT_EDP:
 		intel_dig_port = enc_to_dig_port(_encoder->base);
@@ -6922,6 +6924,7 @@ static int pnv_get_display_clock_speed(s
 		return 20;
 	default:
 		DRM_ERROR("Unknown pnv display core clock 0x%04x\n", gcfgc);
+		/*FALLTHROUGH*/
 	case GC_DISPLAY_CLOCK_133_MHZ_PNV:
 		return 13;
 	case GC_DISPLAY_CLOCK_167_MHZ_PNV:
@@ -9957,6 +9960,7 @@ static bool haswell_get_pipe_config(stru
 		switch (tmp & TRANS_DDI_EDP_INPUT_MASK) {
 		default:
 			WARN(1, "unknown pipe linked to edp transcoder\n");
+			/*FALLTHROUGH*/
 		case TRANS_DDI_EDP_INPUT_A_ONOFF:
 		case TRANS_DDI_EDP_INPUT_A_ON:
 			trans_edp_pipe = PIPE_A;
@@ -12248,6 +12252,7 @@ static bool check_digital_port_conflicts
 		case INTEL_OUTPUT_UNKNOWN:
 			if (WARN_ON(!HAS_DDI(dev)))
 break;
+			/*FALLTHROUGH*/
 		case INTEL_OUTPUT_DISPLAYPORT:
 		case INTEL_OUTPUT_HDMI:
 		case INTEL_OUTPUT_EDP:

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c:1.10 src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c:1.11
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c:1.10	Mon Aug 27 02:16:50 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c	Mon Feb 18 18:23:41 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_sdvo.c,v 1.10 2018/08/27 06:16:50 riastradh Exp $	*/
+/*	$NetBSD: intel_sdvo.c,v 1.11 2019/02/18 23:23:41 christos Exp $	*/
 
 /*
  * Copyright 2006 Dave Airlie 
@@ -28,7 +28,7 @@
  *	Eric Anholt 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_sdvo.c,v 1.10 2018/08/27 06:16:50 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_sdvo.c,v 1.11 2019/02/18 23:23:41 christos Exp $");
 
 #include 
 #include 
@@ -1278,6 +1278,7 @@ static void 

CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk

2019-02-18 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Feb 18 23:19:36 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk:
nouveau_nvkm_subdev_clk_gt215.c

Log Message:
remove multiplication as condition complaint


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_gt215.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/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_gt215.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_gt215.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_gt215.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_gt215.c:1.3	Mon Aug 27 03:38:56 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_gt215.c	Mon Feb 18 18:19:36 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_subdev_clk_gt215.c,v 1.3 2018/08/27 07:38:56 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_subdev_clk_gt215.c,v 1.4 2019/02/18 23:19:36 christos Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -25,7 +25,7 @@
  *  Roy Spliet
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_clk_gt215.c,v 1.3 2018/08/27 07:38:56 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_clk_gt215.c,v 1.4 2019/02/18 23:19:36 christos Exp $");
 
 #define gt215_clk(p) container_of((p), struct gt215_clk, base)
 #include "gt215.h"
@@ -135,8 +135,9 @@ read_pll(struct gt215_clk *clk, int idx,
 		sclk = read_clk(clk, 0x10 + idx, false);
 	}
 
-	if (M * P)
-		return sclk * N / (M * P);
+	u32 mp = M * P;
+	if (mp != 0)
+		return sclk * N / mp;
 
 	return 0;
 }



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2019-02-07 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Fri Feb  8 04:11:53 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_evergreen_cs.c
radeon_r300.c radeon_r420.c

Log Message:
add missing break for CP_COHER_BASE case.
convert fallthru comments.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r300.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r420.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/dist/drm/radeon/radeon_evergreen_cs.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c:1.1 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c:1.2
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c:1.1	Mon Aug 27 14:38:20 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_evergreen_cs.c	Fri Feb  8 04:11:53 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_evergreen_cs.c,v 1.1 2018/08/27 14:38:20 riastradh Exp $	*/
+/*	$NetBSD: radeon_evergreen_cs.c,v 1.2 2019/02/08 04:11:53 mrg Exp $	*/
 
 /*
  * Copyright 2010 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_evergreen_cs.c,v 1.1 2018/08/27 14:38:20 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_evergreen_cs.c,v 1.2 2019/02/08 04:11:53 mrg Exp $");
 
 #include 
 #include "radeon.h"
@@ -1335,6 +1335,7 @@ static int evergreen_cs_handle_reg(struc
 			return -EINVAL;
 		}
 		ib[idx] += (u32)((reloc->gpu_offset >> 8) & 0x);
+		break;
 	case CB_TARGET_MASK:
 		track->cb_target_mask = radeon_get_ib_value(p, idx);
 		track->cb_dirty = true;
Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r300.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r300.c:1.1 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r300.c:1.2
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r300.c:1.1	Mon Aug 27 14:38:20 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r300.c	Fri Feb  8 04:11:53 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_r300.c,v 1.1 2018/08/27 14:38:20 riastradh Exp $	*/
+/*	$NetBSD: radeon_r300.c,v 1.2 2019/02/08 04:11:53 mrg Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_r300.c,v 1.1 2018/08/27 14:38:20 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_r300.c,v 1.2 2019/02/08 04:11:53 mrg Exp $");
 
 #include 
 #include 
@@ -846,7 +846,7 @@ static int r300_packet0_check(struct rad
 	  ((idx_value >> 21) & 0xF));
 return -EINVAL;
 			}
-			/* Pass through. */
+			/* FALLTHROUGH */
 		case 6:
 			track->cb[i].cpp = 4;
 			break;
@@ -997,7 +997,7 @@ static int r300_packet0_check(struct rad
 return -EINVAL;
 			}
 			/* The same rules apply as for DXT3/5. */
-			/* Pass through. */
+			/* FALLTHROUGH */
 		case R300_TX_FORMAT_DXT3:
 		case R300_TX_FORMAT_DXT5:
 			track->textures[i].cpp = 1;
Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r420.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r420.c:1.1 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r420.c:1.2
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r420.c:1.1	Mon Aug 27 14:38:20 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_r420.c	Fri Feb  8 04:11:53 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_r420.c,v 1.1 2018/08/27 14:38:20 riastradh Exp $	*/
+/*	$NetBSD: radeon_r420.c,v 1.2 2019/02/08 04:11:53 mrg Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_r420.c,v 1.1 2018/08/27 14:38:20 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_r420.c,v 1.2 2019/02/08 04:11:53 mrg Exp $");
 
 #include 
 #include 
@@ -115,6 +115,7 @@ void r420_pipes_init(struct radeon_devic
 	default:
 		/* force to 1 pipe */
 		num_pipes = 1;
+		/* FALLTHROUGH */
 	case 1:
 		tmp = (0 << 1);
 		break;



CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm

2019-02-02 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Sat Feb  2 21:46:27 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo.c

Log Message:
combine a pair of #ifdef's and make upstream diff slightly less ugly.  NFCI.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.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/dist/drm/ttm/ttm_bo.c
diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.14 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.15
--- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.14	Mon Aug 27 15:32:39 2018
+++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c	Sat Feb  2 21:46:27 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: ttm_bo.c,v 1.14 2018/08/27 15:32:39 riastradh Exp $	*/
+/*	$NetBSD: ttm_bo.c,v 1.15 2019/02/02 21:46:27 mrg Exp $	*/
 
 /**
  *
@@ -31,7 +31,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: ttm_bo.c,v 1.14 2018/08/27 15:32:39 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ttm_bo.c,v 1.15 2019/02/02 21:46:27 mrg Exp $");
 
 #define pr_fmt(fmt) "[TTM] " fmt
 
@@ -1624,10 +1624,6 @@ bool ttm_mem_reg_is_pci(struct ttm_bo_de
 
 void ttm_bo_unmap_virtual_locked(struct ttm_buffer_object *bo)
 {
-#ifndef __NetBSD__
-	struct ttm_bo_device *bdev = bo->bdev;
-#endif
-
 #ifdef __NetBSD__
 	if (bo->mem.bus.is_iomem) {
 		paddr_t start, end, pa;
@@ -1654,6 +1650,8 @@ void ttm_bo_unmap_virtual_locked(struct 
 		mutex_exit(bo->uvmobj.vmobjlock);
 	}
 #else
+	struct ttm_bo_device *bdev = bo->bdev;
+
 	drm_vma_node_unmap(>vma_node, bdev->dev_mapping);
 #endif
 	ttm_mem_io_free_vm(bo);



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2019-01-29 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Wed Jan 30 01:11:08 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_display.c

Log Message:
revert rev 1.3 + 1.4 (2015):  blank console / CLUT attempts.
we disabled the driver for almost all r100/r200 chipsets so
this code has been obsolete for ages and doesn't need to
remain a diff against upstream.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.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/dist/drm/radeon/radeon_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.9 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.10
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.9	Mon Aug 27 15:22:54 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c	Wed Jan 30 01:11:08 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_display.c,v 1.9 2018/08/27 15:22:54 riastradh Exp $	*/
+/*	$NetBSD: radeon_display.c,v 1.10 2019/01/30 01:11:08 mrg Exp $	*/
 
 /*
  * Copyright 2007-8 Advanced Micro Devices, Inc.
@@ -26,7 +26,7 @@
  *  Alex Deucher
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_display.c,v 1.9 2018/08/27 15:22:54 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_display.c,v 1.10 2019/01/30 01:11:08 mrg Exp $");
 
 #include 
 #include 
@@ -188,36 +188,12 @@ static void legacy_crtc_load_lut(struct 
 		dac2_cntl |= RADEON_DAC2_PALETTE_ACC_CTL;
 	WREG32(RADEON_DAC_CNTL2, dac2_cntl);
 
-	/*
-	 * At least the RV100 [vendor 1002 product 515e (rev. 0x02)]
-	 * has an old style palette
-	 */
-	if (rdev->family < CHIP_RV280) {
-#ifdef notyet
-		/*
-		 * Leave CLUT alone for now. The code below gives us a
-		 * nice 444 grayscale, but we are not in true color mode
-		 * anymore and I don't have any docs how to do this right.
-		 */
-		WREG8(RADEON_PALETTE_INDEX, 0);
-		for (i = 0; i < 256; i++) {
-#define R(x) (radeon_crtc->lut_r[i] >> 2)
-#define G(x) (radeon_crtc->lut_g[i] >> 2)
-#define B(x) (radeon_crtc->lut_b[i] >> 2)
-			WREG32(RADEON_PALETTE_DATA, ((R(i) << 16)
-| (G(i) << 8) | B(i)) << 4);
-		}
-#else
-		printf("%s: unknown DAC, can't set lookup table\n", __func__);
-#endif
-	} else {
-		WREG8(RADEON_PALETTE_INDEX, 0);
-		for (i = 0; i < 256; i++) {
-			WREG32(RADEON_PALETTE_30_DATA,
- (radeon_crtc->lut_r[i] << 20) |
- (radeon_crtc->lut_g[i] << 10) |
- (radeon_crtc->lut_b[i] << 0));
-		}
+	WREG8(RADEON_PALETTE_INDEX, 0);
+	for (i = 0; i < 256; i++) {
+		WREG32(RADEON_PALETTE_30_DATA,
+			 (radeon_crtc->lut_r[i] << 20) |
+			 (radeon_crtc->lut_g[i] << 10) |
+			 (radeon_crtc->lut_b[i] << 0));
 	}
 }
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core

2019-01-07 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Tue Jan  8 05:57:34 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core:
nouveau_nvkm_core_option.c

Log Message:
revert this commit:

>date: 2018-08-27 07:19:47 -0700;  author: riastradh;  state: Exp;  lines: +2 
>-0;  commitid: 9o7sY7hwNGx6zLPA;
>For now, unconditionally set nouveau verbosity to debug.

nouveau works mostly again now, and the debug output is very verbose.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_option.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/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_option.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_option.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_option.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_option.c:1.3	Mon Aug 27 14:19:47 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_option.c	Tue Jan  8 05:57:34 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_core_option.c,v 1.3 2018/08/27 14:19:47 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_core_option.c,v 1.4 2019/01/08 05:57:34 mrg Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_core_option.c,v 1.3 2018/08/27 14:19:47 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_core_option.c,v 1.4 2019/01/08 05:57:34 mrg Exp $");
 
 #include 
 #include 
@@ -101,8 +101,6 @@ nvkm_dbgopt(const char *optstr, const ch
 {
 	int mode = 1, level = CONFIG_NOUVEAU_DEBUG_DEFAULT;
 
-	return NV_DBG_DEBUG;
-
 	while (optstr) {
 		int len = strcspn(optstr, ",=");
 		switch (optstr[len]) {



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2019-01-01 Thread Maya Rashish
Module Name:src
Committed By:   maya
Date:   Tue Jan  1 08:07:47 UTC 2019

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_atombios_dp.c
amdgpu_uvd.c amdgpu_vce.c

Log Message:
Fix clang build by using hhx to print u8 and x to print unsigned.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_atombios_dp.c
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_uvd.c \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vce.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/dist/drm/amd/amdgpu/amdgpu_atombios_dp.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_atombios_dp.c:1.1 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_atombios_dp.c:1.2
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_atombios_dp.c:1.1	Mon Aug 27 14:10:14 2018
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_atombios_dp.c	Tue Jan  1 08:07:47 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_atombios_dp.c,v 1.1 2018/08/27 14:10:14 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_atombios_dp.c,v 1.2 2019/01/01 08:07:47 maya Exp $	*/
 
 /*
  * Copyright 2007-8 Advanced Micro Devices, Inc.
@@ -27,7 +27,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_atombios_dp.c,v 1.1 2018/08/27 14:10:14 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_atombios_dp.c,v 1.2 2019/01/01 08:07:47 maya Exp $");
 
 #include 
 #include 
@@ -333,11 +333,11 @@ static void amdgpu_atombios_dp_probe_oui
 		return;
 
 	if (drm_dp_dpcd_read(_connector->ddc_bus->aux, DP_SINK_OUI, buf, 3) == 3)
-		DRM_DEBUG_KMS("Sink OUI: %02hx%02hx%02hx\n",
+		DRM_DEBUG_KMS("Sink OUI: %02hhx%02hhx%02hhx\n",
 			  buf[0], buf[1], buf[2]);
 
 	if (drm_dp_dpcd_read(_connector->ddc_bus->aux, DP_BRANCH_OUI, buf, 3) == 3)
-		DRM_DEBUG_KMS("Branch OUI: %02hx%02hx%02hx\n",
+		DRM_DEBUG_KMS("Branch OUI: %02hhx%02hhx%02hhx\n",
 			  buf[0], buf[1], buf[2]);
 }
 

Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_uvd.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_uvd.c:1.3 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_uvd.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_uvd.c:1.3	Mon Aug 27 14:04:50 2018
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_uvd.c	Tue Jan  1 08:07:47 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_uvd.c,v 1.3 2018/08/27 14:04:50 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_uvd.c,v 1.4 2019/01/01 08:07:47 maya Exp $	*/
 
 /*
  * Copyright 2011 Advanced Micro Devices, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_uvd.c,v 1.3 2018/08/27 14:04:50 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_uvd.c,v 1.4 2019/01/01 08:07:47 maya Exp $");
 
 #include 
 #include 
@@ -159,7 +159,7 @@ int amdgpu_uvd_sw_init(struct amdgpu_dev
 	family_id = le32_to_cpu(hdr->ucode_version) & 0xff;
 	version_major = (le32_to_cpu(hdr->ucode_version) >> 24) & 0xff;
 	version_minor = (le32_to_cpu(hdr->ucode_version) >> 8) & 0xff;
-	DRM_INFO("Found UVD firmware Version: %hu.%hu Family ID: %hu\n",
+	DRM_INFO("Found UVD firmware Version: %x.%x Family ID: %x\n",
 		version_major, version_minor, family_id);
 
 	adev->uvd.fw_version = ((version_major << 24) | (version_minor << 16) |
Index: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vce.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vce.c:1.3 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vce.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vce.c:1.3	Mon Aug 27 14:04:50 2018
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vce.c	Tue Jan  1 08:07:47 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_vce.c,v 1.3 2018/08/27 14:04:50 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_vce.c,v 1.4 2019/01/01 08:07:47 maya Exp $	*/
 
 /*
  * Copyright 2013 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_vce.c,v 1.3 2018/08/27 14:04:50 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_vce.c,v 1.4 2019/01/01 08:07:47 maya Exp $");
 
 #include 
 #include 
@@ -144,7 +144,7 @@ int amdgpu_vce_sw_init(struct amdgpu_dev
 	version_major = (ucode_version >> 20) & 0xfff;
 	version_minor = (ucode_version >> 8) & 0xfff;
 	binary_id = ucode_version & 0xff;
-	DRM_INFO("Found VCE firmware Version: %hhd.%hhd Binary ID: %hhd\n",
+	DRM_INFO("Found VCE firmware Version: %x.%x Binary ID: %x\n",
 		version_major, version_minor, binary_id);
 	adev->vce.fw_version = ((version_major << 24) | (version_minor << 16) |
 (binary_id << 8));



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci

2018-12-19 Thread Maya Rashish
Module Name:src
Committed By:   maya
Date:   Wed Dec 19 09:20:56 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci:
nouveau_nvkm_subdev_pci_base.c

Log Message:
Disable MSI/MSI-X for nouveau.

Fixes functionality for me (GTX 770) and apparently anyone with
MSI/MSI-X capable hardware.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.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/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.3	Mon Aug 27 07:40:40 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c	Wed Dec 19 09:20:56 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.3 2018/08/27 07:40:40 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.4 2018/12/19 09:20:56 maya Exp $	*/
 
 /*
  * Copyright 2015 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.3 2018/08/27 07:40:40 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.4 2018/12/19 09:20:56 maya Exp $");
 
 #include "priv.h"
 #include "agp.h"
@@ -142,9 +142,14 @@ nvkm_pci_init(struct nvkm_subdev *subdev
 #ifdef __NetBSD__
 {
 	const struct pci_attach_args *pa = >pd_pa;
+	int counts[PCI_INTR_TYPE_SIZE] =  {
+			[PCI_INTR_TYPE_INTX] = 1,
+			[PCI_INTR_TYPE_MSI] = 0,
+			[PCI_INTR_TYPE_MSIX] = 0,
+	};
 
 	/* XXX errno NetBSD->Linux */
-	ret = -pci_intr_alloc(pa, >pci_ihp, NULL, 0);
+	ret = -pci_intr_alloc(pa, >pci_ihp, counts, PCI_INTR_TYPE_INTX);
 	if (ret)
 		return ret;
 	pci->pci_intrcookie = pci_intr_establish_xname(pa->pa_pc,



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau

2018-10-08 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Oct  8 17:58:52 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_bo.c

Log Message:
comment out unused function (clang)


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.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/dist/drm/nouveau/nouveau_bo.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c:1.12 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c:1.13
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c:1.12	Mon Aug 27 11:22:54 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c	Mon Oct  8 13:58:52 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_bo.c,v 1.12 2018/08/27 15:22:54 riastradh Exp $	*/
+/*	$NetBSD: nouveau_bo.c,v 1.13 2018/10/08 17:58:52 christos Exp $	*/
 
 /*
  * Copyright 2007 Dave Airlied
@@ -30,7 +30,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_bo.c,v 1.12 2018/08/27 15:22:54 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_bo.c,v 1.13 2018/10/08 17:58:52 christos Exp $");
 
 #include 
 #include 
@@ -543,6 +543,7 @@ nouveau_bo_validate(struct nouveau_bo *n
 #  define	iowrite16_native	fake_iowrite16_native
 #  define	iowrite32_native	fake_iowrite32_native
 
+#ifdef notdef
 static inline uint16_t
 ioread16_native(const void __iomem *ptr)
 {
@@ -553,6 +554,7 @@ ioread16_native(const void __iomem *ptr)
 
 	return v;
 }
+#endif
 
 static inline uint32_t
 ioread32_native(const void __iomem *ptr)



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-10-06 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sat Oct  6 15:33:35 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: intel_panel.c

Log Message:
conditionally disable unused functions (clang)


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.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/dist/drm/i915/intel_panel.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c:1.11 src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c:1.12
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c:1.11	Thu Sep 13 04:25:55 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c	Sat Oct  6 11:33:35 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_panel.c,v 1.11 2018/09/13 08:25:55 mrg Exp $	*/
+/*	$NetBSD: intel_panel.c,v 1.12 2018/10/06 15:33:35 christos Exp $	*/
 
 /*
  * Copyright © 2006-2010 Intel Corporation
@@ -31,7 +31,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_panel.c,v 1.11 2018/09/13 08:25:55 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_panel.c,v 1.12 2018/10/06 15:33:35 christos Exp $");
 
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
@@ -432,6 +432,7 @@ static uint32_t scale(uint32_t source_va
 	return target_val;
 }
 
+#if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
 /* Scale user_level in range [0..user_max] to [hw_min..hw_max]. */
 static inline u32 scale_user_to_hw(struct intel_connector *connector,
    u32 user_level, u32 user_max)
@@ -441,6 +442,7 @@ static inline u32 scale_user_to_hw(struc
 	return scale(user_level, 0, user_max,
 		 panel->backlight.min, panel->backlight.max);
 }
+#endif
 
 /* Scale user_level in range [0..user_max] to [0..hw_max], clamping the result
  * to [hw_min..hw_max]. */
@@ -456,6 +458,7 @@ static inline u32 clamp_user_to_hw(struc
 	return hw_level;
 }
 
+#if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
 /* Scale hw_level in range [hw_min..hw_max] to [0..user_max]. */
 static inline u32 scale_hw_to_user(struct intel_connector *connector,
    u32 hw_level, u32 user_max)
@@ -465,6 +468,7 @@ static inline u32 scale_hw_to_user(struc
 	return scale(hw_level, panel->backlight.min, panel->backlight.max,
 		 0, user_max);
 }
+#endif
 
 static u32 intel_panel_compute_brightness(struct intel_connector *connector,
 	  u32 val)



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-09-23 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Mon Sep 24 00:42:34 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: intel_display.c

Log Message:
Add more casts to make clang happy.


To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_display.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/dist/drm/i915/intel_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.23 src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.24
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.23	Thu Sep 13 04:25:55 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c	Sun Sep 23 20:42:34 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_display.c,v 1.23 2018/09/13 08:25:55 mrg Exp $	*/
+/*	$NetBSD: intel_display.c,v 1.24 2018/09/24 00:42:34 christos Exp $	*/
 
 /*
  * Copyright © 2006-2007 Intel Corporation
@@ -27,7 +27,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_display.c,v 1.23 2018/09/13 08:25:55 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_display.c,v 1.24 2018/09/24 00:42:34 christos Exp $");
 
 #include 
 #include 
@@ -2039,7 +2039,7 @@ static void lpt_enable_pch_transcoder(st
 
 	/* FDI must be feeding us bits for PCH ports */
 	assert_fdi_tx_enabled(dev_priv, (enum i915_pipe) cpu_transcoder);
-	assert_fdi_rx_enabled(dev_priv, TRANSCODER_A);
+	assert_fdi_rx_enabled(dev_priv, (enum i915_pipe) TRANSCODER_A);
 
 	/* Workaround: set timing override bit. */
 	val = I915_READ(TRANS_CHICKEN2(PIPE_A));
@@ -2132,7 +2132,7 @@ static void intel_enable_pipe(struct int
 	assert_sprites_disabled(dev_priv, pipe);
 
 	if (HAS_PCH_LPT(dev_priv->dev))
-		pch_transcoder = TRANSCODER_A;
+		pch_transcoder = (enum i915_pipe)TRANSCODER_A;
 	else
 		pch_transcoder = pipe;
 
@@ -4307,7 +4307,7 @@ static void lpt_pch_enable(struct drm_cr
 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
 	enum transcoder cpu_transcoder = intel_crtc->config->cpu_transcoder;
 
-	assert_pch_transcoder_disabled(dev_priv, TRANSCODER_A);
+	assert_pch_transcoder_disabled(dev_priv, (enum i915_pipe) TRANSCODER_A);
 
 	lpt_program_iclkip(crtc);
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-09-21 Thread Kamil Rytarowski
Module Name:src
Committed By:   kamil
Date:   Fri Sep 21 11:49:16 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_dma.c

Log Message:
Avoid stack protector violation

'const int' is not a real constant in C and it cannot be used to define an
array with a number of elements, as it's turned into a variable length
array.

Triggered by GCC when building with more debug options.


To generate a diff of this commit:
cvs rdiff -u -r1.26 -r1.27 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.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/dist/drm/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.26 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.27
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.26	Thu Sep 13 08:25:55 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Fri Sep 21 11:49:16 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_dma.c,v 1.26 2018/09/13 08:25:55 mrg Exp $	*/
+/*	$NetBSD: i915_dma.c,v 1.27 2018/09/21 11:49:16 kamil Exp $	*/
 
 /* i915_dma.c -- DMA support for the I915 -*- linux-c -*-
  */
@@ -29,7 +29,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_dma.c,v 1.26 2018/09/13 08:25:55 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_dma.c,v 1.27 2018/09/21 11:49:16 kamil Exp $");
 
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
@@ -705,7 +705,7 @@ static void broadwell_sseu_info_init(str
 	struct intel_device_info *info;
 	const int s_max = 3, ss_max = 3, eu_max = 8;
 	int s, ss;
-	u32 fuse2, eu_disable[s_max], s_enable, ss_disable;
+	u32 fuse2, eu_disable[3], s_enable, ss_disable;
 
 	fuse2 = I915_READ(GEN8_FUSE2);
 	s_enable = (fuse2 & GEN8_F2_S_ENA_MASK) >> GEN8_F2_S_ENA_SHIFT;



CVS commit: src/sys/external/bsd/drm2/dist/drm

2018-09-13 Thread Maya Rashish
Module Name:src
Committed By:   maya
Date:   Fri Sep 14 05:31:14 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_ioctl.c

Log Message:
copy the output from the temp buffer to the actual one on return.

Fixes crashes with updated xf86-video-intel / mesa 18
from riastradh.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/sys/external/bsd/drm2/dist/drm/drm_ioctl.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/dist/drm/drm_ioctl.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.10 src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.11
--- src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.10	Tue Aug 28 03:41:38 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c	Fri Sep 14 05:31:14 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_ioctl.c,v 1.10 2018/08/28 03:41:38 riastradh Exp $	*/
+/*	$NetBSD: drm_ioctl.c,v 1.11 2018/09/14 05:31:14 maya Exp $	*/
 
 /*
  * Created: Fri Jan  8 09:01:26 1999 by fa...@valinux.com
@@ -31,7 +31,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_ioctl.c,v 1.10 2018/08/28 03:41:38 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_ioctl.c,v 1.11 2018/09/14 05:31:14 maya Exp $");
 
 #include 
 #include 
@@ -703,6 +703,7 @@ drm_ioctl(struct file *fp, unsigned long
 {
 	char stackbuf[128];
 	char *buf = stackbuf;
+	void *data0 = data;
 	struct drm_file *const file = fp->f_data;
 	const unsigned int nr = DRM_IOCTL_NR(cmd);
 	int error;
@@ -761,20 +762,24 @@ drm_ioctl(struct file *fp, unsigned long
 		memcpy(buf, data, IOCPARM_LEN(cmd));
 		memset(buf + IOCPARM_LEN(cmd), 0,
 		IOCPARM_LEN(ioctl->cmd) - IOCPARM_LEN(cmd));
-		data = buf;
+		data0 = buf;
 	}
 
 	if ((drm_core_check_feature(dev, DRIVER_MODESET) && is_driver_ioctl) ||
 	ISSET(ioctl->flags, DRM_UNLOCKED)) {
 		/* XXX errno Linux->NetBSD */
-		error = -(*ioctl->func)(dev, data, file);
+		error = -(*ioctl->func)(dev, data0, file);
 	} else {
 		mutex_lock(_global_mutex);
 		/* XXX errno Linux->NetBSD */
-		error = -(*ioctl->func)(dev, data, file);
+		error = -(*ioctl->func)(dev, data0, file);
 		mutex_unlock(_global_mutex);
 	}
 
+	/* If we used a temporary buffer, copy it back out.  */
+	if (data != data0)
+		memcpy(data, data0, IOCPARM_LEN(cmd));
+
 	/* If we had to allocate a heap buffer, free it.  */
 	if (buf != stackbuf)
 		kmem_free(buf, IOCPARM_LEN(ioctl->cmd));



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo

2018-09-08 Thread Paul Goyette
Module Name:src
Committed By:   pgoyette
Date:   Sun Sep  9 03:12:51 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo:
nouveau_nvkm_engine_fifo_chan.c

Log Message:
Yet another diagused


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.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/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c:1.8 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c:1.8	Mon Aug 27 14:54:33 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c	Sun Sep  9 03:12:51 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.8 2018/08/27 14:54:33 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.9 2018/09/09 03:12:51 pgoyette Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.8 2018/08/27 14:54:33 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.9 2018/09/09 03:12:51 pgoyette Exp $");
 
 #include "chan.h"
 
@@ -480,7 +480,8 @@ nvkm_fifo_chan_ctor(const struct nvkm_fi
 		bus_space_tag_t mmiot = device->mmiot;
 		bus_space_handle_t mmioh = device->mmioh;
 		bus_size_t mmiosz = device->mmiosz;
-		bus_addr_t mmioaddr = device->func->resource_addr(device, bar);
+		__diagused bus_addr_t mmioaddr =
+		device->func->resource_addr(device, bar);
 
 		/* Check whether it lies inside the region.  */
 		if (mmiosz < base ||



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau

2018-09-08 Thread Paul Goyette
Module Name:src
Committed By:   pgoyette
Date:   Sun Sep  9 03:10:03 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_nvif.c

Log Message:
Another __diagused

OK riastradh@


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nvif.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/dist/drm/nouveau/nouveau_nvif.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nvif.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nvif.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nvif.c:1.4	Mon Aug 27 14:47:53 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nvif.c	Sun Sep  9 03:10:03 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvif.c,v 1.4 2018/08/27 14:47:53 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvif.c,v 1.5 2018/09/09 03:10:03 pgoyette Exp $	*/
 
 /*
  * Copyright 2014 Red Hat Inc.
@@ -29,7 +29,7 @@
  **/
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvif.c,v 1.4 2018/08/27 14:47:53 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvif.c,v 1.5 2018/09/09 03:10:03 pgoyette Exp $");
 
 #include 
 #include 
@@ -90,7 +90,7 @@ nvkm_client_unmap(void *priv, bus_space_
 	if (tag == client->mmiot &&
 	client->mmioaddr <= busaddr &&
 	busaddr - client->mmioaddr <= client->mmiosz) {
-		const bus_size_t offset = busaddr - client->mmioaddr;
+		__diagused const bus_size_t offset = busaddr - client->mmioaddr;
 		KASSERT(size <= client->mmiosz - offset);
 		/* Nothing to do to release a subregion.  */
 		return;



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-09-08 Thread Paul Goyette
Module Name:src
Committed By:   pgoyette
Date:   Sun Sep  9 03:04:43 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_cmd_parser.c

Log Message:
Add __diagused attribute to some diagnostic routines.

OK riastradh@


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.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/dist/drm/i915/i915_cmd_parser.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c:1.17 src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c:1.18
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c:1.17	Mon Aug 27 14:50:04 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c	Sun Sep  9 03:04:43 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_cmd_parser.c,v 1.17 2018/08/27 14:50:04 riastradh Exp $	*/
+/*	$NetBSD: i915_cmd_parser.c,v 1.18 2018/09/09 03:04:43 pgoyette Exp $	*/
 
 /*
  * Copyright © 2013 Intel Corporation
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_cmd_parser.c,v 1.17 2018/08/27 14:50:04 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_cmd_parser.c,v 1.18 2018/09/09 03:04:43 pgoyette Exp $");
 
 #include "i915_drv.h"
 
@@ -555,6 +555,7 @@ static u32 gen7_blt_get_cmd_length_mask(
 	return 0;
 }
 
+__diagused
 static bool validate_cmds_sorted(struct intel_engine_cs *ring,
  const struct drm_i915_cmd_table *cmd_tables,
  int cmd_table_count)
@@ -611,6 +612,7 @@ static bool check_sorted(int ring_id,
 	return ret;
 }
 
+__diagused
 static bool validate_regs_sorted(struct intel_engine_cs *ring)
 {
 	return check_sorted(ring->id, ring->reg_table, ring->reg_count) &&



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-09-02 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Sep  2 17:36:57 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: intel_display.c intel_dp.c

Log Message:
Initialize and destroy dev_priv->drrs.mutex only once.

Not once per connector!

Candidate fix for:
https://mail-index.netbsd.org/current-users/2018/08/30/msg034155.html


To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c
cvs rdiff -u -r1.17 -r1.18 src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.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/dist/drm/i915/intel_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.21 src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.22
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.21	Mon Aug 27 07:28:41 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c	Sun Sep  2 17:36:57 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_display.c,v 1.21 2018/08/27 07:28:41 riastradh Exp $	*/
+/*	$NetBSD: intel_display.c,v 1.22 2018/09/02 17:36:57 riastradh Exp $	*/
 
 /*
  * Copyright © 2006-2007 Intel Corporation
@@ -27,7 +27,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_display.c,v 1.21 2018/08/27 07:28:41 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_display.c,v 1.22 2018/09/02 17:36:57 riastradh Exp $");
 
 #include 
 #include 
@@ -14775,8 +14775,10 @@ static void intel_init_display(struct dr
 
 #ifdef __NetBSD__
 	linux_mutex_init(_priv->pps_mutex);
+	linux_mutex_init(_priv->drrs.mutex);
 #else
 	mutex_init(_priv->pps_mutex);
+	mutex_init(_priv->drrs.mutex);
 #endif
 }
 
@@ -15710,10 +15712,12 @@ void intel_modeset_cleanup(struct drm_de
 
 #ifdef __NetBSD__
 	linux_mutex_destroy(_priv->psr.lock);
+	linux_mutex_destroy(_priv->drrs.mutex);
 	linux_mutex_destroy(_priv->pps_mutex);
 	linux_mutex_destroy(_priv->fbc.lock);
 #else
 	mutex_destroy(_priv->psr.lock);
+	mutex_destroy(_priv->drrs.mutex);
 	mutex_destroy(_priv->pps_mutex);
 	mutex_destroy(_priv->fbc.lock);
 #endif

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c:1.17 src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c:1.18
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c:1.17	Mon Aug 27 13:41:23 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c	Sun Sep  2 17:36:57 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_dp.c,v 1.17 2018/08/27 13:41:23 riastradh Exp $	*/
+/*	$NetBSD: intel_dp.c,v 1.18 2018/09/02 17:36:57 riastradh Exp $	*/
 
 /*
  * Copyright © 2008 Intel Corporation
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_dp.c,v 1.17 2018/08/27 13:41:23 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_dp.c,v 1.18 2018/09/02 17:36:57 riastradh Exp $");
 
 #include 
 #include 
@@ -5014,8 +5014,6 @@ static void
 intel_dp_connector_destroy(struct drm_connector *connector)
 {
 	struct intel_connector *intel_connector = to_intel_connector(connector);
-	struct drm_device *dev = intel_connector->base.dev;
-	struct drm_i915_private *dev_priv = dev->dev_private;
 
 	kfree(intel_connector->detect_edid);
 
@@ -5028,11 +5026,6 @@ intel_dp_connector_destroy(struct drm_co
 		intel_panel_fini(_connector->panel);
 
 	drm_connector_cleanup(connector);
-#ifdef __NetBSD__
-	linux_mutex_destroy(_priv->drrs.mutex);
-#else
-	mutex_destroy(_priv->drrs.mutex);
-#endif
 	kfree(connector);
 }
 
@@ -6025,12 +6018,6 @@ intel_dp_init_connector(struct intel_dig
 
 	intel_dp->pps_pipe = INVALID_PIPE;
 
-#ifdef __NetBSD__
-	linux_mutex_init(_priv->drrs.mutex);
-#else
-	mutex_init(_priv->drrs.mutex);
-#endif
-
 	/* intel_dp vfuncs */
 	if (INTEL_INFO(dev)->gen >= 9)
 		intel_dp->get_aux_clock_divider = skl_get_aux_clock_divider;



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu

2018-08-31 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sat Sep  1 04:38:22 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu:
nouveau_nvkm_subdev_mmu_base.c

Log Message:
Destroy mutex before freeing memory.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.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/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c:1.3	Mon Aug 27 07:41:19 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c	Sat Sep  1 04:38:22 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.3 2018/08/27 07:41:19 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.4 2018/09/01 04:38:22 riastradh Exp $	*/
 
 /*
  * Copyright 2010 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.3 2018/08/27 07:41:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.4 2018/09/01 04:38:22 riastradh Exp $");
 
 #include "priv.h"
 
@@ -436,6 +436,11 @@ nvkm_vm_create(struct nvkm_mmu *mmu, u64
 
 	vm->pgt  = vzalloc((vm->lpde - vm->fpde + 1) * sizeof(*vm->pgt));
 	if (!vm->pgt) {
+#ifdef __NetBSD__
+		linux_mutex_destroy(>mutex);
+#else
+		mutex_destroy(>mutex);
+#endif
 		kfree(vm);
 		return -ENOMEM;
 	}
@@ -444,6 +449,11 @@ nvkm_vm_create(struct nvkm_mmu *mmu, u64
 			   block >> 12);
 	if (ret) {
 		vfree(vm->pgt);
+#ifdef __NetBSD__
+		linux_mutex_destroy(>mutex);
+#else
+		mutex_destroy(>mutex);
+#endif
 		kfree(vm);
 		return ret;
 	}



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/core

2018-08-31 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sat Sep  1 04:35:03 UTC 2018

Removed Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo:
nouveau_engine_fifo_gk20a.c
src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/graph:
nouveau_engine_graph_ctxgk20a.c nouveau_engine_graph_gk20a.c
src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb:
nouveau_subdev_fb_gk20a.c nouveau_subdev_fb_ramgk20a.c
src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/ibus:
nouveau_subdev_ibus_gk20a.c

Log Message:
Delete backported files that were renamed upstream.

Not sure how these didn't get nixed in the import.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r0 \

src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_gk20a.c
cvs rdiff -u -r1.2 -r0 \

src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_ctxgk20a.c
 \

src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/graph/nouveau_engine_graph_gk20a.c
cvs rdiff -u -r1.2 -r0 \

src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_gk20a.c
cvs rdiff -u -r1.5 -r0 \

src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_ramgk20a.c
cvs rdiff -u -r1.2 -r0 \

src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/ibus/nouveau_subdev_ibus_gk20a.c

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



CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm

2018-08-29 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Thu Aug 30 01:19:49 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo_util.c

Log Message:
This is not merely `not for NetBSD'; upstream it's #if 0 altogether.

Always has been.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 \
src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.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/dist/drm/ttm/ttm_bo_util.c
diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.13 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.14
--- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.13	Wed Aug 29 19:30:46 2018
+++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c	Thu Aug 30 01:19:49 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: ttm_bo_util.c,v 1.13 2018/08/29 19:30:46 mrg Exp $	*/
+/*	$NetBSD: ttm_bo_util.c,v 1.14 2018/08/30 01:19:49 riastradh Exp $	*/
 
 /**
  *
@@ -31,7 +31,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.13 2018/08/29 19:30:46 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.14 2018/08/30 01:19:49 riastradh Exp $");
 
 #include 
 #include 
@@ -703,7 +703,7 @@ int ttm_bo_kmap(struct ttm_buffer_object
 		return -EINVAL;
 	if (start_page > bo->num_pages)
 		return -EINVAL;
-#ifndef __NetBSD__
+#if 0
 	if (num_pages > 1 && !capable(CAP_SYS_ADMIN))
 		return -EPERM;
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core

2018-08-29 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Wed Aug 29 19:31:35 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core: device.h

Log Message:
don't "return void_returning_function()" in a different void returning function.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 \
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/device.h

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/dist/drm/nouveau/include/nvkm/core/device.h
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/device.h:1.6 src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/device.h:1.7
--- src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/device.h:1.6	Mon Aug 27 14:47:53 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/device.h	Wed Aug 29 19:31:35 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: device.h,v 1.6 2018/08/27 14:47:53 riastradh Exp $	*/
+/*	$NetBSD: device.h,v 1.7 2018/08/29 19:31:35 mrg Exp $	*/
 
 #ifndef __NVKM_DEVICE_H__
 #define __NVKM_DEVICE_H__
@@ -248,17 +248,17 @@ nvkm_rd32(struct nvkm_device *d, bus_siz
 static inline void
 nvkm_wr08(struct nvkm_device *d, bus_size_t a, uint8_t v)
 {
-	return bus_space_write_1(d->mmiot, d->mmioh, a, v);
+	bus_space_write_1(d->mmiot, d->mmioh, a, v);
 }
 static inline void
 nvkm_wr16(struct nvkm_device *d, bus_size_t a, uint16_t v)
 {
-	return bus_space_write_stream_2(d->mmiot, d->mmioh, a, v);
+	bus_space_write_stream_2(d->mmiot, d->mmioh, a, v);
 }
 static inline void
 nvkm_wr32(struct nvkm_device *d, bus_size_t a, uint32_t v)
 {
-	return bus_space_write_stream_4(d->mmiot, d->mmioh, a, v);
+	bus_space_write_stream_4(d->mmiot, d->mmioh, a, v);
 }
 #else
 #define nvkm_rd08(d,a) ioread8((d)->pri + (a))



CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm

2018-08-29 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Wed Aug 29 19:30:46 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo_util.c

Log Message:
restore #ifndef __NetBSD__ code so drm on nouveau has a chance.
from @riastradh.

display is still black, but tools some times try to work now.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 \
src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.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/dist/drm/ttm/ttm_bo_util.c
diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.12 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.13
--- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.12	Mon Aug 27 14:51:33 2018
+++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c	Wed Aug 29 19:30:46 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: ttm_bo_util.c,v 1.12 2018/08/27 14:51:33 riastradh Exp $	*/
+/*	$NetBSD: ttm_bo_util.c,v 1.13 2018/08/29 19:30:46 mrg Exp $	*/
 
 /**
  *
@@ -31,7 +31,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.12 2018/08/27 14:51:33 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.13 2018/08/29 19:30:46 mrg Exp $");
 
 #include 
 #include 
@@ -703,12 +703,10 @@ int ttm_bo_kmap(struct ttm_buffer_object
 		return -EINVAL;
 	if (start_page > bo->num_pages)
 		return -EINVAL;
-#ifdef __NetBSD__
-	if (num_pages > 1 && !DRM_SUSER())
-#else
+#ifndef __NetBSD__
 	if (num_pages > 1 && !capable(CAP_SYS_ADMIN))
-#endif
 		return -EPERM;
+#endif
 	(void) ttm_mem_io_lock(man, false);
 	ret = ttm_mem_io_reserve(bo->bdev, >mem);
 	ttm_mem_io_unlock(man);



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem

2018-08-29 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Aug 29 15:52:27 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem:
nouveau_nvkm_subdev_instmem_nv40.c

Log Message:
No, this cannot be bar 0 -- it is bar 2 or bar 3, as shown above.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.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/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c:1.6 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c:1.6	Wed Aug 29 15:46:31 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c	Wed Aug 29 15:52:27 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.6 2018/08/29 15:46:31 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.7 2018/08/29 15:52:27 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.6 2018/08/29 15:46:31 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.7 2018/08/29 15:52:27 riastradh Exp $");
 
 #define nv40_instmem(p) container_of((p), struct nv40_instmem, base)
 #include "priv.h"
@@ -294,7 +294,6 @@ nv40_instmem_new(struct nvkm_device *dev
 	bus_size_t iomemsz;
 	int ret;
 
-	/* XXX Can this be BAR 0, for which we need a subregion?  */
 	imem->iomemt = device->func->resource_tag(device, bar);
 	iomembase = device->func->resource_addr(device, bar);
 	iomemsz = device->func->resource_size(device, bar);



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem

2018-08-29 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Aug 29 15:46:31 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem:
nouveau_nvkm_subdev_instmem_nv40.c

Log Message:
Let's try not to use uninitialized memory as a bus size, shall we?

>From rjs@.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.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/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c:1.5 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c:1.5	Mon Aug 27 14:51:55 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c	Wed Aug 29 15:46:31 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.5 2018/08/27 14:51:55 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.6 2018/08/29 15:46:31 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.5 2018/08/27 14:51:55 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.6 2018/08/29 15:46:31 riastradh Exp $");
 
 #define nv40_instmem(p) container_of((p), struct nv40_instmem, base)
 #include "priv.h"
@@ -299,7 +299,7 @@ nv40_instmem_new(struct nvkm_device *dev
 	iomembase = device->func->resource_addr(device, bar);
 	iomemsz = device->func->resource_size(device, bar);
 	/* XXX errno NetBSD->Linux */
-	ret = -bus_space_map(imem->iomemt, iomembase, imem->iomemsz,
+	ret = -bus_space_map(imem->iomemt, iomembase, iomemsz,
 	BUS_SPACE_MAP_LINEAR, >iomemh);
 	if (ret) {
 		nvkm_error(>base.subdev, "unable to map PRAMIN BAR %d"



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-29 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Aug 29 14:53:46 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_fence.c

Log Message:
Return timeout left, not error, if fence is already signaled.

fence_add_callback returns -ENOENT if fence is already signaled;
radeon_fence_default_wait is supposed to wait until fence is
signaled; this means its job is done.

Should fix spurious ENOENT in DRM_IOCTL_RADEON_GEM_WAIT_IDLE (or
_IOW('d',0x64,0x8) for you ktracers out there).


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.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/dist/drm/radeon/radeon_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.14 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.15
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c:1.14	Mon Aug 27 14:20:26 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_fence.c	Wed Aug 29 14:53:46 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_fence.c,v 1.14 2018/08/27 14:20:26 riastradh Exp $	*/
+/*	$NetBSD: radeon_fence.c,v 1.15 2018/08/29 14:53:46 riastradh Exp $	*/
 
 /*
  * Copyright 2009 Jerome Glisse.
@@ -31,7 +31,7 @@
  *Dave Airlie
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: radeon_fence.c,v 1.14 2018/08/27 14:20:26 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeon_fence.c,v 1.15 2018/08/29 14:53:46 riastradh Exp $");
 
 #include 
 #include 
@@ -1177,8 +1177,8 @@ radeon_fence_default_wait(struct fence *
 	int r;
 
 	r = fence_add_callback(f, , radeon_fence_wakeup_cb);
-	if (r)
-		return r;
+	if (r)			/* fence is done already */
+		return timo;
 
 	spin_lock(>fence_lock);
 	if (intr) {



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau

2018-08-28 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Tue Aug 28 20:59:21 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_fence.c

Log Message:
move spin_lock_destroy() of the nouveau_fence_chan into
nouveau_fence_context_put() so it's available until all uses are done.
fixes a panic at reboot time.  idea from riastradh@.

(nv still has a off screen.)


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.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/dist/drm/nouveau/nouveau_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c:1.12 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c:1.13
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c:1.12	Mon Aug 27 07:37:07 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c	Tue Aug 28 20:59:21 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_fence.c,v 1.12 2018/08/27 07:37:07 riastradh Exp $	*/
+/*	$NetBSD: nouveau_fence.c,v 1.13 2018/08/28 20:59:21 mrg Exp $	*/
 
 /*
  * Copyright (C) 2007 Ben Skeggs.
@@ -27,7 +27,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_fence.c,v 1.12 2018/08/27 07:37:07 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_fence.c,v 1.13 2018/08/28 20:59:21 mrg Exp $");
 
 #include 
 
@@ -106,7 +106,6 @@ nouveau_fence_context_del(struct nouveau
 			nvif_notify_put(>notify);
 	}
 	spin_unlock_irq(>lock);
-	spin_lock_destroy(>lock);
 
 	nvif_notify_fini(>notify);
 	fctx->dead = 1;
@@ -121,7 +120,11 @@ nouveau_fence_context_del(struct nouveau
 static void
 nouveau_fence_context_put(struct kref *fence_ref)
 {
-	kfree(container_of(fence_ref, struct nouveau_fence_chan, fence_ref));
+	struct nouveau_fence_chan *fctx =
+	container_of(fence_ref, struct nouveau_fence_chan, fence_ref);
+
+	spin_lock_destroy(>lock);
+	kfree(fctx);
 }
 
 void



CVS commit: src/sys/external/bsd/drm2/dist/drm

2018-08-28 Thread Martin Husemann
Module Name:src
Committed By:   martin
Date:   Tue Aug 28 08:20:27 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_drv.c

Log Message:
Disable drm_debug by default


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/sys/external/bsd/drm2/dist/drm/drm_drv.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/dist/drm/drm_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.9 src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.10
--- src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.9	Mon Aug 27 14:41:41 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_drv.c	Tue Aug 28 08:20:27 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_drv.c,v 1.9 2018/08/27 14:41:41 riastradh Exp $	*/
+/*	$NetBSD: drm_drv.c,v 1.10 2018/08/28 08:20:27 martin Exp $	*/
 
 /*
  * Created: Fri Jan 19 10:48:35 2001 by fa...@acm.org
@@ -29,7 +29,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_drv.c,v 1.9 2018/08/27 14:41:41 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_drv.c,v 1.10 2018/08/28 08:20:27 martin Exp $");
 
 #include 
 #include 
@@ -45,7 +45,7 @@ __KERNEL_RCSID(0, "$NetBSD: drm_drv.c,v 
 #include "drm_legacy.h"
 #include "drm_internal.h"
 
-unsigned int drm_debug = ~(unsigned int)0;	/* bitmask of DRM_UT_x */
+unsigned int drm_debug = 0;	/* bitmask of DRM_UT_x */
 EXPORT_SYMBOL(drm_debug);
 
 MODULE_AUTHOR(CORE_AUTHOR);



CVS commit: src/sys/external/bsd/drm2/dist/drm

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Tue Aug 28 03:33:54 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_agpsupport.c

Log Message:
Use AGP_PAGE_SIZE, not PAGE_SIZE.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/sys/external/bsd/drm2/dist/drm/drm_agpsupport.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/dist/drm/drm_agpsupport.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_agpsupport.c:1.8 src/sys/external/bsd/drm2/dist/drm/drm_agpsupport.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/drm_agpsupport.c:1.8	Mon Aug 27 06:32:57 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_agpsupport.c	Tue Aug 28 03:33:54 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_agpsupport.c,v 1.8 2018/08/27 06:32:57 riastradh Exp $	*/
+/*	$NetBSD: drm_agpsupport.c,v 1.9 2018/08/28 03:33:54 riastradh Exp $	*/
 
 /**
  * \file drm_agpsupport.c
@@ -34,7 +34,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_agpsupport.c,v 1.8 2018/08/27 06:32:57 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_agpsupport.c,v 1.9 2018/08/28 03:33:54 riastradh Exp $");
 
 #include 
 #include 
@@ -225,7 +225,7 @@ int drm_agp_alloc(struct drm_device *dev
 	if (!(entry = kzalloc(sizeof(*entry), GFP_KERNEL)))
 		return -ENOMEM;
 
-	pages = (request->size + PAGE_SIZE - 1) / PAGE_SIZE;
+	pages = (request->size + AGP_PAGE_SIZE - 1) / AGP_PAGE_SIZE;
 	type = (u32) request->type;
 	if (!(memory = agp_allocate_memory(dev->agp->bridge, pages, type))) {
 		kfree(entry);
@@ -356,7 +356,7 @@ int drm_agp_bind(struct drm_device *dev,
 		return -EINVAL;
 	if (entry->bound)
 		return -EINVAL;
-	page = (request->offset + PAGE_SIZE - 1) / PAGE_SIZE;
+	page = (request->offset + AGP_PAGE_SIZE - 1) / AGP_PAGE_SIZE;
 #ifdef __NetBSD__
 	if ((retcode = drm_bind_agp(dev->agp->bridge, entry->memory, page)))
 		return retcode;
@@ -555,7 +555,7 @@ drm_agp_bind_pages(struct drm_device *de
 	mem->page_count = num_pages;
 
 	mem->is_flushed = true;
-	ret = agp_bind_memory(mem, gtt_offset / PAGE_SIZE);
+	ret = agp_bind_memory(mem, gtt_offset / AGP_PAGE_SIZE);
 	if (ret != 0) {
 		DRM_ERROR("Failed to bind AGP memory: %d\n", ret);
 		agp_free_memory(mem);



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 16:15:35 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_vgpu.c

Log Message:
Simulate bus_space_read_8 with two bus_space_read_4 on 32-bit x86.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/i915/i915_vgpu.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/dist/drm/i915/i915_vgpu.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_vgpu.c:1.3 src/sys/external/bsd/drm2/dist/drm/i915/i915_vgpu.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_vgpu.c:1.3	Mon Aug 27 07:16:10 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_vgpu.c	Mon Aug 27 16:15:34 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_vgpu.c,v 1.3 2018/08/27 07:16:10 riastradh Exp $	*/
+/*	$NetBSD: i915_vgpu.c,v 1.4 2018/08/27 16:15:34 riastradh Exp $	*/
 
 /*
  * Copyright(c) 2011-2015 Intel Corporation. All rights reserved.
@@ -24,7 +24,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_vgpu.c,v 1.3 2018/08/27 07:16:10 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_vgpu.c,v 1.4 2018/08/27 16:15:34 riastradh Exp $");
 
 #include "intel_drv.h"
 #include "i915_vgpu.h"
@@ -75,8 +75,15 @@ void i915_check_vgpu(struct drm_device *
 		return;
 
 #ifdef __NetBSD__
+#  ifdef _LP64
 	magic = bus_space_read_8(dev_priv->regs_bst, dev_priv->regs_bsh,
 	vgtif_reg(magic));
+#  else
+	magic = bus_space_read_4(dev_priv->regs_bst, dev_priv->regs_bsh,
+	vgtif_reg(magic));
+	magic |= (uint64_t)bus_space_read_4(dev_priv->regs_bst,
+	dev_priv->regs_bsh, vgtif_reg(magic) + 4) << 32;
+#  endif
 #else
 	magic = readq(dev_priv->regs + vgtif_reg(magic));
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 16:15:48 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_vgpu.h

Log Message:
Use offsetof, not undefined behaviour.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/i915/i915_vgpu.h

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/dist/drm/i915/i915_vgpu.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_vgpu.h:1.2 src/sys/external/bsd/drm2/dist/drm/i915/i915_vgpu.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_vgpu.h:1.2	Mon Aug 27 04:58:24 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_vgpu.h	Mon Aug 27 16:15:48 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_vgpu.h,v 1.2 2018/08/27 04:58:24 riastradh Exp $	*/
+/*	$NetBSD: i915_vgpu.h,v 1.3 2018/08/27 16:15:48 riastradh Exp $	*/
 
 /*
  * Copyright(c) 2011-2015 Intel Corporation. All rights reserved.
@@ -110,7 +110,7 @@ struct vgt_if {
 } __packed;
 
 #define vgtif_reg(x) \
-	(VGT_PVINFO_PAGE + (long)&((struct vgt_if *)NULL)->x)
+	(VGT_PVINFO_PAGE + offsetof(struct vgt_if, x))
 
 /* vGPU display status to be used by the host side */
 #define VGT_DRV_DISPLAY_NOT_READY 0



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 16:14:55 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_gpu_error.c

Log Message:
Omit print with wrong format -- vestige of merge.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.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/dist/drm/i915/i915_gpu_error.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c:1.9 src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c:1.10
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c:1.9	Mon Aug 27 14:49:05 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c	Mon Aug 27 16:14:55 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gpu_error.c,v 1.9 2018/08/27 14:49:05 riastradh Exp $	*/
+/*	$NetBSD: i915_gpu_error.c,v 1.10 2018/08/27 16:14:55 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2008 Intel Corporation
@@ -30,7 +30,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_gpu_error.c,v 1.9 2018/08/27 14:49:05 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gpu_error.c,v 1.10 2018/08/27 16:14:55 riastradh Exp $");
 
 #include 
 
@@ -356,8 +356,6 @@ int i915_error_state_to_str(struct drm_i
 	err_printf(m, "Time: %"PRIdMAX" s %ld us\n", (intmax_t)error->time.tv_sec,
 		   (long)error->time.tv_usec);
 	err_printf(m, "Kernel: %d\n", __NetBSD_Version__);
-	err_printf(m, "Time: %ld s %ld us\n", error->time.tv_sec,
-		   (long)error->time.tv_usec);
 	max_hangcheck_score = 0;
 	for (i = 0; i < ARRAY_SIZE(error->ring); i++) {
 		if (error->ring[i].hangcheck_score > max_hangcheck_score)



CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 15:26:33 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_cgs.c

Log Message:
Not drm prime; just unused.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cgs.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/dist/drm/amd/amdgpu/amdgpu_cgs.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cgs.c:1.3 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cgs.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cgs.c:1.3	Mon Aug 27 14:04:50 2018
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_cgs.c	Mon Aug 27 15:26:33 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_cgs.c,v 1.3 2018/08/27 14:04:50 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_cgs.c,v 1.4 2018/08/27 15:26:33 riastradh Exp $	*/
 
 /*
  * Copyright 2015 Advanced Micro Devices, Inc.
@@ -24,7 +24,7 @@
  *
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_cgs.c,v 1.3 2018/08/27 14:04:50 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_cgs.c,v 1.4 2018/08/27 15:26:33 riastradh Exp $");
 
 #include 
 #include 
@@ -84,7 +84,7 @@ static int amdgpu_cgs_gmap_kmem(void *cg
 uint64_t min_offset, uint64_t max_offset,
 cgs_handle_t *kmem_handle, uint64_t *mcaddr)
 {
-#ifdef __NetBSD__		/* XXX drm prime */
+#ifdef __NetBSD__		/* XXX unused */
 	return -ENOSYS;
 #else
 	CGS_FUNC_ADEV;
@@ -114,7 +114,7 @@ static int amdgpu_cgs_gmap_kmem(void *cg
 
 static int amdgpu_cgs_gunmap_kmem(void *cgs_device, cgs_handle_t kmem_handle)
 {
-#ifdef __NetBSD__		/* XXX drm prime */
+#ifdef __NetBSD__		/* XXX unused */
 	panic("not implemented");
 #else
 	struct amdgpu_bo *obj = (struct amdgpu_bo *)kmem_handle;



CVS commit: src/sys/external/bsd/drm2/dist/drm/radeon

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 15:13:05 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_mode.h

Log Message:
Omit vestigial diff from radeon_mode.h.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_mode.h

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/dist/drm/radeon/radeon_mode.h
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_mode.h:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_mode.h:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_mode.h:1.3	Mon Aug 27 04:58:36 2018
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_mode.h	Mon Aug 27 15:13:05 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeon_mode.h,v 1.3 2018/08/27 04:58:36 riastradh Exp $	*/
+/*	$NetBSD: radeon_mode.h,v 1.4 2018/08/27 15:13:05 riastradh Exp $	*/
 
 /*
  * Copyright 2000 ATI Technologies Inc., Markham, Ontario, and
@@ -1014,12 +1014,4 @@ void radeon_setup_mst_connector(struct d
 
 int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder, int fe_idx);
 void radeon_atom_release_dig_encoder(struct radeon_device *rdev, int enc_idx);
-
-#ifdef __NetBSD__
-struct drm_fb_helper;
-struct drm_fb_helper_surface_size;
-int	radeon_genfb_attach(struct drm_device *, struct drm_fb_helper *,
-	const struct drm_fb_helper_surface_size *, struct radeon_bo *);
-#endif
-
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:54:33 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif: ioctl.h
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core: object.h
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/engine: dma.h
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core:
nouveau_nvkm_core_object.c nouveau_nvkm_core_oproxy.c
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device:
nouveau_nvkm_engine_device_user.c
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp:
nouveau_nvkm_engine_disp_channv50.c
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo:
nouveau_nvkm_engine_fifo_chan.c

Log Message:
Mark some NetBSDisms as such.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/ioctl.h
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/object.h
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/engine/dma.h
cvs rdiff -u -r1.5 -r1.6 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c
cvs rdiff -u -r1.3 -r1.4 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_oproxy.c
cvs rdiff -u -r1.5 -r1.6 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_user.c
cvs rdiff -u -r1.4 -r1.5 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp/nouveau_nvkm_engine_disp_channv50.c
cvs rdiff -u -r1.7 -r1.8 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.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/dist/drm/nouveau/include/nvif/ioctl.h
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/ioctl.h:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/ioctl.h:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/ioctl.h:1.3	Mon Aug 27 07:35:56 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/ioctl.h	Mon Aug 27 14:54:32 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: ioctl.h,v 1.3 2018/08/27 07:35:56 riastradh Exp $	*/
+/*	$NetBSD: ioctl.h,v 1.4 2018/08/27 14:54:32 riastradh Exp $	*/
 
 #ifndef __NVIF_IOCTL_H__
 #define __NVIF_IOCTL_H__
@@ -20,7 +20,10 @@ struct nvif_ioctl_v0 {
 #define NVIF_IOCTL_V0_NTFY_DEL 0x0a
 #define NVIF_IOCTL_V0_NTFY_GET 0x0b
 #define NVIF_IOCTL_V0_NTFY_PUT 0x0c
-#define NVIF_IOCTL_V0_MAP_NETBSD	   0x0d
+#ifdef __NetBSD__
+/* XXX Kludge for NetBSD kernel-only use.  */
+#define NVIF_IOCTL_V0_MAP_NETBSD   0x0d
+#endif
 	__u8  type;
 	__u8  pad02[4];
 #define NVIF_IOCTL_V0_OWNER_NVIF   0x00

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/object.h
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/object.h:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/object.h:1.5
--- src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/object.h:1.4	Mon Aug 27 07:36:07 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/object.h	Mon Aug 27 14:54:32 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: object.h,v 1.4 2018/08/27 07:36:07 riastradh Exp $	*/
+/*	$NetBSD: object.h,v 1.5 2018/08/27 14:54:32 riastradh Exp $	*/
 
 #ifndef __NVKM_OBJECT_H__
 #define __NVKM_OBJECT_H__
@@ -21,7 +21,9 @@ struct nvkm_object {
 	u64 token;
 	u64 object;
 	struct rb_node node;
+#ifdef __NetBSD__
 	bool on_tree;
+#endif
 };
 
 struct nvkm_object_func {
@@ -60,8 +62,12 @@ int nvkm_object_init(struct nvkm_object 
 int nvkm_object_fini(struct nvkm_object *, bool suspend);
 int nvkm_object_mthd(struct nvkm_object *, u32 mthd, void *data, u32 size);
 int nvkm_object_ntfy(struct nvkm_object *, u32 mthd, struct nvkm_event **);
+#ifdef __NetBSD__
 int nvkm_object_map(struct nvkm_object *, bus_space_tag_t *, u64 *addr,
 u32 *size);
+#else
+int nvkm_object_map(struct nvkm_object *, u64 *addr, u32 *size);
+#endif
 int nvkm_object_rd08(struct nvkm_object *, u64 addr, u8  *data);
 int nvkm_object_rd16(struct nvkm_object *, u64 addr, u16 *data);
 int nvkm_object_rd32(struct nvkm_object *, u64 addr, u32 *data);

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/engine/dma.h
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/engine/dma.h:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/engine/dma.h:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/engine/dma.h:1.3	Mon Aug 27 07:36:07 2018
+++ 

CVS commit: src/sys/external/bsd/drm2/dist/drm/amd/amdgpu

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:54:08 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_device.c

Log Message:
Read from the data register, not the index we just wrote.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.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/dist/drm/amd/amdgpu/amdgpu_device.c
diff -u src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.3 src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c:1.3	Mon Aug 27 14:04:50 2018
+++ src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_device.c	Mon Aug 27 14:54:08 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: amdgpu_device.c,v 1.3 2018/08/27 14:04:50 riastradh Exp $	*/
+/*	$NetBSD: amdgpu_device.c,v 1.4 2018/08/27 14:54:08 riastradh Exp $	*/
 
 /*
  * Copyright 2008 Advanced Micro Devices, Inc.
@@ -28,7 +28,7 @@
  *  Jerome Glisse
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.3 2018/08/27 14:04:50 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdgpu_device.c,v 1.4 2018/08/27 14:54:08 riastradh Exp $");
 
 #include 
 #include 
@@ -96,7 +96,7 @@ uint32_t amdgpu_mm_rreg(struct amdgpu_de
 		bus_space_write_4(adev->rmmiot, adev->rmmioh, 4*mmMM_INDEX,
 		4*reg);
 		ret = bus_space_read_4(adev->rmmiot, adev->rmmioh,
-		4*mmMM_INDEX);
+		4*mmMM_DATA);
 #else
 		writel((reg * 4), ((void __iomem *)adev->rmmio) + (mmMM_INDEX * 4));
 		ret = readl(((void __iomem *)adev->rmmio) + (mmMM_DATA * 4));



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:53:54 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_gem_gtt.c

Log Message:
Scale offset by size of unit, gen6_pte_t.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 \
src/sys/external/bsd/drm2/dist/drm/i915/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/dist/drm/i915/i915_gem_gtt.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c:1.14 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c:1.15
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c:1.14	Mon Aug 27 14:53:30 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c	Mon Aug 27 14:53:54 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gem_gtt.c,v 1.14 2018/08/27 14:53:30 riastradh Exp $	*/
+/*	$NetBSD: i915_gem_gtt.c,v 1.15 2018/08/27 14:53:54 riastradh Exp $	*/
 
 /*
  * Copyright © 2010 Daniel Vetter
@@ -26,7 +26,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.14 2018/08/27 14:53:30 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.15 2018/08/27 14:53:54 riastradh Exp $");
 
 #include 
 #include 
@@ -1776,7 +1776,8 @@ static void gen6_write_pde(struct i915_p
 	pd_entry |= GEN6_PDE_VALID;
 
 #ifdef __NetBSD__
-	bus_space_write_4(bst, bsh, pd_base + pde, pd_entry);
+	CTASSERT(sizeof(gen6_pte_t) == 4);
+	bus_space_write_4(bst, bsh, pd_base + 4*pde, pd_entry);
 #else
 	writel(pd_entry, ppgtt->pd_addr + pde);
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:53:30 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_gem_gtt.c

Log Message:
Pass the vaddr we mapped to kunmap_px.  Thanks, void *.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 \
src/sys/external/bsd/drm2/dist/drm/i915/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/dist/drm/i915/i915_gem_gtt.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c:1.13 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c:1.14
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c:1.13	Mon Aug 27 14:52:40 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c	Mon Aug 27 14:53:30 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gem_gtt.c,v 1.13 2018/08/27 14:52:40 riastradh Exp $	*/
+/*	$NetBSD: i915_gem_gtt.c,v 1.14 2018/08/27 14:53:30 riastradh Exp $	*/
 
 /*
  * Copyright © 2010 Daniel Vetter
@@ -26,7 +26,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.13 2018/08/27 14:52:40 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.14 2018/08/27 14:53:30 riastradh Exp $");
 
 #include 
 #include 
@@ -817,7 +817,7 @@ static void gen8_ppgtt_clear_pte_range(s
 			num_entries--;
 		}
 
-		kunmap_px(ppgtt, pt);
+		kunmap_px(ppgtt, pt_vaddr);
 
 		pte = 0;
 		if (++pde == I915_PDES) {



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:53:12 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: intel_lrc.c

Log Message:
Simplify loop with bus_space_set_region_4

Match the original copypasta in intel_ringbuffer.c.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/dist/drm/i915/intel_lrc.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/dist/drm/i915/intel_lrc.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_lrc.c:1.7 src/sys/external/bsd/drm2/dist/drm/i915/intel_lrc.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_lrc.c:1.7	Mon Aug 27 14:52:56 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_lrc.c	Mon Aug 27 14:53:12 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_lrc.c,v 1.7 2018/08/27 14:52:56 riastradh Exp $	*/
+/*	$NetBSD: intel_lrc.c,v 1.8 2018/08/27 14:53:12 riastradh Exp $	*/
 
 /*
  * Copyright © 2014 Intel Corporation
@@ -135,7 +135,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_lrc.c,v 1.7 2018/08/27 14:52:56 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_lrc.c,v 1.8 2018/08/27 14:53:12 riastradh Exp $");
 
 #include 
 #include 
@@ -745,18 +745,15 @@ intel_logical_ring_advance_and_submit(st
 
 static void __wrap_ring_buffer(struct intel_ringbuffer *ringbuf)
 {
-#ifdef __NetBSD__
-	bus_size_t tail;
-	int rem = ringbuf->size - ringbuf->tail;
-
-	tail = ringbuf->tail;
-	rem /= 4;
-	for (; rem --> 0; tail += 4)
-		bus_space_write_4(ringbuf->bst, ringbuf->bsh, tail, MI_NOOP);
-#else
+#ifndef __NetBSD__
 	uint32_t __iomem *virt;
+#endif
 	int rem = ringbuf->size - ringbuf->tail;
 
+#ifdef __NetBSD__
+	bus_space_set_region_4(ringbuf->bst, ringbuf->bsh, ringbuf->tail,
+	MI_NOOP, rem/4);
+#else
 	virt = ringbuf->virtual_start + ringbuf->tail;
 	rem /= 4;
 	while (rem--)



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:52:56 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_irq.c intel_lrc.c

Log Message:
Advance by 4-byte quantities, not by 1-byte quantities.


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c
cvs rdiff -u -r1.6 -r1.7 src/sys/external/bsd/drm2/dist/drm/i915/intel_lrc.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/dist/drm/i915/i915_irq.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.15 src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.16
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.15	Mon Aug 27 14:45:11 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c	Mon Aug 27 14:52:56 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_irq.c,v 1.15 2018/08/27 14:45:11 riastradh Exp $	*/
+/*	$NetBSD: i915_irq.c,v 1.16 2018/08/27 14:52:56 riastradh Exp $	*/
 
 /* i915_irq.c -- IRQ support for the I915 -*- linux-c -*-
  */
@@ -29,7 +29,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_irq.c,v 1.15 2018/08/27 14:45:11 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_irq.c,v 1.16 2018/08/27 14:52:56 riastradh Exp $");
 
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
@@ -2677,6 +2677,34 @@ void i915_handle_error(struct drm_device
 	}
 
 	i915_reset_and_wakeup(dev);
+
+do {
+	struct i915_error_state_file_priv error_priv;
+	struct drm_i915_error_state_buf error_str;
+	int ret;
+
+	memset(_priv, 0, sizeof(error_priv));
+
+	ret = i915_error_state_buf_init(_str, dev_priv, 512*1024, 0);
+	if (ret) {
+		DRM_ERROR("Failed to initialize error buf: %d\n", ret);
+		break;
+	}
+	error_priv.dev = dev;
+	i915_error_state_get(dev, _priv);
+
+	ret = i915_error_state_to_str(_str, _priv);
+	if (ret) {
+		DRM_ERROR("Failed to format error buf: %d\n", ret);
+		i915_error_state_put(_priv);
+	}
+
+	error_str.buf[MIN(error_str.size - 1, error_str.bytes)] = '\0';
+	DRM_ERROR("Error state:\n%s\n", error_str.buf);
+
+	i915_error_state_buf_release(_str);
+	i915_error_state_put(_priv);
+} while (0);
 }
 
 /* Called from drm generic code, passed 'crtc' which

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_lrc.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_lrc.c:1.6 src/sys/external/bsd/drm2/dist/drm/i915/intel_lrc.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_lrc.c:1.6	Mon Aug 27 07:24:25 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_lrc.c	Mon Aug 27 14:52:56 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_lrc.c,v 1.6 2018/08/27 07:24:25 riastradh Exp $	*/
+/*	$NetBSD: intel_lrc.c,v 1.7 2018/08/27 14:52:56 riastradh Exp $	*/
 
 /*
  * Copyright © 2014 Intel Corporation
@@ -135,7 +135,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: intel_lrc.c,v 1.6 2018/08/27 07:24:25 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_lrc.c,v 1.7 2018/08/27 14:52:56 riastradh Exp $");
 
 #include 
 #include 
@@ -751,8 +751,8 @@ static void __wrap_ring_buffer(struct in
 
 	tail = ringbuf->tail;
 	rem /= 4;
-	while (rem--)
-		bus_space_write_4(ringbuf->bst, ringbuf->bsh, tail++, MI_NOOP);
+	for (; rem --> 0; tail += 4)
+		bus_space_write_4(ringbuf->bst, ringbuf->bsh, tail, MI_NOOP);
 #else
 	uint32_t __iomem *virt;
 	int rem = ringbuf->size - ringbuf->tail;



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:52:40 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_gem_gtt.c

Log Message:
Zero the scratch page.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 \
src/sys/external/bsd/drm2/dist/drm/i915/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/dist/drm/i915/i915_gem_gtt.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c:1.12 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c:1.13
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c:1.12	Mon Aug 27 14:49:39 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c	Mon Aug 27 14:52:40 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gem_gtt.c,v 1.12 2018/08/27 14:49:39 riastradh Exp $	*/
+/*	$NetBSD: i915_gem_gtt.c,v 1.13 2018/08/27 14:52:40 riastradh Exp $	*/
 
 /*
  * Copyright © 2010 Daniel Vetter
@@ -26,7 +26,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.12 2018/08/27 14:49:39 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.13 2018/08/27 14:52:40 riastradh Exp $");
 
 #include 
 #include 
@@ -321,6 +321,9 @@ static gen6_pte_t iris_pte_encode(dma_ad
 	return pte;
 }
 
+static void *kmap_page_dma(struct i915_page_dma *);
+static void kunmap_page_dma(struct drm_device *, void *);
+
 static int __setup_page_dma(struct drm_device *dev,
 			struct i915_page_dma *p, gfp_t flags)
 {
@@ -354,6 +357,12 @@ fail2: __unused
 		bus_dmamap_destroy(dev->dmat, p->map);
 		goto fail1;
 	}
+
+	if (flags & __GFP_ZERO) {
+		void *va = kmap_page_dma(p);
+		memset(va, 0, PAGE_SIZE);
+		kunmap_page_dma(dev, va);
+	}
 #else
 	struct device *device = >pdev->dev;
 



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:51:55 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo:
nouveau_nvkm_engine_fifo_chan.c
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem:
nouveau_nvkm_subdev_instmem_nv40.c

Log Message:
Missed some spots of I/O byte ordering.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c
cvs rdiff -u -r1.4 -r1.5 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.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/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c:1.6 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c:1.6	Mon Aug 27 14:51:33 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c	Mon Aug 27 14:51:55 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.6 2018/08/27 14:51:33 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.7 2018/08/27 14:51:55 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.6 2018/08/27 14:51:33 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.7 2018/08/27 14:51:55 riastradh Exp $");
 
 #include "chan.h"
 
@@ -333,7 +333,7 @@ nvkm_fifo_chan_wr32(struct nvkm_object *
 	if (unlikely(addr + 4 > chan->size))
 		return -EINVAL;
 #ifdef __NetBSD__
-	bus_space_write_4(chan->bst, chan->bsh, addr, data);
+	bus_space_write_stream_4(chan->bst, chan->bsh, addr, data);
 #else
 	iowrite32_native(data, chan->user + addr);
 #endif

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c:1.4	Mon Aug 27 14:51:33 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c	Mon Aug 27 14:51:55 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.4 2018/08/27 14:51:33 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.5 2018/08/27 14:51:55 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.4 2018/08/27 14:51:33 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.5 2018/08/27 14:51:55 riastradh Exp $");
 
 #define nv40_instmem(p) container_of((p), struct nv40_instmem, base)
 #include "priv.h"
@@ -168,7 +168,7 @@ nv40_instmem_rd32(struct nvkm_instmem *b
 {
 #ifdef __NetBSD__
 	struct nv40_instmem *imem = nv40_instmem(base);
-	return bus_space_read_4(imem->iomemt, imem->iomemh, addr);
+	return bus_space_read_stream_4(imem->iomemt, imem->iomemh, addr);
 #else
 	return ioread32_native(nv40_instmem(base)->iomem + addr);
 #endif
@@ -179,7 +179,7 @@ nv40_instmem_wr32(struct nvkm_instmem *b
 {
 #ifdef __NetBSD__
 	struct nv40_instmem *imem = nv40_instmem(base);
-	bus_space_write_4(imem->iomemt, imem->iomemh, addr, data);
+	bus_space_write_stream_4(imem->iomemt, imem->iomemh, addr, data);
 #else
 	iowrite32_native(data, nv40_instmem(base)->iomem + addr);
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:51:34 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_bo.c
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core:
nouveau_nvkm_core_gpuobj.c
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device:
nouveau_nvkm_engine_device_base.c
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo:
nouveau_nvkm_engine_fifo_chan.c
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit: fbmem.h
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem:
nouveau_nvkm_subdev_instmem_base.c
nouveau_nvkm_subdev_instmem_nv40.c
src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo_util.c

Log Message:
Be consistent about I/O byte ordering.

Leave XXX comments where it's not clear what we should do.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c
cvs rdiff -u -r1.3 -r1.4 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_gpuobj.c
cvs rdiff -u -r1.7 -r1.8 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c
cvs rdiff -u -r1.5 -r1.6 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit/fbmem.h
cvs rdiff -u -r1.3 -r1.4 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_base.c
 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.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/dist/drm/nouveau/nouveau_bo.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c:1.10 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c:1.11
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c:1.10	Mon Aug 27 07:32:40 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c	Mon Aug 27 14:51:33 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_bo.c,v 1.10 2018/08/27 07:32:40 riastradh Exp $	*/
+/*	$NetBSD: nouveau_bo.c,v 1.11 2018/08/27 14:51:33 riastradh Exp $	*/
 
 /*
  * Copyright 2007 Dave Airlied
@@ -30,7 +30,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_bo.c,v 1.10 2018/08/27 07:32:40 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_bo.c,v 1.11 2018/08/27 14:51:33 riastradh Exp $");
 
 #include 
 #include 
@@ -551,7 +551,7 @@ ioread16_native(const void __iomem *ptr)
 	v = *(const uint16_t __iomem *)ptr;
 	membar_consumer();
 
-	return htole16(v);
+	return v;
 }
 
 static inline uint32_t
@@ -562,7 +562,7 @@ ioread32_native(const void __iomem *ptr)
 	v = *(const uint32_t __iomem *)ptr;
 	membar_consumer();
 
-	return htole32(v);
+	return v;
 }
 
 static inline void
@@ -570,7 +570,7 @@ iowrite16_native(uint16_t v, void __iome
 {
 
 	membar_producer();
-	*(uint16_t __iomem *)ptr = le16toh(v);
+	*(uint16_t __iomem *)ptr = v;
 }
 
 static inline void
@@ -578,7 +578,7 @@ iowrite32_native(uint32_t v, void __iome
 {
 
 	membar_producer();
-	*(uint32_t __iomem *)ptr = le32toh(v);
+	*(uint32_t __iomem *)ptr = v;
 }
 #endif
 

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_gpuobj.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_gpuobj.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_gpuobj.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_gpuobj.c:1.3	Mon Aug 27 07:36:18 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_gpuobj.c	Mon Aug 27 14:51:33 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvkm_core_gpuobj.c,v 1.3 2018/08/27 07:36:18 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvkm_core_gpuobj.c,v 1.4 2018/08/27 14:51:33 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -24,7 +24,7 @@
  * Authors: Ben Skeggs
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_core_gpuobj.c,v 1.3 2018/08/27 07:36:18 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_core_gpuobj.c,v 1.4 2018/08/27 14:51:33 riastradh Exp $");
 
 #include 
 #include 
@@ -46,7 +46,7 @@ __KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm
 #  define	iowrite32_native	fake_iowrite32_native
 
 static inline uint32_t
-fake_ioread32_native(const void __iomem *ptr)
+ioread32_native(const void __iomem *ptr)
 {
 	uint32_t v;
 
@@ -57,7 +57,7 @@ fake_ioread32_native(const void __iomem 
 }
 
 static inline void
-fake_iowrite32_native(uint32_t v, void __iomem *ptr)
+iowrite32_native(uint32_t v, void __iomem *ptr)
 {
 
 	membar_producer();

Index: 

CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:50:04 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_cmd_parser.c i915_gem.c
i915_gem_render_state.c

Log Message:
Handle uvm object reference counts in uvm_map more carefully.

Acquire a reference unconditionally first; then let uvm_map consume
it on success, and release it ourselves on failure.

As we did before -- acquiring a fresh reference on success -- another
thread might release the reference with a concurrent uvm_unmap before
we could acquire it back, thereby destroying the object.

XXX pullup-7 in part (i915_gem_fault)
XXX pullup-8 in part (i915_gem_fault)


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c
cvs rdiff -u -r1.52 -r1.53 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c
cvs rdiff -u -r1.8 -r1.9 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_render_state.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/dist/drm/i915/i915_cmd_parser.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c:1.16 src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c:1.17
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c:1.16	Mon Aug 27 14:46:38 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c	Mon Aug 27 14:50:04 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_cmd_parser.c,v 1.16 2018/08/27 14:46:38 riastradh Exp $	*/
+/*	$NetBSD: i915_cmd_parser.c,v 1.17 2018/08/27 14:50:04 riastradh Exp $	*/
 
 /*
  * Copyright © 2013 Intel Corporation
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_cmd_parser.c,v 1.16 2018/08/27 14:46:38 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_cmd_parser.c,v 1.17 2018/08/27 14:50:04 riastradh Exp $");
 
 #include "i915_drv.h"
 
@@ -928,16 +928,18 @@ static u32 *copy_batch(struct drm_i915_g
 	- srcstart;
 	vaddr_t srcva = 0;	/* hint */
 
+	/* Acquire a reference for uvm_map to consume.  */
+	uao_reference(src_obj->base.filp);
+
 	/* XXX errno NetBSD->Linux */
 	ret = -uvm_map(kernel_map, , srclen, src_obj->base.filp,
 	srcstart, PAGE_SIZE, UVM_MAPFLAG(UVM_PROT_RW, UVM_PROT_RW,
 		UVM_INH_NONE, UVM_ADV_SEQUENTIAL, UVM_FLAG_NOWAIT));
 	if (ret) {
+		uao_detach(src_obj->base.filp);
 		DRM_DEBUG_DRIVER("CMD: Failed to vmap batch: %d\n", ret);
 		goto unpin_src;
 	}
-	/* uvm_map consumes caller's reference on success.  */
-	uao_reference(src_obj->base.filp);
 	src_base = (const void *)srcva;
 #else
 	src_base = vmap_batch(src_obj, batch_start_offset, batch_len);
@@ -959,16 +961,18 @@ static u32 *copy_batch(struct drm_i915_g
 	const u32 dstlen = roundup(0 + batch_len, PAGE_SIZE) - dststart;
 	vaddr_t dstva = 0;	/* hint */
 
+	/* Acquire a reference for uvm_map to consume.  */
+	uao_reference(dest_obj->base.filp);
+
 	/* XXX errno NetBSD->Linux */
 	ret = -uvm_map(kernel_map, , dstlen, dest_obj->base.filp,
 	dststart, PAGE_SIZE, UVM_MAPFLAG(UVM_PROT_RW, UVM_PROT_RW,
 		UVM_INH_NONE, UVM_ADV_SEQUENTIAL, UVM_FLAG_NOWAIT));
 	if (ret) {
+		uao_detach(dest_obj->base.filp);
 		DRM_DEBUG_DRIVER("CMD: Failed to vmap shadow batch: %d\n", ret);
 		goto unmap_src;
 	}
-	/* uvm_map consumes caller's reference on success.  */
-	uao_reference(dest_obj->base.filp);
 	dst = (void *)dstva;
 #else
 	dst = vmap_batch(dest_obj, 0, batch_len);

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.52 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.53
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.52	Mon Aug 27 14:47:02 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Mon Aug 27 14:50:04 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gem.c,v 1.52 2018/08/27 14:47:02 riastradh Exp $	*/
+/*	$NetBSD: i915_gem.c,v 1.53 2018/08/27 14:50:04 riastradh Exp $	*/
 
 /*
  * Copyright © 2008-2015 Intel Corporation
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_gem.c,v 1.52 2018/08/27 14:47:02 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gem.c,v 1.53 2018/08/27 14:50:04 riastradh Exp $");
 
 #ifdef __NetBSD__
 #if 0/* XXX uvmhist option?  */
@@ -1956,6 +1956,8 @@ i915_gem_mmap_ioctl(struct drm_device *d
 	}
 
 #ifdef __NetBSD__
+	/* Acquire a reference for uvm_map to consume.  */
+	uao_reference(obj->filp);
 	addr = (*curproc->p_emul->e_vm_default_addr)(curproc,
 	(vaddr_t)curproc->p_vmspace->vm_daddr, args->size,
 	curproc->p_vmspace->vm_map.flags & VM_MAP_TOPDOWN);
@@ -1966,10 +1968,10 @@ i915_gem_mmap_ioctl(struct drm_device *d
 		(VM_PROT_READ | VM_PROT_WRITE), UVM_INH_COPY, UVM_ADV_NORMAL,
 		0));
 	if (ret) {
+		uao_detach(obj->filp);
 		drm_gem_object_unreference_unlocked(obj);
 		return ret;
 	}
-	uao_reference(obj->filp);
 	drm_gem_object_unreference_unlocked(obj);
 #else
 	addr = 

CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:49:39 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_gem_gtt.c

Log Message:
Pass waitok/nowait flags to bus_dma.  Use boundary=0.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
src/sys/external/bsd/drm2/dist/drm/i915/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/dist/drm/i915/i915_gem_gtt.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c:1.11 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c:1.12
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c:1.11	Mon Aug 27 07:17:35 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_gtt.c	Mon Aug 27 14:49:39 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gem_gtt.c,v 1.11 2018/08/27 07:17:35 riastradh Exp $	*/
+/*	$NetBSD: i915_gem_gtt.c,v 1.12 2018/08/27 14:49:39 riastradh Exp $	*/
 
 /*
  * Copyright © 2010 Daniel Vetter
@@ -26,7 +26,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.11 2018/08/27 07:17:35 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gem_gtt.c,v 1.12 2018/08/27 14:49:39 riastradh Exp $");
 
 #include 
 #include 
@@ -325,24 +325,30 @@ static int __setup_page_dma(struct drm_d
 			struct i915_page_dma *p, gfp_t flags)
 {
 #ifdef __NetBSD__
+	int busdmaflags = 0;
 	int error;
 	int nseg = 1;
 
-	error = bus_dmamem_alloc(dev->dmat, PAGE_SIZE, PAGE_SIZE, PAGE_SIZE,
-	>seg, nseg, , BUS_DMA_WAITOK);
+	if (flags & __GFP_WAIT)
+		busdmaflags |= BUS_DMA_WAITOK;
+	else
+		busdmaflags |= BUS_DMA_NOWAIT;
+
+	error = bus_dmamem_alloc(dev->dmat, PAGE_SIZE, PAGE_SIZE, 0, >seg,
+	nseg, , busdmaflags);
 	if (error) {
 fail0:		p->map = NULL;
 		return -error;	/* XXX errno NetBSD->Linux */
 	}
 	KASSERT(nseg == 1);
-	error = bus_dmamap_create(dev->dmat, PAGE_SIZE, 1, PAGE_SIZE,
-	PAGE_SIZE, BUS_DMA_WAITOK, >map);
+	error = bus_dmamap_create(dev->dmat, PAGE_SIZE, 1, PAGE_SIZE, 0,
+	busdmaflags, >map);
 	if (error) {
 fail1:		bus_dmamem_free(dev->dmat, >seg, 1);
 		goto fail0;
 	}
 	error = bus_dmamap_load_raw(dev->dmat, p->map, >seg, 1, PAGE_SIZE,
-	BUS_DMA_WAITOK);
+	busdmaflags);
 	if (error) {
 fail2: __unused
 		bus_dmamap_destroy(dev->dmat, p->map);



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:49:05 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_gpu_error.c

Log Message:
Lock around use of irq_queue.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.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/dist/drm/i915/i915_gpu_error.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c:1.8 src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c:1.8	Mon Aug 27 07:09:28 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c	Mon Aug 27 14:49:05 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gpu_error.c,v 1.8 2018/08/27 07:09:28 riastradh Exp $	*/
+/*	$NetBSD: i915_gpu_error.c,v 1.9 2018/08/27 14:49:05 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2008 Intel Corporation
@@ -30,7 +30,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_gpu_error.c,v 1.8 2018/08/27 07:09:28 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gpu_error.c,v 1.9 2018/08/27 14:49:05 riastradh Exp $");
 
 #include 
 
@@ -929,8 +929,10 @@ static void i915_record_ring_state(struc
 	}
 
 #ifdef __NetBSD__
+	spin_lock(_priv->irq_lock);
 	ering->waiting = DRM_SPIN_WAITERS_P(>irq_queue,
 	_priv->irq_lock);
+	spin_unlock(_priv->irq_lock);
 #else
 	ering->waiting = waitqueue_active(>irq_queue);
 #endif



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:48:21 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_chan.c
nouveau_nv50_display.c
src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv04:
nouveau_dispnv04_disp.c
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif: object.h

Log Message:
Mark nvif_object_map __must_check and fix fallout noisily.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_chan.c
cvs rdiff -u -r1.9 -r1.10 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_disp.c
cvs rdiff -u -r1.7 -r1.8 \
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h

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/dist/drm/nouveau/nouveau_chan.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_chan.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_chan.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_chan.c:1.4	Mon Aug 27 07:31:51 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_chan.c	Mon Aug 27 14:48:21 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_chan.c,v 1.4 2018/08/27 07:31:51 riastradh Exp $	*/
+/*	$NetBSD: nouveau_chan.c,v 1.5 2018/08/27 14:48:21 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -25,7 +25,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_chan.c,v 1.4 2018/08/27 07:31:51 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_chan.c,v 1.5 2018/08/27 14:48:21 riastradh Exp $");
 
 #include 
 #include 
@@ -305,7 +305,11 @@ nouveau_channel_init(struct nouveau_chan
 	struct nv_dma_v0 args = zero_args;
 	int ret, i;
 
-	nvif_object_map(>user);
+	ret = nvif_object_map(>user);
+	if (ret) {
+		NV_PRINTK(err, cli, "nvif_object_map, %d\n", ret);
+		return ret;
+	}
 
 	/* allocate dma objects to cover all allowed vram, and gart */
 	if (device->info.family < NV_DEVICE_INFO_V0_FERMI) {

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c:1.9 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c:1.10
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c:1.9	Mon Aug 27 07:38:26 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c	Mon Aug 27 14:48:21 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nv50_display.c,v 1.9 2018/08/27 07:38:26 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nv50_display.c,v 1.10 2018/08/27 14:48:21 riastradh Exp $	*/
 
 /*
  * Copyright 2011 Red Hat Inc.
@@ -25,7 +25,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nv50_display.c,v 1.9 2018/08/27 07:38:26 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nv50_display.c,v 1.10 2018/08/27 14:48:21 riastradh Exp $");
 
 #include 
 #include 
@@ -107,8 +107,15 @@ nv50_chan_create(struct nvif_device *dev
 			if (sclass[i].oclass == oclass[0]) {
 ret = nvif_object_init(disp, 0, oclass[0],
 		   data, size, >user);
-if (ret == 0)
-	nvif_object_map(>user);
+if (ret == 0) {
+	ret = nvif_object_map(>user);
+	if (ret) {
+		printk(KERN_ERR "%s:%d"
+		": nvif_object_map, %d\n",
+		__func__, __LINE__, ret);
+		nvif_object_fini(>user);
+	}
+}
 nvif_object_sclass_put();
 return ret;
 			}

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_disp.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_disp.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_disp.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_disp.c:1.3	Mon Aug 27 04:58:29 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_disp.c	Mon Aug 27 14:48:21 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_dispnv04_disp.c,v 1.3 2018/08/27 04:58:29 riastradh Exp $	*/
+/*	$NetBSD: nouveau_dispnv04_disp.c,v 1.4 2018/08/27 14:48:21 riastradh Exp $	*/
 
 /*
  * Copyright 2009 Red Hat Inc.
@@ -25,7 +25,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv04_disp.c,v 1.3 2018/08/27 04:58:29 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv04_disp.c,v 1.4 2018/08/27 14:48:21 riastradh Exp $");
 
 #include 
 
@@ -54,7 +54,11 @@ nv04_display_create(struct drm_device *d
 	if (!disp)
 		return -ENOMEM;
 
-	nvif_object_map(>device.object);
+	ret = nvif_object_map(>device.object);
+	if (ret) {
+		NV_ERROR(drm, "nvif_object_map, %d\n", ret);
+		return ret;
+	}
 
 	nouveau_display(dev)->priv = disp;
 	nouveau_display(dev)->dtor = nv04_display_destroy;

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h
diff -u 

CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:47:53 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_drm.c
nouveau_nvif.c
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif: driver.h
object.h
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core: client.h
device.h
src/sys/external/bsd/drm2/dist/drm/nouveau/nvif: nouveau_nvif_object.c
src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device:
nouveau_nvkm_engine_device_base.c

Log Message:
Allow nvkm_client_map to map subregions.

Linux ioremap does not care about overlapping mapped regions, but
bus_space_map does.  Since nouveau ioremaps the entire register space
of BAR 0, and separately some subregions of it, we need to convey the
bus addresses in question to it in order to bus_space_subregion.

Kinda kludgey, but we don't care about running this in userland or
anything.

While here: initialize object->map.tag.  Not physically necessary on
x86 as long as the x86_io_mem_tag is nonull, so this won't fix any
symptoms on x86, but it is wrong to leave it null.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nvif.c
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/driver.h
cvs rdiff -u -r1.6 -r1.7 \
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/client.h
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/core/device.h
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nvif/nouveau_nvif_object.c
cvs rdiff -u -r1.6 -r1.7 \

src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.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/dist/drm/nouveau/nouveau_drm.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c:1.13 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c:1.14
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c:1.13	Mon Aug 27 14:19:08 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c	Mon Aug 27 14:47:53 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_drm.c,v 1.13 2018/08/27 14:19:08 riastradh Exp $	*/
+/*	$NetBSD: nouveau_drm.c,v 1.14 2018/08/27 14:47:53 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -25,7 +25,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_drm.c,v 1.13 2018/08/27 14:19:08 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_drm.c,v 1.14 2018/08/27 14:47:53 riastradh Exp $");
 
 #include 
 #include 
@@ -467,6 +467,18 @@ nouveau_drm_load(struct drm_device *dev,
 		nvxx_client(>client.base)->vm = drm->client.vm;
 	}
 
+#ifdef __NetBSD__
+{
+	/* XXX Kludge to make register subregion mapping work.  */
+	struct nvkm_client *client = nvxx_client(>client.base);
+	struct nvkm_device *device = nvxx_device(>device);
+	client->mmiot = device->mmiot;
+	client->mmioh = device->mmioh;
+	client->mmioaddr = device->mmioaddr;
+	client->mmiosz = device->mmiosz;
+}
+#endif
+
 	ret = nouveau_ttm_init(drm);
 	if (ret)
 		goto fail_ttm;

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nvif.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nvif.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nvif.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nvif.c:1.3	Mon Aug 27 07:35:56 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nvif.c	Mon Aug 27 14:47:53 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nvif.c,v 1.3 2018/08/27 07:35:56 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nvif.c,v 1.4 2018/08/27 14:47:53 riastradh Exp $	*/
 
 /*
  * Copyright 2014 Red Hat Inc.
@@ -29,7 +29,7 @@
  **/
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nvif.c,v 1.3 2018/08/27 07:35:56 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nvif.c,v 1.4 2018/08/27 14:47:53 riastradh Exp $");
 
 #include 
 #include 
@@ -50,8 +50,25 @@ static int
 nvkm_client_map(void *priv, bus_space_tag_t tag, u64 busaddr, u32 size,
 bus_space_handle_t *handlep, void __iomem **ptrp)
 {
+	struct nvkm_client *client = nvxx_client(priv);
 	int ret;
 
+	if (tag == client->mmiot &&
+	client->mmioaddr <= busaddr &&
+	busaddr - client->mmioaddr <= client->mmiosz) {
+		const bus_size_t offset = busaddr - client->mmioaddr;
+		if (size > client->mmiosz - offset) {
+			DRM_ERROR("Invalid register access\n");
+			return -EFAULT;
+		}
+		ret = -bus_space_subregion(client->mmiot, client->mmioh,
+		offset, size, handlep);
+		if 

CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:47:29 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif: object.h

Log Message:
Let's not truncate registers to 8-bit when we read them, shall we?


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h

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/dist/drm/nouveau/include/nvif/object.h
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h:1.5 src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h:1.6
--- src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h:1.5	Mon Aug 27 14:47:16 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h	Mon Aug 27 14:47:29 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: object.h,v 1.5 2018/08/27 14:47:16 riastradh Exp $	*/
+/*	$NetBSD: object.h,v 1.6 2018/08/27 14:47:29 riastradh Exp $	*/
 
 #ifndef __NVIF_OBJECT_H__
 #define __NVIF_OBJECT_H__
@@ -60,7 +60,7 @@ nvif_rd08(struct nvif_object *obj, uint6
 	else
 		return nvif_object_rd(obj, 1, offset);
 }
-static inline uint8_t
+static inline uint16_t
 nvif_rd16(struct nvif_object *obj, uint64_t offset)
 {
 	if (obj->map.ptr)
@@ -69,7 +69,7 @@ nvif_rd16(struct nvif_object *obj, uint6
 	else
 		return nvif_object_rd(obj, 2, offset);
 }
-static inline uint8_t
+static inline uint32_t
 nvif_rd32(struct nvif_object *obj, uint64_t offset)
 {
 	if (obj->map.ptr)



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:47:02 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_dma.c i915_drv.h
i915_gem.c

Log Message:
Work around ioctl ABI mistake in i915 drm.

A flags argument was added to the I915_GEM_MMAP ioctl.  The version
of xf86-video-intel we imported was compiled to use the new ioctl
structure including the flags argument, but without initializing the
flags argument, so it would be userland stack garbage causing
i915_gem_mmap_ioctl to fail.

Newer xf86-video-intel will query the mmap version first before
trying to use either the older ioctl structure, with the original
shorter argument and thus no stack garbage (which will be padded with
to the full length in the kernel by drm_ioctl), or the newer ioctl
structure, with the argument initialized.

libdrm does not appear to be affected by this -- it zeroes the longer
structure before passing it in.

Patch from mrg@, diagnosis and explanation by me.


To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c \
src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h
cvs rdiff -u -r1.51 -r1.52 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.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/dist/drm/i915/i915_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.23 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.24
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.23	Mon Aug 27 13:43:39 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Mon Aug 27 14:47:02 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_dma.c,v 1.23 2018/08/27 13:43:39 riastradh Exp $	*/
+/*	$NetBSD: i915_dma.c,v 1.24 2018/08/27 14:47:02 riastradh Exp $	*/
 
 /* i915_dma.c -- DMA support for the I915 -*- linux-c -*-
  */
@@ -29,7 +29,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_dma.c,v 1.23 2018/08/27 13:43:39 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_dma.c,v 1.24 2018/08/27 14:47:02 riastradh Exp $");
 
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
@@ -160,6 +160,9 @@ static int i915_getparam(struct drm_devi
 		value = 1;
 		break;
 	case I915_PARAM_MMAP_VERSION:
+#ifdef __NetBSD__
+		dev_priv->quirks |= QUIRK_NETBSD_VERSION_CALLED;
+#endif
 		value = 1;
 		break;
 	case I915_PARAM_SUBSLICE_TOTAL:
Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.23 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.24
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.23	Mon Aug 27 13:43:39 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h	Mon Aug 27 14:47:02 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_drv.h,v 1.23 2018/08/27 13:43:39 riastradh Exp $	*/
+/*	$NetBSD: i915_drv.h,v 1.24 2018/08/27 14:47:02 riastradh Exp $	*/
 
 /* i915_drv.h -- Private header for the I915 driver -*- linux-c -*-
  */
@@ -1042,6 +1042,11 @@ enum intel_sbi_destination {
 #define QUIRK_PIPEB_FORCE (1<<4)
 #define QUIRK_PIN_SWIZZLED_PAGES (1<<5)
 
+#ifdef __NetBSD__
+/* NetBSD hack to note version was called and thus mmap flags valid. */
+#define QUIRK_NETBSD_VERSION_CALLED (1ul<<31)
+#endif
+
 struct intel_fbdev;
 struct intel_fbc_work;
 

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.51 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.52
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.51	Mon Aug 27 14:44:46 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Mon Aug 27 14:47:02 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gem.c,v 1.51 2018/08/27 14:44:46 riastradh Exp $	*/
+/*	$NetBSD: i915_gem.c,v 1.52 2018/08/27 14:47:02 riastradh Exp $	*/
 
 /*
  * Copyright © 2008-2015 Intel Corporation
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_gem.c,v 1.51 2018/08/27 14:44:46 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gem.c,v 1.52 2018/08/27 14:47:02 riastradh Exp $");
 
 #ifdef __NetBSD__
 #if 0/* XXX uvmhist option?  */
@@ -1930,7 +1930,11 @@ i915_gem_mmap_ioctl(struct drm_device *d
 	struct drm_gem_object *obj;
 	unsigned long addr;
 #ifdef __NetBSD__
+	struct drm_i915_private *dev_priv = dev->dev_private;
 	int ret;
+
+	if ((dev_priv->quirks & QUIRK_NETBSD_VERSION_CALLED) == 0)
+		args->flags = 0;
 #endif
 
 	if (args->flags & ~(I915_MMAP_WC))



CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:47:16 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif: object.h

Log Message:
Use bus_space now that we have the tag and handle.

Fix possible byte order issue while here.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h

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/dist/drm/nouveau/include/nvif/object.h
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h:1.5
--- src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h:1.4	Mon Aug 27 07:35:56 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h	Mon Aug 27 14:47:16 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: object.h,v 1.4 2018/08/27 07:35:56 riastradh Exp $	*/
+/*	$NetBSD: object.h,v 1.5 2018/08/27 14:47:16 riastradh Exp $	*/
 
 #ifndef __NVIF_OBJECT_H__
 #define __NVIF_OBJECT_H__
@@ -14,51 +14,6 @@ struct nvif_sclass {
 #ifdef __NetBSD__
 #  define	__nvif_iomem	volatile
 #  define	__iomem		__nvif_iomem
-#  define	ioread8		nvif_object_ioread8
-#  define	ioread16	nvif_object_ioread32
-#  define	ioread32	nvif_object_ioread16
-#  define	iowrite8	nvif_object_iowrite8
-#  define	iowrite16	nvif_object_iowrite16
-#  define	iowrite32	nvif_object_iowrite32
-static inline uint8_t
-ioread8(const void __iomem *p)
-{
-	uint8_t v = *(const uint8_t __iomem *)p;
-	membar_consumer();
-	return v;
-}
-static inline uint8_t
-ioread16(const void __iomem *p)
-{
-	uint16_t v = *(const uint16_t __iomem *)p;
-	membar_consumer();
-	return v;
-}
-static inline uint8_t
-ioread32(const void __iomem *p)
-{
-	uint32_t v = *(const uint32_t __iomem *)p;
-	membar_consumer();
-	return v;
-}
-static inline void
-iowrite8(uint8_t v, void __iomem *p)
-{
-	membar_producer();
-	*(uint8_t __iomem *)p = v;
-}
-static inline void
-iowrite16(uint16_t v, void __iomem *p)
-{
-	membar_producer();
-	*(uint16_t __iomem *)p = v;
-}
-static inline void
-iowrite32(uint32_t v, void __iomem *p)
-{
-	membar_producer();
-	*(uint32_t __iomem *)p = v;
-}
 #endif
 
 struct nvif_object {
@@ -76,6 +31,10 @@ struct nvif_object {
 	} map;
 };
 
+#ifdef __NetBSD__
+#  undef	__iomem
+#endif
+
 int  nvif_object_init(struct nvif_object *, u32 handle, s32 oclass, void *, u32,
 		  struct nvif_object *);
 void nvif_object_fini(struct nvif_object *);
@@ -91,55 +50,77 @@ void nvif_object_unmap(struct nvif_objec
 #define nvif_handle(a) (unsigned long)(void *)(a)
 #define nvif_object(a) (a)->object
 
-#define nvif_rd(a,f,b,c) ({\
-	struct nvif_object *_object = (a); \
-	u32 _data; \
-	if (likely(_object->map.ptr))  \
-		_data = f((u8 __iomem *)_object->map.ptr + (c));   \
-	else   \
-		_data = nvif_object_rd(_object, (b), (c)); \
-	_data; \
-})
-#define nvif_wr(a,f,b,c,d) ({  \
-	struct nvif_object *_object = (a); \
-	if (likely(_object->map.ptr))  \
-		f((d), (u8 __iomem *)_object->map.ptr + (c));  \
-	else   \
-		nvif_object_wr(_object, (b), (c), (d));\
-})
 #ifdef __NetBSD__
-/* Force expansion now.  */
 static inline uint8_t
 nvif_rd08(struct nvif_object *obj, uint64_t offset)
 {
-	return nvif_rd(obj, ioread8, 1, offset);
+	if (obj->map.ptr)
+		return bus_space_read_1(obj->map.tag, obj->map.handle,
+		offset);
+	else
+		return nvif_object_rd(obj, 1, offset);
 }
 static inline uint8_t
 nvif_rd16(struct nvif_object *obj, uint64_t offset)
 {
-	return nvif_rd(obj, ioread16, 2, offset);
+	if (obj->map.ptr)
+		return bus_space_read_stream_2(obj->map.tag, obj->map.handle,
+		offset);
+	else
+		return nvif_object_rd(obj, 2, offset);
 }
 static inline uint8_t
 nvif_rd32(struct nvif_object *obj, uint64_t offset)
 {
-	return nvif_rd(obj, ioread32, 4, offset);
+	if (obj->map.ptr)
+		return bus_space_read_stream_4(obj->map.tag, obj->map.handle,
+		offset);
+	else
+		return nvif_object_rd(obj, 4, offset);
 }
 static inline void
 nvif_wr08(struct nvif_object *obj, uint64_t offset, uint8_t v)
 {
-	nvif_wr(obj, iowrite8, 1, offset, v);
+	if (obj->map.ptr)
+		bus_space_write_1(obj->map.tag, obj->map.handle, offset, v);
+	else
+		nvif_object_wr(obj, 1, offset, v);
 }
 static inline void
 nvif_wr16(struct nvif_object *obj, uint64_t offset, 

CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:46:10 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_cmd_parser.c

Log Message:
Use kcopy, not memcpy, in case of failure to page in dst.  From chs@.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.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/dist/drm/i915/i915_cmd_parser.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c:1.14 src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c:1.15
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c:1.14	Mon Aug 27 14:45:57 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c	Mon Aug 27 14:46:10 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_cmd_parser.c,v 1.14 2018/08/27 14:45:57 riastradh Exp $	*/
+/*	$NetBSD: i915_cmd_parser.c,v 1.15 2018/08/27 14:46:10 riastradh Exp $	*/
 
 /*
  * Copyright © 2013 Intel Corporation
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_cmd_parser.c,v 1.14 2018/08/27 14:45:57 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_cmd_parser.c,v 1.15 2018/08/27 14:46:10 riastradh Exp $");
 
 #include "i915_drv.h"
 
@@ -983,7 +983,15 @@ static u32 *copy_batch(struct drm_i915_g
 	if (needs_clflush)
 		drm_clflush_virt_range(src, batch_len);
 
+#ifdef __NetBSD__
+	ret = -kcopy(dst, src, batch_len);
+	if (ret) {
+		uvm_unmap(kernel_map, dstva, dstva + dstlen);
+		goto unmap_src;
+	}
+#else
 	memcpy(dst, src, batch_len);
+#endif
 
 unmap_src:
 #ifdef __NetBSD__



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:46:38 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_cmd_parser.c

Log Message:
Fix order of arguments to kcopy.  @#&!$!*#

Add const qualifiers to src to compiler will detect this.


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.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/dist/drm/i915/i915_cmd_parser.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c:1.15 src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c:1.16
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c:1.15	Mon Aug 27 14:46:10 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c	Mon Aug 27 14:46:38 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_cmd_parser.c,v 1.15 2018/08/27 14:46:10 riastradh Exp $	*/
+/*	$NetBSD: i915_cmd_parser.c,v 1.16 2018/08/27 14:46:38 riastradh Exp $	*/
 
 /*
  * Copyright © 2013 Intel Corporation
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_cmd_parser.c,v 1.15 2018/08/27 14:46:10 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_cmd_parser.c,v 1.16 2018/08/27 14:46:38 riastradh Exp $");
 
 #include "i915_drv.h"
 
@@ -905,7 +905,7 @@ static u32 *copy_batch(struct drm_i915_g
 		   u32 batch_len)
 {
 	int needs_clflush = 0;
-	void *src_base, *src;
+	const void *src_base, *src;
 	void *dst = NULL;
 	int ret;
 
@@ -938,7 +938,7 @@ static u32 *copy_batch(struct drm_i915_g
 	}
 	/* uvm_map consumes caller's reference on success.  */
 	uao_reference(src_obj->base.filp);
-	src_base = (void *)srcva;
+	src_base = (const void *)srcva;
 #else
 	src_base = vmap_batch(src_obj, batch_start_offset, batch_len);
 	if (!src_base) {
@@ -979,12 +979,12 @@ static u32 *copy_batch(struct drm_i915_g
 	}
 #endif
 
-	src = (char *)src_base + offset_in_page(batch_start_offset);
+	src = (const char *)src_base + offset_in_page(batch_start_offset);
 	if (needs_clflush)
 		drm_clflush_virt_range(src, batch_len);
 
 #ifdef __NetBSD__
-	ret = -kcopy(dst, src, batch_len);
+	ret = -kcopy(src, dst, batch_len);
 	if (ret) {
 		uvm_unmap(kernel_map, dstva, dstva + dstlen);
 		goto unmap_src;



CVS commit: src/sys/external/bsd/drm2/dist/drm/i915

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:45:57 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_cmd_parser.c

Log Message:
Forgot again to restore reference consumed by uvm_map.

Add missing errno comment while here.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.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/dist/drm/i915/i915_cmd_parser.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c:1.13 src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c:1.14
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c:1.13	Mon Aug 27 14:45:31 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_cmd_parser.c	Mon Aug 27 14:45:57 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_cmd_parser.c,v 1.13 2018/08/27 14:45:31 riastradh Exp $	*/
+/*	$NetBSD: i915_cmd_parser.c,v 1.14 2018/08/27 14:45:57 riastradh Exp $	*/
 
 /*
  * Copyright © 2013 Intel Corporation
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_cmd_parser.c,v 1.13 2018/08/27 14:45:31 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_cmd_parser.c,v 1.14 2018/08/27 14:45:57 riastradh Exp $");
 
 #include "i915_drv.h"
 
@@ -936,6 +936,8 @@ static u32 *copy_batch(struct drm_i915_g
 		DRM_DEBUG_DRIVER("CMD: Failed to vmap batch: %d\n", ret);
 		goto unpin_src;
 	}
+	/* uvm_map consumes caller's reference on success.  */
+	uao_reference(src_obj->base.filp);
 	src_base = (void *)srcva;
 #else
 	src_base = vmap_batch(src_obj, batch_start_offset, batch_len);
@@ -957,6 +959,7 @@ static u32 *copy_batch(struct drm_i915_g
 	const u32 dstlen = roundup(0 + batch_len, PAGE_SIZE) - dststart;
 	vaddr_t dstva = 0;	/* hint */
 
+	/* XXX errno NetBSD->Linux */
 	ret = -uvm_map(kernel_map, , dstlen, dest_obj->base.filp,
 	dststart, PAGE_SIZE, UVM_MAPFLAG(UVM_PROT_RW, UVM_PROT_RW,
 		UVM_INH_NONE, UVM_ADV_SEQUENTIAL, UVM_FLAG_NOWAIT));
@@ -964,6 +967,8 @@ static u32 *copy_batch(struct drm_i915_g
 		DRM_DEBUG_DRIVER("CMD: Failed to vmap shadow batch: %d\n", ret);
 		goto unmap_src;
 	}
+	/* uvm_map consumes caller's reference on success.  */
+	uao_reference(dest_obj->base.filp);
 	dst = (void *)dstva;
 #else
 	dst = vmap_batch(dest_obj, 0, batch_len);



CVS commit: src/sys/external/bsd/drm2/dist/drm

2018-08-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 27 14:45:46 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_ioctl.c

Log Message:
Zero-pad truncated drm ioctl commands on input.

This way we don't act on uninitialized stack garbage if user invokes
a drm ioctl with a short input, which, uhhh, we have been doing for a
long time.  #@^&*$!@&@#*@!

XXX pullup-7
XXX pullup-8


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/dist/drm/drm_ioctl.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/dist/drm/drm_ioctl.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.7 src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.7	Mon Aug 27 07:55:06 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c	Mon Aug 27 14:45:45 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_ioctl.c,v 1.7 2018/08/27 07:55:06 riastradh Exp $	*/
+/*	$NetBSD: drm_ioctl.c,v 1.8 2018/08/27 14:45:45 riastradh Exp $	*/
 
 /*
  * Created: Fri Jan  8 09:01:26 1999 by fa...@valinux.com
@@ -31,7 +31,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_ioctl.c,v 1.7 2018/08/27 07:55:06 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_ioctl.c,v 1.8 2018/08/27 14:45:45 riastradh Exp $");
 
 #include 
 #include 
@@ -721,6 +721,8 @@ static const struct drm_ioctl_desc drm_i
 int
 drm_ioctl(struct file *fp, unsigned long cmd, void *data)
 {
+	char stackbuf[128];
+	char *buf = stackbuf;
 	struct drm_file *const file = fp->f_data;
 	const unsigned int nr = DRM_IOCTL_NR(cmd);
 	int error;
@@ -767,6 +769,21 @@ drm_ioctl(struct file *fp, unsigned long
 	if (error)
 		return error;
 
+	/* If userland passed in too few bytes, zero-pad them.  */
+	if (IOCPARM_LEN(cmd) < IOCPARM_LEN(ioctl->cmd)) {
+		/* 12-bit quantity, according to  */
+		KASSERT(IOCPARM_LEN(ioctl->cmd) <= 4096);
+		if (IOCPARM_LEN(ioctl->cmd) > sizeof stackbuf) {
+			buf = kmem_alloc(IOCPARM_LEN(ioctl->cmd), KM_NOSLEEP);
+			if (buf == NULL)
+return ENOMEM;
+		}
+		memcpy(buf, data, IOCPARM_LEN(cmd));
+		memset(buf + IOCPARM_LEN(cmd), 0,
+		IOCPARM_LEN(ioctl->cmd) - IOCPARM_LEN(cmd));
+		data = buf;
+	}
+
 	if ((drm_core_check_feature(dev, DRIVER_MODESET) && is_driver_ioctl) ||
 	ISSET(ioctl->flags, DRM_UNLOCKED)) {
 		/* XXX errno Linux->NetBSD */
@@ -778,6 +795,10 @@ drm_ioctl(struct file *fp, unsigned long
 		mutex_unlock(_global_mutex);
 	}
 
+	/* If we had to allocate a heap buffer, free it.  */
+	if (buf != stackbuf)
+		kmem_free(buf, IOCPARM_LEN(ioctl->cmd));
+
 	return error;
 }
 #else



  1   2   3   4   5   6   >