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(>->rps); intel_rc6_fini(>->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(>->reset.backoff_srcu); DRM_DESTROY_WAITQUEUE(>->reset.queue); + mutex_destroy(>->reset.mutex); spin_lock_destroy(>->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)