xref: /linux/drivers/gpu/drm/i915/i915_panic.c (revision 1fd1dc41724319406b0aff221a352a400b0ddfc5)
1 // SPDX-License-Identifier: MIT
2 /* Copyright © 2025 Intel Corporation */
3 
4 #include <drm/drm_panic.h>
5 #include <drm/intel/display_parent_interface.h>
6 
7 #include "display/intel_display_types.h"
8 #include "display/intel_fb.h"
9 #include "gem/i915_gem_object.h"
10 
11 #include "i915_panic.h"
12 
13 static struct intel_panic *intel_panic_alloc(void)
14 {
15 	return i915_gem_object_alloc_panic();
16 }
17 
18 static int intel_panic_setup(struct intel_panic *panic, struct drm_scanout_buffer *sb)
19 {
20 	struct intel_framebuffer *fb = sb->private;
21 	struct drm_gem_object *obj = intel_fb_bo(&fb->base);
22 
23 	return i915_gem_object_panic_setup(panic, sb, obj, fb->panic_tiling);
24 }
25 
26 static void intel_panic_finish(struct intel_panic *panic)
27 {
28 	return i915_gem_object_panic_finish(panic);
29 }
30 
31 const struct intel_display_panic_interface i915_display_panic_interface = {
32 	.alloc = intel_panic_alloc,
33 	.setup = intel_panic_setup,
34 	.finish = intel_panic_finish,
35 };
36