diff options
author | Jani Nikula <jani.nikula@intel.com> | 2025-03-03 13:27:10 +0200 |
---|---|---|
committer | Jani Nikula <jani.nikula@intel.com> | 2025-03-05 12:48:22 +0200 |
commit | 916f2740b82a1b58dce2bbd51c9130ae77a56e25 (patch) | |
tree | 1a9503dc01353964e9f051aff02e831f2425a7e0 /drivers/gpu/drm/i915/display/intel_display_reset.c | |
parent | d1b97b121e3c2bbb3c74fe91e42d13e59fd9d96e (diff) |
drm/i915/reset: add modeset_stuck callback to intel_display_reset_prepare()
Drop the dependency on gt by providing a callback for trying to unbreak
stuck modeset. Do intel_gt_set_wedged() via the callback.
It's by no means pretty, but this is perhaps the most straightforward
alternative.
Cc: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/d322e20927326afa47c0df8a4d4776ee77010e6d.1741001054.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_display_reset.c')
-rw-r--r-- | drivers/gpu/drm/i915/display/intel_display_reset.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_display_reset.c b/drivers/gpu/drm/i915/display/intel_display_reset.c index d5ce0ac43377..1f2798404f2c 100644 --- a/drivers/gpu/drm/i915/display/intel_display_reset.c +++ b/drivers/gpu/drm/i915/display/intel_display_reset.c @@ -20,9 +20,9 @@ bool intel_display_reset_test(struct intel_display *display) } /* returns true if intel_display_reset_finish() needs to be called */ -bool intel_display_reset_prepare(struct intel_display *display) +bool intel_display_reset_prepare(struct intel_display *display, + modeset_stuck_fn modeset_stuck, void *context) { - struct drm_i915_private *dev_priv = to_i915(display->drm); struct drm_modeset_acquire_ctx *ctx = &display->restore.reset_ctx; struct drm_atomic_state *state; int ret; @@ -33,7 +33,7 @@ bool intel_display_reset_prepare(struct intel_display *display) if (atomic_read(&display->restore.pending_fb_pin)) { drm_dbg_kms(display->drm, "Modeset potentially stuck, unbreaking through wedging\n"); - intel_gt_set_wedged(to_gt(dev_priv)); + modeset_stuck(context); } /* |