Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/i915: Decouple intel_fb_bo.h interfaces from driver specific types

Make the intel_fb_bo.h interfaces operated purely in base
drm_ types so that each driver (i915 and xe) doesn't have to
know about each other, or the display stuff.

v2: s/dev/drm/ (Jani)

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250206185533.32306-4-ville.syrjala@linux.intel.com

+13 -12
+2 -3
drivers/gpu/drm/i915/display/intel_fb.c
··· 2126 2126 int ret = -EINVAL; 2127 2127 int i; 2128 2128 2129 - ret = intel_fb_bo_framebuffer_init(intel_fb, obj, mode_cmd); 2129 + ret = intel_fb_bo_framebuffer_init(fb, obj, mode_cmd); 2130 2130 if (ret) 2131 2131 return ret; 2132 2132 ··· 2242 2242 struct drm_framebuffer *fb; 2243 2243 struct drm_gem_object *obj; 2244 2244 struct drm_mode_fb_cmd2 mode_cmd = *user_mode_cmd; 2245 - struct drm_i915_private *i915 = to_i915(dev); 2246 2245 2247 - obj = intel_fb_bo_lookup_valid_bo(i915, filp, &mode_cmd); 2246 + obj = intel_fb_bo_lookup_valid_bo(dev, filp, &mode_cmd); 2248 2247 if (IS_ERR(obj)) 2249 2248 return ERR_CAST(obj); 2250 2249
+3 -2
drivers/gpu/drm/i915/display/intel_fb_bo.c
··· 16 16 /* Nothing to do for i915 */ 17 17 } 18 18 19 - int intel_fb_bo_framebuffer_init(struct intel_framebuffer *intel_fb, 19 + int intel_fb_bo_framebuffer_init(struct drm_framebuffer *fb, 20 20 struct drm_gem_object *_obj, 21 21 struct drm_mode_fb_cmd2 *mode_cmd) 22 22 { ··· 76 76 } 77 77 78 78 struct drm_gem_object * 79 - intel_fb_bo_lookup_valid_bo(struct drm_i915_private *i915, 79 + intel_fb_bo_lookup_valid_bo(struct drm_device *drm, 80 80 struct drm_file *filp, 81 81 const struct drm_mode_fb_cmd2 *mode_cmd) 82 82 { 83 + struct drm_i915_private *i915 = to_i915(drm); 83 84 struct drm_i915_gem_object *obj; 84 85 85 86 obj = i915_gem_object_lookup(filp, mode_cmd->handles[0]);
+4 -4
drivers/gpu/drm/i915/display/intel_fb_bo.h
··· 6 6 #ifndef __INTEL_FB_BO_H__ 7 7 #define __INTEL_FB_BO_H__ 8 8 9 + struct drm_device; 9 10 struct drm_file; 11 + struct drm_framebuffer; 10 12 struct drm_gem_object; 11 - struct drm_i915_private; 12 13 struct drm_mode_fb_cmd2; 13 - struct intel_framebuffer; 14 14 15 15 void intel_fb_bo_framebuffer_fini(struct drm_gem_object *obj); 16 16 17 - int intel_fb_bo_framebuffer_init(struct intel_framebuffer *intel_fb, 17 + int intel_fb_bo_framebuffer_init(struct drm_framebuffer *fb, 18 18 struct drm_gem_object *obj, 19 19 struct drm_mode_fb_cmd2 *mode_cmd); 20 20 21 21 struct drm_gem_object * 22 - intel_fb_bo_lookup_valid_bo(struct drm_i915_private *i915, 22 + intel_fb_bo_lookup_valid_bo(struct drm_device *drm, 23 23 struct drm_file *filp, 24 24 const struct drm_mode_fb_cmd2 *user_mode_cmd); 25 25
+4 -3
drivers/gpu/drm/xe/display/intel_fb_bo.c
··· 24 24 xe_bo_put(bo); 25 25 } 26 26 27 - int intel_fb_bo_framebuffer_init(struct intel_framebuffer *intel_fb, 27 + int intel_fb_bo_framebuffer_init(struct drm_framebuffer *fb, 28 28 struct drm_gem_object *obj, 29 29 struct drm_mode_fb_cmd2 *mode_cmd) 30 30 { ··· 68 68 return ret; 69 69 } 70 70 71 - struct drm_gem_object *intel_fb_bo_lookup_valid_bo(struct drm_i915_private *i915, 71 + struct drm_gem_object *intel_fb_bo_lookup_valid_bo(struct drm_device *drm, 72 72 struct drm_file *filp, 73 73 const struct drm_mode_fb_cmd2 *mode_cmd) 74 74 { 75 + struct xe_device *xe = to_xe_device(drm); 75 76 struct xe_bo *bo; 76 77 struct drm_gem_object *gem = drm_gem_object_lookup(filp, mode_cmd->handles[0]); 77 78 ··· 81 80 82 81 bo = gem_to_xe_bo(gem); 83 82 /* Require vram placement or dma-buf import */ 84 - if (IS_DGFX(i915) && 83 + if (IS_DGFX(xe) && 85 84 !xe_bo_can_migrate(bo, XE_PL_VRAM0) && 86 85 bo->ttm.type != ttm_bo_type_sg) { 87 86 drm_gem_object_put(gem);