mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
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
This commit is contained in:
parent
427a3f939a
commit
0b470321e9
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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__ */
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user