Module Name:    src
Committed By:   riastradh
Date:           Sun Dec 19 12:32:15 UTC 2021

Modified Files:
        src/sys/external/bsd/drm2/dist/drm/i915: i915_drv.c i915_gem.c
            i915_perf.c i915_pmu.c intel_runtime_pm.c intel_uncore.c
            intel_uncore.h intel_wakeref.c
        src/sys/external/bsd/drm2/dist/drm/i915/display: intel_display.c
            intel_display_power.c intel_dpll_mgr.c intel_dpll_mgr.h intel_fbc.c
            intel_fbc.h intel_fbdev.c intel_hdcp.c intel_pipe_crc.c
            intel_pipe_crc.h
        src/sys/external/bsd/drm2/dist/drm/i915/gem: i915_gem_context.c
            i915_gem_userptr.c
        src/sys/external/bsd/drm2/dist/drm/i915/gt: intel_breadcrumbs.c
            intel_engine_cs.c intel_gt_pm.c intel_lrc.c intel_reset.c
            intel_rps.c intel_rps.h intel_timeline.c
        src/sys/external/bsd/drm2/dist/drm/i915/gt/uc: intel_guc.c
            intel_guc_ct.c intel_guc_log.c intel_guc_submission.c

Log Message:
i915: mutex_init/destroy and spin_lock_init/destroy audit


To generate a diff of this commit:
cvs rdiff -u -r1.44 -r1.45 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c
cvs rdiff -u -r1.74 -r1.75 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_perf.c
cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/i915/i915_pmu.c
cvs rdiff -u -r1.11 -r1.12 \
    src/sys/external/bsd/drm2/dist/drm/i915/intel_runtime_pm.c
cvs rdiff -u -r1.19 -r1.20 \
    src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.c
cvs rdiff -u -r1.8 -r1.9 \
    src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.h
cvs rdiff -u -r1.3 -r1.4 \
    src/sys/external/bsd/drm2/dist/drm/i915/intel_wakeref.c
cvs rdiff -u -r1.10 -r1.11 \
    src/sys/external/bsd/drm2/dist/drm/i915/display/intel_display.c
cvs rdiff -u -r1.4 -r1.5 \
    src/sys/external/bsd/drm2/dist/drm/i915/display/intel_display_power.c
cvs rdiff -u -r1.3 -r1.4 \
    src/sys/external/bsd/drm2/dist/drm/i915/display/intel_dpll_mgr.c
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/i915/display/intel_dpll_mgr.h \
    src/sys/external/bsd/drm2/dist/drm/i915/display/intel_fbc.c \
    src/sys/external/bsd/drm2/dist/drm/i915/display/intel_fbc.h \
    src/sys/external/bsd/drm2/dist/drm/i915/display/intel_pipe_crc.c \
    src/sys/external/bsd/drm2/dist/drm/i915/display/intel_pipe_crc.h
cvs rdiff -u -r1.8 -r1.9 \
    src/sys/external/bsd/drm2/dist/drm/i915/display/intel_fbdev.c
cvs rdiff -u -r1.5 -r1.6 \
    src/sys/external/bsd/drm2/dist/drm/i915/display/intel_hdcp.c
cvs rdiff -u -r1.4 -r1.5 \
    src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_context.c \
    src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_userptr.c
cvs rdiff -u -r1.4 -r1.5 \
    src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_breadcrumbs.c \
    src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_rps.c \
    src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_timeline.c
cvs rdiff -u -r1.6 -r1.7 \
    src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_cs.c
cvs rdiff -u -r1.3 -r1.4 \
    src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gt_pm.c \
    src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_rps.h
cvs rdiff -u -r1.7 -r1.8 \
    src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_lrc.c
cvs rdiff -u -r1.5 -r1.6 \
    src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_reset.c
cvs rdiff -u -r1.3 -r1.4 \
    src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc.c \
    src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc_ct.c \
    src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc_submission.c
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc_log.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_drv.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.44 src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.45
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c:1.44	Sun Dec 19 12:03:05 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_drv.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_drv.c,v 1.44 2021/12/19 12:03:05 riastradh Exp $	*/
+/*	$NetBSD: i915_drv.c,v 1.45 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /* i915_drv.c -- i830,i845,i855,i865,i915 driver -*- linux-c -*-
  */
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i915_drv.c,v 1.44 2021/12/19 12:03:05 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_drv.c,v 1.45 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <linux/acpi.h>
 #include <linux/device.h>
@@ -584,6 +584,8 @@ err_workqueues:
 	mutex_destroy(&dev_priv->backlight_lock);
 	spin_lock_destroy(&dev_priv->gpu_error.lock);
 	spin_lock_destroy(&dev_priv->irq_lock);
+	intel_uncore_fini_early(&dev_priv->uncore, dev_priv);
+	intel_uncore_mmio_debug_fini_early(&dev_priv->mmio_debug);
 	return ret;
 }
 
