From: Ville Syrjälä <[email protected]> Replace the intel_fb_pin_to_ggtt() and intel_fb_unpin_vma() with the new abstract parent interface (intel_parent_fb_pin_ggtt_(un)pin()).
xe no longer needs intel_fb_unpin_vma(), and in i915 it now becomes and internal function to i915_fb_pin. Reviewed-by: Jani Nikula <[email protected]> Signed-off-by: Ville Syrjälä <[email protected]> --- drivers/gpu/drm/i915/display/intel_fb_pin.h | 2 -- drivers/gpu/drm/i915/display/intel_fbdev.c | 14 +++++++------- drivers/gpu/drm/i915/i915_fb_pin.c | 2 +- drivers/gpu/drm/xe/display/xe_fb_pin.c | 5 ----- 4 files changed, 8 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_fb_pin.h b/drivers/gpu/drm/i915/display/intel_fb_pin.h index 84530f20d7d1..6ff17d3e2cf5 100644 --- a/drivers/gpu/drm/i915/display/intel_fb_pin.h +++ b/drivers/gpu/drm/i915/display/intel_fb_pin.h @@ -20,8 +20,6 @@ intel_fb_pin_to_ggtt(struct drm_gem_object *obj, const struct intel_fb_pin_params *pin_params, int *out_fence_id); -void intel_fb_unpin_vma(struct i915_vma *vma, int fence_id); - int intel_plane_pin_fb(struct intel_plane_state *new_plane_state, const struct intel_plane_state *old_plane_state); void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state); diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c index aa2701795caa..8463f88149a5 100644 --- a/drivers/gpu/drm/i915/display/intel_fbdev.c +++ b/drivers/gpu/drm/i915/display/intel_fbdev.c @@ -53,7 +53,6 @@ #include "intel_display_rpm.h" #include "intel_display_types.h" #include "intel_fb.h" -#include "intel_fb_pin.h" #include "intel_fbdev.h" #include "intel_frontbuffer.h" #include "intel_parent.h" @@ -133,6 +132,7 @@ static int intel_fbdev_mmap(struct fb_info *info, struct vm_area_struct *vma) static void intel_fbdev_fb_destroy(struct fb_info *info) { struct drm_fb_helper *fb_helper = info->par; + struct intel_display *display = to_intel_display(fb_helper->client.dev); struct intel_fbdev *ifbdev = to_intel_fbdev(fb_helper); drm_fb_helper_fini(fb_helper); @@ -142,7 +142,7 @@ static void intel_fbdev_fb_destroy(struct fb_info *info) * the info->screen_base mmaping. Leaking the VMA is simpler than * trying to rectify all the possible error paths leading here. */ - intel_fb_unpin_vma(ifbdev->vma, -1); + intel_parent_fb_pin_ggtt_unpin(display, ifbdev->vma, -1); drm_framebuffer_remove(fb_helper->fb); drm_client_release(&fb_helper->client); @@ -274,6 +274,7 @@ int intel_fbdev_driver_fbdev_probe(struct drm_fb_helper *helper, struct i915_vma *vma; bool prealloc = false; struct drm_gem_object *obj; + u32 offset; int ret; ifbdev->fb = NULL; @@ -321,11 +322,10 @@ int intel_fbdev_driver_fbdev_probe(struct drm_fb_helper *helper, DRM_MODE_ROTATE_0); pin_params.needs_low_address = intel_plane_needs_low_address(display); - vma = intel_fb_pin_to_ggtt(obj, &pin_params, NULL); - if (IS_ERR(vma)) { - ret = PTR_ERR(vma); + ret = intel_parent_fb_pin_ggtt_pin(display, obj, &pin_params, + &vma, &offset, NULL); + if (ret) goto out_unlock; - } helper->funcs = &intel_fb_helper_funcs; helper->fb = &fb->base; @@ -356,7 +356,7 @@ int intel_fbdev_driver_fbdev_probe(struct drm_fb_helper *helper, return 0; out_unpin: - intel_fb_unpin_vma(vma, -1); + intel_parent_fb_pin_ggtt_unpin(display, vma, -1); out_unlock: intel_display_rpm_put(display, wakeref); diff --git a/drivers/gpu/drm/i915/i915_fb_pin.c b/drivers/gpu/drm/i915/i915_fb_pin.c index 1f08e364d569..cedefee46fbf 100644 --- a/drivers/gpu/drm/i915/i915_fb_pin.c +++ b/drivers/gpu/drm/i915/i915_fb_pin.c @@ -222,7 +222,7 @@ intel_fb_pin_to_ggtt(struct drm_gem_object *_obj, return vma; } -void intel_fb_unpin_vma(struct i915_vma *vma, int fence_id) +static void intel_fb_unpin_vma(struct i915_vma *vma, int fence_id) { if (fence_id >= 0) i915_vma_unpin_fence(vma); diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c index 7b1347b02831..3247b0683987 100644 --- a/drivers/gpu/drm/xe/display/xe_fb_pin.c +++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c @@ -424,11 +424,6 @@ intel_fb_pin_to_ggtt(struct drm_gem_object *obj, return __xe_pin_fb_vma(obj, false, pin_params); } -void intel_fb_unpin_vma(struct i915_vma *vma, int fence_id) -{ - __xe_unpin_fb_vma(vma); -} - static int xe_fb_pin_ggtt_pin(struct drm_gem_object *obj, const struct intel_fb_pin_params *pin_params, struct i915_vma **out_ggtt_vma, -- 2.52.0
