]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
drm/i915/gt: Force the GT reset on shutdown
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 25 May 2020 15:14:59 +0000 (16:14 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 26 May 2020 09:14:59 +0000 (10:14 +0100)
Before we return control to the system, and letting it reuse all the
pages being accessed by HW, we must disable the HW. At the moment, we
dare not reset the GPU if it will clobber the display, but once we know
the display has been disabled, we can proceed with the reset as we
shutdown the module. We know the next user must reinitialise the HW for
their purpose.

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/489
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: stable@kernel.org
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200525151459.12083-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_gt.c

index f069551e412f3ec9150187e69d62dc3d2d58c4fe..ebc29b6ee86cbd738279d219eae04b44bbfcdd03 100644 (file)
@@ -616,6 +616,11 @@ void intel_gt_driver_unregister(struct intel_gt *gt)
 void intel_gt_driver_release(struct intel_gt *gt)
 {
        struct i915_address_space *vm;
+       intel_wakeref_t wakeref;
+
+       /* Scrub all HW state upon release */
+       with_intel_runtime_pm(gt->uncore->rpm, wakeref)
+               __intel_gt_reset(gt, ALL_ENGINES);
 
        vm = fetch_and_zero(&gt->vm);
        if (vm) /* FIXME being called twice on error paths :( */