@@ -594,6 +596,7 @@ err_workqueues:
  */
 static void i915_driver_late_release(struct drm_i915_private *dev_priv)
 {
+	intel_display_crc_fini(dev_priv);
 	intel_irq_fini(dev_priv);
 	intel_power_domains_cleanup(dev_priv);
 	i915_gem_cleanup_early(dev_priv);
@@ -607,10 +610,11 @@ static void i915_driver_late_release(str
 	mutex_destroy(&dev_priv->wm.wm_mutex);
 	mutex_destroy(&dev_priv->av_mutex);
 	mutex_destroy(&dev_priv->sb_lock);
-	mutex_destroy(&dev_priv->sb_lock);
 	mutex_destroy(&dev_priv->backlight_lock);
 	spin_lock_destroy(&dev_priv->gpu_error.lock);
 	spin_lock_destroy(&dev_priv->irq_lock);
+	intel_uncore_fini_early(&dev_priv->uncore, dev_priv);
+	intel_uncore_mmio_debug_fini_early(&dev_priv->mmio_debug);
 }
 
 /**

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.74 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.75
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c:1.74	Sun Dec 19 12:27:49 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gem.c,v 1.74 2021/12/19 12:27:49 riastradh Exp $	*/
+/*	$NetBSD: i915_gem.c,v 1.75 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * Copyright © 2008-2015 Intel Corporation
@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i915_gem.c,v 1.74 2021/12/19 12:27:49 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gem.c,v 1.75 2021/12/19 12:32:15 riastradh Exp $");
 
 #ifdef __NetBSD__
 #include <drm/bus_dma_hacks.h>
@@ -1272,6 +1272,7 @@ void i915_gem_cleanup_early(struct drm_i
 	GEM_BUG_ON(atomic_read(&dev_priv->mm.free_count));
 	WARN_ON(dev_priv->mm.shrink_count);
 	spin_lock_destroy(&dev_priv->fb_tracking.lock);
+	spin_lock_destroy(&dev_priv->mm.obj_lock);
 }
 
 int i915_gem_freeze(struct drm_i915_private *dev_priv)

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_perf.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_perf.c:1.6 src/sys/external/bsd/drm2/dist/drm/i915/i915_perf.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_perf.c:1.6	Sun Dec 19 11:49:11 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_perf.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_perf.c,v 1.6 2021/12/19 11:49:11 riastradh Exp $	*/
+/*	$NetBSD: i915_perf.c,v 1.7 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * Copyright © 2015-2016 Intel Corporation
@@ -194,7 +194,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i915_perf.c,v 1.6 2021/12/19 11:49:11 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_perf.c,v 1.7 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <linux/anon_inodes.h>
 #include <linux/sizes.h>
@@ -4675,6 +4675,11 @@ void i915_perf_fini(struct drm_i915_priv
 	if (!perf->i915)
 		return;
 
+	if (perf->ops.enable_metric_set) {
+		mutex_destroy(&perf->metrics_lock);
+		mutex_destroy(&perf->lock);
+	}
+
 	idr_for_each(&perf->metrics_idr, destroy_config, perf);
 	idr_destroy(&perf->metrics_idr);
 

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_pmu.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_pmu.c:1.2 src/sys/external/bsd/drm2/dist/drm/i915/i915_pmu.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_pmu.c:1.2	Sat Dec 18 23:45:28 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_pmu.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_pmu.c,v 1.2 2021/12/18 23:45:28 riastradh Exp $	*/
+/*	$NetBSD: i915_pmu.c,v 1.3 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * SPDX-License-Identifier: MIT
@@ -7,7 +7,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i915_pmu.c,v 1.2 2021/12/18 23:45:28 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_pmu.c,v 1.3 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <linux/irq.h>
 #include <linux/pm_runtime.h>
@@ -1202,4 +1202,5 @@ void i915_pmu_unregister(struct drm_i915
 	if (!is_igp(i915))
 		kfree(pmu->name);
 	free_event_attributes(pmu);
+	spin_lock_destroy(&pmu->lock);
 }

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_runtime_pm.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_runtime_pm.c:1.11 src/sys/external/bsd/drm2/dist/drm/i915/intel_runtime_pm.c:1.12
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_runtime_pm.c:1.11	Sun Dec 19 11:49:11 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_runtime_pm.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_runtime_pm.c,v 1.11 2021/12/19 11:49:11 riastradh Exp $	*/
+/*	$NetBSD: intel_runtime_pm.c,v 1.12 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * Copyright © 2012-2014 Intel Corporation
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_runtime_pm.c,v 1.11 2021/12/19 11:49:11 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_runtime_pm.c,v 1.12 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <linux/pm_runtime.h>
 
@@ -87,6 +87,11 @@ static void init_intel_runtime_pm_wakere
 	spin_lock_init(&rpm->debug.lock);
 }
 
+static void fini_intel_runtime_pm_wakeref(struct intel_runtime_pm *rpm)
+{
+	spin_lock_fini(&rpm->debug.lock);
+}
+
 static noinline depot_stack_handle_t
 track_intel_runtime_pm_wakeref(struct intel_runtime_pm *rpm)
 {
@@ -310,6 +315,10 @@ static void init_intel_runtime_pm_wakere
 {
 }
 
+static void fini_intel_runtime_pm_wakeref(struct intel_runtime_pm *rpm)
+{
+}
+
 static depot_stack_handle_t
 track_intel_runtime_pm_wakeref(struct intel_runtime_pm *rpm)
 {
@@ -609,6 +618,7 @@ void intel_runtime_pm_driver_release(str
 	     intel_rpm_wakelock_count(count));
 
 	untrack_all_intel_runtime_pm_wakerefs(rpm);
+	fini_intel_runtime_pm_wakeref(rpm);
 }
 
 void intel_runtime_pm_init_early(struct intel_runtime_pm *rpm)

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.c:1.19 src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.c:1.20
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.c:1.19	Sun Dec 19 11:55:47 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_uncore.c,v 1.19 2021/12/19 11:55:47 riastradh Exp $	*/
+/*	$NetBSD: intel_uncore.c,v 1.20 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * Copyright © 2013 Intel Corporation
@@ -24,7 +24,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_uncore.c,v 1.19 2021/12/19 11:55:47 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_uncore.c,v 1.20 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <linux/pm_runtime.h>
 #include <asm/iosf_mbi.h>
@@ -50,6 +50,12 @@ intel_uncore_mmio_debug_init_early(struc
 	mmio_debug->unclaimed_mmio_check = 1;
 }
 
+void
+intel_uncore_mmio_debug_fini_early(struct intel_uncore_mmio_debug *mmio_debug)
+{
+	spin_lock_destroy(&mmio_debug->lock);
+}
+
 static void mmio_debug_suspend(struct intel_uncore_mmio_debug *mmio_debug)
 {
 	lockdep_assert_held(&mmio_debug->lock);
@@ -1755,6 +1761,12 @@ void intel_uncore_init_early(struct inte
 	uncore->debug = &i915->mmio_debug;
 }
 
+void intel_uncore_fini_early(struct intel_uncore *uncore,
+			     struct drm_i915_private *i915)
+{
+	spin_lock_init(&uncore->lock);
+}
+
 static void uncore_raw_init(struct intel_uncore *uncore)
 {
 	GEM_BUG_ON(intel_uncore_has_forcewake(uncore));

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.h:1.8 src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.h:1.9
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.h:1.8	Sun Dec 19 11:49:11 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_uncore.h	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_uncore.h,v 1.8 2021/12/19 11:49:11 riastradh Exp $	*/
+/*	$NetBSD: intel_uncore.h,v 1.9 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * Copyright © 2017 Intel Corporation
@@ -202,8 +202,12 @@ intel_uncore_has_fifo(const struct intel
 
 void
 intel_uncore_mmio_debug_init_early(struct intel_uncore_mmio_debug *mmio_debug);
+void
+intel_uncore_mmio_debug_fini_early(struct intel_uncore_mmio_debug *mmio_debug);
 void intel_uncore_init_early(struct intel_uncore *uncore,
 			     struct drm_i915_private *i915);
+void intel_uncore_fini_early(struct intel_uncore *uncore,
+			     struct drm_i915_private *i915);
 int intel_uncore_init_mmio(struct intel_uncore *uncore);
 void intel_uncore_prune_mmio_domains(struct intel_uncore *uncore);
 bool intel_uncore_unclaimed_mmio(struct intel_uncore *uncore);

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_wakeref.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_wakeref.c:1.3 src/sys/external/bsd/drm2/dist/drm/i915/intel_wakeref.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_wakeref.c:1.3	Sun Dec 19 11:49:11 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_wakeref.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_wakeref.c,v 1.3 2021/12/19 11:49:11 riastradh Exp $	*/
+/*	$NetBSD: intel_wakeref.c,v 1.4 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * SPDX-License-Identifier: MIT
@@ -7,13 +7,15 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_wakeref.c,v 1.3 2021/12/19 11:49:11 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_wakeref.c,v 1.4 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <linux/wait_bit.h>
 
 #include "intel_runtime_pm.h"
 #include "intel_wakeref.h"
 
+#include <linux/nbsd-namespace.h>
+
 static void rpm_get(struct intel_wakeref *wf)
 {
 	wf->wakeref = intel_runtime_pm_get(wf->rpm);
@@ -62,16 +64,19 @@ int __intel_wakeref_get_first(struct int
 static void ____intel_wakeref_put_last(struct intel_wakeref *wf)
 {
 	INTEL_WAKEREF_BUG_ON(atomic_read(&wf->count) <= 0);
-	if (unlikely(!atomic_dec_and_test(&wf->count)))
-		goto unlock;
+	if (unlikely(!atomic_dec_and_test(&wf->count))) {
+		mutex_unlock(&wf->mutex);
+		return;
+	}
 
 	/* ops->put() must reschedule its own release on error/deferral */
 	if (likely(!wf->ops->put(wf))) {
 		rpm_put(wf);
 	}
 
-unlock:
 	mutex_unlock(&wf->mutex);
+	DRM_DESTROY_WAITQUEUE(&wf->wq);
+	mutex_destroy(&wf->mutex);
 }
 
 void __intel_wakeref_put_last(struct intel_wakeref *wf, unsigned long flags)
