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
This commit is contained in:
Jani Nikula 2025-09-02 20:51:52 +03:00
parent fa48f6335a
commit 729c5f7ffa
6 changed files with 31 additions and 32 deletions

View file

@ -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 *

View file

@ -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)

View file

@ -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);

View file

@ -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);

View file

@ -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;
struct intel_panic *panic;
i915_fb = kzalloc(sizeof(*i915_fb), GFP_KERNEL);
if (!i915_fb)
return NULL;
panic = kzalloc(sizeof(*panic), GFP_KERNEL);
i915_fb->base.panic = &i915_fb->panic;
return &i915_fb->base;
return panic;
}
/*

View file

@ -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;
struct intel_panic *panic;
xe_fb = kzalloc(sizeof(*xe_fb), GFP_KERNEL);
if (!xe_fb)
return NULL;
panic = kzalloc(sizeof(*panic), GFP_KERNEL);
xe_fb->base.panic = &xe_fb->panic;
return &xe_fb->base;
return panic;
}
int intel_panic_setup(struct drm_scanout_buffer *sb)