Module Name:    src
Committed By:   riastradh
Date:           Sun Sep  2 17:36:57 UTC 2018

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

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

Not once per connector!

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


To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 \
    src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c
cvs rdiff -u -r1.17 -r1.18 src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c

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

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.21 src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.22
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.21	Mon Aug 27 07:28:41 2018
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c	Sun Sep  2 17:36:57 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_display.c,v 1.21 2018/08/27 07:28:41 riastradh Exp $	*/
+/*	$NetBSD: intel_display.c,v 1.22 2018/09/02 17:36:57 riastradh Exp $	*/
 
 /*
  * Copyright © 2006-2007 Intel Corporation
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_display.c,v 1.21 2018/08/27 07:28:41 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_display.c,v 1.22 2018/09/02 17:36:57 riastradh Exp $");
 
 #include <linux/dmi.h>
 #include <linux/module.h>
@@ -14775,8 +14775,10 @@ static void intel_init_display(struct dr
 
 #ifdef __NetBSD__
 	linux_mutex_init(&dev_priv->pps_mutex);
+	linux_mutex_init(&dev_priv->drrs.mutex);
 #else
 	mutex_init(&dev_priv->pps_mutex);
+	mutex_init(&dev_priv->drrs.mutex);
 #endif
 }
 
@@ -15710,10 +15712,12 @@ void intel_modeset_cleanup(struct drm_de
 
 #ifdef __NetBSD__
 	linux_mutex_destroy(&dev_priv->psr.lock);
+	linux_mutex_destroy(&dev_priv->drrs.mutex);
 	linux_mutex_destroy(&dev_priv->pps_mutex);
 	linux_mutex_destroy(&dev_priv->fbc.lock);
 #else
 	mutex_destroy(&dev_priv->psr.lock);
+	mutex_destroy(&dev_priv->drrs.mutex);
 	mutex_destroy(&dev_priv->pps_mutex);
 	mutex_destroy(&dev_priv->fbc.lock);
 #endif

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

Reply via email to