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

Configure Feed

Select the types of activity you want to include in your feed.

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>

+16 -6
+10
drivers/gpu/drm/i915/gem/i915_gem_object_frontbuffer.h
··· 45 45 void i915_gem_object_frontbuffer_ref(struct i915_frontbuffer *front); 46 46 void i915_gem_object_frontbuffer_put(struct i915_frontbuffer *front); 47 47 48 + static inline void i915_gem_object_frontbuffer_track(struct i915_frontbuffer *_old, 49 + struct i915_frontbuffer *_new, 50 + unsigned int frontbuffer_bits) 51 + { 52 + struct intel_frontbuffer *old = _old ? &_old->base : NULL; 53 + struct intel_frontbuffer *new = _new ? &_new->base : NULL; 54 + 55 + intel_frontbuffer_track(old, new, frontbuffer_bits); 56 + } 57 + 48 58 /** 49 59 * i915_gem_object_frontbuffer_lookup - Look up the object's frontbuffer 50 60 * @obj: The object whose frontbuffer to look up.
+6 -6
drivers/gpu/drm/i915/i915_overlay.c
··· 30 30 struct intel_context *context; 31 31 struct i915_vma *vma; 32 32 struct i915_vma *old_vma; 33 - struct intel_frontbuffer *frontbuffer; 33 + struct i915_frontbuffer *frontbuffer; 34 34 /* register access */ 35 35 struct drm_i915_gem_object *reg_bo; 36 36 void __iomem *regs; ··· 138 138 struct i915_vma *vma) 139 139 { 140 140 struct drm_i915_private *i915 = overlay->i915; 141 - struct intel_frontbuffer *frontbuffer = NULL; 141 + struct i915_frontbuffer *frontbuffer = NULL; 142 142 143 143 drm_WARN_ON(&i915->drm, overlay->old_vma); 144 144 145 145 if (vma) 146 - frontbuffer = intel_frontbuffer_get(intel_bo_to_drm_bo(vma->obj)); 146 + frontbuffer = i915_gem_object_frontbuffer_get(vma->obj); 147 147 148 - intel_frontbuffer_track(overlay->frontbuffer, frontbuffer, 149 - overlay->frontbuffer_bits); 148 + i915_gem_object_frontbuffer_track(overlay->frontbuffer, frontbuffer, 149 + overlay->frontbuffer_bits); 150 150 151 151 if (overlay->frontbuffer) 152 - intel_frontbuffer_put(overlay->frontbuffer); 152 + i915_gem_object_frontbuffer_put(overlay->frontbuffer); 153 153 overlay->frontbuffer = frontbuffer; 154 154 155 155 overlay->old_vma = overlay->vma;