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

drm/i915/wm: convert i9xx_wm.h external interfaces to struct intel_display

Going forward, struct intel_display is the main display device data
pointer. Convert the i9xx_wm.h interface to struct intel_display.

With this, we can make intel_wm.c independent of i915_drv.h.

v2: Also remove i915_drv.h, fix commit message

Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Link: https://lore.kernel.org/r/3e30634d85c0e0aac9c95f9a2f928131ba400271.1744119460.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>

+37 -32
+19 -13
drivers/gpu/drm/i915/display/i9xx_wm.c
··· 200 200 201 201 /** 202 202 * intel_set_memory_cxsr - Configure CxSR state 203 - * @dev_priv: i915 device 203 + * @display: display device 204 204 * @enable: Allow vs. disallow CxSR 205 205 * 206 206 * Allow or disallow the system to enter a special CxSR ··· 235 235 * the hardware w.r.t. HPLL SR when writing to plane registers. 236 236 * Disallowing just CxSR is sufficient. 237 237 */ 238 - bool intel_set_memory_cxsr(struct drm_i915_private *dev_priv, bool enable) 238 + bool intel_set_memory_cxsr(struct intel_display *display, bool enable) 239 239 { 240 + struct drm_i915_private *dev_priv = to_i915(display->drm); 240 241 bool ret; 241 242 242 243 mutex_lock(&dev_priv->display.wm.wm_mutex); ··· 653 652 latency = pnv_get_cxsr_latency(dev_priv); 654 653 if (!latency) { 655 654 drm_dbg_kms(&dev_priv->drm, "Unknown FSB/MEM, disabling CxSR\n"); 656 - intel_set_memory_cxsr(dev_priv, false); 655 + intel_set_memory_cxsr(display, false); 657 656 return; 658 657 } 659 658 ··· 703 702 intel_uncore_write(&dev_priv->uncore, DSPFW3(dev_priv), reg); 704 703 drm_dbg_kms(&dev_priv->drm, "DSPFW3 register is %x\n", reg); 705 704 706 - intel_set_memory_cxsr(dev_priv, true); 705 + intel_set_memory_cxsr(display, true); 707 706 } else { 708 - intel_set_memory_cxsr(dev_priv, false); 707 + intel_set_memory_cxsr(display, false); 709 708 } 710 709 } 711 710 ··· 2178 2177 } else { 2179 2178 cxsr_enabled = false; 2180 2179 /* Turn off self refresh if both pipes are enabled */ 2181 - intel_set_memory_cxsr(dev_priv, false); 2180 + intel_set_memory_cxsr(display, false); 2182 2181 } 2183 2182 2184 2183 drm_dbg_kms(&dev_priv->drm, ··· 2199 2198 FW_WM(cursor_sr, CURSOR_SR)); 2200 2199 2201 2200 if (cxsr_enabled) 2202 - intel_set_memory_cxsr(dev_priv, true); 2201 + intel_set_memory_cxsr(display, true); 2203 2202 } 2204 2203 2205 2204 #undef FW_WM ··· 2308 2307 cwm = 2; 2309 2308 2310 2309 /* Play safe and disable self-refresh before adjusting watermarks. */ 2311 - intel_set_memory_cxsr(dev_priv, false); 2310 + intel_set_memory_cxsr(display, false); 2312 2311 2313 2312 /* Calc sr entries for one plane configs */ 2314 2313 if (HAS_FW_BLC(dev_priv) && crtc) { ··· 2360 2359 intel_uncore_write(&dev_priv->uncore, FW_BLC2, fwater_hi); 2361 2360 2362 2361 if (crtc) 2363 - intel_set_memory_cxsr(dev_priv, true); 2362 + intel_set_memory_cxsr(display, true); 2364 2363 } 2365 2364 2366 2365 static void i845_update_wm(struct intel_display *display) ··· 3412 3411 dev_priv->display.wm.hw = *results; 3413 3412 } 3414 3413 3415 - bool ilk_disable_cxsr(struct drm_i915_private *dev_priv) 3414 + bool ilk_disable_cxsr(struct intel_display *display) 3416 3415 { 3416 + struct drm_i915_private *dev_priv = to_i915(display->drm); 3417 + 3417 3418 return _ilk_disable_lp_wm(dev_priv, WM_DIRTY_LP_ALL); 3418 3419 } 3419 3420 ··· 3583 3580 * through the atomic check code to calculate new watermark values in the 3584 3581 * state object. 3585 3582 */ 3586 - void ilk_wm_sanitize(struct drm_i915_private *dev_priv) 3583 + void ilk_wm_sanitize(struct intel_display *display) 3587 3584 { 3585 + struct drm_i915_private *dev_priv = to_i915(display->drm); 3588 3586 struct drm_atomic_state *state; 3589 3587 struct intel_atomic_state *intel_state; 3590 3588 struct intel_crtc *crtc; ··· 4160 4156 static const struct intel_wm_funcs nop_funcs = { 4161 4157 }; 4162 4158 4163 - void i9xx_wm_init(struct drm_i915_private *dev_priv) 4159 + void i9xx_wm_init(struct intel_display *display) 4164 4160 { 4161 + struct drm_i915_private *dev_priv = to_i915(display->drm); 4162 + 4165 4163 /* For FIFO watermark updates */ 4166 4164 if (HAS_PCH_SPLIT(dev_priv)) { 4167 4165 ilk_setup_wm_latency(dev_priv); ··· 4178 4172 if (!pnv_get_cxsr_latency(dev_priv)) { 4179 4173 drm_info(&dev_priv->drm, "Unknown FSB/MEM, disabling CxSR\n"); 4180 4174 /* Disable CxSR and never update its watermark again */ 4181 - intel_set_memory_cxsr(dev_priv, false); 4175 + intel_set_memory_cxsr(display, false); 4182 4176 dev_priv->display.funcs.wm = &nop_funcs; 4183 4177 } else { 4184 4178 dev_priv->display.funcs.wm = &pnv_wm_funcs;
+9 -9
drivers/gpu/drm/i915/display/i9xx_wm.h
··· 8 8 9 9 #include <linux/types.h> 10 10 11 - struct drm_i915_private; 12 11 struct intel_crtc_state; 12 + struct intel_display; 13 13 struct intel_plane_state; 14 14 15 15 #ifdef I915 16 - bool ilk_disable_cxsr(struct drm_i915_private *i915); 17 - void ilk_wm_sanitize(struct drm_i915_private *i915); 18 - bool intel_set_memory_cxsr(struct drm_i915_private *i915, bool enable); 19 - void i9xx_wm_init(struct drm_i915_private *i915); 16 + bool ilk_disable_cxsr(struct intel_display *display); 17 + void ilk_wm_sanitize(struct intel_display *display); 18 + bool intel_set_memory_cxsr(struct intel_display *display, bool enable); 19 + void i9xx_wm_init(struct intel_display *display); 20 20 #else 21 - static inline bool ilk_disable_cxsr(struct drm_i915_private *i915) 21 + static inline bool ilk_disable_cxsr(struct intel_display *display) 22 22 { 23 23 return false; 24 24 } 25 - static inline void ilk_wm_sanitize(struct drm_i915_private *i915) 25 + static inline void ilk_wm_sanitize(struct intel_display *display) 26 26 { 27 27 } 28 - static inline bool intel_set_memory_cxsr(struct drm_i915_private *i915, bool enable) 28 + static inline bool intel_set_memory_cxsr(struct intel_display *display, bool enable) 29 29 { 30 30 return false; 31 31 } 32 - static inline void i9xx_wm_init(struct drm_i915_private *i915) 32 + static inline void i9xx_wm_init(struct intel_display *display) 33 33 { 34 34 } 35 35 #endif
+3 -5
drivers/gpu/drm/i915/display/intel_display.c
··· 664 664 struct intel_plane *plane) 665 665 { 666 666 struct intel_display *display = to_intel_display(crtc); 667 - struct drm_i915_private *dev_priv = to_i915(crtc->base.dev); 668 667 struct intel_crtc_state *crtc_state = 669 668 to_intel_crtc_state(crtc->base.state); 670 669 struct intel_plane_state *plane_state = ··· 696 697 * wait-for-vblank between disabling the plane and the pipe. 697 698 */ 698 699 if (HAS_GMCH(display) && 699 - intel_set_memory_cxsr(dev_priv, false)) 700 + intel_set_memory_cxsr(display, false)) 700 701 intel_plane_initial_vblank_wait(crtc); 701 702 702 703 /* ··· 1168 1169 struct intel_crtc *crtc) 1169 1170 { 1170 1171 struct intel_display *display = to_intel_display(state); 1171 - struct drm_i915_private *dev_priv = to_i915(state->base.dev); 1172 1172 const struct intel_crtc_state *old_crtc_state = 1173 1173 intel_atomic_get_old_crtc_state(state, crtc); 1174 1174 const struct intel_crtc_state *new_crtc_state = ··· 1221 1223 * wait-for-vblank between disabling the plane and the pipe. 1222 1224 */ 1223 1225 if (HAS_GMCH(display) && old_crtc_state->hw.active && 1224 - new_crtc_state->disable_cxsr && intel_set_memory_cxsr(dev_priv, false)) 1226 + new_crtc_state->disable_cxsr && intel_set_memory_cxsr(display, false)) 1225 1227 intel_crtc_wait_for_next_vblank(crtc); 1226 1228 1227 1229 /* ··· 1232 1234 * WaCxSRDisabledForSpriteScaling:ivb 1233 1235 */ 1234 1236 if (!HAS_GMCH(display) && old_crtc_state->hw.active && 1235 - new_crtc_state->disable_cxsr && ilk_disable_cxsr(dev_priv)) 1237 + new_crtc_state->disable_cxsr && ilk_disable_cxsr(display)) 1236 1238 intel_crtc_wait_for_next_vblank(crtc); 1237 1239 1238 1240 /*
+1 -1
drivers/gpu/drm/i915/display/intel_display_driver.c
··· 476 476 * since the watermark calculation done here will use pstate->fb. 477 477 */ 478 478 if (!HAS_GMCH(display)) 479 - ilk_wm_sanitize(i915); 479 + ilk_wm_sanitize(display); 480 480 481 481 return 0; 482 482
+5 -4
drivers/gpu/drm/i915/display/intel_wm.c
··· 5 5 6 6 #include <linux/debugfs.h> 7 7 8 - #include "i915_drv.h" 8 + #include <drm/drm_file.h> 9 + #include <drm/drm_print.h> 10 + 9 11 #include "i9xx_wm.h" 12 + #include "intel_display_core.h" 10 13 #include "intel_display_types.h" 11 14 #include "intel_wm.h" 12 15 #include "skl_watermark.h" ··· 172 169 173 170 void intel_wm_init(struct intel_display *display) 174 171 { 175 - struct drm_i915_private *i915 = to_i915(display->drm); 176 - 177 172 if (DISPLAY_VER(display) >= 9) 178 173 skl_wm_init(display); 179 174 else 180 - i9xx_wm_init(i915); 175 + i9xx_wm_init(display); 181 176 } 182 177 183 178 static void wm_latency_show(struct seq_file *m, const u16 wm[8])