mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 15:41:52 +02:00
drm/i915/reset: decide whether display reset is needed on gt side
Move the checks for whether display reset is needed at all to gt side of things. This way, we can decide to skip the display calls altogether if display reset is not required. Cc: Matt Roper <matthew.d.roper@intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/c32a88f292f516ec702bd07001ac609b8acc2888.1741001054.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
parent
ea349ec038
commit
4684498cf9
|
|
@ -38,11 +38,6 @@ bool intel_display_reset_prepare(struct intel_display *display)
|
|||
if (!HAS_DISPLAY(display))
|
||||
return false;
|
||||
|
||||
/* reset doesn't touch the display */
|
||||
if (!intel_display_reset_test(display) &&
|
||||
!gpu_reset_clobbers_display(display))
|
||||
return false;
|
||||
|
||||
if (atomic_read(&display->restore.pending_fb_pin)) {
|
||||
drm_dbg_kms(display->drm,
|
||||
"Modeset potentially stuck, unbreaking through wedging\n");
|
||||
|
|
|
|||
|
|
@ -1422,9 +1422,17 @@ static void intel_gt_reset_global(struct intel_gt *gt,
|
|||
intel_wedge_on_timeout(&w, gt, 60 * HZ) {
|
||||
struct drm_i915_private *i915 = gt->i915;
|
||||
struct intel_display *display = &i915->display;
|
||||
bool need_display_reset;
|
||||
bool reset_display;
|
||||
|
||||
reset_display = intel_display_reset_prepare(display);
|
||||
need_display_reset = intel_gt_gpu_reset_clobbers_display(gt) &&
|
||||
intel_has_gpu_reset(gt);
|
||||
|
||||
reset_display = intel_display_reset_test(display) ||
|
||||
need_display_reset;
|
||||
|
||||
if (reset_display)
|
||||
reset_display = intel_display_reset_prepare(display);
|
||||
|
||||
intel_gt_reset(gt, engine_mask, reason);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user