mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 15:12:13 +02:00
drm/i915/overlay: convert from struct intel_frontbuffer to i915_frontbuffer
The intel_frontbuffer_get() and intel_frontbuffer_put() calls are routed through intel_frontbuffer.c to i915_gem_object_frontbuffer.c. We might as well call the functions directly, instead of going through display code. This would only get worse with get/put being moved to the parent interface. To make this easier, convert overlay code from struct intel_frontbuffer to struct i915_frontbuffer, and add a i915_gem_object_frontbuffer_track() wrapper for clarity. Reviewed-by: Jouni Högander <jouni.hogander@intel.com> Link: https://patch.msgid.link/829b304a6451e80fbce554bdc7788077245e803a.1772475391.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
parent
e18eec6c29
commit
df88ba8904
|
|
@ -45,6 +45,16 @@ struct i915_frontbuffer *i915_gem_object_frontbuffer_get(struct drm_i915_gem_obj
|
|||
void i915_gem_object_frontbuffer_ref(struct i915_frontbuffer *front);
|
||||
void i915_gem_object_frontbuffer_put(struct i915_frontbuffer *front);
|
||||
|
||||
static inline void i915_gem_object_frontbuffer_track(struct i915_frontbuffer *_old,
|
||||
struct i915_frontbuffer *_new,
|
||||
unsigned int frontbuffer_bits)
|
||||
{
|
||||
struct intel_frontbuffer *old = _old ? &_old->base : NULL;
|
||||
struct intel_frontbuffer *new = _new ? &_new->base : NULL;
|
||||
|
||||
intel_frontbuffer_track(old, new, frontbuffer_bits);
|
||||
}
|
||||
|
||||
/**
|
||||
* i915_gem_object_frontbuffer_lookup - Look up the object's frontbuffer
|
||||
* @obj: The object whose frontbuffer to look up.
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ struct i915_overlay {
|
|||
struct intel_context *context;
|
||||
struct i915_vma *vma;
|
||||
struct i915_vma *old_vma;
|
||||
struct intel_frontbuffer *frontbuffer;
|
||||
struct i915_frontbuffer *frontbuffer;
|
||||
/* register access */
|
||||
struct drm_i915_gem_object *reg_bo;
|
||||
void __iomem *regs;
|
||||
|
|
@ -138,18 +138,18 @@ static void i915_overlay_flip_prepare(struct i915_overlay *overlay,
|
|||
struct i915_vma *vma)
|
||||
{
|
||||
struct drm_i915_private *i915 = overlay->i915;
|
||||
struct intel_frontbuffer *frontbuffer = NULL;
|
||||
struct i915_frontbuffer *frontbuffer = NULL;
|
||||
|
||||
drm_WARN_ON(&i915->drm, overlay->old_vma);
|
||||
|
||||
if (vma)
|
||||
frontbuffer = intel_frontbuffer_get(intel_bo_to_drm_bo(vma->obj));
|
||||
frontbuffer = i915_gem_object_frontbuffer_get(vma->obj);
|
||||
|
||||
intel_frontbuffer_track(overlay->frontbuffer, frontbuffer,
|
||||
overlay->frontbuffer_bits);
|
||||
i915_gem_object_frontbuffer_track(overlay->frontbuffer, frontbuffer,
|
||||
overlay->frontbuffer_bits);
|
||||
|
||||
if (overlay->frontbuffer)
|
||||
intel_frontbuffer_put(overlay->frontbuffer);
|
||||
i915_gem_object_frontbuffer_put(overlay->frontbuffer);
|
||||
overlay->frontbuffer = frontbuffer;
|
||||
|
||||
overlay->old_vma = overlay->vma;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user