summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJani Nikula <jani.nikula@intel.com>2025-09-02 20:51:52 +0300
committerJani Nikula <jani.nikula@intel.com>2025-09-08 14:23:46 +0300
commit729c5f7ffa83391b44939efc26b7ea34a08aea74 (patch)
treee3a51f675356a9c19f1c06c4efafbb45ee269d38
parentfa48f6335af9b063303d9e9a036514bbdc774d5b (diff)
drm/{i915,xe}/panic: move framebuffer allocation where it belongs
The struct intel_framebuffer allocation naturally belongs in intel_fb.c, not hidden inside panic implementation. Separate the panic allocation. Drop the unnecessary struct i915_framebuffer and struct xe_framebuffer types. 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/d29f63e0118d002fc8edd368caea7e8185418e17.1756835342.git.jani.nikula@intel.com
-rw-r--r--drivers/gpu/drm/i915/display/intel_fb.c17
-rw-r--r--drivers/gpu/drm/i915/display/intel_panic.c4
-rw-r--r--drivers/gpu/drm/i915/display/intel_panic.h3
-rw-r--r--drivers/gpu/drm/i915/gem/i915_gem_object.h5
-rw-r--r--drivers/gpu/drm/i915/gem/i915_gem_pages.c17
-rw-r--r--drivers/gpu/drm/xe/display/xe_panic.c17
6 files changed, 31 insertions, 32 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index 4b415dfb5a66..c55855729628 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -2343,7 +2343,22 @@ intel_user_framebuffer_create(struct drm_device *dev,
struct intel_framebuffer *intel_framebuffer_alloc(void)
{
- return intel_bo_alloc_framebuffer();
+ struct intel_framebuffer *intel_fb;
+ struct intel_panic *panic;
+
+ intel_fb = kzalloc(sizeof(*intel_fb), GFP_KERNEL);
+ if (!intel_fb)
+ return NULL;
+
+ panic = intel_panic_alloc();
+ if (!panic) {
+ kfree(intel_fb);
+ return NULL;
+ }
+
+ intel_fb->panic = panic;
+
+ return intel_fb;
}
struct drm_framebuffer *
diff --git a/drivers/gpu/drm/i915/display/intel_panic.c b/drivers/gpu/drm/i915/display/intel_panic.c
index 20eecb0f168f..5431bd4d3a7d 100644
--- a/drivers/gpu/drm/i915/display/intel_panic.c
+++ b/drivers/gpu/drm/i915/display/intel_panic.c
@@ -4,9 +4,9 @@
#include "gem/i915_gem_object.h"
#include "intel_panic.h"
-struct intel_framebuffer *intel_bo_alloc_framebuffer(void)
+struct intel_panic *intel_panic_alloc(void)
{
- return i915_gem_object_alloc_framebuffer();
+ return i915_gem_object_alloc_panic();
}
int intel_panic_setup(struct drm_scanout_buffer *sb)
diff --git a/drivers/gpu/drm/i915/display/intel_panic.h b/drivers/gpu/drm/i915/display/intel_panic.h
index 67ce253fcdf5..45ce6104e6fb 100644
--- a/drivers/gpu/drm/i915/display/intel_panic.h
+++ b/drivers/gpu/drm/i915/display/intel_panic.h
@@ -6,8 +6,9 @@
struct drm_scanout_buffer;
struct intel_framebuffer;
+struct intel_panic;
-struct intel_framebuffer *intel_bo_alloc_framebuffer(void);
+struct intel_panic *intel_panic_alloc(void);
int intel_panic_setup(struct drm_scanout_buffer *sb);
void intel_panic_finish(struct intel_framebuffer *fb);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h
index 565f8fa330db..9b3f25cb48db 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h
@@ -16,9 +16,10 @@
#include "i915_gem_ww.h"
#include "i915_vma_types.h"
-struct drm_scanout_buffer;
enum intel_region_id;
+struct drm_scanout_buffer;
struct intel_framebuffer;
+struct intel_panic;
#define obj_to_i915(obj__) to_i915((obj__)->base.dev)
@@ -693,7 +694,7 @@ i915_gem_object_unpin_pages(struct drm_i915_gem_object *obj)
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_framebuffer *i915_gem_object_alloc_framebuffer(void);
+struct intel_panic *i915_gem_object_alloc_panic(void);
int i915_gem_object_panic_setup(struct drm_scanout_buffer *sb);
void i915_gem_object_panic_finish(struct intel_framebuffer *fb);
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pages.c b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
index e36d60b785b1..b219474aecc7 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_pages.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
@@ -363,11 +363,6 @@ struct intel_panic {
void *vaddr;
};
-struct i915_framebuffer {
- struct intel_framebuffer base;
- struct intel_panic panic;
-};
-
static void i915_panic_kunmap(struct intel_panic *panic)
{
if (panic->vaddr) {
@@ -436,17 +431,13 @@ static void i915_gem_object_panic_page_set_pixel(struct drm_scanout_buffer *sb,
}
}
-struct intel_framebuffer *i915_gem_object_alloc_framebuffer(void)
+struct intel_panic *i915_gem_object_alloc_panic(void)
{
- struct i915_framebuffer *i915_fb;
-
- i915_fb = kzalloc(sizeof(*i915_fb), GFP_KERNEL);
- if (!i915_fb)
- return NULL;
+ struct intel_panic *panic;
- i915_fb->base.panic = &i915_fb->panic;
+ panic = kzalloc(sizeof(*panic), GFP_KERNEL);
- return &i915_fb->base;
+ return panic;
}
/*
diff --git a/drivers/gpu/drm/xe/display/xe_panic.c b/drivers/gpu/drm/xe/display/xe_panic.c
index 3ef23a6795b3..b5a7615708a1 100644
--- a/drivers/gpu/drm/xe/display/xe_panic.c
+++ b/drivers/gpu/drm/xe/display/xe_panic.c
@@ -15,11 +15,6 @@ struct intel_panic {
void *vaddr;
};
-struct xe_framebuffer {
- struct intel_framebuffer base;
- struct intel_panic panic;
-};
-
static void xe_panic_kunmap(struct intel_panic *panic)
{
if (panic->vaddr) {
@@ -62,17 +57,13 @@ static void xe_panic_page_set_pixel(struct drm_scanout_buffer *sb, unsigned int
}
}
-struct intel_framebuffer *intel_bo_alloc_framebuffer(void)
+struct intel_panic *intel_panic_alloc(void)
{
- struct xe_framebuffer *xe_fb;
-
- xe_fb = kzalloc(sizeof(*xe_fb), GFP_KERNEL);
- if (!xe_fb)
- return NULL;
+ struct intel_panic *panic;
- xe_fb->base.panic = &xe_fb->panic;
+ panic = kzalloc(sizeof(*panic), GFP_KERNEL);
- return &xe_fb->base;
+ return panic;
}
int intel_panic_setup(struct drm_scanout_buffer *sb)