Cc: Jocelyn Falempe <[email protected]>
Signed-off-by: Jani Nikula <[email protected]>
---
drivers/gpu/drm/i915/display/intel_parent.c | 5 +++--
drivers/gpu/drm/i915/display/intel_parent.h | 3 ++-
drivers/gpu/drm/i915/display/intel_plane.c | 2 +-
drivers/gpu/drm/i915/gem/i915_gem_panic.c | 5 ++---
drivers/gpu/drm/xe/display/xe_panic.c | 6 +++---
include/drm/intel/display_parent_interface.h | 3 ++-
6 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_parent.c
b/drivers/gpu/drm/i915/display/intel_parent.c
index a5816561be40..0b2bc2d38442 100644
--- a/drivers/gpu/drm/i915/display/intel_parent.c
+++ b/drivers/gpu/drm/i915/display/intel_parent.c
@@ -251,9 +251,10 @@ struct intel_panic *intel_parent_panic_alloc(struct
intel_display *display)
return display->parent->panic->alloc();
}
-int intel_parent_panic_setup(struct intel_display *display, struct intel_panic *panic, struct drm_scanout_buffer *sb)
+int intel_parent_panic_setup(struct intel_display *display, struct intel_panic
*panic,
+ struct drm_scanout_buffer *sb, struct
drm_gem_object *obj)
{
- return display->parent->panic->setup(panic, sb);
+ return display->parent->panic->setup(panic, sb, obj);
}
void intel_parent_panic_finish(struct intel_display *display, struct intel_panic *panic)
diff --git a/drivers/gpu/drm/i915/display/intel_parent.h
b/drivers/gpu/drm/i915/display/intel_parent.h
index 27e35f891a6b..4197d1b1af61 100644
--- a/drivers/gpu/drm/i915/display/intel_parent.h
+++ b/drivers/gpu/drm/i915/display/intel_parent.h
@@ -105,7 +105,8 @@ void intel_parent_overlay_cleanup(struct intel_display
*display);
/* panic */
struct intel_panic *intel_parent_panic_alloc(struct intel_display *display);
-int intel_parent_panic_setup(struct intel_display *display, struct intel_panic
*panic, struct drm_scanout_buffer *sb);
+int intel_parent_panic_setup(struct intel_display *display, struct intel_panic
*panic,
+ struct drm_scanout_buffer *sb, struct
drm_gem_object *obj);
void intel_parent_panic_finish(struct intel_display *display, struct
intel_panic *panic);
/* pc8 */
diff --git a/drivers/gpu/drm/i915/display/intel_plane.c
b/drivers/gpu/drm/i915/display/intel_plane.c
index f55a6a2f7dd1..75eae994433d 100644
--- a/drivers/gpu/drm/i915/display/intel_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_plane.c
@@ -1590,7 +1590,7 @@ static int intel_get_scanout_buffer(struct drm_plane
*plane,
return -EOPNOTSUPP;
}
sb->private = fb;
- ret = intel_parent_panic_setup(display, fb->panic, sb);
+ ret = intel_parent_panic_setup(display, fb->panic, sb, obj);
if (ret)
return ret;
}
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_panic.c
b/drivers/gpu/drm/i915/gem/i915_gem_panic.c
index bb26a0ece176..001ccfbf7ab7 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_panic.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_panic.c
@@ -5,7 +5,6 @@
#include <drm/drm_panic.h>
#include <drm/intel/display_parent_interface.h>
-#include "display/intel_fb.h"
#include "display/intel_display_types.h"
#include "i915_gem_object.h"
#include "i915_gem_panic.h"
@@ -98,10 +97,10 @@ static 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.
*/
-static int i915_gem_object_panic_setup(struct intel_panic *panic, struct
drm_scanout_buffer *sb)
+static int i915_gem_object_panic_setup(struct intel_panic *panic, struct
drm_scanout_buffer *sb,
+ struct drm_gem_object *_obj)
{
struct intel_framebuffer *fb = sb->private;
- struct drm_gem_object *_obj = intel_fb_bo(&fb->base);
bool panic_tiling = fb->panic_tiling;
enum i915_map_type has_type;
struct drm_i915_gem_object *obj = to_intel_bo(_obj);
diff --git a/drivers/gpu/drm/xe/display/xe_panic.c
b/drivers/gpu/drm/xe/display/xe_panic.c
index bebb21d617f0..d7f456eec597 100644
--- a/drivers/gpu/drm/xe/display/xe_panic.c
+++ b/drivers/gpu/drm/xe/display/xe_panic.c
@@ -84,10 +84,10 @@ static struct intel_panic *xe_panic_alloc(void)
return panic;
}
-static int xe_panic_setup(struct intel_panic *panic, struct drm_scanout_buffer *sb)
+static int xe_panic_setup(struct intel_panic *panic, struct drm_scanout_buffer
*sb,
+ struct drm_gem_object *obj)
{
- struct intel_framebuffer *fb = (struct intel_framebuffer *)sb->private;
- struct xe_bo *bo = gem_to_xe_bo(intel_fb_bo(&fb->base));
+ struct xe_bo *bo = gem_to_xe_bo(obj);
if (xe_bo_is_vram(bo) && !xe_bo_is_visible_vram(bo))
return -ENODEV;
diff --git a/include/drm/intel/display_parent_interface.h
b/include/drm/intel/display_parent_interface.h
index 39991afeb173..b0362e231d84 100644
--- a/include/drm/intel/display_parent_interface.h
+++ b/include/drm/intel/display_parent_interface.h
@@ -167,7 +167,8 @@ struct intel_display_overlay_interface {
struct intel_display_panic_interface {
struct intel_panic *(*alloc)(void);
- int (*setup)(struct intel_panic *panic, struct drm_scanout_buffer *sb);
+ int (*setup)(struct intel_panic *panic, struct drm_scanout_buffer *sb,
+ struct drm_gem_object *obj);
void (*finish)(struct intel_panic *panic);
};