From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id ACFADFC5910 for ; Thu, 26 Feb 2026 10:07:48 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 713CF10E8A9; Thu, 26 Feb 2026 10:07:48 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="XZX64Jtr"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.9]) by gabe.freedesktop.org (Postfix) with ESMTPS id BBF6610E8A9; Thu, 26 Feb 2026 10:07:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1772100468; x=1803636468; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=KnBfn7jQO5aa2SUqLjwJfdUrtwRZTtZaXB4MwDB1RUk=; b=XZX64JtrJlacEW7vX1taE3KeMy4KakPvU5r0xiSxc7vok6dEY+KTlU8E QLN5PHssp1MEm91bqBaBqeJ3GT13s+b7phftu+LTTVP5eF7mbMkyIiuWG FjRQFXc0mIkVjYYMtpk7nLZj8dtH8NdGPXKGqjO5wrGhM9oIkW7JNqJD6 qYsniM8RF9U9ONqB5vqs5qkg2cXvD76eSo4x5d/FW695dPNS7geaVUAgX T4tuyryekTeKtvjFxkgA3n4DHZ643TqV4DQznM7Tuc5BHnRTaH/xI3udo xiXPLds7TjlIG8j3fAXlxTMiO0L3kDmJN3YpSXAiKITpMAZGG9MIXXgF8 A==; X-CSE-ConnectionGUID: k8DGs+T3S1q6nrNb6HL7+Q== X-CSE-MsgGUID: sseXVB4NSeqK9USbWCFytg== X-IronPort-AV: E=McAfee;i="6800,10657,11712"; a="83866859" X-IronPort-AV: E=Sophos;i="6.21,312,1763452800"; d="scan'208";a="83866859" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by fmvoesa103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Feb 2026 02:07:48 -0800 X-CSE-ConnectionGUID: u75Qo6b+T/C3aB1ZScVvJw== X-CSE-MsgGUID: 3N9oFM45Qze/Cuz9xmbdXQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,312,1763452800"; d="scan'208";a="221512701" Received: from egrumbac-mobl6.ger.corp.intel.com (HELO localhost) ([10.245.244.224]) by orviesa005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Feb 2026 02:07:46 -0800 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Cc: intel-xe@lists.freedesktop.org, Jani Nikula Subject: [PATCH v2 01/19] drm/i915/overlay: Remove GPU hang snapshot stuff Date: Thu, 26 Feb 2026 12:07:20 +0200 Message-ID: <20260226100738.29997-2-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260226100738.29997-1-ville.syrjala@linux.intel.com> References: <20260226100738.29997-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Organization: Intel Finland Oy - BIC 0357606-4 - c/o Alberga Business Park, 6 krs Bertel Jungin Aukio 5, 02600 Espoo, Finland Content-Transfer-Encoding: 8bit X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" From: Ville Syrjälä The overlay snapshot stuff is a bit annoying because some of it more or less of belongs on the gt side, and some on the display side. Remove the whole thing to avoid having to deal with it when splitting the overlay code around the i915 vs. display boundary. I don't think I've ever actually used this for anything, so no real loss from my POV. And it can always be resurrected later should the need arise. v2: Rebase due to kmalloc_obj() Reviewed-by: Jani Nikula Signed-off-by: Ville Syrjälä --- .../drm/i915/display/intel_display_snapshot.c | 4 - drivers/gpu/drm/i915/display/intel_overlay.c | 89 ------------------- drivers/gpu/drm/i915/display/intel_overlay.h | 18 ---- 3 files changed, 111 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_display_snapshot.c b/drivers/gpu/drm/i915/display/intel_display_snapshot.c index f650f15ad394..7f423182aa29 100644 --- a/drivers/gpu/drm/i915/display/intel_display_snapshot.c +++ b/drivers/gpu/drm/i915/display/intel_display_snapshot.c @@ -19,7 +19,6 @@ struct intel_display_snapshot { struct intel_display_device_info info; struct intel_display_runtime_info runtime_info; struct intel_display_params params; - struct intel_overlay_snapshot *overlay; struct intel_dmc_snapshot *dmc; struct intel_display_irq_snapshot *irq; }; @@ -41,7 +40,6 @@ struct intel_display_snapshot *intel_display_snapshot_capture(struct intel_displ intel_display_params_copy(&snapshot->params); snapshot->irq = intel_display_irq_snapshot_capture(display); - snapshot->overlay = intel_overlay_snapshot_capture(display); snapshot->dmc = intel_dmc_snapshot_capture(display); return snapshot; @@ -61,7 +59,6 @@ void intel_display_snapshot_print(const struct intel_display_snapshot *snapshot, intel_display_params_dump(&snapshot->params, display->drm->driver->name, p); intel_display_irq_snapshot_print(snapshot->irq, p); - intel_overlay_snapshot_print(snapshot->overlay, p); intel_dmc_snapshot_print(snapshot->dmc, p); } @@ -73,7 +70,6 @@ void intel_display_snapshot_free(struct intel_display_snapshot *snapshot) intel_display_params_free(&snapshot->params); kfree(snapshot->irq); - kfree(snapshot->overlay); kfree(snapshot->dmc); kfree(snapshot); } diff --git a/drivers/gpu/drm/i915/display/intel_overlay.c b/drivers/gpu/drm/i915/display/intel_overlay.c index 9cd368d6ef59..6cea82ecc3ec 100644 --- a/drivers/gpu/drm/i915/display/intel_overlay.c +++ b/drivers/gpu/drm/i915/display/intel_overlay.c @@ -1464,92 +1464,3 @@ void intel_overlay_cleanup(struct intel_display *display) kfree(overlay); } - -#if IS_ENABLED(CONFIG_DRM_I915_CAPTURE_ERROR) - -struct intel_overlay_snapshot { - struct overlay_registers regs; - unsigned long base; - u32 dovsta; - u32 isr; -}; - -struct intel_overlay_snapshot * -intel_overlay_snapshot_capture(struct intel_display *display) -{ - struct intel_overlay *overlay = display->overlay; - struct intel_overlay_snapshot *error; - - if (!overlay || !overlay->active) - return NULL; - - error = kmalloc_obj(*error, GFP_ATOMIC); - if (error == NULL) - return NULL; - - error->dovsta = intel_de_read(display, DOVSTA); - error->isr = intel_de_read(display, GEN2_ISR); - error->base = overlay->flip_addr; - - memcpy_fromio(&error->regs, overlay->regs, sizeof(error->regs)); - - return error; -} - -void -intel_overlay_snapshot_print(const struct intel_overlay_snapshot *error, - struct drm_printer *p) -{ - if (!error) - return; - - drm_printf(p, "Overlay, status: 0x%08x, interrupt: 0x%08x\n", - error->dovsta, error->isr); - drm_printf(p, " Register file at 0x%08lx:\n", error->base); - -#define P(x) drm_printf(p, " " #x ": 0x%08x\n", error->regs.x) - P(OBUF_0Y); - P(OBUF_1Y); - P(OBUF_0U); - P(OBUF_0V); - P(OBUF_1U); - P(OBUF_1V); - P(OSTRIDE); - P(YRGB_VPH); - P(UV_VPH); - P(HORZ_PH); - P(INIT_PHS); - P(DWINPOS); - P(DWINSZ); - P(SWIDTH); - P(SWIDTHSW); - P(SHEIGHT); - P(YRGBSCALE); - P(UVSCALE); - P(OCLRC0); - P(OCLRC1); - P(DCLRKV); - P(DCLRKM); - P(SCLRKVH); - P(SCLRKVL); - P(SCLRKEN); - P(OCONFIG); - P(OCMD); - P(OSTART_0Y); - P(OSTART_1Y); - P(OSTART_0U); - P(OSTART_0V); - P(OSTART_1U); - P(OSTART_1V); - P(OTILEOFF_0Y); - P(OTILEOFF_1Y); - P(OTILEOFF_0U); - P(OTILEOFF_0V); - P(OTILEOFF_1U); - P(OTILEOFF_1V); - P(FASTHSCALE); - P(UVSCALEV); -#undef P -} - -#endif diff --git a/drivers/gpu/drm/i915/display/intel_overlay.h b/drivers/gpu/drm/i915/display/intel_overlay.h index d259e4c74b03..4ef6882b9acb 100644 --- a/drivers/gpu/drm/i915/display/intel_overlay.h +++ b/drivers/gpu/drm/i915/display/intel_overlay.h @@ -13,7 +13,6 @@ struct drm_file; struct drm_printer; struct intel_display; struct intel_overlay; -struct intel_overlay_snapshot; #ifdef I915 void intel_overlay_setup(struct intel_display *display); @@ -55,21 +54,4 @@ static inline void intel_overlay_reset(struct intel_display *display) } #endif -#if IS_ENABLED(CONFIG_DRM_I915_CAPTURE_ERROR) && defined(I915) -struct intel_overlay_snapshot * -intel_overlay_snapshot_capture(struct intel_display *display); -void intel_overlay_snapshot_print(const struct intel_overlay_snapshot *error, - struct drm_printer *p); -#else -static inline struct intel_overlay_snapshot * -intel_overlay_snapshot_capture(struct intel_display *display) -{ - return NULL; -} -static inline void intel_overlay_snapshot_print(const struct intel_overlay_snapshot *error, - struct drm_printer *p) -{ -} -#endif - #endif /* __INTEL_OVERLAY_H__ */ -- 2.52.0