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 <jfale...@redhat.com> Cc: Maarten Lankhorst <d...@lankhorst.se> Signed-off-by: Jani Nikula <jani.nik...@intel.com> --- drivers/gpu/drm/i915/display/intel_fb.c | 17 ++++++++++++++++- drivers/gpu/drm/i915/display/intel_panic.c | 4 ++-- drivers/gpu/drm/i915/display/intel_panic.h | 3 ++- drivers/gpu/drm/i915/gem/i915_gem_object.h | 5 +++-- drivers/gpu/drm/i915/gem/i915_gem_pages.c | 17 ++++------------- 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 2a2ed0f0461f..22a4a1575d22 100644 --- a/drivers/gpu/drm/i915/display/intel_fb.c +++ b/drivers/gpu/drm/i915/display/intel_fb.c @@ -2346,7 +2346,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) -- 2.47.2