@@ -192,4 +197,5 @@ void intel_wakeref_auto_fini(struct inte
 {
 	intel_wakeref_auto(wf, 0);
 	INTEL_WAKEREF_BUG_ON(wf->wakeref);
+	spin_lock_destroy(&wf->lock);
 }

Index: src/sys/external/bsd/drm2/dist/drm/i915/display/intel_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/display/intel_display.c:1.10 src/sys/external/bsd/drm2/dist/drm/i915/display/intel_display.c:1.11
--- src/sys/external/bsd/drm2/dist/drm/i915/display/intel_display.c:1.10	Sun Dec 19 12:28:55 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/display/intel_display.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_display.c,v 1.10 2021/12/19 12:28:55 riastradh Exp $	*/
+/*	$NetBSD: intel_display.c,v 1.11 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * Copyright © 2006-2007 Intel Corporation
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_display.c,v 1.10 2021/12/19 12:28:55 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_display.c,v 1.11 2021/12/19 12:32:15 riastradh Exp $");
 
 #include "intel_display.h"	/* for pipe_drmhack */
 
@@ -18576,8 +18576,12 @@ void intel_modeset_driver_remove(struct 
 
 	intel_overlay_cleanup(i915);
 
+	intel_shared_dpll_cleanup(&i915->drm);
+
 	intel_gmbus_teardown(i915);
 
+	intel_fbc_cleanup(i915);
+
 	intel_bw_cleanup(i915);
 
 	DRM_DESTROY_WAITQUEUE(&i915->atomic_commit_wq);

Index: src/sys/external/bsd/drm2/dist/drm/i915/display/intel_display_power.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/display/intel_display_power.c:1.4 src/sys/external/bsd/drm2/dist/drm/i915/display/intel_display_power.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/i915/display/intel_display_power.c:1.4	Sun Dec 19 11:54:48 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/display/intel_display_power.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_display_power.c,v 1.4 2021/12/19 11:54:48 riastradh Exp $	*/
+/*	$NetBSD: intel_display_power.c,v 1.5 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /* SPDX-License-Identifier: MIT */
 /*
@@ -6,7 +6,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_display_power.c,v 1.4 2021/12/19 11:54:48 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_display_power.c,v 1.5 2021/12/19 12:32:15 riastradh Exp $");
 
 #include "display/intel_crt.h"
 #include "display/intel_dp.h"
@@ -4362,6 +4362,7 @@ int intel_power_domains_init(struct drm_
 void intel_power_domains_cleanup(struct drm_i915_private *dev_priv)
 {
 	kfree(dev_priv->power_domains.power_wells);
+	mutex_destroy(&dev_priv->power_domains.lock);
 }
 
 static void intel_power_domains_sync_hw(struct drm_i915_private *dev_priv)

Index: src/sys/external/bsd/drm2/dist/drm/i915/display/intel_dpll_mgr.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/display/intel_dpll_mgr.c:1.3 src/sys/external/bsd/drm2/dist/drm/i915/display/intel_dpll_mgr.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/i915/display/intel_dpll_mgr.c:1.3	Sun Dec 19 11:38:26 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/display/intel_dpll_mgr.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_dpll_mgr.c,v 1.3 2021/12/19 11:38:26 riastradh Exp $	*/
+/*	$NetBSD: intel_dpll_mgr.c,v 1.4 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * Copyright © 2006-2016 Intel Corporation
@@ -24,7 +24,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_dpll_mgr.c,v 1.3 2021/12/19 11:38:26 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_dpll_mgr.c,v 1.4 2021/12/19 12:32:15 riastradh Exp $");
 
 #include "intel_display_types.h"
 #include "intel_dpio_phy.h"
@@ -3795,6 +3795,14 @@ void intel_shared_dpll_init(struct drm_d
 	BUG_ON(dev_priv->num_shared_dpll > I915_NUM_PLLS);
 }
 
+void
+intel_shared_dpll_cleanup(struct drm_device *dev)
+{
+	struct drm_i915_private *dev_priv = to_i915(dev);
+
+	mutex_destroy(&dev_priv->dpll_lock);
+}
+
 /**
  * intel_reserve_shared_dplls - reserve DPLLs for CRTC and encoder combination
  * @state: atomic state

Index: src/sys/external/bsd/drm2/dist/drm/i915/display/intel_dpll_mgr.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/display/intel_dpll_mgr.h:1.2 src/sys/external/bsd/drm2/dist/drm/i915/display/intel_dpll_mgr.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/i915/display/intel_dpll_mgr.h:1.2	Sat Dec 18 23:45:30 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/display/intel_dpll_mgr.h	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_dpll_mgr.h,v 1.2 2021/12/18 23:45:30 riastradh Exp $	*/
+/*	$NetBSD: intel_dpll_mgr.h,v 1.3 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * Copyright © 2012-2016 Intel Corporation
@@ -379,6 +379,7 @@ void intel_enable_shared_dpll(const stru
 void intel_disable_shared_dpll(const struct intel_crtc_state *crtc_state);
 void intel_shared_dpll_swap_state(struct intel_atomic_state *state);
 void intel_shared_dpll_init(struct drm_device *dev);
+void intel_shared_dpll_cleanup(struct drm_device *dev);
 
 void intel_dpll_dump_hw_state(struct drm_i915_private *dev_priv,
 			      const struct intel_dpll_hw_state *hw_state);
Index: src/sys/external/bsd/drm2/dist/drm/i915/display/intel_fbc.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/display/intel_fbc.c:1.2 src/sys/external/bsd/drm2/dist/drm/i915/display/intel_fbc.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/i915/display/intel_fbc.c:1.2	Sat Dec 18 23:45:30 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/display/intel_fbc.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_fbc.c,v 1.2 2021/12/18 23:45:30 riastradh Exp $	*/
+/*	$NetBSD: intel_fbc.c,v 1.3 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * Copyright © 2014 Intel Corporation
@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_fbc.c,v 1.2 2021/12/18 23:45:30 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_fbc.c,v 1.3 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <drm/drm_fourcc.h>
 
@@ -1363,3 +1363,11 @@ void intel_fbc_init(struct drm_i915_priv
 	if (intel_fbc_hw_is_active(dev_priv))
 		intel_fbc_hw_deactivate(dev_priv);
 }
+
+void
+intel_fbc_cleanup(struct drm_i915_private *dev_priv)
+{
+	struct intel_fbc *fbc = &dev_priv->fbc;
+
+	mutex_destroy(&fbc->lock);
+}
Index: src/sys/external/bsd/drm2/dist/drm/i915/display/intel_fbc.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/display/intel_fbc.h:1.2 src/sys/external/bsd/drm2/dist/drm/i915/display/intel_fbc.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/i915/display/intel_fbc.h:1.2	Sat Dec 18 23:45:30 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/display/intel_fbc.h	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_fbc.h,v 1.2 2021/12/18 23:45:30 riastradh Exp $	*/
+/*	$NetBSD: intel_fbc.h,v 1.3 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /* SPDX-License-Identifier: MIT */
 /*
@@ -26,6 +26,7 @@ bool intel_fbc_pre_update(struct intel_c
 			  const struct intel_plane_state *plane_state);
 void intel_fbc_post_update(struct intel_crtc *crtc);
 void intel_fbc_init(struct drm_i915_private *dev_priv);
+void intel_fbc_cleanup(struct drm_i915_private *dev_priv);
 void intel_fbc_enable(struct intel_crtc *crtc,
 		      const struct intel_crtc_state *crtc_state,
 		      const struct intel_plane_state *plane_state);
Index: src/sys/external/bsd/drm2/dist/drm/i915/display/intel_pipe_crc.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/display/intel_pipe_crc.c:1.2 src/sys/external/bsd/drm2/dist/drm/i915/display/intel_pipe_crc.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/i915/display/intel_pipe_crc.c:1.2	Sat Dec 18 23:45:30 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/display/intel_pipe_crc.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_pipe_crc.c,v 1.2 2021/12/18 23:45:30 riastradh Exp $	*/
+/*	$NetBSD: intel_pipe_crc.c,v 1.3 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * Copyright © 2013 Intel Corporation
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_pipe_crc.c,v 1.2 2021/12/18 23:45:30 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_pipe_crc.c,v 1.3 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <linux/circ_buf.h>
 #include <linux/ctype.h>
@@ -456,6 +456,17 @@ void intel_display_crc_init(struct drm_i
 	}
 }
 
+void intel_display_crc_init(struct drm_i915_private *dev_priv)
+{
+	enum pipe pipe;
+
+	for_each_pipe(dev_priv, pipe) {
+		struct intel_pipe_crc *pipe_crc = &dev_priv->pipe_crc[pipe];
+
+		spin_lock_destroy(&pipe_crc->lock);
+	}
+}
+
 static int i8xx_crc_source_valid(struct drm_i915_private *dev_priv,
 				 const enum intel_pipe_crc_source source)
 {
Index: src/sys/external/bsd/drm2/dist/drm/i915/display/intel_pipe_crc.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/display/intel_pipe_crc.h:1.2 src/sys/external/bsd/drm2/dist/drm/i915/display/intel_pipe_crc.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/i915/display/intel_pipe_crc.h:1.2	Sat Dec 18 23:45:30 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/display/intel_pipe_crc.h	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_pipe_crc.h,v 1.2 2021/12/18 23:45:30 riastradh Exp $	*/
+/*	$NetBSD: intel_pipe_crc.h,v 1.3 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /* SPDX-License-Identifier: MIT */
 /*
@@ -16,6 +16,7 @@ struct intel_crtc;
 
 #ifdef CONFIG_DEBUG_FS
 void intel_display_crc_init(struct drm_i915_private *dev_priv);
+void intel_display_crc_fini(struct drm_i915_private *dev_priv);
 int intel_crtc_set_crc_source(struct drm_crtc *crtc, const char *source_name);
 int intel_crtc_verify_crc_source(struct drm_crtc *crtc,
 				 const char *source_name, size_t *values_cnt);
@@ -25,6 +26,7 @@ void intel_crtc_disable_pipe_crc(struct 
 void intel_crtc_enable_pipe_crc(struct intel_crtc *crtc);
 #else
 static inline void intel_display_crc_init(struct drm_i915_private *dev_priv) {}
+static inline void intel_display_crc_fini(struct drm_i915_private *dev_priv) {}
 #define intel_crtc_set_crc_source NULL
 #define intel_crtc_verify_crc_source NULL
 #define intel_crtc_get_crc_sources NULL

Index: src/sys/external/bsd/drm2/dist/drm/i915/display/intel_fbdev.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/display/intel_fbdev.c:1.8 src/sys/external/bsd/drm2/dist/drm/i915/display/intel_fbdev.c:1.9
--- src/sys/external/bsd/drm2/dist/drm/i915/display/intel_fbdev.c:1.8	Sun Dec 19 11:45:01 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/display/intel_fbdev.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_fbdev.c,v 1.8 2021/12/19 11:45:01 riastradh Exp $	*/
+/*	$NetBSD: intel_fbdev.c,v 1.9 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * Copyright © 2007 David Airlie
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_fbdev.c,v 1.8 2021/12/19 11:45:01 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_fbdev.c,v 1.9 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <linux/async.h>
 #include <linux/console.h>
@@ -357,6 +357,8 @@ static void intel_fbdev_destroy(struct i
 	if (ifbdev->fb)
 		drm_framebuffer_remove(&ifbdev->fb->base);
 
+	mutex_destroy(&ifbdev->hpd_lock);
+
 	kfree(ifbdev);
 }
 

Index: src/sys/external/bsd/drm2/dist/drm/i915/display/intel_hdcp.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/display/intel_hdcp.c:1.5 src/sys/external/bsd/drm2/dist/drm/i915/display/intel_hdcp.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/i915/display/intel_hdcp.c:1.5	Sun Dec 19 11:49:11 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/display/intel_hdcp.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_hdcp.c,v 1.5 2021/12/19 11:49:11 riastradh Exp $	*/
+/*	$NetBSD: intel_hdcp.c,v 1.6 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /* SPDX-License-Identifier: MIT */
 /*
@@ -11,7 +11,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_hdcp.c,v 1.5 2021/12/19 11:49:11 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_hdcp.c,v 1.6 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <linux/component.h>
 #include <linux/i2c.h>
@@ -1949,7 +1949,6 @@ int intel_hdcp_init(struct intel_connect
 	}
 
 	hdcp->shim = shim;
-	/* XXX destroy */
 	mutex_init(&hdcp->mutex);
 	INIT_DELAYED_WORK(&hdcp->check_work, intel_hdcp_check_work);
 	INIT_WORK(&hdcp->prop_work, intel_hdcp_prop_work);
@@ -2054,6 +2053,8 @@ void intel_hdcp_cleanup(struct intel_con
 	mutex_lock(&connector->hdcp.mutex);
 	kfree(connector->hdcp.port_data.streams);
 	mutex_unlock(&connector->hdcp.mutex);
+
+	mutex_destroy(&connector->hdcp.mutex);
 }
 
 void intel_hdcp_atomic_check(struct drm_connector *connector,

Index: src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_context.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_context.c:1.4 src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_context.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_context.c:1.4	Sun Dec 19 11:27:20 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_context.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gem_context.c,v 1.4 2021/12/19 11:27:20 riastradh Exp $	*/
+/*	$NetBSD: i915_gem_context.c,v 1.5 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * SPDX-License-Identifier: MIT
@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i915_gem_context.c,v 1.4 2021/12/19 11:27:20 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gem_context.c,v 1.5 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <linux/log2.h>
 #include <linux/nospec.h>
@@ -786,6 +786,7 @@ void i915_gem_init__contexts(struct drm_
 void i915_gem_driver_release__contexts(struct drm_i915_private *i915)
 {
 	flush_work(&i915->gem.contexts.free_work);
+	spin_lock_destroy(&i915->gem.contexts.lock);
 }
 
 static int vm_idr_cleanup(int id, void *p, void *data)
Index: src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_userptr.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_userptr.c:1.4 src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_userptr.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_userptr.c:1.4	Sun Dec 19 11:33:49 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_userptr.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: i915_gem_userptr.c,v 1.4 2021/12/19 11:33:49 riastradh Exp $	*/
+/*	$NetBSD: i915_gem_userptr.c,v 1.5 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * SPDX-License-Identifier: MIT
@@ -7,7 +7,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: i915_gem_userptr.c,v 1.4 2021/12/19 11:33:49 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: i915_gem_userptr.c,v 1.5 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <linux/mmu_context.h>
 #include <linux/mmu_notifier.h>
@@ -232,8 +232,10 @@ i915_mmu_notifier_find(struct i915_mm_st
 	mutex_unlock(&mm->i915->mm_lock);
 	up_write(&mm->mm->mmap_sem);
 
-	if (mn && !IS_ERR(mn))
+	if (mn && !IS_ERR(mn)) {
+		spin_lock_destroy(&mn->lock);
 		kfree(mn);
+	}
 
 	return err ? ERR_PTR(err) : mm->mn;
 }
@@ -282,6 +284,7 @@ i915_mmu_notifier_free(struct i915_mmu_n
 		return;
 
 	mmu_notifier_unregister(&mn->mn, mm);
+	spin_lock_destroy(&mn->lock);
 	kfree(mn);
 }
 

Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_breadcrumbs.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_breadcrumbs.c:1.4 src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_breadcrumbs.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_breadcrumbs.c:1.4	Sun Dec 19 11:38:04 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_breadcrumbs.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_breadcrumbs.c,v 1.4 2021/12/19 11:38:04 riastradh Exp $	*/
+/*	$NetBSD: intel_breadcrumbs.c,v 1.5 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * Copyright © 2015 Intel Corporation
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_breadcrumbs.c,v 1.4 2021/12/19 11:38:04 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_breadcrumbs.c,v 1.5 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <linux/kthread.h>
 #include <trace/events/dma_fence.h>
@@ -291,6 +291,9 @@ void intel_engine_reset_breadcrumbs(stru
 
 void intel_engine_fini_breadcrumbs(struct intel_engine_cs *engine)
 {
+	struct intel_breadcrumbs *b = &engine->breadcrumbs;
+
+	spin_lock_destroy(&b->irq_lock);
 }
 
 bool i915_request_enable_breadcrumb(struct i915_request *rq)
Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_rps.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_rps.c:1.4 src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_rps.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_rps.c:1.4	Sun Dec 19 11:49:11 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_rps.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_rps.c,v 1.4 2021/12/19 11:49:11 riastradh Exp $	*/
+/*	$NetBSD: intel_rps.c,v 1.5 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * SPDX-License-Identifier: MIT
@@ -7,7 +7,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_rps.c,v 1.4 2021/12/19 11:49:11 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_rps.c,v 1.5 2021/12/19 12:32:15 riastradh Exp $");
 
 #include "i915_drv.h"
 #include "intel_gt.h"
@@ -1677,6 +1677,13 @@ void intel_rps_init(struct intel_rps *rp
 		rps->pm_intrmsk_mbz |= GEN8_PMINTR_DISABLE_REDIRECT_TO_GUC;
 }
 
+void intel_rps_fini(struct intel_rps *rps)
+{
+
+	mutex_destroy(&rps->power.mutex);
+	mutex_destroy(&rps->lock);
+}
+
 u32 intel_rps_get_cagf(struct intel_rps *rps, u32 rpstat)
 {
 	struct drm_i915_private *i915 = rps_to_i915(rps);
Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_timeline.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_timeline.c:1.4 src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_timeline.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_timeline.c:1.4	Sun Dec 19 11:57:19 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_timeline.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_timeline.c,v 1.4 2021/12/19 11:57:19 riastradh Exp $	*/
+/*	$NetBSD: intel_timeline.c,v 1.5 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * SPDX-License-Identifier: MIT
@@ -7,7 +7,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_timeline.c,v 1.4 2021/12/19 11:57:19 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_timeline.c,v 1.5 2021/12/19 12:32:15 riastradh Exp $");
 
 #include "i915_drv.h"
 
@@ -574,6 +574,9 @@ void intel_gt_fini_timelines(struct inte
 
 	GEM_BUG_ON(!list_empty(&timelines->active_list));
 	GEM_BUG_ON(!list_empty(&timelines->hwsp_free_list));
+
+	spin_lock_destroy(&timelines->hwsp_lock);
+	spin_lock_destroy(&timelines->lock);
 }
 
 #if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)

Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_cs.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_cs.c:1.6 src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_cs.c:1.7
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_cs.c:1.6	Sun Dec 19 11:39:24 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_cs.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_engine_cs.c,v 1.6 2021/12/19 11:39:24 riastradh Exp $	*/
+/*	$NetBSD: intel_engine_cs.c,v 1.7 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * Copyright © 2016 Intel Corporation
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_engine_cs.c,v 1.6 2021/12/19 11:39:24 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_engine_cs.c,v 1.7 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <drm/drm_print.h>
 
@@ -828,6 +828,8 @@ void intel_engine_cleanup_common(struct 
 	intel_wa_list_free(&engine->ctx_wa_list);
 	intel_wa_list_free(&engine->wa_list);
 	intel_wa_list_free(&engine->whitelist);
+
+	spin_lock_destroy(&engine->active.lock);
 }
 
 u64 intel_engine_get_active_head(const struct intel_engine_cs *engine)

Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gt_pm.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gt_pm.c:1.3 src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gt_pm.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gt_pm.c:1.3	Sun Dec 19 11:45:01 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gt_pm.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_gt_pm.c,v 1.3 2021/12/19 11:45:01 riastradh Exp $	*/
+/*	$NetBSD: intel_gt_pm.c,v 1.4 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * SPDX-License-Identifier: MIT
@@ -7,7 +7,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_gt_pm.c,v 1.3 2021/12/19 11:45:01 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_gt_pm.c,v 1.4 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <linux/suspend.h>
 
@@ -175,6 +175,7 @@ static void gt_sanitize(struct intel_gt 
 
 void intel_gt_pm_fini(struct intel_gt *gt)
 {
+	intel_rps_fini(&gt->rps);
 	intel_rc6_fini(&gt->rc6);
 }
 
Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_rps.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_rps.h:1.3 src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_rps.h:1.4
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_rps.h:1.3	Sun Dec 19 11:33:49 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_rps.h	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_rps.h,v 1.3 2021/12/19 11:33:49 riastradh Exp $	*/
+/*	$NetBSD: intel_rps.h,v 1.4 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * SPDX-License-Identifier: MIT
@@ -15,6 +15,7 @@ struct i915_request;
 
 void intel_rps_init_early(struct intel_rps *rps);
 void intel_rps_init(struct intel_rps *rps);
+void intel_rps_fini(struct intel_rps *rps);
 
 void intel_rps_driver_register(struct intel_rps *rps);
 void intel_rps_driver_unregister(struct intel_rps *rps);

Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_lrc.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_lrc.c:1.7 src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_lrc.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_lrc.c:1.7	Sun Dec 19 11:49:11 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_lrc.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_lrc.c,v 1.7 2021/12/19 11:49:11 riastradh Exp $	*/
+/*	$NetBSD: intel_lrc.c,v 1.8 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * Copyright © 2014 Intel Corporation
@@ -134,7 +134,7 @@
  *
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_lrc.c,v 1.7 2021/12/19 11:49:11 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_lrc.c,v 1.8 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <linux/interrupt.h>
 
@@ -4733,6 +4733,9 @@ static void virtual_context_destroy(stru
 		__execlists_context_fini(&ve->context);
 	intel_context_fini(&ve->context);
 
+	intel_engine_fini_breadcrumbs(&ve->base);
+	spin_lock_destroy(&ve->base.active.lock);
+
 	kfree(ve->bonds);
 	kfree(ve);
 }

Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_reset.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_reset.c:1.5 src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_reset.c:1.6
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_reset.c:1.5	Sun Dec 19 12:27:17 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_reset.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_reset.c,v 1.5 2021/12/19 12:27:17 riastradh Exp $	*/
+/*	$NetBSD: intel_reset.c,v 1.6 2021/12/19 12:32:15 riastradh Exp $	*/
 
 /*
  * SPDX-License-Identifier: MIT
@@ -7,7 +7,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_reset.c,v 1.5 2021/12/19 12:27:17 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_reset.c,v 1.6 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <linux/sched/mm.h>
 #include <linux/stop_machine.h>
@@ -1396,6 +1396,7 @@ void intel_gt_fini_reset(struct intel_gt
 {
 	cleanup_srcu_struct(&gt->reset.backoff_srcu);
 	DRM_DESTROY_WAITQUEUE(&gt->reset.queue);
+	mutex_destroy(&gt->reset.mutex);
 	spin_lock_destroy(&gt->reset.lock);
 }
 

Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc.c:1.3 src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc.c:1.3	Sun Dec 19 11:45:01 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_guc.c,v 1.3 2021/12/19 11:45:01 riastradh Exp $	*/
+/*	$NetBSD: intel_guc.c,v 1.4 2021/12/19 12:32:15 riastradh Exp $	*/
 
 // SPDX-License-Identifier: MIT
 /*
@@ -6,7 +6,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_guc.c,v 1.3 2021/12/19 11:45:01 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_guc.c,v 1.4 2021/12/19 12:32:15 riastradh Exp $");
 
 #include "gt/intel_gt.h"
 #include "gt/intel_gt_irq.h"
@@ -407,6 +407,9 @@ void intel_guc_fini(struct intel_guc *gu
 	intel_uc_fw_cleanup_fetch(&guc->fw);
 
 	intel_uc_fw_change_status(&guc->fw, INTEL_UC_FIRMWARE_DISABLED);
+
+	spin_lock_destroy(&guc->irq_lock);
+	mutex_destroy(&guc->send_mutex);
 }
 
 /*
Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc_ct.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc_ct.c:1.3 src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc_ct.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc_ct.c:1.3	Sun Dec 19 11:45:01 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc_ct.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_guc_ct.c,v 1.3 2021/12/19 11:45:01 riastradh Exp $	*/
+/*	$NetBSD: intel_guc_ct.c,v 1.4 2021/12/19 12:32:15 riastradh Exp $	*/
 
 // SPDX-License-Identifier: MIT
 /*
@@ -6,7 +6,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_guc_ct.c,v 1.3 2021/12/19 11:45:01 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_guc_ct.c,v 1.4 2021/12/19 12:32:15 riastradh Exp $");
 
 #include "i915_drv.h"
 #include "intel_guc_ct.h"
@@ -191,6 +191,7 @@ void intel_guc_ct_fini(struct intel_guc_
 	GEM_BUG_ON(ct->enabled);
 
 	i915_vma_unpin_and_release(&ct->vma, I915_VMA_RELEASE_MAP);
+	spin_lock_destroy(&ct->requests.lock);
 }
 
 /**
Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc_submission.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc_submission.c:1.3 src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc_submission.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc_submission.c:1.3	Sun Dec 19 11:45:01 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc_submission.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_guc_submission.c,v 1.3 2021/12/19 11:45:01 riastradh Exp $	*/
+/*	$NetBSD: intel_guc_submission.c,v 1.4 2021/12/19 12:32:15 riastradh Exp $	*/
 
 // SPDX-License-Identifier: MIT
 /*
@@ -6,7 +6,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_guc_submission.c,v 1.3 2021/12/19 11:45:01 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_guc_submission.c,v 1.4 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <linux/circ_buf.h>
 
@@ -550,6 +550,7 @@ err_pool:
 
 void intel_guc_submission_fini(struct intel_guc *guc)
 {
+	spin_lock_destroy(&guc->wq_lock);
 	if (guc->stage_desc_pool) {
 		guc_proc_desc_destroy(guc);
 		guc_workqueue_destroy(guc);

Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc_log.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc_log.c:1.2 src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc_log.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc_log.c:1.2	Sat Dec 18 23:45:31 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/uc/intel_guc_log.c	Sun Dec 19 12:32:15 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_guc_log.c,v 1.2 2021/12/18 23:45:31 riastradh Exp $	*/
+/*	$NetBSD: intel_guc_log.c,v 1.3 2021/12/19 12:32:15 riastradh Exp $	*/
 
 // SPDX-License-Identifier: MIT
 /*
@@ -6,7 +6,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_guc_log.c,v 1.2 2021/12/18 23:45:31 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_guc_log.c,v 1.3 2021/12/19 12:32:15 riastradh Exp $");
 
 #include <linux/debugfs.h>
 
@@ -510,6 +510,7 @@ err:
 void intel_guc_log_destroy(struct intel_guc_log *log)
 {
 	i915_vma_unpin_and_release(&log->vma, 0);
+	mutex_destroy(&log->relay.lock);
 }
 
 int intel_guc_log_set_level(struct intel_guc_log *log, u32 level)

Reply via email to