diff options
author | Jani Nikula <jani.nikula@intel.com> | 2025-09-02 20:51:52 +0300 |
---|---|---|
committer | Jani Nikula <jani.nikula@intel.com> | 2025-09-08 14:23:46 +0300 |
commit | 729c5f7ffa83391b44939efc26b7ea34a08aea74 (patch) | |
tree | e3a51f675356a9c19f1c06c4efafbb45ee269d38 | |
parent | fa48f6335af9b063303d9e9a036514bbdc774d5b (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.c | 17 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/display/intel_panic.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/display/intel_panic.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/gem/i915_gem_object.h | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/gem/i915_gem_pages.c | 17 | ||||
-rw-r--r-- | drivers/gpu/drm/xe/display/xe_panic.c | 17 |
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) |