diff options
author | Jani Nikula <jani.nikula@intel.com> | 2025-09-02 20:51:54 +0300 |
---|---|---|
committer | Jani Nikula <jani.nikula@intel.com> | 2025-09-08 14:23:46 +0300 |
commit | 0b470321e931432157820ab417f54ec4deb50ffa (patch) | |
tree | 7e455ee9fc5fc14cc72ee04e9b5b28701258cb85 | |
parent | 427a3f939aa3d0c77beb34b469d17244f775b14b (diff) |
drm/{i915,xe}/panic: pass struct intel_panic to intel_panic_setup()
Reduce the struct intel_framebuffer usage within the panic
implementation.
Cc: Jocelyn Falempe <jfalempe@redhat.com>
Cc: Maarten Lankhorst <dev@lankhorst.se>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>
Link: https://lore.kernel.org/r/2a016167b1f6f0b432aed0a630f9dbcd07fadb7b.1756835342.git.jani.nikula@intel.com
-rw-r--r-- | drivers/gpu/drm/i915/display/intel_panic.c | 11 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/display/intel_panic.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/display/intel_plane.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/gem/i915_gem_object.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/gem/i915_gem_pages.c | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/xe/display/xe_panic.c | 5 |
6 files changed, 18 insertions, 14 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_panic.c b/drivers/gpu/drm/i915/display/intel_panic.c index c8ac8b5a39f3..7311ce4e8b6c 100644 --- a/drivers/gpu/drm/i915/display/intel_panic.c +++ b/drivers/gpu/drm/i915/display/intel_panic.c @@ -1,7 +1,11 @@ // SPDX-License-Identifier: MIT /* Copyright © 2025 Intel Corporation */ +#include <drm/drm_panic.h> + #include "gem/i915_gem_object.h" +#include "intel_display_types.h" +#include "intel_fb.h" #include "intel_panic.h" struct intel_panic *intel_panic_alloc(void) @@ -9,9 +13,12 @@ struct intel_panic *intel_panic_alloc(void) return i915_gem_object_alloc_panic(); } -int intel_panic_setup(struct drm_scanout_buffer *sb) +int intel_panic_setup(struct intel_panic *panic, struct drm_scanout_buffer *sb) { - return i915_gem_object_panic_setup(sb); + struct intel_framebuffer *fb = sb->private; + struct drm_gem_object *obj = intel_fb_bo(&fb->base); + + return i915_gem_object_panic_setup(panic, sb, obj, fb->panic_tiling); } void intel_panic_finish(struct intel_panic *panic) diff --git a/drivers/gpu/drm/i915/display/intel_panic.h b/drivers/gpu/drm/i915/display/intel_panic.h index cec193e725a4..afb472e924aa 100644 --- a/drivers/gpu/drm/i915/display/intel_panic.h +++ b/drivers/gpu/drm/i915/display/intel_panic.h @@ -8,7 +8,7 @@ struct drm_scanout_buffer; struct intel_panic; struct intel_panic *intel_panic_alloc(void); -int intel_panic_setup(struct drm_scanout_buffer *sb); +int intel_panic_setup(struct intel_panic *panic, struct drm_scanout_buffer *sb); void intel_panic_finish(struct intel_panic *panic); #endif /* __INTEL_PANIC_H__ */ diff --git a/drivers/gpu/drm/i915/display/intel_plane.c b/drivers/gpu/drm/i915/display/intel_plane.c index 6a3f4a7b6dfd..2329f09d413d 100644 --- a/drivers/gpu/drm/i915/display/intel_plane.c +++ b/drivers/gpu/drm/i915/display/intel_plane.c @@ -1409,7 +1409,7 @@ static int intel_get_scanout_buffer(struct drm_plane *plane, return -EOPNOTSUPP; } sb->private = intel_fb; - ret = intel_panic_setup(sb); + ret = intel_panic_setup(intel_fb->panic, sb); if (ret) return ret; } diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h index 08da7ec670fe..148034ef504d 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h @@ -694,7 +694,8 @@ int __i915_gem_object_put_pages(struct drm_i915_gem_object *obj); int i915_gem_object_truncate(struct drm_i915_gem_object *obj); struct intel_panic *i915_gem_object_alloc_panic(void); -int i915_gem_object_panic_setup(struct drm_scanout_buffer *sb); +int i915_gem_object_panic_setup(struct intel_panic *panic, struct drm_scanout_buffer *sb, + struct drm_gem_object *_obj, bool panic_tiling); void i915_gem_object_panic_finish(struct intel_panic *panic); /** diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pages.c b/drivers/gpu/drm/i915/gem/i915_gem_pages.c index 3505b1842c40..76d2178572b6 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_pages.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_pages.c @@ -445,12 +445,11 @@ struct intel_panic *i915_gem_object_alloc_panic(void) * Use current vaddr if it exists, or setup a list of pages. * pfn is not supported yet. */ -int i915_gem_object_panic_setup(struct drm_scanout_buffer *sb) +int i915_gem_object_panic_setup(struct intel_panic *panic, struct drm_scanout_buffer *sb, + struct drm_gem_object *_obj, bool panic_tiling) { enum i915_map_type has_type; - struct intel_framebuffer *fb = (struct intel_framebuffer *)sb->private; - struct intel_panic *panic = fb->panic; - struct drm_i915_gem_object *obj = to_intel_bo(intel_fb_bo(&fb->base)); + struct drm_i915_gem_object *obj = to_intel_bo(_obj); void *ptr; ptr = page_unpack_bits(obj->mm.mapping, &has_type); @@ -460,7 +459,7 @@ int i915_gem_object_panic_setup(struct drm_scanout_buffer *sb) else iosys_map_set_vaddr(&sb->map[0], ptr); - if (fb->panic_tiling) + if (panic_tiling) sb->set_pixel = i915_gem_object_panic_map_set_pixel; return 0; } diff --git a/drivers/gpu/drm/xe/display/xe_panic.c b/drivers/gpu/drm/xe/display/xe_panic.c index ea9583473ea3..f32b23338331 100644 --- a/drivers/gpu/drm/xe/display/xe_panic.c +++ b/drivers/gpu/drm/xe/display/xe_panic.c @@ -66,11 +66,8 @@ struct intel_panic *intel_panic_alloc(void) return panic; } -int intel_panic_setup(struct drm_scanout_buffer *sb) +int intel_panic_setup(struct intel_panic *panic, struct drm_scanout_buffer *sb) { - struct intel_framebuffer *fb = (struct intel_framebuffer *)sb->private; - struct intel_panic *panic = fb->panic; - panic->page = -1; sb->set_pixel = xe_panic_page_set_pixel; return 0; |