mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-09 22:14:36 -04:00
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
This commit is contained in:
@@ -2126,7 +2126,7 @@ int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
|
||||
int ret = -EINVAL;
|
||||
int i;
|
||||
|
||||
ret = intel_fb_bo_framebuffer_init(intel_fb, obj, mode_cmd);
|
||||
ret = intel_fb_bo_framebuffer_init(fb, obj, mode_cmd);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -2242,9 +2242,8 @@ intel_user_framebuffer_create(struct drm_device *dev,
|
||||
struct drm_framebuffer *fb;
|
||||
struct drm_gem_object *obj;
|
||||
struct drm_mode_fb_cmd2 mode_cmd = *user_mode_cmd;
|
||||
struct drm_i915_private *i915 = to_i915(dev);
|
||||
|
||||
obj = intel_fb_bo_lookup_valid_bo(i915, filp, &mode_cmd);
|
||||
obj = intel_fb_bo_lookup_valid_bo(dev, filp, &mode_cmd);
|
||||
if (IS_ERR(obj))
|
||||
return ERR_CAST(obj);
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ void intel_fb_bo_framebuffer_fini(struct drm_gem_object *obj)
|
||||
/* Nothing to do for i915 */
|
||||
}
|
||||
|
||||
int intel_fb_bo_framebuffer_init(struct intel_framebuffer *intel_fb,
|
||||
int intel_fb_bo_framebuffer_init(struct drm_framebuffer *fb,
|
||||
struct drm_gem_object *_obj,
|
||||
struct drm_mode_fb_cmd2 *mode_cmd)
|
||||
{
|
||||
@@ -76,10 +76,11 @@ int intel_fb_bo_framebuffer_init(struct intel_framebuffer *intel_fb,
|
||||
}
|
||||
|
||||
struct drm_gem_object *
|
||||
intel_fb_bo_lookup_valid_bo(struct drm_i915_private *i915,
|
||||
intel_fb_bo_lookup_valid_bo(struct drm_device *drm,
|
||||
struct drm_file *filp,
|
||||
const struct drm_mode_fb_cmd2 *mode_cmd)
|
||||
{
|
||||
struct drm_i915_private *i915 = to_i915(drm);
|
||||
struct drm_i915_gem_object *obj;
|
||||
|
||||
obj = i915_gem_object_lookup(filp, mode_cmd->handles[0]);
|
||||
|
||||
@@ -6,20 +6,20 @@
|
||||
#ifndef __INTEL_FB_BO_H__
|
||||
#define __INTEL_FB_BO_H__
|
||||
|
||||
struct drm_device;
|
||||
struct drm_file;
|
||||
struct drm_framebuffer;
|
||||
struct drm_gem_object;
|
||||
struct drm_i915_private;
|
||||
struct drm_mode_fb_cmd2;
|
||||
struct intel_framebuffer;
|
||||
|
||||
void intel_fb_bo_framebuffer_fini(struct drm_gem_object *obj);
|
||||
|
||||
int intel_fb_bo_framebuffer_init(struct intel_framebuffer *intel_fb,
|
||||
int intel_fb_bo_framebuffer_init(struct drm_framebuffer *fb,
|
||||
struct drm_gem_object *obj,
|
||||
struct drm_mode_fb_cmd2 *mode_cmd);
|
||||
|
||||
struct drm_gem_object *
|
||||
intel_fb_bo_lookup_valid_bo(struct drm_i915_private *i915,
|
||||
intel_fb_bo_lookup_valid_bo(struct drm_device *drm,
|
||||
struct drm_file *filp,
|
||||
const struct drm_mode_fb_cmd2 *user_mode_cmd);
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ void intel_fb_bo_framebuffer_fini(struct drm_gem_object *obj)
|
||||
xe_bo_put(bo);
|
||||
}
|
||||
|
||||
int intel_fb_bo_framebuffer_init(struct intel_framebuffer *intel_fb,
|
||||
int intel_fb_bo_framebuffer_init(struct drm_framebuffer *fb,
|
||||
struct drm_gem_object *obj,
|
||||
struct drm_mode_fb_cmd2 *mode_cmd)
|
||||
{
|
||||
@@ -68,10 +68,11 @@ int intel_fb_bo_framebuffer_init(struct intel_framebuffer *intel_fb,
|
||||
return ret;
|
||||
}
|
||||
|
||||
struct drm_gem_object *intel_fb_bo_lookup_valid_bo(struct drm_i915_private *i915,
|
||||
struct drm_gem_object *intel_fb_bo_lookup_valid_bo(struct drm_device *drm,
|
||||
struct drm_file *filp,
|
||||
const struct drm_mode_fb_cmd2 *mode_cmd)
|
||||
{
|
||||
struct xe_device *xe = to_xe_device(drm);
|
||||
struct xe_bo *bo;
|
||||
struct drm_gem_object *gem = drm_gem_object_lookup(filp, mode_cmd->handles[0]);
|
||||
|
||||
@@ -80,7 +81,7 @@ struct drm_gem_object *intel_fb_bo_lookup_valid_bo(struct drm_i915_private *i915
|
||||
|
||||
bo = gem_to_xe_bo(gem);
|
||||
/* Require vram placement or dma-buf import */
|
||||
if (IS_DGFX(i915) &&
|
||||
if (IS_DGFX(xe) &&
|
||||
!xe_bo_can_migrate(bo, XE_PL_VRAM0) &&
|
||||
bo->ttm.type != ttm_bo_type_sg) {
|
||||
drm_gem_object_put(gem);
|
||||
|
||||
Reference in New Issue
Block a user