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

drm/i915/frontbuffer: convert intel_frontbuffer.[ch] to struct intel_display

Going forward, struct intel_display is the main display device data
pointer. Convert intel_frontbuffer.[ch] to struct intel_display.

Reviewed-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Link: https://lore.kernel.org/r/ef0860583b7d6ad141959f84c25657e0c102d6d2.1744222449.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Jani Nikula d358cee7 c370285b

+37 -44
+3 -4
drivers/gpu/drm/i915/display/intel_display.c
··· 1043 1043 struct intel_crtc *crtc) 1044 1044 { 1045 1045 struct intel_display *display = to_intel_display(state); 1046 - struct drm_i915_private *dev_priv = to_i915(state->base.dev); 1047 1046 const struct intel_crtc_state *old_crtc_state = 1048 1047 intel_atomic_get_old_crtc_state(state, crtc); 1049 1048 const struct intel_crtc_state *new_crtc_state = 1050 1049 intel_atomic_get_new_crtc_state(state, crtc); 1051 1050 enum pipe pipe = crtc->pipe; 1052 1051 1053 - intel_frontbuffer_flip(dev_priv, new_crtc_state->fb_bits); 1052 + intel_frontbuffer_flip(display, new_crtc_state->fb_bits); 1054 1053 1055 1054 if (new_crtc_state->update_wm_post && new_crtc_state->hw.active) 1056 1055 intel_update_watermarks(display); ··· 1280 1281 static void intel_crtc_disable_planes(struct intel_atomic_state *state, 1281 1282 struct intel_crtc *crtc) 1282 1283 { 1283 - struct drm_i915_private *dev_priv = to_i915(crtc->base.dev); 1284 + struct intel_display *display = to_intel_display(state); 1284 1285 const struct intel_crtc_state *new_crtc_state = 1285 1286 intel_atomic_get_new_crtc_state(state, crtc); 1286 1287 unsigned int update_mask = new_crtc_state->update_planes; ··· 1302 1303 fb_bits |= plane->frontbuffer_bit; 1303 1304 } 1304 1305 1305 - intel_frontbuffer_flip(dev_priv, fb_bits); 1306 + intel_frontbuffer_flip(display, fb_bits); 1306 1307 } 1307 1308 1308 1309 static void intel_encoders_update_prepare(struct intel_atomic_state *state)
+28 -32
drivers/gpu/drm/i915/display/intel_frontbuffer.c
··· 58 58 #include <drm/drm_gem.h> 59 59 60 60 #include "i915_active.h" 61 - #include "i915_drv.h" 62 61 #include "i915_vma.h" 63 62 #include "intel_bo.h" 64 63 #include "intel_display_trace.h" ··· 71 72 72 73 /** 73 74 * frontbuffer_flush - flush frontbuffer 74 - * @i915: i915 device 75 + * @display: display device 75 76 * @frontbuffer_bits: frontbuffer plane tracking bits 76 77 * @origin: which operation caused the flush 77 78 * ··· 81 82 * 82 83 * Can be called without any locks held. 83 84 */ 84 - static void frontbuffer_flush(struct drm_i915_private *i915, 85 + static void frontbuffer_flush(struct intel_display *display, 85 86 unsigned int frontbuffer_bits, 86 87 enum fb_op_origin origin) 87 88 { 88 - struct intel_display *display = &i915->display; 89 - 90 89 /* Delay flushing when rings are still busy.*/ 91 - spin_lock(&i915->display.fb_tracking.lock); 92 - frontbuffer_bits &= ~i915->display.fb_tracking.busy_bits; 93 - spin_unlock(&i915->display.fb_tracking.lock); 90 + spin_lock(&display->fb_tracking.lock); 91 + frontbuffer_bits &= ~display->fb_tracking.busy_bits; 92 + spin_unlock(&display->fb_tracking.lock); 94 93 95 94 if (!frontbuffer_bits) 96 95 return; ··· 104 107 105 108 /** 106 109 * intel_frontbuffer_flip_prepare - prepare asynchronous frontbuffer flip 107 - * @i915: i915 device 110 + * @display: display device 108 111 * @frontbuffer_bits: frontbuffer plane tracking bits 109 112 * 110 113 * This function gets called after scheduling a flip on @obj. The actual ··· 114 117 * 115 118 * Can be called without any locks held. 116 119 */ 117 - void intel_frontbuffer_flip_prepare(struct drm_i915_private *i915, 120 + void intel_frontbuffer_flip_prepare(struct intel_display *display, 118 121 unsigned frontbuffer_bits) 119 122 { 120 - spin_lock(&i915->display.fb_tracking.lock); 121 - i915->display.fb_tracking.flip_bits |= frontbuffer_bits; 123 + spin_lock(&display->fb_tracking.lock); 124 + display->fb_tracking.flip_bits |= frontbuffer_bits; 122 125 /* Remove stale busy bits due to the old buffer. */ 123 - i915->display.fb_tracking.busy_bits &= ~frontbuffer_bits; 124 - spin_unlock(&i915->display.fb_tracking.lock); 126 + display->fb_tracking.busy_bits &= ~frontbuffer_bits; 127 + spin_unlock(&display->fb_tracking.lock); 125 128 } 126 129 127 130 /** 128 131 * intel_frontbuffer_flip_complete - complete asynchronous frontbuffer flip 129 - * @i915: i915 device 132 + * @display: display device 130 133 * @frontbuffer_bits: frontbuffer plane tracking bits 131 134 * 132 135 * This function gets called after the flip has been latched and will complete ··· 134 137 * 135 138 * Can be called without any locks held. 136 139 */ 137 - void intel_frontbuffer_flip_complete(struct drm_i915_private *i915, 140 + void intel_frontbuffer_flip_complete(struct intel_display *display, 138 141 unsigned frontbuffer_bits) 139 142 { 140 - spin_lock(&i915->display.fb_tracking.lock); 143 + spin_lock(&display->fb_tracking.lock); 141 144 /* Mask any cancelled flips. */ 142 - frontbuffer_bits &= i915->display.fb_tracking.flip_bits; 143 - i915->display.fb_tracking.flip_bits &= ~frontbuffer_bits; 144 - spin_unlock(&i915->display.fb_tracking.lock); 145 + frontbuffer_bits &= display->fb_tracking.flip_bits; 146 + display->fb_tracking.flip_bits &= ~frontbuffer_bits; 147 + spin_unlock(&display->fb_tracking.lock); 145 148 146 149 if (frontbuffer_bits) 147 - frontbuffer_flush(i915, frontbuffer_bits, ORIGIN_FLIP); 150 + frontbuffer_flush(display, frontbuffer_bits, ORIGIN_FLIP); 148 151 } 149 152 150 153 /** 151 154 * intel_frontbuffer_flip - synchronous frontbuffer flip 152 - * @i915: i915 device 155 + * @display: display device 153 156 * @frontbuffer_bits: frontbuffer plane tracking bits 154 157 * 155 158 * This function gets called after scheduling a flip on @obj. This is for ··· 158 161 * 159 162 * Can be called without any locks held. 160 163 */ 161 - void intel_frontbuffer_flip(struct drm_i915_private *i915, 164 + void intel_frontbuffer_flip(struct intel_display *display, 162 165 unsigned frontbuffer_bits) 163 166 { 164 - spin_lock(&i915->display.fb_tracking.lock); 167 + spin_lock(&display->fb_tracking.lock); 165 168 /* Remove stale busy bits due to the old buffer. */ 166 - i915->display.fb_tracking.busy_bits &= ~frontbuffer_bits; 167 - spin_unlock(&i915->display.fb_tracking.lock); 169 + display->fb_tracking.busy_bits &= ~frontbuffer_bits; 170 + spin_unlock(&display->fb_tracking.lock); 168 171 169 - frontbuffer_flush(i915, frontbuffer_bits, ORIGIN_FLIP); 172 + frontbuffer_flush(display, frontbuffer_bits, ORIGIN_FLIP); 170 173 } 171 174 172 175 void __intel_fb_invalidate(struct intel_frontbuffer *front, ··· 195 198 unsigned int frontbuffer_bits) 196 199 { 197 200 struct intel_display *display = to_intel_display(front->obj->dev); 198 - struct drm_i915_private *i915 = to_i915(display->drm); 199 201 200 202 if (origin == ORIGIN_CS) { 201 203 spin_lock(&display->fb_tracking.lock); ··· 205 209 } 206 210 207 211 if (frontbuffer_bits) 208 - frontbuffer_flush(i915, frontbuffer_bits, origin); 212 + frontbuffer_flush(display, frontbuffer_bits, origin); 209 213 } 210 214 211 215 static void intel_frontbuffer_flush_work(struct work_struct *work) ··· 276 280 struct intel_frontbuffer * 277 281 intel_frontbuffer_get(struct drm_gem_object *obj) 278 282 { 279 - struct drm_i915_private *i915 = to_i915(obj->dev); 283 + struct intel_display *display = to_intel_display(obj->dev); 280 284 struct intel_frontbuffer *front, *cur; 281 285 282 286 front = intel_bo_get_frontbuffer(obj); ··· 296 300 I915_ACTIVE_RETIRE_SLEEPS); 297 301 INIT_WORK(&front->flush_work, intel_frontbuffer_flush_work); 298 302 299 - spin_lock(&i915->display.fb_tracking.lock); 303 + spin_lock(&display->fb_tracking.lock); 300 304 cur = intel_bo_set_frontbuffer(obj, front); 301 - spin_unlock(&i915->display.fb_tracking.lock); 305 + spin_unlock(&display->fb_tracking.lock); 302 306 if (cur != front) 303 307 kfree(front); 304 308 return cur;
+4 -4
drivers/gpu/drm/i915/display/intel_frontbuffer.h
··· 31 31 #include "i915_active_types.h" 32 32 33 33 struct drm_gem_object; 34 - struct drm_i915_private; 34 + struct intel_display; 35 35 36 36 enum fb_op_origin { 37 37 ORIGIN_CPU = 0, ··· 68 68 GENMASK(INTEL_FRONTBUFFER_BITS_PER_PIPE * ((pipe) + 1) - 1, \ 69 69 INTEL_FRONTBUFFER_BITS_PER_PIPE * (pipe)) 70 70 71 - void intel_frontbuffer_flip_prepare(struct drm_i915_private *i915, 71 + void intel_frontbuffer_flip_prepare(struct intel_display *display, 72 72 unsigned frontbuffer_bits); 73 - void intel_frontbuffer_flip_complete(struct drm_i915_private *i915, 73 + void intel_frontbuffer_flip_complete(struct intel_display *display, 74 74 unsigned frontbuffer_bits); 75 - void intel_frontbuffer_flip(struct drm_i915_private *i915, 75 + void intel_frontbuffer_flip(struct intel_display *display, 76 76 unsigned frontbuffer_bits); 77 77 78 78 void intel_frontbuffer_put(struct intel_frontbuffer *front);
+2 -4
drivers/gpu/drm/i915/display/intel_overlay.c
··· 291 291 struct i915_vma *vma) 292 292 { 293 293 struct intel_display *display = overlay->display; 294 - struct drm_i915_private *i915 = to_i915(display->drm); 295 294 enum pipe pipe = overlay->crtc->pipe; 296 295 struct intel_frontbuffer *frontbuffer = NULL; 297 296 ··· 306 307 intel_frontbuffer_put(overlay->frontbuffer); 307 308 overlay->frontbuffer = frontbuffer; 308 309 309 - intel_frontbuffer_flip_prepare(i915, INTEL_FRONTBUFFER_OVERLAY(pipe)); 310 + intel_frontbuffer_flip_prepare(display, INTEL_FRONTBUFFER_OVERLAY(pipe)); 310 311 311 312 overlay->old_vma = overlay->vma; 312 313 if (vma) ··· 358 359 static void intel_overlay_release_old_vma(struct intel_overlay *overlay) 359 360 { 360 361 struct intel_display *display = overlay->display; 361 - struct drm_i915_private *i915 = to_i915(display->drm); 362 362 struct i915_vma *vma; 363 363 364 364 vma = fetch_and_zero(&overlay->old_vma); 365 365 if (drm_WARN_ON(display->drm, !vma)) 366 366 return; 367 367 368 - intel_frontbuffer_flip_complete(i915, INTEL_FRONTBUFFER_OVERLAY(overlay->crtc->pipe)); 368 + intel_frontbuffer_flip_complete(display, INTEL_FRONTBUFFER_OVERLAY(overlay->crtc->pipe)); 369 369 370 370 i915_vma_unpin(vma); 371 371 i915_vma_put(vma);