Module Name:    src
Committed By:   riastradh
Date:           Sun Dec 19 12:33:57 UTC 2021

Modified Files:
        src/sys/external/bsd/drm2/dist/drm/i915: intel_wakeref.c
            intel_wakeref.h
        src/sys/external/bsd/drm2/dist/drm/i915/gt: intel_engine_cs.c
            intel_engine_pm.c intel_engine_pm.h intel_gt_pm.c

Log Message:
i915: Fix wakeref destruction.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
    src/sys/external/bsd/drm2/dist/drm/i915/intel_wakeref.c
cvs rdiff -u -r1.3 -r1.4 \
    src/sys/external/bsd/drm2/dist/drm/i915/intel_wakeref.h
cvs rdiff -u -r1.7 -r1.8 \
    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_engine_pm.c
cvs rdiff -u -r1.2 -r1.3 \
    src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_pm.h
cvs rdiff -u -r1.4 -r1.5 \
    src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gt_pm.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_wakeref.c
diff -u 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.5
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_wakeref.c:1.4	Sun Dec 19 12:32:15 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_wakeref.c	Sun Dec 19 12:33:57 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_wakeref.c,v 1.4 2021/12/19 12:32:15 riastradh Exp $	*/
+/*	$NetBSD: intel_wakeref.c,v 1.5 2021/12/19 12:33:57 riastradh Exp $	*/
 
 /*
  * SPDX-License-Identifier: MIT
@@ -7,7 +7,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_wakeref.c,v 1.4 2021/12/19 12:32:15 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_wakeref.c,v 1.5 2021/12/19 12:33:57 riastradh Exp $");
 
 #include <linux/wait_bit.h>
 
@@ -75,8 +75,6 @@ static void ____intel_wakeref_put_last(s
 	}
 
 	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)
@@ -120,6 +118,14 @@ void __intel_wakeref_init(struct intel_w
 	lockdep_init_map(&wf->work.lockdep_map, "wakeref.work", &key->work, 0);
 }
 
+void
+intel_wakeref_fini(struct intel_wakeref *wf)
+{
+
+	DRM_DESTROY_WAITQUEUE(&wf->wq);
+	mutex_destroy(&wf->mutex);
+}
+
 int intel_wakeref_wait_for_idle(struct intel_wakeref *wf)
 {
 	int err;

Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_wakeref.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_wakeref.h:1.3 src/sys/external/bsd/drm2/dist/drm/i915/intel_wakeref.h:1.4
--- src/sys/external/bsd/drm2/dist/drm/i915/intel_wakeref.h:1.3	Sun Dec 19 11:49:11 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/intel_wakeref.h	Sun Dec 19 12:33:57 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_wakeref.h,v 1.3 2021/12/19 11:49:11 riastradh Exp $	*/
+/*	$NetBSD: intel_wakeref.h,v 1.4 2021/12/19 12:33:57 riastradh Exp $	*/
 
 /*
  * SPDX-License-Identifier: MIT
@@ -64,6 +64,8 @@ void __intel_wakeref_init(struct intel_w
 	__intel_wakeref_init((wf), (rpm), (ops), &__key);		\
 } while (0)
 
+void intel_wakeref_fini(struct intel_wakeref *);
+
 int __intel_wakeref_get_first(struct intel_wakeref *wf);
 void __intel_wakeref_put_last(struct intel_wakeref *wf, unsigned long flags);
 

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.7 src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_cs.c:1.8
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_cs.c:1.7	Sun Dec 19 12:32:15 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_cs.c	Sun Dec 19 12:33:56 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_engine_cs.c,v 1.7 2021/12/19 12:32:15 riastradh Exp $	*/
+/*	$NetBSD: intel_engine_cs.c,v 1.8 2021/12/19 12:33:56 riastradh Exp $	*/
 
 /*
  * Copyright © 2016 Intel Corporation
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_engine_cs.c,v 1.7 2021/12/19 12:32:15 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_engine_cs.c,v 1.8 2021/12/19 12:33:56 riastradh Exp $");
 
 #include <drm/drm_print.h>
 
@@ -812,6 +812,7 @@ void intel_engine_cleanup_common(struct 
 	cleanup_status_page(engine);
 
 	intel_engine_fini_retire(engine);
+	intel_engine_fini__pm(engine);
 	intel_engine_pool_fini(&engine->pool);
 	intel_engine_fini_breadcrumbs(engine);
 	intel_engine_cleanup_cmd_parser(engine);

Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_pm.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_pm.c:1.3 src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_pm.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_pm.c:1.3	Sun Dec 19 11:52:07 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_pm.c	Sun Dec 19 12:33:56 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_engine_pm.c,v 1.3 2021/12/19 11:52:07 riastradh Exp $	*/
+/*	$NetBSD: intel_engine_pm.c,v 1.4 2021/12/19 12:33:56 riastradh Exp $	*/
 
 /*
  * SPDX-License-Identifier: MIT
@@ -7,7 +7,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_engine_pm.c,v 1.3 2021/12/19 11:52:07 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_engine_pm.c,v 1.4 2021/12/19 12:33:56 riastradh Exp $");
 
 #include "i915_drv.h"
 
@@ -292,6 +292,13 @@ void intel_engine_init__pm(struct intel_
 	intel_engine_init_heartbeat(engine);
 }
 
+void
+intel_engine_fini__pm(struct intel_engine_cs *engine)
+{
+
+	intel_wakeref_fini(&engine->wakeref);
+}
+
 #if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)
 #include "selftest_engine_pm.c"
 #endif

Index: src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_pm.h
diff -u src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_pm.h:1.2 src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_pm.h:1.3
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_pm.h:1.2	Sat Dec 18 23:45:30 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_engine_pm.h	Sun Dec 19 12:33:56 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_engine_pm.h,v 1.2 2021/12/18 23:45:30 riastradh Exp $	*/
+/*	$NetBSD: intel_engine_pm.h,v 1.3 2021/12/19 12:33:56 riastradh Exp $	*/
 
 /*
  * SPDX-License-Identifier: MIT
@@ -65,5 +65,6 @@ intel_engine_create_kernel_request(struc
 }
 
 void intel_engine_init__pm(struct intel_engine_cs *engine);
+void intel_engine_fini__pm(struct intel_engine_cs *engine);
 
 #endif /* INTEL_ENGINE_PM_H */

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.4 src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gt_pm.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gt_pm.c:1.4	Sun Dec 19 12:32:15 2021
+++ src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_gt_pm.c	Sun Dec 19 12:33:56 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: intel_gt_pm.c,v 1.4 2021/12/19 12:32:15 riastradh Exp $	*/
+/*	$NetBSD: intel_gt_pm.c,v 1.5 2021/12/19 12:33:56 riastradh Exp $	*/
 
 /*
  * SPDX-License-Identifier: MIT
@@ -7,7 +7,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intel_gt_pm.c,v 1.4 2021/12/19 12:32:15 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intel_gt_pm.c,v 1.5 2021/12/19 12:33:56 riastradh Exp $");
 
 #include <linux/suspend.h>
 
@@ -177,6 +177,7 @@ void intel_gt_pm_fini(struct intel_gt *g
 {
 	intel_rps_fini(&gt->rps);
 	intel_rc6_fini(&gt->rc6);
+	intel_wakeref_fini(&gt->wakeref);
 }
 
 int intel_gt_resume(struct intel_gt *gt)

Reply via email to