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

2020-04-19 Thread Maya Rashish
Module Name:src
Committed By:   maya
Date:   Sun Apr 19 17:19:13 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_drv.c drm_probe_helper.c
src/sys/external/bsd/drm2/dist/include/drm: drmP.h

Log Message:
For drm drivers and on monitor hotplug, report a 'display-cycle' hotkey click

If powerd is running, it will invoke the script
/etc/powerd/actions/display-cycle


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/sys/external/bsd/drm2/dist/drm/drm_drv.c
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/drm_probe_helper.c
cvs rdiff -u -r1.39 -r1.40 src/sys/external/bsd/drm2/dist/include/drm/drmP.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/drm_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.13 src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.14
--- src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.13	Thu Mar  5 07:46:59 2020
+++ src/sys/external/bsd/drm2/dist/drm/drm_drv.c	Sun Apr 19 17:19:13 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_drv.c,v 1.13 2020/03/05 07:46:59 riastradh Exp $	*/
+/*	$NetBSD: drm_drv.c,v 1.14 2020/04/19 17:19:13 maya 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.13 2020/03/05 07:46:59 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_drv.c,v 1.14 2020/04/19 17:19:13 maya Exp $");
 
 #include 
 #include 
@@ -660,6 +660,14 @@ struct drm_device *drm_dev_alloc(struct 
 	kref_init(&dev->ref);
 	dev->dev = parent;
 	dev->driver = driver;
+#ifdef __NetBSD__
+	dev->sc_monitor_hotplug.smpsw_name = PSWITCH_HK_DISPLAY_CYCLE;
+	dev->sc_monitor_hotplug.smpsw_type = PSWITCH_TYPE_HOTKEY;
+
+	ret = sysmon_pswitch_register(&dev->sc_monitor_hotplug);
+	if (ret)
+		goto err_pswitch;
+#endif
 
 	INIT_LIST_HEAD(&dev->filelist);
 	INIT_LIST_HEAD(&dev->ctxlist);
@@ -727,6 +735,10 @@ err_free:
 	mutex_destroy(&dev->master_mutex);
 	mutex_destroy(&dev->ctxlist_mutex);
 	mutex_destroy(&dev->struct_mutex);
+#ifdef __NetBSD__
+err_pswitch:
+	sysmon_pswitch_unregister(&dev->sc_monitor_hotplug);
+#endif
 	kfree(dev);
 	return NULL;
 }
@@ -739,6 +751,10 @@ static void drm_dev_release(struct kref 
 	if (drm_core_check_feature(dev, DRIVER_GEM))
 		drm_gem_destroy(dev);
 
+#ifdef __NetBSD__
+	sysmon_pswitch_unregister(&dev->sc_monitor_hotplug);
+#endif
+
 	drm_legacy_ctxbitmap_cleanup(dev);
 	drm_ht_remove(&dev->map_hash);
 	drm_fs_inode_free(dev->anon_inode);

Index: src/sys/external/bsd/drm2/dist/drm/drm_probe_helper.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_probe_helper.c:1.4 src/sys/external/bsd/drm2/dist/drm/drm_probe_helper.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/drm_probe_helper.c:1.4	Fri Feb 14 14:34:57 2020
+++ src/sys/external/bsd/drm2/dist/drm/drm_probe_helper.c	Sun Apr 19 17:19:13 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_probe_helper.c,v 1.4 2020/02/14 14:34:57 maya Exp $	*/
+/*	$NetBSD: drm_probe_helper.c,v 1.5 2020/04/19 17:19:13 maya Exp $	*/
 
 /*
  * Copyright (c) 2006-2008 Intel Corporation
@@ -32,7 +32,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_probe_helper.c,v 1.4 2020/02/14 14:34:57 maya Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_probe_helper.c,v 1.5 2020/04/19 17:19:13 maya Exp $");
 
 #include 
 #include 
@@ -328,6 +328,9 @@ EXPORT_SYMBOL(drm_helper_probe_single_co
  */
 void drm_kms_helper_hotplug_event(struct drm_device *dev)
 {
+#ifdef __NetBSD__
+	sysmon_pswitch_event(&dev->sc_monitor_hotplug, PSWITCH_EVENT_PRESSED);
+#endif
 	/* send a uevent + call fbdev */
 	drm_sysfs_hotplug_event(dev);
 	if (dev->mode_config.funcs->output_poll_changed)

Index: src/sys/external/bsd/drm2/dist/include/drm/drmP.h
diff -u src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.39 src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.40
--- src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.39	Thu Mar  5 08:36:53 2020
+++ src/sys/external/bsd/drm2/dist/include/drm/drmP.h	Sun Apr 19 17:19:13 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: drmP.h,v 1.39 2020/03/05 08:36:53 riastradh Exp $	*/
+/*	$NetBSD: drmP.h,v 1.40 2020/04/19 17:19:13 maya Exp $	*/
 
 /*
  * Internal Header for the Direct Rendering Manager
@@ -903,6 +903,7 @@ struct drm_device {
 	int irq;
 #ifdef __NetBSD__
 	struct drm_bus_irq_cookie *irq_cookie;
+	struct sysmon_pswitch sc_monitor_hotplug;
 #endif
 
 	/*



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

2020-03-04 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Thu Mar  5 07:46:59 UTC 2020

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

Log Message:
Avoid struct inode.

This is an fs-independent structure in Linux.  We don't actually use
it as such; it's just a dummy struct tag.  But we do have an actual
struct inode in ufs and in lfs, and using the same struct tag here
confuses ctf leading to four copies of pretty much every drm data
structure.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/sys/external/bsd/drm2/dist/drm/drm_drv.c
cvs rdiff -u -r1.37 -r1.38 src/sys/external/bsd/drm2/dist/include/drm/drmP.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/drm_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.12 src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.13
--- src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.12	Fri Feb 14 14:34:57 2020
+++ src/sys/external/bsd/drm2/dist/drm/drm_drv.c	Thu Mar  5 07:46:59 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_drv.c,v 1.12 2020/02/14 14:34:57 maya Exp $	*/
+/*	$NetBSD: drm_drv.c,v 1.13 2020/03/05 07:46:59 riastradh 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.12 2020/02/14 14:34:57 maya Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_drv.c,v 1.13 2020/03/05 07:46:59 riastradh Exp $");
 
 #include 
 #include 
@@ -540,16 +540,14 @@ EXPORT_SYMBOL(drm_unplug_dev);
 
 #ifdef __NetBSD__
 
-struct inode;
-
-static struct inode *
+static void *
 drm_fs_inode_new(void)
 {
 	return NULL;
 }
 
 static void
-drm_fs_inode_free(struct inode *inode)
+drm_fs_inode_free(void *inode)
 {
 	KASSERT(inode == NULL);
 }

Index: src/sys/external/bsd/drm2/dist/include/drm/drmP.h
diff -u src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.37 src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.38
--- src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.37	Fri Feb 14 14:34:59 2020
+++ src/sys/external/bsd/drm2/dist/include/drm/drmP.h	Thu Mar  5 07:46:59 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: drmP.h,v 1.37 2020/02/14 14:34:59 maya Exp $	*/
+/*	$NetBSD: drmP.h,v 1.38 2020/03/05 07:46:59 riastradh Exp $	*/
 
 /*
  * Internal Header for the Direct Rendering Manager
@@ -827,7 +827,7 @@ struct drm_device {
 	struct drm_minor *primary;		/**< Primary node */
 	struct drm_minor *render;		/**< Render node */
 	atomic_t unplugged;			/**< Flag whether dev is dead */
-	struct inode *anon_inode;		/**< inode for private address-space */
+	void *anon_inode;		/**< inode for private address-space */
 	char *unique;/**< unique name of the device */
 	/*@} */
 



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

2018-09-13 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Thu Sep 13 08:25:55 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm/i915: i915_dma.c i915_drv.c
i915_drv.h i915_gem_stolen.c i915_irq.c i915_reg.h intel_csr.c
intel_ddi.c intel_display.c intel_dp.c intel_fbc.c
intel_guc_loader.c intel_i2c.c intel_mocs.c intel_panel.c
intel_pm.c intel_ringbuffer.c intel_runtime_pm.c
src/sys/external/bsd/drm2/dist/include/drm: i915_pciids.h

Log Message:
add support for kabylake and skylake GT4 (untested) GPUs.
largely taken from openbsd and linux 4.13 trees (which
have this code identical), with mimimal porting to netbsd.

i have not installed (and thus tested) the newer referenced
firmware files.

only real local change is to fix IS_BROXTON() macro to check
the things valid in this era of drm.  previous match would
attach on KBL, and then a loop would never exit.

tested on kabylake P630.  needs mesa 11.x or newer for GL
to work.

ok @riastradh.


To generate a diff of this commit:
cvs rdiff -u -r1.25 -r1.26 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c
cvs rdiff -u -r1.15 -r1.16 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c
cvs rdiff -u -r1.27 -r1.28 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h
cvs rdiff -u -r1.10 -r1.11 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_stolen.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c
cvs rdiff -u -r1.16 -r1.17 src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c
cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/dist/drm/i915/i915_reg.h \
src/sys/external/bsd/drm2/dist/drm/i915/intel_csr.c
cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/dist/drm/i915/intel_ddi.c
cvs rdiff -u -r1.22 -r1.23 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c
cvs rdiff -u -r1.18 -r1.19 src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/i915/intel_fbc.c
cvs rdiff -u -r1.12 -r1.13 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_guc_loader.c
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/i915/intel_mocs.c
cvs rdiff -u -r1.8 -r1.9 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_runtime_pm.c
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/include/drm/i915_pciids.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_dma.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.25 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.25	Tue Aug 28 03:41:38 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Thu Sep 13 08:25:55 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_dma.c,v 1.25 2018/08/28 03:41:38 riastradh Exp $	*/
+/*	$NetBSD: i915_dma.c,v 1.26 2018/09/13 08:25:55 mrg 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.25 2018/08/28 03:41:38 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_dma.c,v 1.26 2018/09/13 08:25:55 mrg Exp $");
 
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
@@ -693,7 +693,8 @@ static void gen9_sseu_info_init(struct d
 	 * supports EU power gating on devices with more than one EU
 	 * pair per subslice.
 	*/
-	info->has_slice_pg = (IS_SKYLAKE(dev) && (info->slice_total > 1));
+	info->has_slice_pg = ((IS_SKYLAKE(dev) || IS_KABYLAKE(dev)) &&
+			   (info->slice_total > 1));
 	info->has_subslice_pg = (IS_BROXTON(dev) && (info->subslice_total > 1));
 	info->has_eu_pg = (info->eu_per_subslice > 2);
 }

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.15 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.16
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.15	Mon Aug 27 15:22:54 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c	Thu Sep 13 08:25:55 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_drv.c,v 1.15 2018/08/27 15:22:54 riastradh Exp $	*/
+/*	$NetBSD: i915_drv.c,v 1.16 2018/09/13 08:25:55 mrg Exp $	*/
 
 /* i915_drv.c -- i830,i845,i855,i865,i915 driver -*- linux-c -*-
  */
@@ -30,7 +30,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_drv.c,v 1.15 2018/08/27 15:22:54 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_drv.c,v 1.16 2018/09/13 08:25:55 mrg Exp $");
 
 #include 
 #include 
@@ -406,6 +406,34 @@ static const struct intel_device_info in
 	IVB_CURSOR_OFFSETS,
 };
 
+static const struct intel_device_info intel_kabylake_info = {
+	.is_kabylake = 1,
+	.gen = 9,
+	.num_pipes = 3,
+	.need_gfx_hws = 1, .has_hotplug = 1,
+	.ring_mask = RENDER_RING | BSD_RING | 

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

2015-11-14 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sat Nov 14 23:15:44 UTC 2015

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

Log Message:
parse_hdmi_vsdb: read the HDMI physical address from the HDMI VSDB and store it 
on the connector


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/dist/drm/drm_edid.c
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/include/drm/drm_crtc.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/drm_edid.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_edid.c:1.4 src/sys/external/bsd/drm2/dist/drm/drm_edid.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/drm_edid.c:1.4	Wed Jul 16 20:56:24 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_edid.c	Sat Nov 14 23:15:44 2015
@@ -2984,6 +2984,9 @@ parse_hdmi_vsdb(struct drm_connector *co
 {
 	u8 len = cea_db_payload_len(db);
 
+	if (len >= 5) {
+		connector->physical_address = (db[4] << 8) | db[5];
+	}
 	if (len >= 6) {
 		connector->eld[5] |= (db[6] >> 7) << 1;  /* Supports_AI */
 		connector->dvi_dual = db[6] & 1;

Index: src/sys/external/bsd/drm2/dist/include/drm/drm_crtc.h
diff -u src/sys/external/bsd/drm2/dist/include/drm/drm_crtc.h:1.4 src/sys/external/bsd/drm2/dist/include/drm/drm_crtc.h:1.5
--- src/sys/external/bsd/drm2/dist/include/drm/drm_crtc.h:1.4	Thu Mar  5 17:24:36 2015
+++ src/sys/external/bsd/drm2/dist/include/drm/drm_crtc.h	Sat Nov 14 23:15:44 2015
@@ -464,6 +464,7 @@ struct drm_encoder {
  * @force: a %DRM_FORCE_ state for forced mode sets
  * @encoder_ids: valid encoders for this connector
  * @encoder: encoder driving this connector, if any
+ * @physical_address: HDMI physical address
  * @eld: EDID-like data, if present
  * @dvi_dual: dual link DVI, if found
  * @max_tmds_clock: max clock rate, if found
@@ -516,6 +517,7 @@ struct drm_connector {
 	struct drm_encoder *encoder; /* currently active encoder */
 
 	/* EDID bits */
+	uint16_t physical_address;
 	uint8_t eld[MAX_ELD_BYTES];
 	bool dvi_dual;
 	int max_tmds_clock;	/* in MHz */



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

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

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

Log Message:
Massage drm_drv.c into usability.

- expose drm_minor_lock/drm_minors_idr for drm_init in drm_module.c
- ifdef out Linux driver attachment goo


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/dist/drm/drm_drv.c
cvs rdiff -u -r1.20 -r1.21 src/sys/external/bsd/drm2/dist/include/drm/drmP.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/drm_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.4 src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.4	Mon Aug 27 06:53:46 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_drv.c	Mon Aug 27 06:54:08 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_drv.c,v 1.4 2018/08/27 06:53:46 riastradh Exp $	*/
+/*	$NetBSD: drm_drv.c,v 1.5 2018/08/27 06:54:08 riastradh 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.4 2018/08/27 06:53:46 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_drv.c,v 1.5 2018/08/27 06:54:08 riastradh Exp $");
 
 #include 
 #include 
@@ -59,11 +59,12 @@ MODULE_PARM_DESC(timestamp_monotonic, "U
 module_param_named(debug, drm_debug, int, 0600);
 
 #ifdef __NetBSD__
-static spinlock_t drm_minor_lock;
+spinlock_t drm_minor_lock;
+struct idr drm_minors_idr;
 #else
 static DEFINE_SPINLOCK(drm_minor_lock);
-#endif
 static struct idr drm_minors_idr;
+#endif
 
 #ifndef __NetBSD__
 static struct dentry *drm_debugfs_root;
@@ -329,7 +330,9 @@ static void drm_minor_free(struct drm_de
 	if (!minor)
 		return;
 
+#ifndef __NetBSD__
 	put_device(minor->kdev);
+#endif
 
 	spin_lock_irqsave(&drm_minor_lock, flags);
 	idr_remove(&drm_minors_idr, minor->index);
@@ -386,7 +389,11 @@ static void drm_minor_unregister(struct 
 	unsigned long flags;
 
 	minor = *drm_minor_get_slot(dev, type);
+#ifdef __NetBSD__
+	if (!minor)
+#else
 	if (!minor || !device_is_registered(minor->kdev))
+#endif
 		return;
 
 	/* replace @minor with NULL so lookups will fail from now on */
@@ -394,9 +401,11 @@ static void drm_minor_unregister(struct 
 	idr_replace(&drm_minors_idr, NULL, minor->index);
 	spin_unlock_irqrestore(&drm_minor_lock, flags);
 
+#ifndef __NetBSD__
 	device_del(minor->kdev);
 	dev_set_drvdata(minor->kdev, NULL); /* safety belt */
 	drm_debugfs_cleanup(minor);
+#endif
 }
 
 /**
@@ -913,6 +922,8 @@ int drm_dev_set_unique(struct drm_device
 }
 EXPORT_SYMBOL(drm_dev_set_unique);
 
+#ifndef __NetBSD__
+
 /*
  * DRM Core
  * The DRM core module initializes all global DRM objects and makes them
@@ -1023,3 +1034,5 @@ static void __exit drm_core_exit(void)
 
 module_init(drm_core_init);
 module_exit(drm_core_exit);
+
+#endif

Index: src/sys/external/bsd/drm2/dist/include/drm/drmP.h
diff -u src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.20 src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.21
--- src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.20	Mon Aug 27 06:50:58 2018
+++ src/sys/external/bsd/drm2/dist/include/drm/drmP.h	Mon Aug 27 06:54:08 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drmP.h,v 1.20 2018/08/27 06:50:58 riastradh Exp $	*/
+/*	$NetBSD: drmP.h,v 1.21 2018/08/27 06:54:08 riastradh Exp $	*/
 
 /*
  * Internal Header for the Direct Rendering Manager
@@ -986,6 +986,8 @@ static inline bool drm_is_primary_client
 extern int drm_ioctl_permit(u32 flags, struct drm_file *file_priv);
 #ifdef __NetBSD__
 extern int drm_ioctl(struct file *, unsigned long, void *);
+extern struct spinlock drm_minor_lock;
+extern struct idr drm_minors_idr;
 #else
 extern long drm_ioctl(struct file *filp,
 		  unsigned int cmd, unsigned long arg);



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

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

Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_dp_mst_topology.c
src/sys/external/bsd/drm2/dist/include/drm: drm_dp_mst_helper.h

Log Message:
Rework drm_dp_mst_topology.c.

- Need  for dev_name.
- Need  for EXPORT_*.
- Need  for THIS_MODULE.
- Ifdef out debugfs stuff.
- Mark unused variables as such.
- Convert to drm waitqueue.  (There's even a lock here already...)
- Initialize and destroy mutexes appropriately.
- Ifdef out of_node.  Hope nobody needed it!


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/drm_dp_mst_topology.c
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/include/drm/drm_dp_mst_helper.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/drm_dp_mst_topology.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_dp_mst_topology.c:1.2 src/sys/external/bsd/drm2/dist/drm/drm_dp_mst_topology.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/drm_dp_mst_topology.c:1.2	Mon Aug 27 04:58:19 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_dp_mst_topology.c	Mon Aug 27 06:56:02 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_dp_mst_topology.c,v 1.2 2018/08/27 04:58:19 riastradh Exp $	*/
+/*	$NetBSD: drm_dp_mst_topology.c,v 1.3 2018/08/27 06:56:02 riastradh Exp $	*/
 
 /*
  * Copyright © 2014 Red Hat
@@ -23,7 +23,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_dp_mst_topology.c,v 1.2 2018/08/27 04:58:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_dp_mst_topology.c,v 1.3 2018/08/27 06:56:02 riastradh Exp $");
 
 #include 
 #include 
@@ -32,6 +32,9 @@ __KERNEL_RCSID(0, "$NetBSD: drm_dp_mst_t
 #include 
 #include 
 #include 
+#include 
+#include 
+#include 
 #include 
 #include 
 
@@ -44,8 +47,10 @@ __KERNEL_RCSID(0, "$NetBSD: drm_dp_mst_t
  * protocol. The helpers contain a topology manager and bandwidth manager.
  * The helpers encapsulate the sending and received of sideband msgs.
  */
+#if IS_ENABLED(CONFIG_DEBUG_FS)
 static bool dump_dp_payload_table(struct drm_dp_mst_topology_mgr *mgr,
   char *buf);
+#endif
 static int test_calc_pbn_mode(void);
 
 static void drm_dp_put_port(struct drm_dp_mst_port *port);
@@ -324,7 +329,7 @@ static bool drm_dp_sideband_msg_build(st
   u8 *replybuf, u8 replybuflen, bool hdr)
 {
 	int ret;
-	u8 crc4;
+	u8 crc4 __unused;	/* XXX Mistake?  */
 
 	if (hdr) {
 		u8 hdrlen;
@@ -762,10 +767,16 @@ static int drm_dp_mst_wait_tx_reply(stru
 	struct drm_dp_mst_topology_mgr *mgr = mstb->mgr;
 	int ret;
 
+#ifdef __NetBSD__
+	mutex_lock(&mstb->mgr->qlock);
+	DRM_TIMED_WAIT_UNTIL(ret, &mgr->tx_waitq, &mstb->mgr->qlock, 4*HZ,
+	check_txmsg_state(mgr, txmsg));
+#else
 	ret = wait_event_timeout(mgr->tx_waitq,
  check_txmsg_state(mgr, txmsg),
  (4 * HZ));
 	mutex_lock(&mstb->mgr->qlock);
+#endif
 	if (ret > 0) {
 		if (txmsg->state == DRM_DP_SIDEBAND_TX_TIMEOUT) {
 			ret = -EIO;
@@ -859,10 +870,16 @@ static void drm_dp_destroy_mst_branch_de
 		mstb->tx_slots[1] = NULL;
 		wake_tx = true;
 	}
+#ifdef __NetBSD__
+	if (wake_tx)
+		DRM_WAKEUP_ONE(&mstb->mgr->tx_waitq, &mstb->mgr->qlock);
+	mutex_unlock(&mstb->mgr->qlock);
+#else
 	mutex_unlock(&mstb->mgr->qlock);
 
 	if (wake_tx)
 		wake_up(&mstb->mgr->tx_waitq);
+#endif
 
 	kref_put(kref, drm_dp_free_mst_branch_device);
 }
@@ -1027,7 +1044,7 @@ static u8 drm_dp_calculate_rad(struct dr
  */
 static bool drm_dp_port_setup_pdt(struct drm_dp_mst_port *port)
 {
-	int ret;
+	int ret __unused;
 	u8 rad[6], lct;
 	bool send_link = false;
 	switch (port->pdt) {
@@ -1051,7 +1068,7 @@ static bool drm_dp_port_setup_pdt(struct
 
 static void drm_dp_check_mstb_guid(struct drm_dp_mst_branch *mstb, u8 *guid)
 {
-	int ret;
+	int ret __unused;
 
 	memcpy(mstb->guid, guid, 16);
 
@@ -1520,7 +1537,11 @@ static void process_single_down_tx_qlock
 		if (txmsg->seqno != -1)
 			txmsg->dst->tx_slots[txmsg->seqno] = NULL;
 		txmsg->state = DRM_DP_SIDEBAND_TX_TIMEOUT;
+#ifdef __NetBSD__
+		DRM_WAKEUP_ONE(&mgr->tx_waitq, &mgr->qlock);
+#else
 		wake_up(&mgr->tx_waitq);
+#endif
 	}
 	if (list_empty(&mgr->tx_msg_downq)) {
 		mgr->tx_down_in_progress = false;
@@ -1556,7 +1577,7 @@ static void drm_dp_queue_down_tx(struct 
 static void drm_dp_send_link_address(struct drm_dp_mst_topology_mgr *mgr,
  struct drm_dp_mst_branch *mstb)
 {
-	int len;
+	int len __unused;
 	struct drm_dp_sideband_msg_tx *txmsg;
 	int ret;
 
@@ -1610,7 +1631,7 @@ static int drm_dp_send_enum_path_resourc
 	   struct drm_dp_mst_branch *mstb,
 	   struct drm_dp_mst_port *port)
 {
-	int len;
+	int len __unused;
 	struct drm_dp_sideband_msg_tx *txmsg;
 	int ret;
 
@@ -1678,7 +1699,7 @@ static int drm_dp_payload_send_msg(struc
 {
 	struct drm_dp_sideband_msg_tx *txmsg;
 	struct drm_dp_mst_branch *mstb;
-	int len, ret, port_num;
+	int len __unused, ret, port_num;
 
 

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

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

Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_gem.c
src/sys/external/bsd/drm2/dist/drm/i915: i915_drv.h i915_gem.c
i915_gem_render_state.c i915_gem_shrinker.c
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_bo.c nouveau_gem.c
src/sys/external/bsd/drm2/dist/include/drm: drm_gem.h

Log Message:
Rename drm_gem_object::gemo_shm_uao -> drm_gem_object::filp.

The Linux member that is basically analogous to this is named so,
which means we can eliminate a few diffs this way.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/dist/drm/drm_gem.c
cvs rdiff -u -r1.18 -r1.19 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h
cvs rdiff -u -r1.42 -r1.43 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_render_state.c
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_shrinker.c
cvs rdiff -u -r1.8 -r1.9 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/include/drm/drm_gem.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/drm_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_gem.c:1.7 src/sys/external/bsd/drm2/dist/drm/drm_gem.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/drm_gem.c:1.7	Mon Aug 27 04:58:19 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_gem.c	Mon Aug 27 07:19:01 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_gem.c,v 1.7 2018/08/27 04:58:19 riastradh Exp $	*/
+/*	$NetBSD: drm_gem.c,v 1.8 2018/08/27 07:19:01 riastradh Exp $	*/
 
 /*
  * Copyright © 2008 Intel Corporation
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_gem.c,v 1.7 2018/08/27 04:58:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_gem.c,v 1.8 2018/08/27 07:19:01 riastradh Exp $");
 
 #include 
 #include 
@@ -165,14 +165,14 @@ int drm_gem_object_init(struct drm_devic
 	 * A uao may not have size 0, but a gem object may.  Allocate a
 	 * spurious page so we needn't teach uao how to have size 0.
 	 */
-	obj->gemo_shm_uao = uao_create(MAX(size, PAGE_SIZE), 0);
+	obj->filp = uao_create(MAX(size, PAGE_SIZE), 0);
 	/*
 	 * XXX This is gross.  We ought to do it the other way around:
 	 * set the uao to have the main uvm object's lock.  However,
 	 * uvm_obj_setlock is not safe on uvm_aobjs.
 	 */
-	mutex_obj_hold(obj->gemo_shm_uao->vmobjlock);
-	uvm_obj_setlock(&obj->gemo_uvmobj, obj->gemo_shm_uao->vmobjlock);
+	mutex_obj_hold(obj->filp->vmobjlock);
+	uvm_obj_setlock(&obj->gemo_uvmobj, obj->filp->vmobjlock);
 #else
 	filp = shmem_file_setup("drm mm object", size, VM_NORESERVE);
 	if (IS_ERR(filp))
@@ -202,7 +202,7 @@ void drm_gem_private_object_init(struct 
 
 	obj->dev = dev;
 #ifdef __NetBSD__
-	obj->gemo_shm_uao = NULL;
+	obj->filp = NULL;
 	KASSERT(drm_core_check_feature(dev, DRIVER_GEM));
 	KASSERT(dev->driver->gem_uvm_ops != NULL);
 	uvm_obj_init(&obj->gemo_uvmobj, dev->driver->gem_uvm_ops, true, 1);
@@ -537,7 +537,7 @@ drm_gem_get_pages(struct drm_gem_object 
 
 	TAILQ_INIT(&pglist);
 	/* XXX errno NetBSD->Linux */
-	ret = -uvm_obj_wirepages(obj->gemo_shm_uao, 0, obj->size, &pglist);
+	ret = -uvm_obj_wirepages(obj->filp, 0, obj->size, &pglist);
 	if (ret)
 		goto fail1;
 
@@ -618,7 +618,7 @@ drm_gem_put_pages(struct drm_gem_object 
 			pages[i]->p_vmp.flags &= ~PG_CLEAN;
 	}
 
-	uvm_obj_unwirepages(obj->gemo_shm_uao, 0, obj->size);
+	uvm_obj_unwirepages(obj->filp, 0, obj->size);
 }
 #else
 void drm_gem_put_pages(struct drm_gem_object *obj, struct page **pages,
@@ -862,8 +862,8 @@ drm_gem_object_release(struct drm_gem_ob
 
 #ifdef __NetBSD__
 	drm_vma_node_destroy(&obj->vma_node);
-	if (obj->gemo_shm_uao)
-		uao_detach(obj->gemo_shm_uao);
+	if (obj->filp)
+		uao_detach(obj->filp);
 	uvm_obj_destroy(&obj->gemo_uvmobj, true);
 #else
 	if (obj->filp)

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.18 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.19
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h:1.18	Mon Aug 27 07:17:35 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h	Mon Aug 27 07:19:01 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_drv.h,v 1.18 2018/08/27 07:17:35 riastradh Exp $	*/
+/*	$NetBSD: i915_drv.h,v 1.19 2018/08/27 07:19:01 riastradh Exp $	*/
 
 /* i915_drv.h -- Private header for the I915 driver -*- linux-c -*-
  */
@@ -2956,9 +2956,9 @@ i915_gem_object_get_page(struct drm_i915
 		 * lock to prevent them from disappearing.
 		 */
 		KASSERT(obj->pages != NULL);
-		mutex_enter(obj->base.gemo_shm_uao->vmobjlock);
-		page = uvm_pagelookup(obj->base.gemo_shm_uao, ptoa(

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

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

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

Log Message:
Reduce some logic duplication and just use vmap/kmap here.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 \
src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/include/drm/ttm/ttm_bo_api.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/ttm/ttm_bo_util.c
diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.10 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.11
--- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.10	Mon Aug 27 07:45:23 2018
+++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c	Mon Aug 27 07:45:33 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: ttm_bo_util.c,v 1.10 2018/08/27 07:45:23 riastradh Exp $	*/
+/*	$NetBSD: ttm_bo_util.c,v 1.11 2018/08/27 07:45:33 riastradh Exp $	*/
 
 /**
  *
@@ -31,7 +31,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.10 2018/08/27 07:45:23 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.11 2018/08/27 07:45:33 riastradh Exp $");
 
 #include 
 #include 
@@ -647,10 +647,6 @@ static int ttm_bo_kmap_ttm(struct ttm_bu
 	struct ttm_mem_reg *mem = &bo->mem;
 	pgprot_t prot;
 	struct ttm_tt *ttm = bo->ttm;
-#ifdef __NetBSD__
-	unsigned i;
-	vaddr_t vaddr;
-#endif
 	int ret;
 
 	BUG_ON(!ttm);
@@ -661,30 +657,6 @@ static int ttm_bo_kmap_ttm(struct ttm_bu
 			return ret;
 	}
 
-#ifdef __NetBSD__
-	/*
-	 * Can't use uvm_map here because it provides no way to pass
-	 * along the cacheability flags.  So we'll uvm_km_alloc
-	 * ourselves some KVA and then pmap_kenter_pa directly.
-	 */
-
-	KASSERT(num_pages <= ttm->num_pages);
-	KASSERT(start_page <= (ttm->num_pages - num_pages));
-	prot = ttm_io_prot(mem->placement, (VM_PROT_READ | VM_PROT_WRITE));
-	vaddr = uvm_km_alloc(kernel_map, (num_pages << PAGE_SHIFT), PAGE_SIZE,
-	UVM_KMF_VAONLY | UVM_KMF_CANFAIL | UVM_KMF_WAITVA);
-	if (vaddr == 0)
-		return -ENOMEM;
-	for (i = 0; i < num_pages; i++)
-		pmap_kenter_pa(vaddr + i*PAGE_SIZE,
-		page_to_phys(ttm->pages[start_page + i]),
-		(VM_PROT_READ | VM_PROT_WRITE), prot);
-	pmap_update(pmap_kernel());
-	map->bo_kmap_type = ttm_bo_map_vmap;
-	map->u.uvm.vsize = (num_pages << PAGE_SHIFT);
-	map->virtual = (void *)vaddr;
-	return 0;
-#else
 	if (num_pages == 1 && (mem->placement & TTM_PL_FLAG_CACHED)) {
 		/*
 		 * We're mapping a single page, and the desired
@@ -692,8 +664,13 @@ static int ttm_bo_kmap_ttm(struct ttm_bu
 		 */
 
 		map->bo_kmap_type = ttm_bo_map_kmap;
+#ifdef __NetBSD__
+		map->u.kmapped.page = ttm->pages[start_page];
+		map->virtual = kmap(map->u.kmapped.page);
+#else
 		map->page = ttm->pages[start_page];
 		map->virtual = kmap(map->page);
+#endif
 	} else {
 		/*
 		 * We need to use vmap to get the desired page protection
@@ -703,9 +680,11 @@ static int ttm_bo_kmap_ttm(struct ttm_bu
 		map->bo_kmap_type = ttm_bo_map_vmap;
 		map->virtual = vmap(ttm->pages + start_page, num_pages,
 0, prot);
+#ifdef __NetBSD__
+		map->u.vmapped.vsize = (vsize_t)num_pages << PAGE_SHIFT;
+#endif
 	}
 	return (!map->virtual) ? -ENOMEM : 0;
-#endif
 }
 
 int ttm_bo_kmap(struct ttm_buffer_object *bo,
@@ -764,17 +743,14 @@ void ttm_bo_kunmap(struct ttm_bo_kmap_ob
 		break;
 	case ttm_bo_map_vmap:
 #ifdef __NetBSD__
-		pmap_kremove((vaddr_t)map->virtual, map->u.uvm.vsize);
-		pmap_update(pmap_kernel());
-		uvm_km_free(kernel_map, (vaddr_t)map->virtual,
-		map->u.uvm.vsize, UVM_KMF_VAONLY);
+		vunmap(map->virtual, map->u.vmapped.vsize >> PAGE_SHIFT);
 #else
 		vunmap(map->virtual);
 #endif
 		break;
 	case ttm_bo_map_kmap:
 #ifdef __NetBSD__
-		panic("ttm_bo_map_kmap does not exist in NetBSD");
+		kunmap(map->u.kmapped.page);
 #else
 		kunmap(map->page);
 #endif

Index: src/sys/external/bsd/drm2/dist/include/drm/ttm/ttm_bo_api.h
diff -u src/sys/external/bsd/drm2/dist/include/drm/ttm/ttm_bo_api.h:1.3 src/sys/external/bsd/drm2/dist/include/drm/ttm/ttm_bo_api.h:1.4
--- src/sys/external/bsd/drm2/dist/include/drm/ttm/ttm_bo_api.h:1.3	Mon Aug 27 04:58:38 2018
+++ src/sys/external/bsd/drm2/dist/include/drm/ttm/ttm_bo_api.h	Mon Aug 27 07:45:33 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: ttm_bo_api.h,v 1.3 2018/08/27 04:58:38 riastradh Exp $	*/
+/*	$NetBSD: ttm_bo_api.h,v 1.4 2018/08/27 07:45:33 riastradh Exp $	*/
 
 /**
  *
@@ -301,7 +301,10 @@ struct ttm_bo_kmap_obj {
 		} io;
 		struct {
 			vsize_t			vsize;
-		} uvm;
+		} vmapped;
+		struct {
+			struct page		*page;
+		} kmapped;
 	} u;
 #else
 	struct page *page;



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

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

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

Log Message:
Put file, line, func in DRM_ERROR messages.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/dist/drm/drm_drv.c
cvs rdiff -u -r1.24 -r1.25 src/sys/external/bsd/drm2/dist/include/drm/drmP.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/drm_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.7 src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.7	Mon Aug 27 13:42:24 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_drv.c	Mon Aug 27 13:42:47 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_drv.c,v 1.7 2018/08/27 13:42:24 riastradh Exp $	*/
+/*	$NetBSD: drm_drv.c,v 1.8 2018/08/27 13:42:47 riastradh 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.7 2018/08/27 13:42:24 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_drv.c,v 1.8 2018/08/27 13:42:47 riastradh Exp $");
 
 #include 
 #include 
@@ -70,18 +70,20 @@ static struct idr drm_minors_idr;
 static struct dentry *drm_debugfs_root;
 #endif
 
-void drm_err(const char *format, ...)
-{
 #ifdef __NetBSD__
+void
+drm_err(const char *file, int line, const char *func, const char *format, ...)
+{
 	va_list args;
 
 	va_start(args, format);
-	/* XXX Convert this to a symbol name...  */
-	printf(KERN_ERR "[" DRM_NAME ":%p] *ERROR* ",
-	__builtin_return_address(0));
+	printf(KERN_ERR "[" DRM_NAME ":(%s:%d)%s] *ERROR* ", file, line, func);
 	vprintf(format, args);
 	va_end(args);
+}
 #else
+void drm_err(const char *format, ...)
+{
 	struct va_format vaf;
 	va_list args;
 
@@ -94,8 +96,8 @@ void drm_err(const char *format, ...)
 	   __builtin_return_address(0), &vaf);
 
 	va_end(args);
-#endif
 }
+#endif
 EXPORT_SYMBOL(drm_err);
 
 void drm_ut_debug_printk(const char *function_name, const char *format, ...)

Index: src/sys/external/bsd/drm2/dist/include/drm/drmP.h
diff -u src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.24 src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.25
--- src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.24	Mon Aug 27 13:36:32 2018
+++ src/sys/external/bsd/drm2/dist/include/drm/drmP.h	Mon Aug 27 13:42:47 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drmP.h,v 1.24 2018/08/27 13:36:32 riastradh Exp $	*/
+/*	$NetBSD: drmP.h,v 1.25 2018/08/27 13:42:47 riastradh Exp $	*/
 
 /*
  * Internal Header for the Direct Rendering Manager
@@ -149,8 +149,8 @@ struct dma_buf_attachment;
 extern __printf(2, 3)
 void drm_ut_debug_printk(const char *function_name,
 			 const char *format, ...);
-extern __printf(1, 2)
-void drm_err(const char *format, ...);
+extern __printf(4, 5)
+void drm_err(const char *file, int line, const char *func, const char *format, ...);
 
 /***/
 /** \name DRM template customization defaults */
@@ -201,7 +201,7 @@ void drm_err(const char *format, ...);
  * \param arg arguments
  */
 #define DRM_ERROR(fmt, ...)\
-	drm_err(fmt, ##__VA_ARGS__)
+	drm_err(__FILE__, __LINE__, __func__, fmt, ##__VA_ARGS__)
 
 /**
  * Rate limited error output.  Like DRM_ERROR() but won't flood the log.
@@ -216,7 +216,7 @@ void drm_err(const char *format, ...);
   DEFAULT_RATELIMIT_BURST);		\
 	\
 	if (__ratelimit(&_rs))		\
-		drm_err(fmt, ##__VA_ARGS__);\
+		drm_err(__FILE__, __LINE__, __func__, fmt, ##__VA_ARGS__);\
 })
 
 /**



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

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

Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_irq.c
src/sys/external/bsd/drm2/dist/include/drm: drmP.h

Log Message:
Rework vblank locking.  New drm_vblank_get/put_locked subroutines.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/sys/external/bsd/drm2/dist/drm/drm_irq.c
cvs rdiff -u -r1.25 -r1.26 src/sys/external/bsd/drm2/dist/include/drm/drmP.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/drm_irq.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.12 src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.13
--- src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.12	Mon Aug 27 07:03:39 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_irq.c	Mon Aug 27 14:42:43 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_irq.c,v 1.12 2018/08/27 07:03:39 riastradh Exp $	*/
+/*	$NetBSD: drm_irq.c,v 1.13 2018/08/27 14:42:43 riastradh Exp $	*/
 
 /*
  * drm_irq.c IRQ and vblank support
@@ -35,7 +35,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_irq.c,v 1.12 2018/08/27 07:03:39 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_irq.c,v 1.13 2018/08/27 14:42:43 riastradh Exp $");
 
 #include 
 #include "drm_trace.h"
@@ -62,6 +62,10 @@ __KERNEL_RCSID(0, "$NetBSD: drm_irq.c,v 
 #include 
 #endif
 
+/*
+ * Lock order: dev->event_lock, then dev->vbl_lock, then dev->vblank_time_lock
+ */
+
 /* Access macro for slots in vblank timestamp ringbuffer. */
 #define vblanktimestamp(dev, pipe, count) \
 	((dev)->vblank[pipe].time[(count) % DRM_VBLANKTIME_RBSIZE])
@@ -144,6 +148,8 @@ static void drm_reset_vblank_timestamp(s
 	struct timeval t_vblank;
 	int count = DRM_TIMESTAMP_MAXRETRIES;
 
+	assert_spin_locked(&dev->vbl_lock);
+
 	spin_lock(&dev->vblank_time_lock);
 
 	/*
@@ -198,6 +204,8 @@ static void drm_update_vblank_count(stru
 	int count = DRM_TIMESTAMP_MAXRETRIES;
 	int framedur_ns = vblank->framedur_ns;
 
+	assert_spin_locked(&dev->vbl_lock);
+
 	/*
 	 * Interrupts were disabled prior to this call, so deal with counter
 	 * wrap if needed.
@@ -331,6 +339,8 @@ static void vblank_disable_and_save(stru
 	struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
 	unsigned long irqflags;
 
+	assert_spin_locked(&dev->vbl_lock);
+
 	/* Prevent vblank irq processing while disabling vblank irqs,
 	 * so no updates of timestamps or count can happen after we've
 	 * disabled. Needed to prevent races in case of delayed irq's.
@@ -358,6 +368,23 @@ static void vblank_disable_and_save(stru
 	spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags);
 }
 
+static void
+vblank_disable_locked(struct drm_vblank_crtc *vblank, struct drm_device *dev,
+unsigned int pipe)
+{
+
+	BUG_ON(vblank != &dev->vblank[pipe]);
+	assert_spin_locked(&dev->vbl_lock);
+
+	if (!dev->vblank_disable_allowed)
+		return;
+
+	if (atomic_read(&vblank->refcount) == 0 && vblank->enabled) {
+		DRM_DEBUG("disabling vblank on crtc %u\n", pipe);
+		vblank_disable_and_save(dev, pipe);
+	}
+}
+
 static void vblank_disable_fn(unsigned long arg)
 {
 	struct drm_vblank_crtc *vblank = (void *)arg;
@@ -1269,31 +1296,24 @@ static int drm_vblank_enable(struct drm_
 }
 
 /**
- * drm_vblank_get - get a reference count on vblank events
+ * drm_vblank_get_locked - like drm_vblank_get but caller holds lock
  * @dev: DRM device
  * @pipe: index of CRTC to own
- *
- * Acquire a reference count on vblank events to avoid having them disabled
- * while in use.
- *
- * This is the legacy version of drm_crtc_vblank_get().
- *
- * Returns:
- * Zero on success or a negative error code on failure.
  */
-int drm_vblank_get(struct drm_device *dev, unsigned int pipe)
+int
+drm_vblank_get_locked(struct drm_device *dev, unsigned int pipe)
 {
 	struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
-	unsigned long irqflags;
 	int ret = 0;
 
+	assert_spin_locked(&dev->vbl_lock);
+
 	if (!dev->num_crtcs)
 		return -EINVAL;
 
 	if (WARN_ON(pipe >= dev->num_crtcs))
 		return -EINVAL;
 
-	spin_lock_irqsave(&dev->vbl_lock, irqflags);
 	/* Going from 0->1 means we have to enable interrupts again */
 	if (atomic_add_return(1, &vblank->refcount) == 1) {
 		ret = drm_vblank_enable(dev, pipe);
@@ -1303,6 +1323,30 @@ int drm_vblank_get(struct drm_device *de
 			ret = -EINVAL;
 		}
 	}
+
+	return ret;
+}
+
+/**
+ * drm_vblank_get - get a reference count on vblank events
+ * @dev: DRM device
+ * @pipe: index of CRTC to own
+ *
+ * Acquire a reference count on vblank events to avoid having them disabled
+ * while in use.
+ *
+ * This is the legacy version of drm_crtc_vblank_get().
+ *
+ * Returns:
+ * Zero on success or a negative error code on failure.
+ */
+int drm_vblank_get(struct drm_device *dev, unsigned int pipe)
+{
+	unsigned long irqflags;
+	int ret;
+
+	spin_lock_irqsave(&dev->vbl_lock, irqflags);
+	ret = drm_vblank_get_locked(dev, pipe);
 	spin_unlock_irqrestore(&

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

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

Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_prime.c
src/sys/external/bsd/drm2/dist/include/drm: drmP.h

Log Message:
Fill out drm_prime_* API a little more for NetBSD.

Add comment explaining our use of struct sg_table.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/drm_prime.c
cvs rdiff -u -r1.27 -r1.28 src/sys/external/bsd/drm2/dist/include/drm/drmP.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/drm_prime.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_prime.c:1.3 src/sys/external/bsd/drm2/dist/drm/drm_prime.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/drm_prime.c:1.3	Mon Aug 27 15:22:54 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_prime.c	Mon Aug 27 15:26:00 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_prime.c,v 1.3 2018/08/27 15:22:54 riastradh Exp $	*/
+/*	$NetBSD: drm_prime.c,v 1.4 2018/08/27 15:26:00 riastradh Exp $	*/
 
 /*
  * Copyright © 2012 Red Hat
@@ -29,7 +29,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_prime.c,v 1.3 2018/08/27 15:22:54 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_prime.c,v 1.4 2018/08/27 15:26:00 riastradh Exp $");
 
 #include 
 #include 
@@ -38,6 +38,20 @@ __KERNEL_RCSID(0, "$NetBSD: drm_prime.c,
 
 #include "drm_internal.h"
 
+#ifdef __NetBSD__
+
+/*
+ * We use struct sg_table just to pass around an array of
+ * bus_dma_segment_t from one device to another in drm prime.  Since
+ * this is _not_ a complete implementation of Linux's sg table
+ * abstraction (e.g., it does not remember DMA addresses and RAM pages
+ * separately, and it doesn't support the nested chained iteration of
+ * Linux scatterlists), we isolate it to this file and make all callers
+ * go through a few extra subroutines (drm_prime_sg_size,
+ * drm_prime_sg_free, &c.) to use it.  Don't use this outside drm
+ * prime!
+ */
+
 struct sg_table {
 	bus_dma_segment_t	*sgt_segs;
 	int			sgt_nsegs;
@@ -94,6 +108,30 @@ sg_alloc_table_from_pglist(struct sg_tab
 	return 0;
 }
 
+static int
+sg_alloc_table_from_bus_dmamem(struct sg_table *sgt, bus_dma_segment_t *segs,
+int nsegs, gfp_t gfp)
+{
+	int seg;
+
+	KASSERT(nsegs > 0);
+	sgt->sgt_segs = kcalloc(nsegs, sizeof(sgt->sgt_segs[0]), gfp);
+	if (sgt->sgt_segs == NULL)
+		return -ENOMEM;
+	sgt->sgt_nsegs = nsegs;
+	sgt->sgt_size = 0;
+
+	for (seg = 0; seg < nsegs; seg++) {
+		sgt->sgt_segs[seg].ds_addr = segs[seg].ds_addr;
+		sgt->sgt_segs[seg].ds_len = segs[seg].ds_len;
+		KASSERT(segs[seg].ds_len <= __type_max(bus_size_t) -
+		sgt->sgt_size);
+		sgt->sgt_size += segs[seg].ds_len;
+	}
+
+	return 0;
+}
+
 static void
 sg_free_table(struct sg_table *sgt)
 {
@@ -104,6 +142,8 @@ sg_free_table(struct sg_table *sgt)
 	sgt->sgt_size = 0;
 }
 
+#endif	/* __NetBSD__ */
+
 /*
  * DMA-BUF/GEM Object references and lifetime overview:
  *
@@ -795,6 +835,28 @@ EXPORT_SYMBOL(drm_prime_pages_to_sg);
 #ifdef __NetBSD__
 
 struct sg_table *
+drm_prime_bus_dmamem_to_sg(bus_dma_segment_t *segs, int nsegs)
+{
+	struct sg_table *sg;
+	int ret;
+
+	sg = kmalloc(sizeof(*sg), GFP_KERNEL);
+	if (sg == NULL) {
+		ret = -ENOMEM;
+		goto out;
+	}
+
+	ret = sg_alloc_table_from_bus_dmamem(sg, segs, nsegs, GFP_KERNEL);
+	if (ret)
+		goto out;
+
+	return sg;
+out:
+	kfree(sg);
+	return ERR_PTR(ret);
+}
+
+struct sg_table *
 drm_prime_pglist_to_sg(struct pglist *pglist, unsigned npages)
 {
 	struct sg_table *sg;
@@ -818,6 +880,13 @@ out:
 	return ERR_PTR(ret);
 }
 
+bus_size_t
+drm_prime_sg_size(struct sg_table *sg)
+{
+
+	return sg->sgt_size;
+}
+
 void
 drm_prime_sg_free(struct sg_table *sg)
 {
@@ -836,6 +905,15 @@ drm_prime_bus_dmamap_load_sgt(bus_dma_ta
 	sgt->sgt_size, BUS_DMA_NOWAIT);
 }
 
+int
+drm_prime_bus_dmamem_map(bus_dma_tag_t dmat, struct sg_table *sgt, void **kvap,
+int flags)
+{
+
+	return -bus_dmamem_map(dmat, sgt->sgt_segs, sgt->sgt_nsegs,
+	sgt->sgt_size, kvap, flags);
+}
+
 #else  /* !__NetBSD__ */
 
 /**

Index: src/sys/external/bsd/drm2/dist/include/drm/drmP.h
diff -u src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.27 src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.28
--- src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.27	Mon Aug 27 15:22:54 2018
+++ src/sys/external/bsd/drm2/dist/include/drm/drmP.h	Mon Aug 27 15:26:00 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drmP.h,v 1.27 2018/08/27 15:22:54 riastradh Exp $	*/
+/*	$NetBSD: drmP.h,v 1.28 2018/08/27 15:26:00 riastradh Exp $	*/
 
 /*
  * Internal Header for the Direct Rendering Manager
@@ -1183,7 +1183,10 @@ extern void drm_gem_dmabuf_release(struc
 
 #ifdef __NetBSD__
 extern int drm_prime_bus_dmamap_load_sgt(bus_dma_tag_t, bus_dmamap_t, struct sg_table *);
+extern int drm_prime_bus_dmamem_map(bus_dma_tag_t, struct sg_table *, void **, int);
+extern struct sg_table *drm_prime_bus_dmamem_to_sg(bu

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

2014-07-16 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 16 20:03:57 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_agpsupport.c drm_buffer.c
drm_bufs.c drm_context.c drm_crtc.c drm_crtc_helper.c drm_debugfs.c
drm_dp_helper.c drm_edid.c drm_fb_helper.c drm_gem.c drm_ioctl.c
drm_irq.c drm_mm.c drm_modes.c drm_pci.c drm_platform.c drm_stub.c
src/sys/external/bsd/drm2/dist/drm/i915: dvo_ch7xxx.c i915_dma.c
i915_drv.c i915_drv.h i915_gem.c i915_gem_context.c
i915_gem_execbuffer.c i915_gem_tiling.c i915_irq.c intel_bios.c
intel_crt.c intel_ddi.c intel_display.c intel_dp.c intel_drv.h
intel_hdmi.c intel_i2c.c intel_lvds.c intel_opregion.c
intel_overlay.c intel_panel.c intel_pm.c intel_ringbuffer.c
intel_ringbuffer.h intel_sdvo.c intel_tv.c intel_uncore.c
src/sys/external/bsd/drm2/dist/drm/vmwgfx: vmwgfx_kms.c
src/sys/external/bsd/drm2/dist/include/drm: drmP.h drm_crtc.h
drm_crtc_helper.h drm_fb_helper.h drm_mm.h drm_modes.h
src/sys/external/bsd/drm2/dist/uapi/drm: drm.h drm_mode.h
Removed Files:
src/sys/external/bsd/drm2/dist/drm: drm_edid_modes.h drm_proc.c
src/sys/external/bsd/drm2/dist/drm/i915: intel_fb.c
src/sys/external/bsd/drm2/dist/uapi/drm: mga_drm.h

Log Message:
fix merge conflicts


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/drm_agpsupport.c \
src/sys/external/bsd/drm2/dist/drm/drm_buffer.c \
src/sys/external/bsd/drm2/dist/drm/drm_context.c \
src/sys/external/bsd/drm2/dist/drm/drm_crtc.c \
src/sys/external/bsd/drm2/dist/drm/drm_crtc_helper.c \
src/sys/external/bsd/drm2/dist/drm/drm_debugfs.c \
src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.c \
src/sys/external/bsd/drm2/dist/drm/drm_edid.c \
src/sys/external/bsd/drm2/dist/drm/drm_gem.c \
src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c \
src/sys/external/bsd/drm2/dist/drm/drm_mm.c \
src/sys/external/bsd/drm2/dist/drm/drm_pci.c \
src/sys/external/bsd/drm2/dist/drm/drm_platform.c
cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/dist/drm/drm_bufs.c \
src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c
cvs rdiff -u -r1.1.1.1 -r0 \
src/sys/external/bsd/drm2/dist/drm/drm_edid_modes.h
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/drm_irq.c \
src/sys/external/bsd/drm2/dist/drm/drm_modes.c \
src/sys/external/bsd/drm2/dist/drm/drm_stub.c
cvs rdiff -u -r1.2 -r0 src/sys/external/bsd/drm2/dist/drm/drm_proc.c
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/i915/dvo_ch7xxx.c \
src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_execbuffer.c \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_tiling.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_hdmi.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_panel.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_ringbuffer.h
cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.h \
src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_context.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_crt.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_ddi.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_lvds.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_opregion.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_overlay.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_tv.c
cvs rdiff -u -r1.11 -r1.12 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c
cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_bios.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_drv.h
cvs rdiff -u -r1.6 -r1.7 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c
cvs rdiff -u -r1.1.1.1 -r0 src/sys/external/bsd/drm2/dist/drm/i915/intel_fb.c
cvs rdiff -u -r1.1.1.1 -r1.2 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.c
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/vmwgfx/vmwgfx_kms.c
cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/dist/include/drm/drmP.h
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/include/drm/drm_crtc.h \
src/sys/external/bsd/drm2/dist/include/drm/drm_crtc_helper.h \
src/sys/external/bsd/drm2/dist/include/drm/drm_fb_helper.h
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/include/drm/drm_mm.h
cvs rdiff -u -r1.1.1.1 -r1.2 \
src/sys/external/bsd/drm

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

2014-07-24 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Thu Jul 24 21:36:39 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_fb_helper.c
src/sys/external/bsd/drm2/dist/include/drm: drm_fb_helper.h

Log Message:
Expose drm fb helpers for ddb enter/exit.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/include/drm/drm_fb_helper.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/drm_fb_helper.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.6 src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.6	Wed Jul 16 20:56:24 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c	Thu Jul 24 21:36:39 2014
@@ -173,7 +173,6 @@ static int drm_fb_helper_parse_command_l
 }
 #endif
 
-#ifndef __NetBSD__		/* XXX fb info */
 static void drm_fb_helper_save_lut_atomic(struct drm_crtc *crtc, struct drm_fb_helper *helper)
 {
 	uint16_t *r_base, *g_base, *b_base;
@@ -208,9 +207,16 @@ static void drm_fb_helper_restore_lut_at
  * drm_fb_helper_debug_enter - implementation for ->fb_debug_enter
  * @info: fbdev registered by the helper
  */
+#ifndef __NetBSD__
 int drm_fb_helper_debug_enter(struct fb_info *info)
 {
-	struct drm_fb_helper *helper = info->par;
+	return drm_fb_helper_debug_enter_fb(info->par);
+}
+#endif
+
+int
+drm_fb_helper_debug_enter_fb(struct drm_fb_helper *helper)
+{
 	struct drm_crtc_helper_funcs *funcs;
 	int i;
 
@@ -257,9 +263,16 @@ static struct drm_framebuffer *drm_mode_
  * drm_fb_helper_debug_leave - implementation for ->fb_debug_leave
  * @info: fbdev registered by the helper
  */
+#ifndef __NetBSD__
 int drm_fb_helper_debug_leave(struct fb_info *info)
 {
-	struct drm_fb_helper *helper = info->par;
+	return drm_fb_helper_debug_leave_fb(info->par);
+}
+#endif
+
+int
+drm_fb_helper_debug_leave_fb(struct drm_fb_helper *helper)
+{
 	struct drm_crtc *crtc;
 	struct drm_crtc_helper_funcs *funcs;
 	struct drm_framebuffer *fb;
@@ -287,7 +300,6 @@ int drm_fb_helper_debug_leave(struct fb_
 	return 0;
 }
 EXPORT_SYMBOL(drm_fb_helper_debug_leave);
-#endif
 
 /**
  * drm_fb_helper_restore_fbdev_mode - restore fbdev configuration

Index: src/sys/external/bsd/drm2/dist/include/drm/drm_fb_helper.h
diff -u src/sys/external/bsd/drm2/dist/include/drm/drm_fb_helper.h:1.5 src/sys/external/bsd/drm2/dist/include/drm/drm_fb_helper.h:1.6
--- src/sys/external/bsd/drm2/dist/include/drm/drm_fb_helper.h:1.5	Thu Jul 24 21:18:40 2014
+++ src/sys/external/bsd/drm2/dist/include/drm/drm_fb_helper.h	Thu Jul 24 21:36:39 2014
@@ -139,6 +139,8 @@ int drm_fb_helper_single_add_all_connect
 int drm_fb_helper_debug_enter(struct fb_info *info);
 int drm_fb_helper_debug_leave(struct fb_info *info);
 #endif
+int drm_fb_helper_debug_enter_fb(struct drm_fb_helper *fb_helper);
+int drm_fb_helper_debug_leave_fb(struct drm_fb_helper *fb_helper);
 struct drm_display_mode *
 drm_has_preferred_mode(struct drm_fb_helper_connector *fb_connector,
 			int width, int height);



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

2014-12-02 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Tue Dec  2 21:49:36 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_stub.c
src/sys/external/bsd/drm2/dist/include/drm: drmP.h

Log Message:
fix debugging compilation (ALL kernel)


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/dist/drm/drm_stub.c
cvs rdiff -u -r1.8 -r1.9 src/sys/external/bsd/drm2/dist/include/drm/drmP.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/drm_stub.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_stub.c:1.7 src/sys/external/bsd/drm2/dist/drm/drm_stub.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/drm_stub.c:1.7	Sat Nov 22 14:18:07 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_stub.c	Tue Dec  2 16:49:36 2014
@@ -341,7 +341,9 @@ static int drm_minor_register(struct drm
 {
 	struct drm_minor *new_minor;
 	unsigned long flags;
+#ifndef __NetBSD__
 	int ret;
+#endif
 	int minor_id;
 
 	DRM_DEBUG("\n");
@@ -365,6 +367,7 @@ static int drm_minor_register(struct drm
 
 	new_minor->index = minor_id;
 
+#ifndef __NetBSD__
 	ret = drm_debugfs_init(new_minor, minor_id, drm_debugfs_root);
 	if (ret) {
 		DRM_ERROR("DRM: Failed to initialize /sys/kernel/debug/dri.\n");
@@ -376,7 +379,7 @@ static int drm_minor_register(struct drm
 		DRM_ERROR("DRM: Error sysfs_device_add.\n");
 		goto err_debugfs;
 	}
-
+#endif
 	/* replace NULL with @minor so lookups will succeed from now on */
 	spin_lock_irqsave(&drm_minor_lock, flags);
 	idr_replace(&drm_minors_idr, new_minor, new_minor->index);
@@ -385,6 +388,7 @@ static int drm_minor_register(struct drm
 	DRM_DEBUG("new minor assigned %d\n", minor_id);
 	return 0;
 
+#ifndef __NetBSD__
 err_debugfs:
 	drm_debugfs_cleanup(new_minor);
 err_id:
@@ -393,6 +397,7 @@ err_id:
 	spin_unlock_irqrestore(&drm_minor_lock, flags);
 	new_minor->index = 0;
 	return ret;
+#endif
 }
 
 static void drm_minor_unregister(struct drm_device *dev, unsigned int type)

Index: src/sys/external/bsd/drm2/dist/include/drm/drmP.h
diff -u src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.8 src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.9
--- src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.8	Sat Nov 22 14:18:07 2014
+++ src/sys/external/bsd/drm2/dist/include/drm/drmP.h	Tue Dec  2 16:49:36 2014
@@ -1637,9 +1637,10 @@ extern unsigned int drm_timestamp_precis
 extern unsigned int drm_timestamp_monotonic;
 
 extern struct class *drm_class;
+#ifndef __NetBSD__
 extern struct dentry *drm_debugfs_root;
 
-#ifdef __NetBSD__
+#else
 extern spinlock_t drm_minor_lock;
 #endif
 extern struct idr drm_minors_idr;



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

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(&pages[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, &obj->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

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(&p->uf_entry.tv.head, &p->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(&curproc->p_vmspace->vm_map);
 #else
 	if (need_mmap_lock)
 		down_read(¤t->mm->mmap_sem);
@@ -450,7 +449,10 @@ error_validate:
 		ttm_eu_backoff_reservation(&p->ticket, &p->validated);
 
 error_reserve:
-#ifndef __NetBSD__
+#ifdef __NetBSD__
+	if (need_mmap_lock)
+		vm_map_unlock_read(&curproc->p_vmspace->vm_map);
+#else
 	if (need_mmap_lock)
 		up_read(¤t->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(&curproc->p_vmspace->vm_map);
+#else
 		down_read(¤t->mm->mmap_sem);
+#endif
 		r = amdgpu_bo_reserve(bo, true);
 		if (r) {
+#ifdef __NetBSD__
+			vm_map_unlock_read(&curproc->p_vmspace->vm_map);
+#else
 			up_read(¤t->mm->mmap_sem);
+#endif
 			goto release_object;
 		}
 
 		amdgpu_ttm_placement_from_domain(bo, AMDGPU_GEM_DOMAIN_GTT);
 		r = ttm_bo_validate(&bo->tbo, &bo->placement, true, false);
 		amdgpu_bo_unreserve(bo);
+#ifdef __NetBSD__
+		vm_map_unlock_read(&curproc->p_vmspace->vm_map);
+#else
 		up_read(¤t->mm->mmap_sem);
+#endif
 		if (r)
 			goto release_object;
 	}
@@ -312,7 +315,

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 E

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 = &connector->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, &option))
+	if (!prop_dictionary_get_string(prop, connector->name, &option))
 		return;
 #else
+	char *option = NULL;
 	if (fb_get_options(connector->name, &option))
 		return;
 #endif



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(&intel_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

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(&intel_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
 	switc

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

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-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(&drm_global_mutex);
 		/* XXX errno Linux->NetBSD */
-		error = -(*ioctl->func)(dev, data, file);
+		error = -(*ioctl->func)(dev, data0, file);
 		mutex_unlock(&drm_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

2016-11-02 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Thu Nov  3 00:10:49 UTC 2016

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

Log Message:
Avoid zero-size uao.

Apparently some GEM/TTM objects can be zero-size, as discovered by
Stefan Hertenberger:
https://mail-index.netbsd.org/current-users/2016/08/02/msg029891.html


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/external/bsd/drm2/dist/drm/drm_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/drm_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_gem.c:1.5 src/sys/external/bsd/drm2/dist/drm/drm_gem.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/drm_gem.c:1.5	Mon Aug 18 01:21:03 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_gem.c	Thu Nov  3 00:10:49 2016
@@ -154,7 +154,11 @@ int drm_gem_object_init(struct drm_devic
 	drm_gem_private_object_init(dev, obj, size);
 
 #ifdef __NetBSD__
-	obj->gemo_shm_uao = uao_create(size, 0);
+	/*
+	 * A uao may not have size 0, but a gem object may.  Allocate a
+	 * spurious page so we needn't teach uao how to have size 0.
+	 */
+	obj->gemo_shm_uao = uao_create(MAX(size, PAGE_SIZE), 0);
 	/*
 	 * XXX This is gross.  We ought to do it the other way around:
 	 * set the uao to have the main uvm object's lock.  However,



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

2015-11-14 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sat Nov 14 13:27:29 UTC 2015

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

Log Message:
Support command-line modes by picking up connector modes from the device
properties. The connector name is the key name in the device properties
dictionary.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c
cvs rdiff -u -r1.5 -r1.6 src/sys/external/bsd/drm2/dist/drm/drm_modes.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_fb_helper.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.7 src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.7	Thu Jul 24 21:36:39 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c	Sat Nov 14 13:27:29 2015
@@ -117,7 +117,6 @@ fail:
 }
 EXPORT_SYMBOL(drm_fb_helper_single_add_all_connectors);
 
-#ifndef __NetBSD__		/* XXX fb command line */
 static int drm_fb_helper_parse_command_line(struct drm_fb_helper *fb_helper)
 {
 	struct drm_fb_helper_connector *fb_helper_conn;
@@ -133,8 +132,14 @@ static int drm_fb_helper_parse_command_l
 		mode = &fb_helper_conn->cmdline_mode;
 
 		/* do something on return - turn off connector maybe */
+#if defined(__NetBSD__)
+		prop_dictionary_t prop = device_properties(connector->dev->dev);
+		if (prop_dictionary_get_cstring(prop, drm_get_connector_name(connector), &option) == false)
+			continue;
+#else
 		if (fb_get_options(drm_get_connector_name(connector), &option))
 			continue;
+#endif
 
 		if (drm_mode_parse_command_line_for_connector(option,
 			  connector,
@@ -171,7 +176,6 @@ static int drm_fb_helper_parse_command_l
 	}
 	return 0;
 }
-#endif
 
 static void drm_fb_helper_save_lut_atomic(struct drm_crtc *crtc, struct drm_fb_helper *helper)
 {
@@ -1207,9 +1211,6 @@ static bool drm_has_cmdline_mode(struct 
 struct drm_display_mode *drm_pick_cmdline_mode(struct drm_fb_helper_connector *fb_helper_conn,
 		  int width, int height)
 {
-#ifdef __NetBSD__		/* XXX fb command line */
-	return NULL;
-#else
 	struct drm_cmdline_mode *cmdline_mode;
 	struct drm_display_mode *mode = NULL;
 	bool prefer_non_interlace;
@@ -1257,7 +1258,6 @@ create_mode:
 		 cmdline_mode);
 	list_add(&mode->head, &fb_helper_conn->connector->modes);
 	return mode;
-#endif
 }
 EXPORT_SYMBOL(drm_pick_cmdline_mode);
 
@@ -1601,9 +1601,7 @@ bool drm_fb_helper_initial_config(struct
 	struct drm_device *dev = fb_helper->dev;
 	int count = 0;
 
-#ifndef __NetBSD__		/* XXX fb command line */
 	drm_fb_helper_parse_command_line(fb_helper);
-#endif
 
 	mutex_lock(&dev->mode_config.mutex);
 	count = drm_fb_helper_probe_connector_modes(fb_helper,

Index: src/sys/external/bsd/drm2/dist/drm/drm_modes.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_modes.c:1.5 src/sys/external/bsd/drm2/dist/drm/drm_modes.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/drm_modes.c:1.5	Wed Jul 16 20:56:24 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_modes.c	Sat Nov 14 13:27:29 2015
@@ -1057,8 +1057,6 @@ void drm_mode_connector_list_update(stru
 }
 EXPORT_SYMBOL(drm_mode_connector_list_update);
 
-#ifndef __NetBSD__
-
 /**
  * drm_mode_parse_command_line_for_connector - parse command line modeline for connector
  * @mode_option: optional per connector mode option
@@ -1087,16 +1085,18 @@ bool drm_mode_parse_command_line_for_con
 	const char *name;
 	unsigned int namelen;
 	bool res_specified = false, bpp_specified = false, refresh_specified = false;
-	unsigned int xres = 0, yres = 0, bpp = 32, refresh = 0;
+	long xres = 0, yres = 0, bpp = 32, refresh = 0;
 	bool yres_specified = false, cvt = false, rb = false;
 	bool interlace = false, margins = false, was_digit = false;
 	int i;
 	enum drm_connector_force force = DRM_FORCE_UNSPECIFIED;
 
+#if !defined(__NetBSD__)
 #ifdef CONFIG_FB
 	if (!mode_option)
 		mode_option = fb_mode_option;
 #endif
+#endif
 
 	if (!mode_option) {
 		mode->specified = false;
@@ -1110,26 +1110,35 @@ bool drm_mode_parse_command_line_for_con
 		case '@':
 			if (!refresh_specified && !bpp_specified &&
 			!yres_specified && !cvt && !rb && was_digit) {
-refresh = simple_strtol(&name[i+1], NULL, 10);
-refresh_specified = true;
-was_digit = false;
+if (kstrtol(&name[i+1], 10, &refresh) == 0) {
+	refresh_specified = true;
+	was_digit = false;
+} else {
+	goto done;
+}
 			} else
 goto done;
 			break;
 		case '-':
 			if (!bpp_specified && !yres_specified && !cvt &&
 			!rb && was_digit) {
-bpp = simple_strtol(&name[i+1], NULL, 10);
-bpp_specified = true;
-was_digit = false;
+if (kstrtol(&name[i+1], 10, &bpp) == 0) {
+	bpp_specified = true;
+	was_digit = false;
+} else {
+	goto done;
+}
 			} else
 goto done;
 			break;
 		case 'x

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

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

Removed Files:
src/sys/external/bsd/drm2/dist/drm: drm_stub.c

Log Message:
Neglected to delete local drm_stub.c during merge.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r0 src/sys/external/bsd/drm2/dist/drm/drm_stub.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

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

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

Log Message:
Terminate ifdef missed in merge.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 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.7 src/sys/external/bsd/drm2/dist/drm/drm_agpsupport.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/drm_agpsupport.c:1.7	Mon Aug 27 04:58:19 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_agpsupport.c	Mon Aug 27 06:32:57 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_agpsupport.c,v 1.7 2018/08/27 04:58:19 riastradh Exp $	*/
+/*	$NetBSD: drm_agpsupport.c,v 1.8 2018/08/27 06:32:57 riastradh Exp $	*/
 
 /**
  * \file drm_agpsupport.c
@@ -34,7 +34,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_agpsupport.c,v 1.7 2018/08/27 04:58:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_agpsupport.c,v 1.8 2018/08/27 06:32:57 riastradh Exp $");
 
 #include 
 #include 
@@ -565,3 +565,4 @@ drm_agp_bind_pages(struct drm_device *de
 	return mem;
 }
 EXPORT_SYMBOL(drm_agp_bind_pages);
+#endif



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

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

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

Log Message:
workaround netbsd incompatible LIST_HEAD

Author: coypu 
Committer: Taylor R Campbell 


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/drm_bridge.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_bridge.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_bridge.c:1.2 src/sys/external/bsd/drm2/dist/drm/drm_bridge.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/drm_bridge.c:1.2	Mon Aug 27 04:58:19 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_bridge.c	Mon Aug 27 06:43:47 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_bridge.c,v 1.2 2018/08/27 04:58:19 riastradh Exp $	*/
+/*	$NetBSD: drm_bridge.c,v 1.3 2018/08/27 06:43:47 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2014 Samsung Electronics Co., Ltd
@@ -24,7 +24,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_bridge.c,v 1.2 2018/08/27 04:58:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_bridge.c,v 1.3 2018/08/27 06:43:47 riastradh Exp $");
 
 #include 
 #include 
@@ -58,8 +58,13 @@ __KERNEL_RCSID(0, "$NetBSD: drm_bridge.c
  * desired output at the end of the encoder chain.
  */
 
+#ifdef __NetBSD__
+static struct mutex bridge_lock;
+static struct list_head bridge_list = LIST_HEAD_INIT(bridge_list);
+#else
 static DEFINE_MUTEX(bridge_lock);
 static LIST_HEAD(bridge_list);
+#endif
 
 /**
  * drm_bridge_add - add the given bridge to the global bridge list



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 06:46:32 UTC 2018

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

Log Message:
Need  for module_param_named.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.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_dp_helper.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.c:1.5 src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.c:1.5	Mon Aug 27 04:58:19 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.c	Mon Aug 27 06:46:32 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_dp_helper.c,v 1.5 2018/08/27 04:58:19 riastradh Exp $	*/
+/*	$NetBSD: drm_dp_helper.c,v 1.6 2018/08/27 06:46:32 riastradh Exp $	*/
 
 /*
  * Copyright © 2009 Keith Packard
@@ -23,10 +23,11 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_dp_helper.c,v 1.5 2018/08/27 04:58:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_dp_helper.c,v 1.6 2018/08/27 06:46:32 riastradh Exp $");
 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 



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 06:48:01 UTC 2018

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

Log Message:
ACCESS_ONCE -> __insn_barrier


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/drm_atomic.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_atomic.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_atomic.c:1.3 src/sys/external/bsd/drm2/dist/drm/drm_atomic.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/drm_atomic.c:1.3	Mon Aug 27 06:47:35 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_atomic.c	Mon Aug 27 06:48:01 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_atomic.c,v 1.3 2018/08/27 06:47:35 riastradh Exp $	*/
+/*	$NetBSD: drm_atomic.c,v 1.4 2018/08/27 06:48:01 riastradh Exp $	*/
 
 /*
  * Copyright (C) 2014 Red Hat
@@ -29,7 +29,7 @@
 
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_atomic.c,v 1.3 2018/08/27 06:47:35 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_atomic.c,v 1.4 2018/08/27 06:48:01 riastradh Exp $");
 
 #include 
 
@@ -72,7 +72,8 @@ drm_atomic_state_init(struct drm_device 
 	 */
 	state->allow_modeset = true;
 
-	state->num_connector = ACCESS_ONCE(dev->mode_config.num_connector);
+	state->num_connector = dev->mode_config.num_connector;
+	__insn_barrier();
 
 	state->crtcs = kcalloc(dev->mode_config.num_crtc,
 			   sizeof(*state->crtcs), GFP_KERNEL);



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 06:47:19 UTC 2018

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

Log Message:
No arithmetic on void *.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.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_dp_helper.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.c:1.6 src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.c:1.6	Mon Aug 27 06:46:32 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.c	Mon Aug 27 06:47:19 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_dp_helper.c,v 1.6 2018/08/27 06:46:32 riastradh Exp $	*/
+/*	$NetBSD: drm_dp_helper.c,v 1.7 2018/08/27 06:47:19 riastradh Exp $	*/
 
 /*
  * Copyright © 2009 Keith Packard
@@ -23,7 +23,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_dp_helper.c,v 1.6 2018/08/27 06:46:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_dp_helper.c,v 1.7 2018/08/27 06:47:19 riastradh Exp $");
 
 #include 
 #include 
@@ -666,7 +666,7 @@ static int drm_dp_i2c_drain_msg(struct d
 		}
 
 		msg.size -= err;
-		msg.buffer += err;
+		msg.buffer = (void *)((char *)msg.buffer + err);
 	}
 
 	return ret;



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 06:48:15 UTC 2018

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

Log Message:
Need declarations in drm_crtc_internal.h.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/dist/drm/drm_atomic.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_atomic.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_atomic.c:1.4 src/sys/external/bsd/drm2/dist/drm/drm_atomic.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/drm_atomic.c:1.4	Mon Aug 27 06:48:01 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_atomic.c	Mon Aug 27 06:48:15 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_atomic.c,v 1.4 2018/08/27 06:48:01 riastradh Exp $	*/
+/*	$NetBSD: drm_atomic.c,v 1.5 2018/08/27 06:48:15 riastradh Exp $	*/
 
 /*
  * Copyright (C) 2014 Red Hat
@@ -29,12 +29,13 @@
 
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_atomic.c,v 1.4 2018/08/27 06:48:01 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_atomic.c,v 1.5 2018/08/27 06:48:15 riastradh Exp $");
 
 #include 
 
 #include 
 #include 
+#include 
 #include 
 
 /**



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 06:48:26 UTC 2018

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

Log Message:
Mark set-but-unused variable as such.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/external/bsd/drm2/dist/drm/drm_atomic.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_atomic.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_atomic.c:1.5 src/sys/external/bsd/drm2/dist/drm/drm_atomic.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/drm_atomic.c:1.5	Mon Aug 27 06:48:15 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_atomic.c	Mon Aug 27 06:48:26 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_atomic.c,v 1.5 2018/08/27 06:48:15 riastradh Exp $	*/
+/*	$NetBSD: drm_atomic.c,v 1.6 2018/08/27 06:48:26 riastradh Exp $	*/
 
 /*
  * Copyright (C) 2014 Red Hat
@@ -29,7 +29,7 @@
 
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_atomic.c,v 1.5 2018/08/27 06:48:15 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_atomic.c,v 1.6 2018/08/27 06:48:26 riastradh Exp $");
 
 #include 
 
@@ -1496,7 +1496,7 @@ int drm_mode_atomic_ioctl(struct drm_dev
 	struct drm_atomic_state *state;
 	struct drm_modeset_acquire_ctx ctx;
 	struct drm_plane *plane;
-	struct drm_crtc *crtc;
+	struct drm_crtc *crtc __unused;
 	struct drm_crtc_state *crtc_state;
 	unsigned plane_mask;
 	int ret = 0;



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 06:48:40 UTC 2018

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

Log Message:
Need  for EXPORT_*.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/drm_atomic_helper.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_atomic_helper.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_atomic_helper.c:1.2 src/sys/external/bsd/drm2/dist/drm/drm_atomic_helper.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/drm_atomic_helper.c:1.2	Mon Aug 27 04:58:19 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_atomic_helper.c	Mon Aug 27 06:48:40 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_atomic_helper.c,v 1.2 2018/08/27 04:58:19 riastradh Exp $	*/
+/*	$NetBSD: drm_atomic_helper.c,v 1.3 2018/08/27 06:48:40 riastradh Exp $	*/
 
 /*
  * Copyright (C) 2014 Red Hat
@@ -28,13 +28,14 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_atomic_helper.c,v 1.2 2018/08/27 04:58:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_atomic_helper.c,v 1.3 2018/08/27 06:48:40 riastradh Exp $");
 
 #include 
 #include 
 #include 
 #include 
 #include 
+#include 
 #include 
 
 /**



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 06:47:35 UTC 2018

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

Log Message:
Need  for EXPORT_*.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/drm_atomic.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_atomic.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_atomic.c:1.2 src/sys/external/bsd/drm2/dist/drm/drm_atomic.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/drm_atomic.c:1.2	Mon Aug 27 04:58:19 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_atomic.c	Mon Aug 27 06:47:35 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_atomic.c,v 1.2 2018/08/27 04:58:19 riastradh Exp $	*/
+/*	$NetBSD: drm_atomic.c,v 1.3 2018/08/27 06:47:35 riastradh Exp $	*/
 
 /*
  * Copyright (C) 2014 Red Hat
@@ -29,7 +29,9 @@
 
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_atomic.c,v 1.2 2018/08/27 04:58:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_atomic.c,v 1.3 2018/08/27 06:47:35 riastradh Exp $");
+
+#include 
 
 #include 
 #include 



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 06:52:24 UTC 2018

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

Log Message:
Adapt abuse of kref abstraction in DRM_DEBUG messages.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 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.6 src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.6	Mon Aug 27 06:52:11 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_crtc.c	Mon Aug 27 06:52:24 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_crtc.c,v 1.6 2018/08/27 06:52:11 riastradh Exp $	*/
+/*	$NetBSD: drm_crtc.c,v 1.7 2018/08/27 06:52:24 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2006-2008 Intel Corporation
@@ -32,7 +32,7 @@
  *  Jesse Barnes 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_crtc.c,v 1.6 2018/08/27 06:52:11 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_crtc.c,v 1.7 2018/08/27 06:52:24 riastradh Exp $");
 
 #include 
 #include 
@@ -519,7 +519,7 @@ EXPORT_SYMBOL(drm_framebuffer_lookup);
  */
 void drm_framebuffer_unreference(struct drm_framebuffer *fb)
 {
-	DRM_DEBUG("%p: FB ID: %d (%d)\n", fb, fb->base.id, atomic_read(&fb->refcount.refcount));
+	DRM_DEBUG("%p: FB ID: %d (%d)\n", fb, fb->base.id, fb->refcount.kr_count);
 	kref_put(&fb->refcount, drm_framebuffer_free);
 }
 EXPORT_SYMBOL(drm_framebuffer_unreference);
@@ -532,7 +532,7 @@ EXPORT_SYMBOL(drm_framebuffer_unreferenc
  */
 void drm_framebuffer_reference(struct drm_framebuffer *fb)
 {
-	DRM_DEBUG("%p: FB ID: %d (%d)\n", fb, fb->base.id, atomic_read(&fb->refcount.refcount));
+	DRM_DEBUG("%p: FB ID: %d (%d)\n", fb, fb->base.id, fb->refcount.kr_count);
 	kref_get(&fb->refcount);
 }
 EXPORT_SYMBOL(drm_framebuffer_reference);
@@ -4284,7 +4284,7 @@ void drm_property_unreference_blob(struc
 
 	dev = blob->dev;
 
-	DRM_DEBUG("%p: blob ID: %d (%d)\n", blob, blob->base.id, atomic_read(&blob->refcount.refcount));
+	DRM_DEBUG("%p: blob ID: %d (%d)\n", blob, blob->base.id, blob->refcount.kr_count);
 
 	if (kref_put_mutex(&blob->refcount, drm_property_free_blob,
 			   &dev->mode_config.blob_lock))
@@ -4307,7 +4307,7 @@ static void drm_property_unreference_blo
 	if (!blob)
 		return;
 
-	DRM_DEBUG("%p: blob ID: %d (%d)\n", blob, blob->base.id, atomic_read(&blob->refcount.refcount));
+	DRM_DEBUG("%p: blob ID: %d (%d)\n", blob, blob->base.id, blob->refcount.kr_count);
 
 	kref_put(&blob->refcount, drm_property_free_blob);
 }
@@ -4341,7 +4341,7 @@ void drm_property_destroy_user_blobs(str
  */
 struct drm_property_blob *drm_property_reference_blob(struct drm_property_blob *blob)
 {
-	DRM_DEBUG("%p: blob ID: %d (%d)\n", blob, blob->base.id, atomic_read(&blob->refcount.refcount));
+	DRM_DEBUG("%p: blob ID: %d (%d)\n", blob, blob->base.id, blob->refcount.kr_count);
 	kref_get(&blob->refcount);
 	return blob;
 }



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 06:52:11 UTC 2018

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

Log Message:
Use kref_exclusive_p, rather than abusing kref abstraction.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 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.5 src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.5	Mon Aug 27 04:58:19 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_crtc.c	Mon Aug 27 06:52:11 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_crtc.c,v 1.5 2018/08/27 04:58:19 riastradh Exp $	*/
+/*	$NetBSD: drm_crtc.c,v 1.6 2018/08/27 06:52:11 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2006-2008 Intel Corporation
@@ -32,7 +32,7 @@
  *  Jesse Barnes 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_crtc.c,v 1.5 2018/08/27 04:58:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_crtc.c,v 1.6 2018/08/27 06:52:11 riastradh Exp $");
 
 #include 
 #include 
@@ -3400,7 +3400,7 @@ int drm_mode_rmfb(struct drm_device *dev
 	 * so run this in a separate stack as there's no way to correctly
 	 * handle this after the fb is already removed from the lookup table.
 	 */
-	if (atomic_read(&fb->refcount.refcount) > 1) {
+	if (!kref_exclusive_p(&fb->refcount)) {
 		struct drm_mode_rmfb_work arg;
 
 		INIT_WORK_ONSTACK(&arg.work, drm_mode_rmfb_work_fn);
@@ -3598,7 +3598,7 @@ void drm_fb_release(struct drm_file *pri
 	 * at it any more.
 	 */
 	list_for_each_entry_safe(fb, tfb, &priv->fbs, filp_head) {
-		if (atomic_read(&fb->refcount.refcount) > 1) {
+		if (!kref_exclusive_p(&fb->refcount)) {
 			list_move_tail(&fb->filp_head, &arg.fbs);
 		} else {
 			list_del_init(&fb->filp_head);



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 06:52:45 UTC 2018

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

Log Message:
Initialize and destroy aux->hw_mutex appropriately.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.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_dp_helper.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.c:1.7 src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.c:1.7	Mon Aug 27 06:47:19 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_dp_helper.c	Mon Aug 27 06:52:45 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_dp_helper.c,v 1.7 2018/08/27 06:47:19 riastradh Exp $	*/
+/*	$NetBSD: drm_dp_helper.c,v 1.8 2018/08/27 06:52:45 riastradh Exp $	*/
 
 /*
  * Copyright © 2009 Keith Packard
@@ -23,7 +23,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_dp_helper.c,v 1.7 2018/08/27 06:47:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_dp_helper.c,v 1.8 2018/08/27 06:52:45 riastradh Exp $");
 
 #include 
 #include 
@@ -769,7 +769,11 @@ static const struct i2c_algorithm drm_dp
  */
 int drm_dp_aux_register(struct drm_dp_aux *aux)
 {
+#ifdef __NetBSD__
+	linux_mutex_init(&aux->hw_mutex);
+#else
 	mutex_init(&aux->hw_mutex);
+#endif
 
 	aux->ddc.algo = &drm_dp_i2c_algo;
 	aux->ddc.algo_data = aux;
@@ -796,5 +800,10 @@ EXPORT_SYMBOL(drm_dp_aux_register);
 void drm_dp_aux_unregister(struct drm_dp_aux *aux)
 {
 	i2c_del_adapter(&aux->ddc);
+#ifdef __NetBSD__
+	linux_mutex_destroy(&aux->hw_mutex);
+#else
+	mutex_destroy(&aux->hw_mutex);
+#endif
 }
 EXPORT_SYMBOL(drm_dp_aux_unregister);



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 06:53:46 UTC 2018

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

Log Message:
dev->count_lock is no more.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 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.3 src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.3	Mon Aug 27 06:53:13 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_drv.c	Mon Aug 27 06:53:46 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_drv.c,v 1.3 2018/08/27 06:53:13 riastradh Exp $	*/
+/*	$NetBSD: drm_drv.c,v 1.4 2018/08/27 06:53:46 riastradh 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.3 2018/08/27 06:53:13 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_drv.c,v 1.4 2018/08/27 06:53:46 riastradh Exp $");
 
 #include 
 #include 
@@ -723,7 +723,6 @@ err_free:
 	linux_mutex_destroy(&dev->ctxlist_mutex);
 	linux_mutex_destroy(&dev->master_mutex);
 	spin_lock_destroy(&dev->event_lock);
-	spin_lock_destroy(&dev->count_lock);
 #else
 	mutex_destroy(&dev->master_mutex);
 #endif
@@ -752,7 +751,6 @@ static void drm_dev_release(struct kref 
 	linux_mutex_destroy(&dev->ctxlist_mutex);
 	linux_mutex_destroy(&dev->master_mutex);
 	spin_lock_destroy(&dev->event_lock);
-	spin_lock_destroy(&dev->count_lock);
 #else
 	mutex_destroy(&dev->master_mutex);
 #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 06:53:36 UTC 2018

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

Log Message:
Need  for module_param_*.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/sys/external/bsd/drm2/dist/drm/drm_irq.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_irq.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.9 src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.10
--- src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.9	Mon Aug 27 04:58:19 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_irq.c	Mon Aug 27 06:53:36 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_irq.c,v 1.9 2018/08/27 04:58:19 riastradh Exp $	*/
+/*	$NetBSD: drm_irq.c,v 1.10 2018/08/27 06:53:36 riastradh Exp $	*/
 
 /*
  * drm_irq.c IRQ and vblank support
@@ -35,7 +35,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_irq.c,v 1.9 2018/08/27 04:58:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_irq.c,v 1.10 2018/08/27 06:53:36 riastradh Exp $");
 
 #include 
 #include "drm_trace.h"
@@ -46,6 +46,7 @@ __KERNEL_RCSID(0, "$NetBSD: drm_irq.c,v 
 
 #include 
 #include 
+#include 
 
 #include 
 #include 



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 06:53:13 UTC 2018

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

Log Message:
Fix drm_err merge.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 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.2 src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.2	Mon Aug 27 04:58:19 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_drv.c	Mon Aug 27 06:53:13 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_drv.c,v 1.2 2018/08/27 04:58:19 riastradh Exp $	*/
+/*	$NetBSD: drm_drv.c,v 1.3 2018/08/27 06:53:13 riastradh 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.2 2018/08/27 04:58:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_drv.c,v 1.3 2018/08/27 06:53:13 riastradh Exp $");
 
 #include 
 #include 
@@ -75,11 +75,11 @@ void drm_err(const char *format, ...)
 	va_list args;
 
 	va_start(args, format);
-	printf("DRM error in %s: ", func);
+	/* XXX Convert this to a symbol name...  */
+	printf(KERN_ERR "[" DRM_NAME ":%p] *ERROR* ",
+	__builtin_return_address(0));
 	vprintf(format, args);
 	va_end(args);
-
-	return 0;
 #else
 	struct va_format vaf;
 	va_list args;



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 06:53:25 UTC 2018

Removed Files:
src/sys/external/bsd/drm2/dist/drm: drm_trace.h

Log Message:
Remove troublesome drm_trace.h.


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

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

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

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

Log Message:
Fix up drm_crtc.c.

- Ifdef out debugfs variables.
- Restore int ret declaration lost in merge.
- Use PRIu64, not %llu, for uint64_t.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 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.7 src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.7	Mon Aug 27 06:52:24 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_crtc.c	Mon Aug 27 06:55:13 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_crtc.c,v 1.7 2018/08/27 06:52:24 riastradh Exp $	*/
+/*	$NetBSD: drm_crtc.c,v 1.8 2018/08/27 06:55:13 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2006-2008 Intel Corporation
@@ -32,7 +32,7 @@
  *  Jesse Barnes 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_crtc.c,v 1.7 2018/08/27 06:52:24 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_crtc.c,v 1.8 2018/08/27 06:55:13 riastradh Exp $");
 
 #include 
 #include 
@@ -1035,7 +1035,9 @@ EXPORT_SYMBOL(drm_connector_index);
  */
 int drm_connector_register(struct drm_connector *connector)
 {
+#ifndef __NetBSD__		/* XXX sysfs, debugfs */
 	int ret;
+#endif
 
 	drm_mode_object_register(connector->dev, &connector->base);
 
@@ -3061,6 +3063,7 @@ int drm_mode_addfb(struct drm_device *de
 	struct drm_mode_fb_cmd *or = data;
 	static const struct drm_mode_fb_cmd2 zero_fbcmd;
 	struct drm_mode_fb_cmd2 r = zero_fbcmd;
+	int ret;
 
 	/* convert to new format and call new ioctl */
 	r.fb_id = or->fb_id;
@@ -3199,7 +3202,7 @@ static int framebuffer_check(const struc
 		}
 
 		if (r->modifier[i] && !(r->flags & DRM_MODE_FB_MODIFIERS)) {
-			DRM_DEBUG_KMS("bad fb modifier %llu for plane %d\n",
+			DRM_DEBUG_KMS("bad fb modifier %"PRIu64" for plane %d\n",
   r->modifier[i], i);
 			return -EINVAL;
 		}



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 06:56:50 UTC 2018

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

Log Message:
 for do_div.  Fix some 64-bit printfs.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/dist/drm/drm_mm.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_mm.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_mm.c:1.4 src/sys/external/bsd/drm2/dist/drm/drm_mm.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/drm_mm.c:1.4	Mon Aug 27 04:58:19 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_mm.c	Mon Aug 27 06:56:50 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_mm.c,v 1.4 2018/08/27 04:58:19 riastradh Exp $	*/
+/*	$NetBSD: drm_mm.c,v 1.5 2018/08/27 06:56:50 riastradh Exp $	*/
 
 /**
  *
@@ -44,7 +44,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_mm.c,v 1.4 2018/08/27 04:58:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_mm.c,v 1.5 2018/08/27 06:56:50 riastradh Exp $");
 
 #include 
 #include 
@@ -53,6 +53,7 @@ __KERNEL_RCSID(0, "$NetBSD: drm_mm.c,v 1
 #include 
 #include 
 #include 
+#include 
 
 /**
  * DOC: Overview
@@ -786,7 +787,7 @@ static u64 drm_mm_debug_hole(struct drm_
 		hole_start = drm_mm_hole_node_start(entry);
 		hole_end = drm_mm_hole_node_end(entry);
 		hole_size = hole_end - hole_start;
-		pr_debug("%s %#llx-%#llx: %llu: free\n", prefix, hole_start,
+		pr_debug("%s %#"PRIx64"-%#"PRIx64": %"PRIu64": free\n", prefix, hole_start,
 			 hole_end, hole_size);
 		return hole_size;
 	}
@@ -807,14 +808,14 @@ void drm_mm_debug_table(struct drm_mm *m
 	total_free += drm_mm_debug_hole(&mm->head_node, prefix);
 
 	drm_mm_for_each_node(entry, mm) {
-		pr_debug("%s %#llx-%#llx: %llu: used\n", prefix, entry->start,
+		pr_debug("%s %#"PRIx64"-%#"PRIx64": %"PRIu64": used\n", prefix, entry->start,
 			 entry->start + entry->size, entry->size);
 		total_used += entry->size;
 		total_free += drm_mm_debug_hole(entry, prefix);
 	}
 	total = total_free + total_used;
 
-	pr_debug("%s total: %llu, used %llu free %llu\n", prefix, total,
+	pr_debug("%s total: %"PRIu64", used %"PRIu64" free %"PRIu64"\n", prefix, total,
 		 total_used, total_free);
 }
 EXPORT_SYMBOL(drm_mm_debug_table);



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 06:56:13 UTC 2018

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

Log Message:
Need  for EXPORT_*.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/drm_modeset_lock.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_modeset_lock.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_modeset_lock.c:1.2 src/sys/external/bsd/drm2/dist/drm/drm_modeset_lock.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/drm_modeset_lock.c:1.2	Mon Aug 27 04:58:19 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_modeset_lock.c	Mon Aug 27 06:56:12 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_modeset_lock.c,v 1.2 2018/08/27 04:58:19 riastradh Exp $	*/
+/*	$NetBSD: drm_modeset_lock.c,v 1.3 2018/08/27 06:56:12 riastradh Exp $	*/
 
 /*
  * Copyright (C) 2014 Red Hat
@@ -24,7 +24,9 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_modeset_lock.c,v 1.2 2018/08/27 04:58:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_modeset_lock.c,v 1.3 2018/08/27 06:56:12 riastradh Exp $");
+
+#include 
 
 #include 
 #include 



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 07:03:39 UTC 2018

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

Log Message:
Convert wait_event_timeout to DRM_SPIN_TIMED_WAIT_UNTIL.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/external/bsd/drm2/dist/drm/drm_irq.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_irq.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.11 src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.12
--- src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.11	Mon Aug 27 07:03:25 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_irq.c	Mon Aug 27 07:03:39 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_irq.c,v 1.11 2018/08/27 07:03:25 riastradh Exp $	*/
+/*	$NetBSD: drm_irq.c,v 1.12 2018/08/27 07:03:39 riastradh Exp $	*/
 
 /*
  * drm_irq.c IRQ and vblank support
@@ -35,7 +35,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_irq.c,v 1.11 2018/08/27 07:03:25 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_irq.c,v 1.12 2018/08/27 07:03:39 riastradh Exp $");
 
 #include 
 #include "drm_trace.h"
@@ -1397,11 +1397,20 @@ void drm_wait_one_vblank(struct drm_devi
 	if (WARN(ret, "vblank not available on crtc %i, ret=%i\n", pipe, ret))
 		return;
 
+#ifdef __NetBSD__
+	spin_lock(&dev->vbl_lock);
+	last = drm_vblank_count(dev, pipe);
+	DRM_SPIN_TIMED_WAIT_UNTIL(ret, &vblank->queue, &dev->vbl_lock,
+	msecs_to_jiffies(100),
+	last != drm_vblank_count(dev, pipe));
+	spin_unlock(&dev->vbl_lock);
+#else
 	last = drm_vblank_count(dev, pipe);
 
 	ret = wait_event_timeout(vblank->queue,
  last != drm_vblank_count(dev, pipe),
  msecs_to_jiffies(100));
+#endif
 
 	WARN(ret == 0, "vblank wait timed out on crtc %i\n", pipe);
 



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 07:45:55 UTC 2018

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

Log Message:
Reduce diff by going back to just using ACCESS_ONCE.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/external/bsd/drm2/dist/drm/drm_atomic.c
cvs rdiff -u -r1.45 -r1.46 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/drm_atomic.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_atomic.c:1.6 src/sys/external/bsd/drm2/dist/drm/drm_atomic.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/drm_atomic.c:1.6	Mon Aug 27 06:48:26 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_atomic.c	Mon Aug 27 07:45:55 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_atomic.c,v 1.6 2018/08/27 06:48:26 riastradh Exp $	*/
+/*	$NetBSD: drm_atomic.c,v 1.7 2018/08/27 07:45:55 riastradh Exp $	*/
 
 /*
  * Copyright (C) 2014 Red Hat
@@ -29,7 +29,7 @@
 
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_atomic.c,v 1.6 2018/08/27 06:48:26 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_atomic.c,v 1.7 2018/08/27 07:45:55 riastradh Exp $");
 
 #include 
 
@@ -73,8 +73,7 @@ drm_atomic_state_init(struct drm_device 
 	 */
 	state->allow_modeset = true;
 
-	state->num_connector = dev->mode_config.num_connector;
-	__insn_barrier();
+	state->num_connector = ACCESS_ONCE(dev->mode_config.num_connector);
 
 	state->crtcs = kcalloc(dev->mode_config.num_crtc,
 			   sizeof(*state->crtcs), GFP_KERNEL);

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.45 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.46
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.45	Mon Aug 27 07:23:37 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Mon Aug 27 07:45:55 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gem.c,v 1.45 2018/08/27 07:23:37 riastradh Exp $	*/
+/*	$NetBSD: i915_gem.c,v 1.46 2018/08/27 07:45:55 riastradh Exp $	*/
 
 /*
  * Copyright © 2008-2015 Intel Corporation
@@ -28,7 +28,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: i915_gem.c,v 1.45 2018/08/27 07:23:37 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gem.c,v 1.46 2018/08/27 07:45:55 riastradh Exp $");
 
 #ifdef __NetBSD__
 #if 0/* XXX uvmhist option?  */
@@ -1392,7 +1392,7 @@ int __i915_wait_request(struct drm_i915_
 	struct drm_device *dev = ring->dev;
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	const bool irq_test_in_progress =
-	dev_priv->gpu_error.test_irq_rings & intel_ring_flag(ring);
+		ACCESS_ONCE(dev_priv->gpu_error.test_irq_rings) & intel_ring_flag(ring);
 #ifdef __NetBSD__
 	int state = 0;
 	bool wedged;
@@ -1404,8 +1404,6 @@ int __i915_wait_request(struct drm_i915_
 	s64 before, now;
 	int ret;
 
-	__insn_barrier();	/* ACCESS_ONCE for irq_test_in_progress */
-
 	WARN(!intel_irqs_enabled(dev_priv), "IRQs disabled");
 
 	if (list_empty(&req->list))



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 07:54:18 UTC 2018

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

Log Message:
Ifdef out sysfs stuff.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 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.5 src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.5	Mon Aug 27 06:54:08 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_drv.c	Mon Aug 27 07:54:18 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_drv.c,v 1.5 2018/08/27 06:54:08 riastradh Exp $	*/
+/*	$NetBSD: drm_drv.c,v 1.6 2018/08/27 07:54:18 riastradh 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.5 2018/08/27 06:54:08 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_drv.c,v 1.6 2018/08/27 07:54:18 riastradh Exp $");
 
 #include 
 #include 
@@ -302,16 +302,18 @@ static int drm_minor_alloc(struct drm_de
 
 	minor->index = r;
 
+#ifndef __NetBSD__		/* XXX drm sysfs */
 	minor->kdev = drm_sysfs_minor_alloc(minor);
 	if (IS_ERR(minor->kdev)) {
 		r = PTR_ERR(minor->kdev);
 		goto err_index;
 	}
+#endif
 
 	*drm_minor_get_slot(dev, type) = minor;
 	return 0;
 
-err_index:
+err_index: __unused
 	spin_lock_irqsave(&drm_minor_lock, flags);
 	idr_remove(&drm_minors_idr, minor->index);
 	spin_unlock_irqrestore(&drm_minor_lock, flags);
@@ -330,7 +332,7 @@ static void drm_minor_free(struct drm_de
 	if (!minor)
 		return;
 
-#ifndef __NetBSD__
+#ifndef __NetBSD__		/* XXX drm sysfs */
 	put_device(minor->kdev);
 #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 07:54:42 UTC 2018

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

Log Message:
Fix bad merge and ifdef out linux fb stuff.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.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_fb_helper.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.9 src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.10
--- src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.9	Mon Aug 27 04:58:19 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c	Mon Aug 27 07:54:41 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_fb_helper.c,v 1.9 2018/08/27 04:58:19 riastradh Exp $	*/
+/*	$NetBSD: drm_fb_helper.c,v 1.10 2018/08/27 07:54:41 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.9 2018/08/27 04:58:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_fb_helper.c,v 1.10 2018/08/27 07:54:41 riastradh Exp $");
 
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
@@ -287,7 +287,6 @@ int
 drm_fb_helper_debug_enter_fb(struct drm_fb_helper *helper)
 {
 	const struct drm_crtc_helper_funcs *funcs;
-	struct drm_crtc_helper_funcs *funcs;
 	int i;
 
 	list_for_each_entry(helper, &kernel_fb_helper_list, kernel_fb_list) {
@@ -762,6 +761,8 @@ out_free:
 }
 EXPORT_SYMBOL(drm_fb_helper_init);
 
+#ifndef __NetBSD__		/* XXX fb info */
+
 /**
  * drm_fb_helper_alloc_fbi - allocate fb_info and some of its members
  * @fb_helper: driver-allocated fbdev helper
@@ -842,6 +843,8 @@ void drm_fb_helper_release_fbi(struct dr
 }
 EXPORT_SYMBOL(drm_fb_helper_release_fbi);
 
+#endif	/* __NetBSD__ */
+
 void drm_fb_helper_fini(struct drm_fb_helper *fb_helper)
 {
 	if (!drm_fbdev_emulation)
@@ -850,7 +853,9 @@ void drm_fb_helper_fini(struct drm_fb_he
 	if (!list_empty(&fb_helper->kernel_fb_list)) {
 		list_del(&fb_helper->kernel_fb_list);
 		if (list_empty(&kernel_fb_helper_list)) {
+#ifndef __NetBSD__		/* XXX drm sysrq */
 			unregister_sysrq_key('v', &sysrq_drm_fb_helper_restore_op);
+#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 07:55:06 UTC 2018

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

Log Message:
Disable drm prime ioctls for now.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 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.6 src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.6	Mon Aug 27 06:50:58 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c	Mon Aug 27 07:55:06 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_ioctl.c,v 1.6 2018/08/27 06:50:58 riastradh Exp $	*/
+/*	$NetBSD: drm_ioctl.c,v 1.7 2018/08/27 07:55:06 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.6 2018/08/27 06:50:58 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_ioctl.c,v 1.7 2018/08/27 07:55:06 riastradh Exp $");
 
 #include 
 #include 
@@ -665,8 +665,10 @@ static const struct drm_ioctl_desc drm_i
 
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_GETRESOURCES, drm_mode_getresources, DRM_CONTROL_ALLOW|DRM_UNLOCKED),
 
+#ifndef __NetBSD__		/* XXX drm prime */
 	DRM_IOCTL_DEF(DRM_IOCTL_PRIME_HANDLE_TO_FD, drm_prime_handle_to_fd_ioctl, DRM_AUTH|DRM_UNLOCKED|DRM_RENDER_ALLOW),
 	DRM_IOCTL_DEF(DRM_IOCTL_PRIME_FD_TO_HANDLE, drm_prime_fd_to_handle_ioctl, DRM_AUTH|DRM_UNLOCKED|DRM_RENDER_ALLOW),
+#endif
 
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_GETPLANERESOURCES, drm_mode_getplane_res, DRM_CONTROL_ALLOW|DRM_UNLOCKED),
 	DRM_IOCTL_DEF(DRM_IOCTL_MODE_GETCRTC, drm_mode_getcrtc, DRM_CONTROL_ALLOW|DRM_UNLOCKED),



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 13:37:21 UTC 2018

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

Log Message:
Fix vestigial call to drm_fb_helper_set_config.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.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_fb_helper.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.11 src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.12
--- src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.11	Mon Aug 27 13:36:13 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c	Mon Aug 27 13:37:21 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_fb_helper.c,v 1.11 2018/08/27 13:36:13 riastradh Exp $	*/
+/*	$NetBSD: drm_fb_helper.c,v 1.12 2018/08/27 13:37:21 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.11 2018/08/27 13:36:13 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_fb_helper.c,v 1.12 2018/08/27 13:37:21 riastradh Exp $");
 
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
@@ -2216,7 +2216,7 @@ int drm_fb_helper_hotplug_event(struct d
 	drm_setup_crtcs(fb_helper);
 	drm_modeset_unlock_all(dev);
 #ifdef __NetBSD__
-	drm_fb_helper_set_config(fb_helper);
+	drm_fb_helper_restore_fbdev_mode_unlocked(fb_helper);
 #else
 	drm_fb_helper_set_par(fb_helper->fbdev);
 #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 13:42:24 UTC 2018

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

Log Message:
Turn on driver debug messages for now

Author: coypoop 
Committer: Taylor R Campbell 


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 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.6 src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.6	Mon Aug 27 07:54:18 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_drv.c	Mon Aug 27 13:42:24 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_drv.c,v 1.6 2018/08/27 07:54:18 riastradh Exp $	*/
+/*	$NetBSD: drm_drv.c,v 1.7 2018/08/27 13:42:24 riastradh 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.6 2018/08/27 07:54:18 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_drv.c,v 1.7 2018/08/27 13:42:24 riastradh 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 = 0;	/* bitmask of DRM_UT_x */
+unsigned int drm_debug = ~(unsigned int)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:   Mon Aug 27 14:14:29 UTC 2018

Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_auth.c drm_context.c drm_crtc.c
drm_gem.c
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu: amdgpu_bo_list.c
amdgpu_ctx.c
src/sys/external/bsd/drm2/dist/drm/i915: i915_gem.c i915_gem_context.c
src/sys/external/bsd/drm2/dist/drm/sis: sis_mm.c
src/sys/external/bsd/drm2/dist/drm/via: via_mm.c

Log Message:
Sprinkle idr_preload/idr_preload_end.

Try to do these outside all mutex locks.

Tricky case is i915_gem_context, where the struct mutex is held for a
long time.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/drm_auth.c
cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/dist/drm/drm_context.c
cvs rdiff -u -r1.8 -r1.9 src/sys/external/bsd/drm2/dist/drm/drm_crtc.c \
src/sys/external/bsd/drm2/dist/drm/drm_gem.c
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_bo_list.c \
src/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_ctx.c
cvs rdiff -u -r1.49 -r1.50 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_context.c
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/sis/sis_mm.c
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/via/via_mm.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_auth.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_auth.c:1.3 src/sys/external/bsd/drm2/dist/drm/drm_auth.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/drm_auth.c:1.3	Mon Aug 27 04:58:19 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_auth.c	Mon Aug 27 14:14:29 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_auth.c,v 1.3 2018/08/27 04:58:19 riastradh Exp $	*/
+/*	$NetBSD: drm_auth.c,v 1.4 2018/08/27 14:14:29 riastradh Exp $	*/
 
 /*
  * Created: Tue Feb  2 08:37:54 1999 by fa...@valinux.com
@@ -31,7 +31,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_auth.c,v 1.3 2018/08/27 04:58:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_auth.c,v 1.4 2018/08/27 14:14:29 riastradh Exp $");
 
 #include 
 #include "drm_internal.h"
@@ -53,6 +53,7 @@ int drm_getmagic(struct drm_device *dev,
 	struct drm_auth *auth = data;
 	int ret = 0;
 
+	idr_preload(GFP_KERNEL);
 	mutex_lock(&dev->struct_mutex);
 	if (!file_priv->magic) {
 		ret = idr_alloc(&file_priv->master->magic_map, file_priv,
@@ -62,6 +63,7 @@ int drm_getmagic(struct drm_device *dev,
 	}
 	auth->magic = file_priv->magic;
 	mutex_unlock(&dev->struct_mutex);
+	idr_preload_end();
 
 	DRM_DEBUG("%u\n", auth->magic);
 

Index: src/sys/external/bsd/drm2/dist/drm/drm_context.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_context.c:1.4 src/sys/external/bsd/drm2/dist/drm/drm_context.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/drm_context.c:1.4	Mon Aug 27 04:58:19 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_context.c	Mon Aug 27 14:14:29 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_context.c,v 1.4 2018/08/27 04:58:19 riastradh Exp $	*/
+/*	$NetBSD: drm_context.c,v 1.5 2018/08/27 14:14:29 riastradh Exp $	*/
 
 /*
  * Legacy: Generic DRM Contexts
@@ -31,7 +31,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_context.c,v 1.4 2018/08/27 04:58:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_context.c,v 1.5 2018/08/27 14:14:29 riastradh Exp $");
 
 #include 
 
@@ -82,10 +82,12 @@ static int drm_legacy_ctxbitmap_next(str
 {
 	int ret;
 
+	idr_preload(GFP_KERNEL);
 	mutex_lock(&dev->struct_mutex);
 	ret = idr_alloc(&dev->ctx_idr, NULL, DRM_RESERVED_CONTEXTS, 0,
 			GFP_KERNEL);
 	mutex_unlock(&dev->struct_mutex);
+	idr_preload_end();
 	return ret;
 }
 

Index: src/sys/external/bsd/drm2/dist/drm/drm_crtc.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.8 src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.8	Mon Aug 27 06:55:13 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_crtc.c	Mon Aug 27 14:14:29 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_crtc.c,v 1.8 2018/08/27 06:55:13 riastradh Exp $	*/
+/*	$NetBSD: drm_crtc.c,v 1.9 2018/08/27 14:14:29 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2006-2008 Intel Corporation
@@ -32,7 +32,7 @@
  *  Jesse Barnes 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_crtc.c,v 1.8 2018/08/27 06:55:13 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_crtc.c,v 1.9 2018/08/27 14:14:29 riastradh Exp $");
 
 #include 
 #include 
@@ -5987,6 +5987,7 @@ struct drm_tile_group *drm_mode_create_t
 	memcpy(tg->group_data, topology, 8);
 	tg->dev = dev;
 
+	idr_preload(GFP_KERNEL);
 	mutex_lock(&dev->mode_config.idr_mutex);
 	ret = idr_alloc(&dev->mode_config.tile_idr, tg, 1, 0, GFP_KERNEL);
 	if (ret >= 0) {
@@ -5997,6 +5998,7 @@ struct drm_tile_group *drm_mode_create_t
 	}
 
 	mutex_unlock

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:39:46 UTC 2018

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

Log Message:
Initialize connector->kdev, which amdgpu uses.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 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.9 src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.10
--- src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.9	Mon Aug 27 14:14:29 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_crtc.c	Mon Aug 27 14:39:46 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_crtc.c,v 1.9 2018/08/27 14:14:29 riastradh Exp $	*/
+/*	$NetBSD: drm_crtc.c,v 1.10 2018/08/27 14:39:46 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2006-2008 Intel Corporation
@@ -32,7 +32,7 @@
  *  Jesse Barnes 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_crtc.c,v 1.9 2018/08/27 14:14:29 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_crtc.c,v 1.10 2018/08/27 14:39:46 riastradh Exp $");
 
 #include 
 #include 
@@ -903,6 +903,7 @@ int drm_connector_init(struct drm_device
 
 	connector->base.properties = &connector->properties;
 	connector->dev = dev;
+	connector->kdev = dev->dev;
 	connector->funcs = funcs;
 	connector->connector_type = connector_type;
 	connector->connector_type_id =



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:40:30 UTC 2018

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

Log Message:
Call drm_modeset_lock_fini in drm_plane_cleanup.

>From mrg@.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 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.10 src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.11
--- src/sys/external/bsd/drm2/dist/drm/drm_crtc.c:1.10	Mon Aug 27 14:39:46 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_crtc.c	Mon Aug 27 14:40:30 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_crtc.c,v 1.10 2018/08/27 14:39:46 riastradh Exp $	*/
+/*	$NetBSD: drm_crtc.c,v 1.11 2018/08/27 14:40:30 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2006-2008 Intel Corporation
@@ -32,7 +32,7 @@
  *  Jesse Barnes 
  */
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_crtc.c,v 1.10 2018/08/27 14:39:46 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_crtc.c,v 1.11 2018/08/27 14:40:30 riastradh Exp $");
 
 #include 
 #include 
@@ -1295,6 +1295,7 @@ void drm_plane_cleanup(struct drm_plane 
 	WARN_ON(plane->state && !plane->funcs->atomic_destroy_state);
 	if (plane->state && plane->funcs->atomic_destroy_state)
 		plane->funcs->atomic_destroy_state(plane, plane->state);
+	drm_modeset_lock_fini(&plane->mutex);
 
 	memset(plane, 0, sizeof(*plane));
 }



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:41:41 UTC 2018

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

Log Message:
Make mutex destruction match initialization.

>From mrg@.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 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.8 src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/drm_drv.c:1.8	Mon Aug 27 13:42:47 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_drv.c	Mon Aug 27 14:41:41 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_drv.c,v 1.8 2018/08/27 13:42:47 riastradh Exp $	*/
+/*	$NetBSD: drm_drv.c,v 1.9 2018/08/27 14:41:41 riastradh 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.8 2018/08/27 13:42:47 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_drv.c,v 1.9 2018/08/27 14:41:41 riastradh Exp $");
 
 #include 
 #include 
@@ -732,12 +732,15 @@ err_minors:
 	drm_fs_inode_free(dev->anon_inode);
 err_free:
 #ifdef __NetBSD__
-	linux_mutex_destroy(&dev->struct_mutex);
-	linux_mutex_destroy(&dev->ctxlist_mutex);
 	linux_mutex_destroy(&dev->master_mutex);
+	linux_mutex_destroy(&dev->ctxlist_mutex);
+	linux_mutex_destroy(&dev->struct_mutex);
 	spin_lock_destroy(&dev->event_lock);
+	spin_lock_destroy(&dev->buf_lock);
 #else
 	mutex_destroy(&dev->master_mutex);
+	mutex_destroy(&dev->ctxlist_mutex);
+	mutex_destroy(&dev->struct_mutex);
 #endif
 	kfree(dev);
 	return NULL;
@@ -760,12 +763,15 @@ static void drm_dev_release(struct kref 
 	drm_minor_free(dev, DRM_MINOR_CONTROL);
 
 #ifdef __NetBSD__
-	linux_mutex_destroy(&dev->struct_mutex);
-	linux_mutex_destroy(&dev->ctxlist_mutex);
 	linux_mutex_destroy(&dev->master_mutex);
+	linux_mutex_destroy(&dev->ctxlist_mutex);
+	linux_mutex_destroy(&dev->struct_mutex);
 	spin_lock_destroy(&dev->event_lock);
+	spin_lock_destroy(&dev->buf_lock);
 #else
 	mutex_destroy(&dev->master_mutex);
+	mutex_destroy(&dev->ctxlist_mutex);
+	mutex_destroy(&dev->struct_mutex);
 #endif
 	kfree(dev->unique);
 	kfree(dev);



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:43:15 UTC 2018

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

Log Message:
Fix scope of locks in drm_handle_vblank.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/sys/external/bsd/drm2/dist/drm/drm_irq.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_irq.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.13 src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.14
--- src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.13	Mon Aug 27 14:42:43 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_irq.c	Mon Aug 27 14:43:15 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_irq.c,v 1.13 2018/08/27 14:42:43 riastradh Exp $	*/
+/*	$NetBSD: drm_irq.c,v 1.14 2018/08/27 14:43:15 riastradh Exp $	*/
 
 /*
  * drm_irq.c IRQ and vblank support
@@ -35,7 +35,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_irq.c,v 1.13 2018/08/27 14:42:43 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_irq.c,v 1.14 2018/08/27 14:43:15 riastradh Exp $");
 
 #include 
 #include "drm_trace.h"
@@ -2092,6 +2092,7 @@ bool drm_handle_vblank(struct drm_device
 		return false;
 
 	spin_lock_irqsave(&dev->event_lock, irqflags);
+	spin_lock(&dev->vbl_lock);
 
 	/* Need timestamp lock to prevent concurrent execution with
 	 * vblank enable/disable, as this would cause inconsistent
@@ -2102,6 +2103,7 @@ bool drm_handle_vblank(struct drm_device
 	/* Vblank irq handling disabled. Nothing to do. */
 	if (!vblank->enabled) {
 		spin_unlock(&dev->vblank_time_lock);
+		spin_unlock(&dev->vbl_lock);
 		spin_unlock_irqrestore(&dev->event_lock, irqflags);
 		return false;
 	}
@@ -2111,9 +2113,7 @@ bool drm_handle_vblank(struct drm_device
 	spin_unlock(&dev->vblank_time_lock);
 
 #ifdef __NetBSD__
-	spin_lock(&dev->vbl_lock);
 	DRM_SPIN_WAKEUP_ONE(&vblank->queue, &dev->vbl_lock);
-	spin_unlock(&dev->vbl_lock);
 #else
 	wake_up(&vblank->queue);
 #endif
@@ -2127,8 +2127,9 @@ bool drm_handle_vblank(struct drm_device
 	if (dev->vblank_disable_immediate &&
 	drm_vblank_offdelay > 0 &&
 	!atomic_read(&vblank->refcount))
-		vblank_disable_fn((unsigned long)vblank);
+		vblank_disable_locked(vblank, dev, pipe);
 
+	spin_unlock(&dev->vbl_lock);
 	spin_unlock_irqrestore(&dev->event_lock, irqflags);
 
 	return true;



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:43:32 UTC 2018

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

Log Message:
Caller must also hold vblank_time_lock here.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/external/bsd/drm2/dist/drm/drm_irq.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_irq.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.14 src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.15
--- src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.14	Mon Aug 27 14:43:15 2018
+++ src/sys/external/bsd/drm2/dist/drm/drm_irq.c	Mon Aug 27 14:43:32 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_irq.c,v 1.14 2018/08/27 14:43:15 riastradh Exp $	*/
+/*	$NetBSD: drm_irq.c,v 1.15 2018/08/27 14:43:32 riastradh Exp $	*/
 
 /*
  * drm_irq.c IRQ and vblank support
@@ -35,7 +35,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: drm_irq.c,v 1.14 2018/08/27 14:43:15 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_irq.c,v 1.15 2018/08/27 14:43:32 riastradh Exp $");
 
 #include 
 #include "drm_trace.h"
@@ -205,6 +205,7 @@ static void drm_update_vblank_count(stru
 	int framedur_ns = vblank->framedur_ns;
 
 	assert_spin_locked(&dev->vbl_lock);
+	assert_spin_locked(&dev->vblank_time_lock);
 
 	/*
 	 * Interrupts were disabled prior to this call, so deal with counter



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(&drm_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



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: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/

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

2014-04-25 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Apr 25 19:07:55 UTC 2014

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

Log Message:
Fix hot-plug with small patch from upstream before a full update.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.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_fb_helper.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.3 src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.3	Tue Mar 18 21:36:52 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c	Fri Apr 25 19:07:55 2014
@@ -40,6 +40,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -1331,6 +1332,7 @@ static void drm_setup_crtcs(struct drm_f
 	for (i = 0; i < fb_helper->crtc_count; i++) {
 		modeset = &fb_helper->crtc_info[i].mode_set;
 		modeset->num_connectors = 0;
+		modeset->fb = NULL;
 	}
 
 	for (i = 0; i < fb_helper->connector_count; i++) {
@@ -1350,6 +1352,18 @@ static void drm_setup_crtcs(struct drm_f
 		}
 	}
 
+	/* Clear out any old modes if there are no more connected outputs. */
+	for (i = 0; i < fb_helper->crtc_count; i++) {
+		modeset = &fb_helper->crtc_info[i].mode_set;
+		if (modeset->num_connectors == 0) {
+			BUG_ON(modeset->fb);
+			BUG_ON(modeset->num_connectors);
+			if (modeset->mode)
+drm_mode_destroy(dev, modeset->mode);
+			modeset->mode = NULL;
+			fb_helper->crtc_info[i].desired_mode = NULL;
+		}
+	}
 out:
 	kfree(crtcs);
 	kfree(modes);



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

2014-07-06 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sun Jul  6 15:44:55 UTC 2014

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

Log Message:
Call teardown_timer in drm_vblank_cleanup.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/drm_irq.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_irq.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.2 src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.2	Tue Mar 18 18:20:42 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_irq.c	Sun Jul  6 15:44:55 2014
@@ -207,6 +207,9 @@ void drm_vblank_cleanup(struct drm_devic
 		return;
 
 	del_timer_sync(&dev->vblank_disable_timer);
+#ifdef __NetBSD__
+	teardown_timer(&dev->vblank_disable_timer);
+#endif
 
 	vblank_disable_fn((unsigned long)dev);
 



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

2014-07-16 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Jul 16 20:08:37 UTC 2014

Removed Files:
src/sys/external/bsd/drm2/dist/drm: drm_trace.h drm_trace_points.c

Log Message:
Delete troublesome drm_trace.h and drm_trace_points.c.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r0 src/sys/external/bsd/drm2/dist/drm/drm_trace.h \
src/sys/external/bsd/drm2/dist/drm/drm_trace_points.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

2014-11-10 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Tue Nov 11 02:33:28 UTC 2014

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

Log Message:
make a drm_agp_destroy() function to resolve the circular dependency between
drmkms and drmkms_pci


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/dist/drm/drm_agpsupport.c
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/drm_pci.c
cvs rdiff -u -r1.5 -r1.6 src/sys/external/bsd/drm2/dist/drm/drm_stub.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.4 src/sys/external/bsd/drm2/dist/drm/drm_agpsupport.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/drm_agpsupport.c:1.4	Wed Jul 16 16:56:24 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_agpsupport.c	Mon Nov 10 21:33:28 2014
@@ -518,6 +518,16 @@ void drm_agp_clear(struct drm_device *de
 	dev->agp->enabled = 0;
 }
 
+void drm_agp_destroy(struct drm_device *dev)
+{
+	if (dev->agp) {
+		arch_phys_wc_del(dev->agp->agp_mtrr);
+		drm_agp_clear(dev);
+		kfree(dev->agp);
+		dev->agp = NULL;
+	}
+}
+
 #ifndef __NetBSD__		/* XXX Dead code that doesn't make sense...  */
 /**
  * Binds a collection of pages into AGP memory at the given offset, returning

Index: src/sys/external/bsd/drm2/dist/drm/drm_pci.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_pci.c:1.3 src/sys/external/bsd/drm2/dist/drm/drm_pci.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/drm_pci.c:1.3	Wed Jul 16 16:03:56 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_pci.c	Mon Nov 10 21:33:28 2014
@@ -277,12 +277,7 @@ static void drm_pci_agp_init(struct drm_
 
 void drm_pci_agp_destroy(struct drm_device *dev)
 {
-	if (dev->agp) {
-		arch_phys_wc_del(dev->agp->agp_mtrr);
-		drm_agp_clear(dev);
-		kfree(dev->agp);
-		dev->agp = NULL;
-	}
+	drm_agp_destroy(dev);
 }
 
 static struct drm_bus drm_pci_bus = {

Index: src/sys/external/bsd/drm2/dist/drm/drm_stub.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_stub.c:1.5 src/sys/external/bsd/drm2/dist/drm/drm_stub.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/drm_stub.c:1.5	Wed Jul 16 16:56:24 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_stub.c	Mon Nov 10 21:33:28 2014
@@ -849,7 +849,7 @@ void drm_dev_unregister(struct drm_devic
 		dev->driver->unload(dev);
 
 	if (dev->agp)
-		drm_pci_agp_destroy(dev);
+		drm_agp_destroy(dev);
 
 	drm_vblank_cleanup(dev);
 



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

2015-02-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sat Feb 28 03:03:30 UTC 2015

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

Log Message:
Fix another *@!#^$@!& timeout return convention mistake.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/external/bsd/drm2/dist/drm/drm_irq.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_irq.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.5 src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.5	Wed Jul 16 20:56:24 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_irq.c	Sat Feb 28 03:03:30 2015
@@ -1301,11 +1301,11 @@ int drm_wait_vblank(struct drm_device *d
 		vblwait->request.sequence) <= (1 << 23)) ||
 		!dev->irq_enabled));
 	spin_unlock_irqrestore(&dev->vbl_lock, irqflags);
-	if (0 < ret)
-		/*
-		 * ret is ticks remaining on success in this case, but
-		 * caller just wants 0 for success.
-		 */
+	if (ret < 0)		/* Failed: do nothing.  */
+		;
+	else if (ret == 0)	/* Timed out: return -EBUSY like Linux.  */
+		ret = -EBUSY;
+	else			/* Succeeded (ret > 0): return 0.  */
 		ret = 0;
 }
 #else



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

2015-02-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sat Feb 28 03:05:09 UTC 2015

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

Log Message:
Clarify comment in last commit.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/external/bsd/drm2/dist/drm/drm_irq.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_irq.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.6 src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/drm_irq.c:1.6	Sat Feb 28 03:03:30 2015
+++ src/sys/external/bsd/drm2/dist/drm/drm_irq.c	Sat Feb 28 03:05:09 2015
@@ -1301,7 +1301,7 @@ int drm_wait_vblank(struct drm_device *d
 		vblwait->request.sequence) <= (1 << 23)) ||
 		!dev->irq_enabled));
 	spin_unlock_irqrestore(&dev->vbl_lock, irqflags);
-	if (ret < 0)		/* Failed: do nothing.  */
+	if (ret < 0)		/* Failed: return negative error as is.  */
 		;
 	else if (ret == 0)	/* Timed out: return -EBUSY like Linux.  */
 		ret = -EBUSY;



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

2015-03-04 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Mar  4 11:00:15 UTC 2015

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

Log Message:
Return current pid and current euid from drm_getclient to fool libva.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 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.3 src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.3	Wed Jul 16 20:03:56 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c	Wed Mar  4 11:00:15 2015
@@ -232,8 +232,8 @@ int drm_getclient(struct drm_device *dev
 	if (client->idx == 0) {
 		client->auth = file_priv->authenticated;
 #ifdef __NetBSD__		/* XXX Too scary to contemplate.  */
-		client->pid = -1;
-		client->uid = -1;
+		client->pid = curproc->p_pid;
+		client->uid = kauth_cred_geteuid(curproc->p_cred);
 #else
 		client->pid = pid_vnr(file_priv->pid);
 		client->uid = from_kuid_munged(current_user_ns(),



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

2014-08-17 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Mon Aug 18 01:21:04 UTC 2014

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

Log Message:
For gem and ttm objects backed by uvm_aobjs, share the vmobjlock.

XXX pullup to 7


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/dist/drm/drm_gem.c
cvs rdiff -u -r1.4 -r1.5 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/drm_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_gem.c:1.4 src/sys/external/bsd/drm2/dist/drm/drm_gem.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/drm_gem.c:1.4	Wed Jul 16 20:56:24 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_gem.c	Mon Aug 18 01:21:03 2014
@@ -155,6 +155,13 @@ int drm_gem_object_init(struct drm_devic
 
 #ifdef __NetBSD__
 	obj->gemo_shm_uao = uao_create(size, 0);
+	/*
+	 * XXX This is gross.  We ought to do it the other way around:
+	 * set the uao to have the main uvm object's lock.  However,
+	 * uvm_obj_setlock is not safe on uvm_aobjs.
+	 */
+	mutex_obj_hold(obj->gemo_shm_uao->vmobjlock);
+	uvm_obj_setlock(&obj->gemo_uvmobj, obj->gemo_shm_uao->vmobjlock);
 #else
 	filp = shmem_file_setup("drm mm object", size, VM_NORESERVE);
 	if (IS_ERR(filp))

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.4 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.4	Sun Jul 27 00:40:39 2014
+++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c	Mon Aug 18 01:21:03 2014
@@ -33,6 +33,7 @@
 #ifdef __NetBSD__
 #include 
 #include 
+#include 
 #endif
 
 #include 
@@ -269,6 +270,16 @@ static int ttm_bo_add_ttm(struct ttm_buf
 		  page_flags, glob->dummy_read_page);
 		if (unlikely(bo->ttm == NULL))
 			ret = -ENOMEM;
+#ifdef __NetBSD__
+		/*
+		 * XXX This is gross.  We ought to do it the other way
+		 * around: set the uao to have the main uvm object's
+		 * lock.  However, uvm_obj_setlock is not safe on
+		 * uvm_aobjs.
+		 */
+		mutex_obj_hold(bo->ttm->swap_storage->vmobjlock);
+		uvm_obj_setlock(&bo->uvmobj, bo->ttm->swap_storage->vmobjlock);
+#endif
 		break;
 	case ttm_bo_type_sg:
 		bo->ttm = bdev->driver->ttm_tt_create(bdev, bo->num_pages << PAGE_SHIFT,
@@ -279,6 +290,11 @@ static int ttm_bo_add_ttm(struct ttm_buf
 			break;
 		}
 		bo->ttm->sg = bo->sg;
+#ifdef __NetBSD__
+		/* XXX This is gross too -- see above.  */
+		mutex_obj_hold(bo->ttm->swap_storage->vmobjlock);
+		uvm_obj_setlock(&bo->uvmobj, bo->ttm->swap_storage->vmobjlock);
+#endif
 		break;
 	default:
 		pr_err("Illegal buffer object type\n");



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

2014-03-18 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Tue Mar 18 21:36:52 UTC 2014

Modified Files:
src/sys/external/bsd/drm2/dist/drm: drm_fb_helper.c drm_global.c
drm_modes.c
src/sys/external/bsd/drm2/dist/drm/i915: i915_dma.c i915_irq.c
intel_display.c intel_dp.c intel_hdmi.c

Log Message:
Fix unused variable warnings in drm2.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c \
src/sys/external/bsd/drm2/dist/drm/drm_global.c \
src/sys/external/bsd/drm2/dist/drm/drm_modes.c
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c \
src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c \
src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c
cvs rdiff -u -r1.1.1.1 -r1.2 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_hdmi.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_fb_helper.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.2 src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c:1.2	Tue Mar 18 18:20:42 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_fb_helper.c	Tue Mar 18 21:36:52 2014
@@ -1216,7 +1216,6 @@ static int drm_pick_crtcs(struct drm_fb_
 	struct drm_connector *connector;
 	struct drm_connector_helper_funcs *connector_funcs;
 	struct drm_encoder *encoder;
-	struct drm_fb_helper_crtc *best_crtc;
 	int my_score, best_score, score;
 	struct drm_fb_helper_crtc **crtcs, *crtc;
 	struct drm_fb_helper_connector *fb_helper_conn;
@@ -1228,7 +1227,6 @@ static int drm_pick_crtcs(struct drm_fb_
 	connector = fb_helper_conn->connector;
 
 	best_crtcs[n] = NULL;
-	best_crtc = NULL;
 	best_score = drm_pick_crtcs(fb_helper, best_crtcs, modes, n+1, width, height);
 	if (modes[n] == NULL)
 		return best_score;
@@ -1277,7 +1275,6 @@ static int drm_pick_crtcs(struct drm_fb_
 		score = my_score + drm_pick_crtcs(fb_helper, crtcs, modes, n + 1,
 		  width, height);
 		if (score > best_score) {
-			best_crtc = crtc;
 			best_score = score;
 			memcpy(best_crtcs, crtcs,
 			   dev->mode_config.num_connector *
@@ -1419,7 +1416,6 @@ EXPORT_SYMBOL(drm_fb_helper_initial_conf
 int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper)
 {
 	struct drm_device *dev = fb_helper->dev;
-	int count = 0;
 	u32 max_width, max_height, bpp_sel;
 	int bound = 0, crtcs_bound = 0;
 	struct drm_crtc *crtc;
@@ -1446,8 +1442,7 @@ int drm_fb_helper_hotplug_event(struct d
 	max_height = fb_helper->fb->height;
 	bpp_sel = fb_helper->fb->bits_per_pixel;
 
-	count = drm_fb_helper_probe_connector_modes(fb_helper, max_width,
-		max_height);
+	drm_fb_helper_probe_connector_modes(fb_helper, max_width, max_height);
 	drm_setup_crtcs(fb_helper);
 	mutex_unlock(&dev->mode_config.mutex);
 
Index: src/sys/external/bsd/drm2/dist/drm/drm_global.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_global.c:1.2 src/sys/external/bsd/drm2/dist/drm/drm_global.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/drm_global.c:1.2	Tue Mar 18 18:20:42 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_global.c	Tue Mar 18 21:36:52 2014
@@ -75,7 +75,6 @@ int drm_global_item_ref(struct drm_globa
 {
 	int ret;
 	struct drm_global_item *item = &glob[ref->global_type];
-	void *object;
 
 	mutex_lock(&item->mutex);
 	if (item->refcount == 0) {
@@ -93,7 +92,6 @@ int drm_global_item_ref(struct drm_globa
 	}
 	++item->refcount;
 	ref->object = item->object;
-	object = item->object;
 	mutex_unlock(&item->mutex);
 	return 0;
 out_err:
Index: src/sys/external/bsd/drm2/dist/drm/drm_modes.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_modes.c:1.2 src/sys/external/bsd/drm2/dist/drm/drm_modes.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/drm_modes.c:1.2	Tue Mar 18 18:20:42 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_modes.c	Tue Mar 18 21:36:52 2014
@@ -173,7 +173,7 @@ struct drm_display_mode *drm_cvt_mode(st
 		/* 3) Nominal HSync width (% of line period) - default 8 */
 #define CVT_HSYNC_PERCENTAGE	8
 		unsigned int hblank_percentage;
-		int vsyncandback_porch, vback_porch, hblank;
+		int vsyncandback_porch, vback_porch __unused, hblank;
 
 		/* estimated the horizontal period */
 		tmp1 = HV_FACTOR * 100  -
@@ -321,9 +321,9 @@ drm_gtf_mode_complex(struct drm_device *
 	int top_margin, bottom_margin;
 	int interlace;
 	unsigned int hfreq_est;
-	int vsync_plus_bp, vback_porch;
-	unsigned int vtotal_lines, vfieldrate_est, hperiod;
-	unsigned int vfield_rate, vframe_rate;
+	int vsync_plus_bp, vback_porch __unused;
+	unsigned int vtotal_lines, vfieldrate_est __unused, hperiod __unused;
+	unsigned int vfield_rate, vframe_rate __unused;
 	int left_margin, right_margin;
 	unsigned int total_active_pixels, ideal_duty_cycle;
 	unsigned int hblank, total_pixels, pixel_freq;


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

2015-04-02 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Apr  3 01:09:42 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_agp.c nouveau_ttm.c
src/sys/external/bsd/drm2/dist/drm/radeon: radeon_agp.c radeon_object.c
src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo.c

Log Message:
Use pmap_pv(9) to remove mappings of device pages in TTM.

Adapt nouveau and radeon to do pmap_pv_track for their device pages.

Proposed on tech-kern with no objections:

https://mail-index.netbsd.org/tech-kern/2015/03/26/msg018561.html

Further background at:

https://mail-index.netbsd.org/tech-kern/2014/07/23/msg017392.html


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_agp.c
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.c
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_agp.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_object.c
cvs rdiff -u -r1.6 -r1.7 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/nouveau/nouveau_agp.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_agp.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_agp.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_agp.c:1.2	Wed Aug  6 13:35:13 2014
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_agp.c	Fri Apr  3 01:09:42 2015
@@ -1,7 +1,7 @@
-/*	$NetBSD: nouveau_agp.c,v 1.2 2014/08/06 13:35:13 riastradh Exp $	*/
+/*	$NetBSD: nouveau_agp.c,v 1.3 2015/04/03 01:09:42 riastradh Exp $	*/
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_agp.c,v 1.2 2014/08/06 13:35:13 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_agp.c,v 1.3 2015/04/03 01:09:42 riastradh Exp $");
 
 #include 
 #include 
@@ -190,6 +190,9 @@ nouveau_agp_init(struct nouveau_drm *drm
 	drm->agp.stat = ENABLED;
 	drm->agp.base = info.aperture_base;
 	drm->agp.size = info.aperture_size;
+#ifdef __NetBSD__
+	pmap_pv_track(drm->agp.base, drm->agp.size);
+#endif
 #endif
 }
 
@@ -198,7 +201,11 @@ nouveau_agp_fini(struct nouveau_drm *drm
 {
 #if __OS_HAS_AGP
 	struct drm_device *dev = drm->dev;
-	if (dev->agp && dev->agp->acquired)
+	if (dev->agp && dev->agp->acquired) {
+#ifdef __NetBSD__
+		pmap_pv_untrack(drm->agp.base, drm->agp.size);
+#endif
 		drm_agp_release(dev);
+	}
 #endif
 }

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.c:1.3	Wed Feb 25 22:12:00 2015
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.c	Fri Apr  3 01:09:42 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_ttm.c,v 1.3 2015/02/25 22:12:00 riastradh Exp $	*/
+/*	$NetBSD: nouveau_ttm.c,v 1.4 2015/04/03 01:09:42 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2007-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA,
@@ -27,7 +27,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_ttm.c,v 1.3 2015/02/25 22:12:00 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_ttm.c,v 1.4 2015/04/03 01:09:42 riastradh Exp $");
 
 #include 
 #include 
@@ -443,6 +443,11 @@ nouveau_ttm_init(struct nouveau_drm *drm
 	drm->ttm.mtrr = arch_phys_wc_add(nv_device_resource_start(device, 1),
 	 nv_device_resource_len(device, 1));
 
+#ifdef __NetBSD__
+	pmap_pv_track(nv_device_resource_start(device, 1),
+	nv_device_resource_len(device, 1));
+#endif
+
 	/* GART init */
 	if (drm->agp.stat != ENABLED) {
 		drm->gem.gart_available = nouveau_vmmgr(drm->device)->limit;
@@ -476,4 +481,9 @@ nouveau_ttm_fini(struct nouveau_drm *drm
 
 	arch_phys_wc_del(drm->ttm.mtrr);
 	drm->ttm.mtrr = 0;
+
+#ifdef __NetBSD__
+	pmap_pv_untrack(nv_device_resource_start(nv_device(drm->device), 1),
+	nv_device_resource_len(nv_device(drm->device), 1));
+#endif
 }

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_agp.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_agp.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_agp.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_agp.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_agp.c	Fri Apr  3 01:09:42 2015
@@ -248,6 +248,10 @@ int radeon_agp_init(struct radeon_device
 	dev_info(rdev->dev, "GTT: %"PRIu64"M 0x%08"PRIX64" - 0x%08"PRIX64"\n",
 		rdev->mc.gtt_size >> 20, rdev->mc.gtt_start, rdev->mc.gtt_end);
 
+#ifdef __NetBSD__
+	pmap_pv_track(rdev->mc.agp_base, rdev->mc.gtt_size);
+#endif
+
 	/* workaround some hw issues */
 	if (rdev->family < CHIP_R200) {
 		WREG32(RADEON_AGP_CNTL, RREG32(RADEON_AGP_CNTL) | 0x000e);
@@ -274,6 +278,9 @@ void radeon_agp_fini(struct radeon_devic
 {
 #if __OS_HAS_AGP
 	if (rdev->ddev->agp && rdev->ddev->agp->ac

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/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/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, &dev->vbl_lock, timeout,
+	DRM_SPIN_TIMED_WAIT_NOINTR_UNTIL(ret, wq, &dev->vbl_lock, timeout,
 	(scanline = intel_get_crtc_scanline(crtc),
 		scanline < min || scanline > max));
 	if (ret <= 0)



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

2020-04-19 Thread Maya Rashish
Module Name:src
Committed By:   maya
Date:   Sun Apr 19 17:49:42 UTC 2020

Modified Files:
src/sys/external/bsd/drm2/dist/include/drm: drmP.h

Log Message:
Include dev/sysmon/sysmonvar.h for sysmon_pswitch.

Somehow only triggered by the compat build (which shouldn't have been
enabled!)


To generate a diff of this commit:
cvs rdiff -u -r1.40 -r1.41 src/sys/external/bsd/drm2/dist/include/drm/drmP.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/include/drm/drmP.h
diff -u src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.40 src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.41
--- src/sys/external/bsd/drm2/dist/include/drm/drmP.h:1.40	Sun Apr 19 17:19:13 2020
+++ src/sys/external/bsd/drm2/dist/include/drm/drmP.h	Sun Apr 19 17:49:41 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: drmP.h,v 1.40 2020/04/19 17:19:13 maya Exp $	*/
+/*	$NetBSD: drmP.h,v 1.41 2020/04/19 17:49:41 maya Exp $	*/
 
 /*
  * Internal Header for the Direct Rendering Manager
@@ -67,6 +67,7 @@
 #include 
 
 #ifdef __NetBSD__
+#include 
 #include 
 #include 
 #include 



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, &dmac->dmaseg, 1, PAGE_SIZE, &dmac->dmakva,
-	BUS_DMA_WAITOK);
+	BUS_DMA_WAITOK | BUS_DMA_COHERENT);
 	if (ret) {
 		bus_dmamap_destroy(dmat, dmac->dmamap);
 		bus_dmamem_free(dmat, &dmac->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, &mmu->null
 
 	/* XXX errno NetBSD->Linux */
 	ret = -bus_dmamem_map(dmat, &mmu->nullseg, 1, nullsz,
-	&mmu->nullp, BUS_DMA_WAITOK);
+	&mmu->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/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/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/via

2016-04-02 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Sat Apr  2 22:37:03 UTC 2016

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

Log Message:
Need to specify mmap_object operation here!

Not sure how I tested this before, or whether I just made this change
locally and forgot to commit it and then lost the change.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/via/via_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/via/via_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/via/via_drv.c:1.2 src/sys/external/bsd/drm2/dist/drm/via/via_drv.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/via/via_drv.c:1.2	Wed Apr 29 04:45:03 2015
+++ src/sys/external/bsd/drm2/dist/drm/via/via_drv.c	Sat Apr  2 22:37:03 2016
@@ -94,6 +94,8 @@ static struct drm_driver driver = {
 	.ioctls = via_ioctls,
 #ifndef __NetBSD__
 	.fops = &via_driver_fops,
+#else
+	.mmap_object = drm_mmap_object,
 #endif
 	.name = DRIVER_NAME,
 	.desc = DRIVER_DESC,



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

2016-04-13 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Wed Apr 13 07:57:15 UTC 2016

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

Log Message:
Destroy spin locks appropriately.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv10_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.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c:1.3	Sat Aug 23 08:03:33 2014
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c	Wed Apr 13 07:57:15 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_fence.c,v 1.3 2014/08/23 08:03:33 riastradh Exp $	*/
+/*	$NetBSD: nouveau_fence.c,v 1.4 2016/04/13 07:57:15 riastradh Exp $	*/
 
 /*
  * Copyright (C) 2007 Ben Skeggs.
@@ -27,7 +27,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_fence.c,v 1.3 2014/08/23 08:03:33 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_fence.c,v 1.4 2016/04/13 07:57:15 riastradh Exp $");
 
 #include 
 
@@ -71,6 +71,7 @@ nouveau_fence_context_del(struct nouveau
 		nouveau_fence_signal(fence);
 	}
 	spin_unlock(&fctx->lock);
+	spin_lock_destroy(&fctx->lock);
 }
 
 void

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv10_fence.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv10_fence.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv10_fence.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv10_fence.c:1.2	Sat Aug 23 08:03:33 2014
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv10_fence.c	Wed Apr 13 07:57:15 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nv10_fence.c,v 1.2 2014/08/23 08:03:33 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nv10_fence.c,v 1.3 2016/04/13 07:57:15 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -25,7 +25,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nv10_fence.c,v 1.2 2014/08/23 08:03:33 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nv10_fence.c,v 1.3 2016/04/13 07:57:15 riastradh Exp $");
 
 #include 
 #include 
@@ -95,6 +95,7 @@ nv10_fence_destroy(struct nouveau_drm *d
 		nouveau_bo_unpin(priv->bo);
 	nouveau_bo_ref(NULL, &priv->bo);
 	drm->fence = NULL;
+	spin_lock_destroy(&priv->lock);
 	kfree(priv);
 }
 



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

2016-04-22 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Fri Apr 22 20:18:00 UTC 2016

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

Log Message:
Sanity-check that the encoder we found is not null.

I think the previous code guarantees that finding this encoder should
work, so this should be a moot point.

CID 145720


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.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_connector.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.c:1.2	Wed Aug  6 15:01:33 2014
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.c	Fri Apr 22 20:17:59 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_connector.c,v 1.2 2014/08/06 15:01:33 riastradh Exp $	*/
+/*	$NetBSD: nouveau_connector.c,v 1.3 2016/04/22 20:17:59 riastradh Exp $	*/
 
 /*
  * Copyright (C) 2008 Maarten Maathuis.
@@ -27,7 +27,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_connector.c,v 1.2 2014/08/06 15:01:33 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_connector.c,v 1.3 2016/04/22 20:17:59 riastradh Exp $");
 
 #include 
 
@@ -308,6 +308,7 @@ nouveau_connector_detect(struct drm_conn
 type = DCB_OUTPUT_ANALOG;
 
 			nv_encoder = find_encoder(connector, type);
+			BUG_ON(nv_encoder == NULL);
 		}
 
 		nouveau_connector_set_encoder(connector, nv_encoder);



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

2016-05-12 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu May 12 14:50:39 UTC 2016

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

Log Message:
Avoid taking locks during interrupts and explain why we are doing it this way.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
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.3 src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c:1.3	Fri Jul 18 15:48:34 2014
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gpu_error.c	Thu May 12 10:50:39 2016
@@ -604,18 +604,33 @@ i915_error_object_create_sized(struct dr
 
 			memcpy_fromio(d, (void __iomem *) offset, PAGE_SIZE);
 		} else {
-			struct page *page;
-			void *s;
 
-			page = i915_gem_object_get_page(src, i);
+			if (cpu_intr_p() || cpu_softintr_p() ||
+			(curlwp->l_pflag & LP_INTR) != 0) {
+/*
+ * We can't take locks during interrupts
+ * and finding the page from uvm requires
+ * taking a lock. Checking for an interrupt
+ * context is bogus, but this is the least
+ * intrusive change. Zero the result, doesn't
+ * matter much, because this is only used
+ * for diagnostics.
+ */
+memset(d, 0, PAGE_SIZE);
+			} else {
+struct page *page;
+void *s;
+
+page = i915_gem_object_get_page(src, i);
+
+drm_clflush_pages(&page, 1);
+
+s = kmap_atomic(page);
+memcpy(d, s, PAGE_SIZE);
+kunmap_atomic(s);
 
-			drm_clflush_pages(&page, 1);
-
-			s = kmap_atomic(page);
-			memcpy(d, s, PAGE_SIZE);
-			kunmap_atomic(s);
-
-			drm_clflush_pages(&page, 1);
+drm_clflush_pages(&page, 1);
+			}
 		}
 		local_irq_restore(flags);
 



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/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, &ack);
 		if (ret >= 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, &val))
 		return false;
 
-	*uintp = ((c0 - '0') * 10) + (c1 - '0');
+	*u8p = (uint8_t)val;
 	return true;
 }
 #endif



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

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

Modified Files:
src/sys/external/bsd/drm2/dist/include/drm: drm_cache.h

Log Message:
Pull in drm_os_netbsd.h for CONFIG_ defines


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/include/drm/drm_cache.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/include/drm/drm_cache.h
diff -u src/sys/external/bsd/drm2/dist/include/drm/drm_cache.h:1.3 src/sys/external/bsd/drm2/dist/include/drm/drm_cache.h:1.4
--- src/sys/external/bsd/drm2/dist/include/drm/drm_cache.h:1.3	Sun Jan 19 12:03:27 2020
+++ src/sys/external/bsd/drm2/dist/include/drm/drm_cache.h	Sun Jan 19 16:12:00 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_cache.h,v 1.3 2020/01/19 12:03:27 jmcneill Exp $	*/
+/*	$NetBSD: drm_cache.h,v 1.4 2020/01/19 16:12:00 jmcneill Exp $	*/
 
 /**
  *
@@ -35,6 +35,10 @@
 #ifndef _DRM_CACHE_H_
 #define _DRM_CACHE_H_
 
+#ifdef __NetBSD__
+#include 
+#endif
+
 void drm_clflush_pages(struct page *pages[], unsigned long num_pages);
 
 static inline bool drm_arch_can_wc_memory(void)



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-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, &rdev->dummy_page.rdp_map);
 	if (error)
 		goto fail1;
-	error = bus_dmamap_load_raw(rdev->ddev->dmat, rdev->dummy_page.rdp_map,
-	&rdev->dummy_page.rdp_seg, 1, PAGE_SIZE, BUS_DMA_WAITOK);
+	error = bus_dmamem_map(rdev->ddev->dmat, &rdev->dummy_page.rdp_seg, 1,
+	PAGE_SIZE, &rdev->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, &rdev->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, &rdev->dummy_page.rdp_seg, 1);
 	rdev->dummy_page.rdp_map = NULL;



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

2015-08-17 Thread Jonathan A. Kollasch
Module Name:src
Committed By:   jakllsch
Date:   Mon Aug 17 15:12:37 UTC 2015

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

Log Message:
Apply preceeding change:

Don't reserve if atomic -- caller must have pre-pinned the buffer.

to avivo_crtc_do_set_base() as well.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/sys/external/bsd/drm2/dist/drm/radeon/atombios_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/radeon/atombios_crtc.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c:1.3 src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c:1.3	Wed Apr  8 01:47:20 2015
+++ src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c	Mon Aug 17 15:12:37 2015
@@ -1382,24 +1382,26 @@ static int avivo_crtc_do_set_base(struct
 
 	obj = radeon_fb->obj;
 	rbo = gem_to_radeon_bo(obj);
-	r = radeon_bo_reserve(rbo, false);
-	if (unlikely(r != 0))
-		return r;
 
 	/* If atomic, assume fb object is pinned & idle & fenced and
 	 * just update base pointers
 	 */
-	if (atomic)
+	if (atomic) {
+		BUG_ON(rbo->pin_count == 0);
 		fb_location = radeon_bo_gpu_offset(rbo);
-	else {
+		tiling_flags = 0;
+	} else {
+		r = radeon_bo_reserve(rbo, false);
+		if (unlikely(r != 0))
+			return r;
 		r = radeon_bo_pin(rbo, RADEON_GEM_DOMAIN_VRAM, &fb_location);
 		if (unlikely(r != 0)) {
 			radeon_bo_unreserve(rbo);
 			return -EINVAL;
 		}
+		radeon_bo_get_tiling_flags(rbo, &tiling_flags, NULL);
+		radeon_bo_unreserve(rbo);
 	}
-	radeon_bo_get_tiling_flags(rbo, &tiling_flags, NULL);
-	radeon_bo_unreserve(rbo);
 
 	switch (target_fb->bits_per_pixel) {
 	case 8:



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

2015-10-10 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sat Oct 10 19:29:44 UTC 2015

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

Log Message:
Zero out the guard for bus_space_unmap before calling i915_dma_cleanup() which
calls i915_free_hws(), which then tries to unmap. Perhaps this fixes PR/50060.


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 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.16 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.17
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.16	Thu Apr  2 21:06:05 2015
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Sat Oct 10 15:29:44 2015
@@ -1137,8 +1137,8 @@ static int i915_set_status_page(struct d
 	BUS_SPACE_MAP_PREFETCHABLE,
 	&dev_priv->dri1.gfx_hws_cpu_bsh);
 	if (ret) {
-		i915_dma_cleanup(dev);
 		ring->status_page.gfx_addr = 0;
+		i915_dma_cleanup(dev);
 		DRM_ERROR("can not ioremap virtual address for"
 " G33 hw status page\n");
 		return ret;



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

2015-10-10 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Sat Oct 10 19:35:15 UTC 2015

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

Log Message:
fix the same bug on the linux side, print the error, and return the -tive
error to mimick linux.


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 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.17 src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.18
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c:1.17	Sat Oct 10 15:29:44 2015
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_dma.c	Sat Oct 10 15:35:15 2015
@@ -1140,8 +1140,8 @@ static int i915_set_status_page(struct d
 		ring->status_page.gfx_addr = 0;
 		i915_dma_cleanup(dev);
 		DRM_ERROR("can not ioremap virtual address for"
-" G33 hw status page\n");
-		return ret;
+		" G33 hw status page, error %d\n", ret);
+		return -ret;
 	}
 
 	__CTASSERT(PAGE_SIZE == 4096);
@@ -1151,8 +1151,8 @@ static int i915_set_status_page(struct d
 	dev_priv->dri1.gfx_hws_cpu_addr =
 		ioremap_wc(dev_priv->gtt.mappable_base + hws->addr, 4096);
 	if (dev_priv->dri1.gfx_hws_cpu_addr == NULL) {
-		i915_dma_cleanup(dev);
 		ring->status_page.gfx_addr = 0;
+		i915_dma_cleanup(dev);
 		DRM_ERROR("can not ioremap virtual address for"
 " G33 hw status page\n");
 		return -ENOMEM;



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

2015-10-12 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Tue Oct 13 01:43:48 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_drm.c
src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo:
nouveau_engine_fifo_nve0.c

Log Message:
nouveau_drm.c:
- hook up an empty uvm_pagerops like radeon does.
- hook up nouveau_ttm_mmap_object().
nouveau_engine_fifo_nve0.c:
- if (cold), don't try to wait, but hard-spin until the timeout period.

with these in place, i am able to get working text-console with nouveau!

ok riastradh.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c
cvs rdiff -u -r1.4 -r1.5 \

src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.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.5 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c:1.5	Fri Mar  6 15:39:28 2015
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c	Tue Oct 13 01:43:47 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_drm.c,v 1.5 2015/03/06 15:39:28 riastradh Exp $	*/
+/*	$NetBSD: nouveau_drm.c,v 1.6 2015/10/13 01:43:47 mrg Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -25,7 +25,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_drm.c,v 1.5 2015/03/06 15:39:28 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_drm.c,v 1.6 2015/10/13 01:43:47 mrg Exp $");
 
 #include 
 #include 
@@ -62,6 +62,7 @@ __KERNEL_RCSID(0, "$NetBSD: nouveau_drm.
 #include "nouveau_fbcon.h"
 #include "nouveau_fence.h"
 #include "nouveau_debugfs.h"
+#include "nouveau_ttm.h"
 
 MODULE_PARM_DESC(config, "option string to pass to driver core");
 char *nouveau_config;
@@ -87,6 +88,10 @@ module_param_named(runpm, nouveau_runtim
 static struct drm_driver driver;
 #ifdef __NetBSD__
 struct drm_driver *const nouveau_drm_driver = &driver;
+
+/* XXX Kludge for the non-GEM GEM that nouveau uses.  */
+static const struct uvm_pagerops nouveau_gem_uvm_ops;
+
 #endif
 
 static u64
@@ -880,7 +885,11 @@ driver = {
 
 	.ioctls = nouveau_ioctls,
 	.num_ioctls = ARRAY_SIZE(nouveau_ioctls),
-#ifndef __NetBSD__
+#ifdef __NetBSD__
+	.fops = NULL,
+	.mmap_object = &nouveau_ttm_mmap_object,
+	.gem_uvm_ops = &nouveau_gem_uvm_ops,
+#else
 	.fops = &nouveau_driver_fops,
 #endif
 

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:1.4	Sat Feb 28 05:38:49 2015
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c	Tue Oct 13 01:43:47 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_engine_fifo_nve0.c,v 1.4 2015/02/28 05:38:49 riastradh Exp $	*/
+/*	$NetBSD: nouveau_engine_fifo_nve0.c,v 1.5 2015/10/13 01:43:47 mrg Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -25,7 +25,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_nve0.c,v 1.4 2015/02/28 05:38:49 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_nve0.c,v 1.5 2015/10/13 01:43:47 mrg Exp $");
 
 #include 
 #include 
@@ -136,18 +136,27 @@ nve0_fifo_runlist_update(struct nve0_fif
 	nv_wr32(priv, 0x002274, (engine << 20) | (p >> 3));
 
 #ifdef __NetBSD__
-{
-	int ret;
+	if (cold) {
+		uint count = 2000;
+		while (count-- > 0) {
+			if (!(nv_rd32(priv, 0x002284 + (engine * 0x08)) & 0x0010))
+break;
+			delay(1000);
+		}
+		if (count == 0)
+			nv_error(priv, "runlist %d update timeout\n", engine);
+	} else {
+		int ret;
 
-	spin_lock(&engn->lock);
-	DRM_SPIN_TIMED_WAIT_NOINTR_UNTIL(ret, &engn->wait, &engn->lock,
-	msecs_to_jiffies(2000),
-	!(nv_rd32(priv, 0x002284 +
-		(engine * 0x08)) & 0x0010));
-	if (ret == 0)
-		nv_error(priv, "runlist %d update timeout\n", engine);
-	spin_unlock(&engn->lock);
-}
+		spin_lock(&engn->lock);
+		DRM_SPIN_TIMED_WAIT_NOINTR_UNTIL(ret, &engn->wait, &engn->lock,
+		msecs_to_jiffies(2000),
+		!(nv_rd32(priv, 0x002284 +
+			(engine * 0x08)) & 0x0010));
+		if (ret == 0)
+			nv_error(priv, "runlist %d update timeout\n", engine);
+		spin_unlock(&engn->lock);
+	}
 #else
 	if (wait_event_timeout(engn->wait, !(nv_rd32(priv, 0x002284 +
 			   (engine * 0x08)) & 0x0010),



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

2015-10-13 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Wed Oct 14 00:12:56 UTC 2015

Modified Files:
src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_nv50_display.c
src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb:
nouveau_subdev_fb_nv50.c nouveau_subdev_fb_nvc0.c
src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm:
nouveau_subdev_vm_nv04.c nouveau_subdev_vm_nv44.c

Log Message:
use pci_dma64_available() to choose a valid DMA tag.


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

src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv50.c
 \

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

src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv04.c
 \

src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_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.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c:1.3	Wed Feb 25 14:57:04 2015
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c	Wed Oct 14 00:12:55 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nv50_display.c,v 1.3 2015/02/25 14:57:04 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nv50_display.c,v 1.4 2015/10/14 00:12:55 mrg Exp $	*/
 
 	/*
  * Copyright 2011 Red Hat Inc.
@@ -25,7 +25,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nv50_display.c,v 1.3 2015/02/25 14:57:04 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nv50_display.c,v 1.4 2015/10/14 00:12:55 mrg Exp $");
 
 #include 
 #include 
@@ -184,8 +184,8 @@ nv50_dmac_destroy(struct nouveau_object 
 	if (dmac->ptr) {
 		struct pci_dev *pdev = nv_device(core)->pdev;
 #ifdef __NetBSD__
-		/* XXX pa_dmat or pa_dmat64? */
-		const bus_dma_tag_t dmat = pdev->pd_pa.pa_dmat64;
+		const bus_dma_tag_t dmat = pci_dma64_available(&pdev->pd_pa) ?
+		pdev->pd_pa.pa_dmat64 : pdev->pd_pa.pa_dmat;
 
 		bus_dmamap_unload(dmat, dmac->dmamap);
 		bus_dmamem_unmap(dmat, dmac->dmakva, PAGE_SIZE);
@@ -343,7 +343,10 @@ nv50_dmac_create(struct nouveau_object *
 
 #ifdef __NetBSD__
 {
-	const bus_dma_tag_t dmat = nv_device(core)->pdev->pd_pa.pa_dmat64;
+	struct nouveau_device *device = nv_device(core);
+	const bus_dma_tag_t dmat = pci_dma64_available(&device->pdev->pd_pa) ?
+	device->pdev->pd_pa.pa_dmat64 : device->pdev->pd_pa.pa_dmat;
+
 	int rsegs;
 
 	/* XXX errno NetBSD->Linux */

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv50.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv50.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv50.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv50.c:1.2	Wed Feb 25 17:29:43 2015
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv50.c	Wed Oct 14 00:12:55 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_subdev_fb_nv50.c,v 1.2 2015/02/25 17:29:43 riastradh Exp $	*/
+/*	$NetBSD: nouveau_subdev_fb_nv50.c,v 1.3 2015/10/14 00:12:55 mrg Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -25,7 +25,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_subdev_fb_nv50.c,v 1.2 2015/02/25 17:29:43 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_subdev_fb_nv50.c,v 1.3 2015/10/14 00:12:55 mrg Exp $");
 
 #include 
 #include 
@@ -255,8 +255,8 @@ nv50_fb_ctor(struct nouveau_object *pare
 
 #ifdef __NetBSD__
 {
-	/* XXX pa_dmat or pa_dmat64?  */
-	const bus_dma_tag_t dmat = device->pdev->pd_pa.pa_dmat64;
+	const bus_dma_tag_t dmat = pci_dma64_available(&device->pdev->pd_pa) ?
+	device->pdev->pd_pa.pa_dmat64 : device->pdev->pd_pa.pa_dmat;
 	int nsegs;
 
 	priv->r100c08_map = NULL; /* paranoia */
@@ -321,7 +321,8 @@ nv50_fb_dtor(struct nouveau_object *obje
 
 #ifdef __NetBSD__
 	if (priv->r100c08_map) {
-		const bus_dma_tag_t dmat = device->pdev->pd_pa.pa_dmat64;
+		const bus_dma_tag_t dmat = pci_dma64_available(&device->pdev->pd_pa) ?
+		device->pdev->pd_pa.pa_dmat64 : device->pdev->pd_pa.pa_dmat;
 
 		bus_dmamap_unload(dmat, priv->r100c08_map);
 		bus_dmamem_unmap(dmat, priv->r100c08_kva, PAGE_SIZE);
Index: src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nvc0.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nvc0.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nvc0.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/

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

2015-10-17 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sat Oct 17 16:17:22 UTC 2015

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

Log Message:
fix __OS_HAS_AGP=0 build


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/include/drm/drm_agpsupport.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/include/drm/drm_agpsupport.h
diff -u src/sys/external/bsd/drm2/dist/include/drm/drm_agpsupport.h:1.4 src/sys/external/bsd/drm2/dist/include/drm/drm_agpsupport.h:1.5
--- src/sys/external/bsd/drm2/dist/include/drm/drm_agpsupport.h:1.4	Sat Nov 22 19:18:07 2014
+++ src/sys/external/bsd/drm2/dist/include/drm/drm_agpsupport.h	Sat Oct 17 16:17:22 2015
@@ -53,6 +53,8 @@ int drm_agp_bind_ioctl(struct drm_device
 		   struct drm_file *file_priv);
 #else /* __OS_HAS_AGP */
 
+#if !defined(__NetBSD__)
+
 static inline void drm_free_agp(struct agp_memory * handle, int pages)
 {
 }
@@ -67,6 +69,8 @@ static inline int drm_unbind_agp(struct 
 	return -ENODEV;
 }
 
+#endif
+
 static inline struct agp_memory *drm_agp_bind_pages(struct drm_device *dev,
 	  struct page **pages,
 	  unsigned long num_pages,



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

2015-10-17 Thread Jared D. McNeill
Module Name:src
Committed By:   jmcneill
Date:   Sat Oct 17 21:12:37 UTC 2015

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

Log Message:
vunmap takes 2 parameters on netbsd


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 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.5 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.5	Mon Apr 20 19:17:04 2015
+++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c	Sat Oct 17 21:12:37 2015
@@ -371,7 +371,11 @@ static int ttm_copy_ttm_io_page(struct t
 	kunmap_atomic(src);
 #else
 	if (pgprot_val(prot) != pgprot_val(PAGE_KERNEL))
+#ifdef __NetBSD__
+		vunmap(src, 1);
+#else
 		vunmap(src);
+#endif
 	else
 		kunmap(s);
 #endif



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

2015-10-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Tue Oct 27 13:16:33 UTC 2015

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

Log Message:
dev->dev, not &dev->pdev->dev.

Latter is a charlatan, soon to meet judgment for its sins.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 \
src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c
cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c
cvs rdiff -u -r1.6 -r1.7 src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.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.13 src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c:1.14
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c:1.13	Thu Mar  5 21:13:48 2015
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_i2c.c	Tue Oct 27 13:16:33 2015
@@ -656,7 +656,7 @@ int intel_setup_gmbus(struct drm_device 
 			 "i915 gmbus %s",
 			 gmbus_ports[i].name);
 
-		bus->adapter.dev.parent = &dev->pdev->dev;
+		bus->adapter.dev.parent = dev->dev;
 		bus->dev_priv = dev_priv;
 
 		bus->adapter.algo = &gmbus_algorithm;

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c:1.7 src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c:1.7	Sun Jul 26 15:30:36 2015
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_pm.c	Tue Oct 27 13:16:33 2015
@@ -6020,7 +6020,7 @@ void intel_aux_display_runtime_put(struc
 void intel_runtime_pm_get(struct drm_i915_private *dev_priv)
 {
 	struct drm_device *dev = dev_priv->dev;
-	struct device *device = &dev->pdev->dev;
+	struct device *device = dev->dev;
 
 	if (!HAS_RUNTIME_PM(dev))
 		return;
@@ -6032,7 +6032,7 @@ void intel_runtime_pm_get(struct drm_i91
 void intel_runtime_pm_put(struct drm_i915_private *dev_priv)
 {
 	struct drm_device *dev = dev_priv->dev;
-	struct device *device = &dev->pdev->dev;
+	struct device *device = dev->dev;
 
 	if (!HAS_RUNTIME_PM(dev))
 		return;
@@ -6044,7 +6044,7 @@ void intel_runtime_pm_put(struct drm_i91
 void intel_init_runtime_pm(struct drm_i915_private *dev_priv)
 {
 	struct drm_device *dev = dev_priv->dev;
-	struct device *device = &dev->pdev->dev;
+	struct device *device = dev->dev;
 
 	if (!HAS_RUNTIME_PM(dev))
 		return;
@@ -6061,7 +6061,7 @@ void intel_init_runtime_pm(struct drm_i9
 void intel_fini_runtime_pm(struct drm_i915_private *dev_priv)
 {
 	struct drm_device *dev = dev_priv->dev;
-	struct device *device = &dev->pdev->dev;
+	struct device *device = dev->dev;
 
 	if (!HAS_RUNTIME_PM(dev))
 		return;

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.6 src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c:1.6	Sun Sep  7 23:03:11 2014
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_sdvo.c	Tue Oct 27 13:16:33 2015
@@ -2971,7 +2971,7 @@ intel_sdvo_init_ddc_proxy(struct intel_s
 	sdvo->ddc.owner = THIS_MODULE;
 	sdvo->ddc.class = I2C_CLASS_DDC;
 	snprintf(sdvo->ddc.name, I2C_NAME_SIZE, "SDVO DDC proxy");
-	sdvo->ddc.dev.parent = &dev->pdev->dev;
+	sdvo->ddc.dev.parent = dev->dev;
 	sdvo->ddc.algo_data = sdvo;
 	sdvo->ddc.algo = &intel_sdvo_ddc_proxy;
 



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

2015-10-27 Thread Taylor R Campbell
Module Name:src
Committed By:   riastradh
Date:   Tue Oct 27 13:18:21 UTC 2015

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

Log Message:
dev->dev, not &dev->pdev->dev.

Latter is a mistake that is all my fault.  Oops.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_i2c.c \
src/sys/external/bsd/drm2/dist/drm/radeon/radeon_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_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c:1.4	Sat Apr 25 20:50:04 2015
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_display.c	Tue Oct 27 13:18:21 2015
@@ -1301,7 +1301,7 @@ radeon_user_framebuffer_create(struct dr
 
 	obj = drm_gem_object_lookup(dev, file_priv, mode_cmd->handles[0]);
 	if (obj ==  NULL) {
-		dev_err(&dev->pdev->dev, "No GEM object associated to handle 0x%08X, "
+		dev_err(dev->dev, "No GEM object associated to handle 0x%08X, "
 			"can't create framebuffer\n", mode_cmd->handles[0]);
 		return ERR_PTR(-ENOENT);
 	}

Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_gem.c	Tue Oct 27 13:18:21 2015
@@ -446,7 +446,7 @@ int radeon_gem_va_ioctl(struct drm_devic
 	}
 
 	if (args->offset < RADEON_VA_RESERVED_SIZE) {
-		dev_err(&dev->pdev->dev,
+		dev_err(dev->dev,
 			"offset 0x%lX is in reserved area 0x%X\n",
 			(unsigned long)args->offset,
 			RADEON_VA_RESERVED_SIZE);
@@ -460,13 +460,13 @@ int radeon_gem_va_ioctl(struct drm_devic
 	 */
 	invalid_flags = RADEON_VM_PAGE_VALID | RADEON_VM_PAGE_SYSTEM;
 	if ((args->flags & invalid_flags)) {
-		dev_err(&dev->pdev->dev, "invalid flags 0x%08X vs 0x%08X\n",
+		dev_err(dev->dev, "invalid flags 0x%08X vs 0x%08X\n",
 			args->flags, invalid_flags);
 		args->operation = RADEON_VA_RESULT_ERROR;
 		return -EINVAL;
 	}
 	if (!(args->flags & RADEON_VM_PAGE_SNOOPED)) {
-		dev_err(&dev->pdev->dev, "only supported snooped mapping for now\n");
+		dev_err(dev->dev, "only supported snooped mapping for now\n");
 		args->operation = RADEON_VA_RESULT_ERROR;
 		return -EINVAL;
 	}
@@ -476,7 +476,7 @@ int radeon_gem_va_ioctl(struct drm_devic
 	case RADEON_VA_UNMAP:
 		break;
 	default:
-		dev_err(&dev->pdev->dev, "unsupported operation %d\n",
+		dev_err(dev->dev, "unsupported operation %d\n",
 			args->operation);
 		args->operation = RADEON_VA_RESULT_ERROR;
 		return -EINVAL;
Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_i2c.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_i2c.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_i2c.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_i2c.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_i2c.c	Tue Oct 27 13:18:21 2015
@@ -917,7 +917,7 @@ struct radeon_i2c_chan *radeon_i2c_creat
 	i2c->rec = *rec;
 	i2c->adapter.owner = THIS_MODULE;
 	i2c->adapter.class = I2C_CLASS_DDC;
-	i2c->adapter.dev.parent = &dev->pdev->dev;
+	i2c->adapter.dev.parent = dev->dev;
 	i2c->dev = dev;
 	i2c_set_adapdata(&i2c->adapter, i2c);
 	if (rec->mm_i2c ||
Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kms.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kms.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kms.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kms.c:1.2	Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_kms.c	Tue Oct 27 13:18:21 2015
@@ -126,7 +126,7 @@ int radeon_driver_load_kms(struct drm_de
 	 */
 	r = radeon_device_init(rdev, dev, dev->pdev, flags);
 	if (r) {
-		dev_err(&dev->pdev->dev, "Fatal error during GPU init\n");
+		dev_err(dev->dev, "Fatal error during GPU init\n");
 		goto out;
 	}
 
@@ -136,7 +136,7 @@ int radeon_driver_load_kms(struct drm_de
 	 */
 	r = radeon_modeset_init(rdev);
 	if (r)
-		dev_err(&dev->pdev->dev, "Fatal error during modeset init\n");
+		dev_err(dev->dev, "Fatal error during modeset init\n");
 
 	/* Call ACPI methods: require modeset init
 	 * but failure is not fatal
@@ -144,7 +144,7 @@ int radeon_driver_load_kms(struct drm_de
 	if (!r) {
 		acpi_status = radeon_acpi_init(rdev);
 		if (acpi_status)
-		dev_dbg(&dev->pdev->dev,
+		dev_dbg(dev->dev,
 "Error during ACPI methods call\n");
 	}
 



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

2015-10-29 Thread matthew green
Module Name:src
Committed By:   mrg
Date:   Thu Oct 29 08:08:52 UTC 2015

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

Log Message:
provide a ttm-backed set of nouveau_uvm_ops{} in the ttm_bo_driver{}.
fixes NULL pointer derefs inside UVM due to lack of pager ops.

copy the DRM_FILE_PAGE_OFFSET vs !_LP64 workaround.

with these, X starts up on my GTX 440.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.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_bo.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c:1.5 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c:1.5	Sat Aug 23 08:03:33 2014
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c	Thu Oct 29 08:08:52 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_bo.c,v 1.5 2014/08/23 08:03:33 riastradh Exp $	*/
+/*	$NetBSD: nouveau_bo.c,v 1.6 2015/10/29 08:08:52 mrg Exp $	*/
 
 /*
  * Copyright 2007 Dave Airlied
@@ -30,7 +30,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: nouveau_bo.c,v 1.5 2014/08/23 08:03:33 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_bo.c,v 1.6 2015/10/29 08:08:52 mrg Exp $");
 
 #include 
 #include 
@@ -1568,10 +1568,21 @@ nouveau_bo_fence_flush(void *sync_obj)
 	return 0;
 }
 
+#ifdef __NetBSD__
+static const struct uvm_pagerops nouveau_uvm_ops = {
+	.pgo_reference = &ttm_bo_uvm_reference,
+	.pgo_detach = &ttm_bo_uvm_detach,
+	.pgo_fault = &ttm_bo_uvm_fault,
+};
+#endif
+
 struct ttm_bo_driver nouveau_bo_driver = {
 	.ttm_tt_create = &nouveau_ttm_tt_create,
 	.ttm_tt_populate = &nouveau_ttm_tt_populate,
 	.ttm_tt_unpopulate = &nouveau_ttm_tt_unpopulate,
+#ifdef __NetBSD__
+	.ttm_uvm_ops = &nouveau_uvm_ops,
+#endif
 	.invalidate_caches = nouveau_bo_invalidate_caches,
 	.init_mem_type = nouveau_bo_init_mem_type,
 	.evict_flags = nouveau_bo_evict_flags,

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.h
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.h:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.h:1.2	Sat Aug 23 08:03:33 2014
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.h	Thu Oct 29 08:08:52 2015
@@ -40,7 +40,11 @@
 
 struct nouveau_channel;
 
+#ifdef _LP64
 #define DRM_FILE_PAGE_OFFSET (0x1ULL >> PAGE_SHIFT)
+#else
+#define DRM_FILE_PAGE_OFFSET (0xa000UL >> PAGE_SHIFT)
+#endif
 
 #include "nouveau_fence.h"
 #include "nouveau_bios.h"



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))



  1   2   3   4   5   6   7   >