diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_pm.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_pm.c | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index a6c7c11d2c0e..b11fac679e10 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c | |||
@@ -2271,7 +2271,7 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc) | |||
2271 | 2271 | ||
2272 | if (IS_I945GM(dev_priv)) | 2272 | if (IS_I945GM(dev_priv)) |
2273 | wm_info = &i945_wm_info; | 2273 | wm_info = &i945_wm_info; |
2274 | else if (!IS_GEN2(dev_priv)) | 2274 | else if (!IS_GEN(dev_priv, 2)) |
2275 | wm_info = &i915_wm_info; | 2275 | wm_info = &i915_wm_info; |
2276 | else | 2276 | else |
2277 | wm_info = &i830_a_wm_info; | 2277 | wm_info = &i830_a_wm_info; |
@@ -2285,7 +2285,7 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc) | |||
2285 | crtc->base.primary->state->fb; | 2285 | crtc->base.primary->state->fb; |
2286 | int cpp; | 2286 | int cpp; |
2287 | 2287 | ||
2288 | if (IS_GEN2(dev_priv)) | 2288 | if (IS_GEN(dev_priv, 2)) |
2289 | cpp = 4; | 2289 | cpp = 4; |
2290 | else | 2290 | else |
2291 | cpp = fb->format->cpp[0]; | 2291 | cpp = fb->format->cpp[0]; |
@@ -2300,7 +2300,7 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc) | |||
2300 | planea_wm = wm_info->max_wm; | 2300 | planea_wm = wm_info->max_wm; |
2301 | } | 2301 | } |
2302 | 2302 | ||
2303 | if (IS_GEN2(dev_priv)) | 2303 | if (IS_GEN(dev_priv, 2)) |
2304 | wm_info = &i830_bc_wm_info; | 2304 | wm_info = &i830_bc_wm_info; |
2305 | 2305 | ||
2306 | fifo_size = dev_priv->display.get_fifo_size(dev_priv, PLANE_B); | 2306 | fifo_size = dev_priv->display.get_fifo_size(dev_priv, PLANE_B); |
@@ -2312,7 +2312,7 @@ static void i9xx_update_wm(struct intel_crtc *unused_crtc) | |||
2312 | crtc->base.primary->state->fb; | 2312 | crtc->base.primary->state->fb; |
2313 | int cpp; | 2313 | int cpp; |
2314 | 2314 | ||
2315 | if (IS_GEN2(dev_priv)) | 2315 | if (IS_GEN(dev_priv, 2)) |
2316 | cpp = 4; | 2316 | cpp = 4; |
2317 | else | 2317 | else |
2318 | cpp = fb->format->cpp[0]; | 2318 | cpp = fb->format->cpp[0]; |
@@ -2923,7 +2923,7 @@ static void intel_fixup_spr_wm_latency(struct drm_i915_private *dev_priv, | |||
2923 | uint16_t wm[5]) | 2923 | uint16_t wm[5]) |
2924 | { | 2924 | { |
2925 | /* ILK sprite LP0 latency is 1300 ns */ | 2925 | /* ILK sprite LP0 latency is 1300 ns */ |
2926 | if (IS_GEN5(dev_priv)) | 2926 | if (IS_GEN(dev_priv, 5)) |
2927 | wm[0] = 13; | 2927 | wm[0] = 13; |
2928 | } | 2928 | } |
2929 | 2929 | ||
@@ -2931,7 +2931,7 @@ static void intel_fixup_cur_wm_latency(struct drm_i915_private *dev_priv, | |||
2931 | uint16_t wm[5]) | 2931 | uint16_t wm[5]) |
2932 | { | 2932 | { |
2933 | /* ILK cursor LP0 latency is 1300 ns */ | 2933 | /* ILK cursor LP0 latency is 1300 ns */ |
2934 | if (IS_GEN5(dev_priv)) | 2934 | if (IS_GEN(dev_priv, 5)) |
2935 | wm[0] = 13; | 2935 | wm[0] = 13; |
2936 | } | 2936 | } |
2937 | 2937 | ||
@@ -3058,7 +3058,7 @@ static void ilk_setup_wm_latency(struct drm_i915_private *dev_priv) | |||
3058 | intel_print_wm_latency(dev_priv, "Sprite", dev_priv->wm.spr_latency); | 3058 | intel_print_wm_latency(dev_priv, "Sprite", dev_priv->wm.spr_latency); |
3059 | intel_print_wm_latency(dev_priv, "Cursor", dev_priv->wm.cur_latency); | 3059 | intel_print_wm_latency(dev_priv, "Cursor", dev_priv->wm.cur_latency); |
3060 | 3060 | ||
3061 | if (IS_GEN6(dev_priv)) { | 3061 | if (IS_GEN(dev_priv, 6)) { |
3062 | snb_wm_latency_quirk(dev_priv); | 3062 | snb_wm_latency_quirk(dev_priv); |
3063 | snb_wm_lp3_irq_quirk(dev_priv); | 3063 | snb_wm_lp3_irq_quirk(dev_priv); |
3064 | } | 3064 | } |
@@ -3314,7 +3314,7 @@ static void ilk_wm_merge(struct drm_i915_private *dev_priv, | |||
3314 | * What we should check here is whether FBC can be | 3314 | * What we should check here is whether FBC can be |
3315 | * enabled sometime later. | 3315 | * enabled sometime later. |
3316 | */ | 3316 | */ |
3317 | if (IS_GEN5(dev_priv) && !merged->fbc_wm_enabled && | 3317 | if (IS_GEN(dev_priv, 5) && !merged->fbc_wm_enabled && |
3318 | intel_fbc_is_active(dev_priv)) { | 3318 | intel_fbc_is_active(dev_priv)) { |
3319 | for (level = 2; level <= max_level; level++) { | 3319 | for (level = 2; level <= max_level; level++) { |
3320 | struct intel_wm_level *wm = &merged->wm[level]; | 3320 | struct intel_wm_level *wm = &merged->wm[level]; |
@@ -3751,9 +3751,9 @@ bool intel_can_enable_sagv(struct drm_atomic_state *state) | |||
3751 | if (!intel_has_sagv(dev_priv)) | 3751 | if (!intel_has_sagv(dev_priv)) |
3752 | return false; | 3752 | return false; |
3753 | 3753 | ||
3754 | if (IS_GEN9(dev_priv)) | 3754 | if (IS_GEN(dev_priv, 9)) |
3755 | sagv_block_time_us = 30; | 3755 | sagv_block_time_us = 30; |
3756 | else if (IS_GEN10(dev_priv)) | 3756 | else if (IS_GEN(dev_priv, 10)) |
3757 | sagv_block_time_us = 20; | 3757 | sagv_block_time_us = 20; |
3758 | else | 3758 | else |
3759 | sagv_block_time_us = 10; | 3759 | sagv_block_time_us = 10; |
@@ -4657,7 +4657,7 @@ skl_compute_plane_wm_params(const struct intel_crtc_state *cstate, | |||
4657 | 4657 | ||
4658 | wp->plane_blocks_per_line = div_fixed16(interm_pbpl, | 4658 | wp->plane_blocks_per_line = div_fixed16(interm_pbpl, |
4659 | wp->y_min_scanlines); | 4659 | wp->y_min_scanlines); |
4660 | } else if (wp->x_tiled && IS_GEN9(dev_priv)) { | 4660 | } else if (wp->x_tiled && IS_GEN(dev_priv, 9)) { |
4661 | interm_pbpl = DIV_ROUND_UP(wp->plane_bytes_per_line, | 4661 | interm_pbpl = DIV_ROUND_UP(wp->plane_bytes_per_line, |
4662 | wp->dbuf_block_size); | 4662 | wp->dbuf_block_size); |
4663 | wp->plane_blocks_per_line = u32_to_fixed16(interm_pbpl); | 4663 | wp->plane_blocks_per_line = u32_to_fixed16(interm_pbpl); |
@@ -4716,7 +4716,7 @@ static void skl_compute_plane_wm(const struct intel_crtc_state *cstate, | |||
4716 | (wp->plane_bytes_per_line / wp->dbuf_block_size < 1)) { | 4716 | (wp->plane_bytes_per_line / wp->dbuf_block_size < 1)) { |
4717 | selected_result = method2; | 4717 | selected_result = method2; |
4718 | } else if (latency >= wp->linetime_us) { | 4718 | } else if (latency >= wp->linetime_us) { |
4719 | if (IS_GEN9(dev_priv) && | 4719 | if (IS_GEN(dev_priv, 9) && |
4720 | !IS_GEMINILAKE(dev_priv)) | 4720 | !IS_GEMINILAKE(dev_priv)) |
4721 | selected_result = min_fixed16(method1, method2); | 4721 | selected_result = min_fixed16(method1, method2); |
4722 | else | 4722 | else |
@@ -6908,7 +6908,7 @@ static void gen9_enable_rps(struct drm_i915_private *dev_priv) | |||
6908 | intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL); | 6908 | intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL); |
6909 | 6909 | ||
6910 | /* Program defaults and thresholds for RPS */ | 6910 | /* Program defaults and thresholds for RPS */ |
6911 | if (IS_GEN9(dev_priv)) | 6911 | if (IS_GEN(dev_priv, 9)) |
6912 | I915_WRITE(GEN6_RC_VIDEO_FREQ, | 6912 | I915_WRITE(GEN6_RC_VIDEO_FREQ, |
6913 | GEN9_FREQUENCY(dev_priv->gt_pm.rps.rp1_freq)); | 6913 | GEN9_FREQUENCY(dev_priv->gt_pm.rps.rp1_freq)); |
6914 | 6914 | ||
@@ -7144,9 +7144,9 @@ static void gen6_enable_rc6(struct drm_i915_private *dev_priv) | |||
7144 | 7144 | ||
7145 | rc6vids = 0; | 7145 | rc6vids = 0; |
7146 | ret = sandybridge_pcode_read(dev_priv, GEN6_PCODE_READ_RC6VIDS, &rc6vids); | 7146 | ret = sandybridge_pcode_read(dev_priv, GEN6_PCODE_READ_RC6VIDS, &rc6vids); |
7147 | if (IS_GEN6(dev_priv) && ret) { | 7147 | if (IS_GEN(dev_priv, 6) && ret) { |
7148 | DRM_DEBUG_DRIVER("Couldn't check for BIOS workaround\n"); | 7148 | DRM_DEBUG_DRIVER("Couldn't check for BIOS workaround\n"); |
7149 | } else if (IS_GEN6(dev_priv) && (GEN6_DECODE_RC6_VID(rc6vids & 0xff) < 450)) { | 7149 | } else if (IS_GEN(dev_priv, 6) && (GEN6_DECODE_RC6_VID(rc6vids & 0xff) < 450)) { |
7150 | DRM_DEBUG_DRIVER("You should update your BIOS. Correcting minimum rc6 voltage (%dmV->%dmV)\n", | 7150 | DRM_DEBUG_DRIVER("You should update your BIOS. Correcting minimum rc6 voltage (%dmV->%dmV)\n", |
7151 | GEN6_DECODE_RC6_VID(rc6vids & 0xff), 450); | 7151 | GEN6_DECODE_RC6_VID(rc6vids & 0xff), 450); |
7152 | rc6vids &= 0xffff00; | 7152 | rc6vids &= 0xffff00; |
@@ -7846,7 +7846,7 @@ unsigned long i915_chipset_val(struct drm_i915_private *dev_priv) | |||
7846 | { | 7846 | { |
7847 | unsigned long val; | 7847 | unsigned long val; |
7848 | 7848 | ||
7849 | if (!IS_GEN5(dev_priv)) | 7849 | if (!IS_GEN(dev_priv, 5)) |
7850 | return 0; | 7850 | return 0; |
7851 | 7851 | ||
7852 | spin_lock_irq(&mchdev_lock); | 7852 | spin_lock_irq(&mchdev_lock); |
@@ -7930,7 +7930,7 @@ static void __i915_update_gfx_val(struct drm_i915_private *dev_priv) | |||
7930 | 7930 | ||
7931 | void i915_update_gfx_val(struct drm_i915_private *dev_priv) | 7931 | void i915_update_gfx_val(struct drm_i915_private *dev_priv) |
7932 | { | 7932 | { |
7933 | if (!IS_GEN5(dev_priv)) | 7933 | if (!IS_GEN(dev_priv, 5)) |
7934 | return; | 7934 | return; |
7935 | 7935 | ||
7936 | spin_lock_irq(&mchdev_lock); | 7936 | spin_lock_irq(&mchdev_lock); |
@@ -7981,7 +7981,7 @@ unsigned long i915_gfx_val(struct drm_i915_private *dev_priv) | |||
7981 | { | 7981 | { |
7982 | unsigned long val; | 7982 | unsigned long val; |
7983 | 7983 | ||
7984 | if (!IS_GEN5(dev_priv)) | 7984 | if (!IS_GEN(dev_priv, 5)) |
7985 | return 0; | 7985 | return 0; |
7986 | 7986 | ||
7987 | spin_lock_irq(&mchdev_lock); | 7987 | spin_lock_irq(&mchdev_lock); |
@@ -8269,7 +8269,7 @@ void intel_init_gt_powersave(struct drm_i915_private *dev_priv) | |||
8269 | intel_freq_opcode(dev_priv, 450)); | 8269 | intel_freq_opcode(dev_priv, 450)); |
8270 | 8270 | ||
8271 | /* After setting max-softlimit, find the overclock max freq */ | 8271 | /* After setting max-softlimit, find the overclock max freq */ |
8272 | if (IS_GEN6(dev_priv) || | 8272 | if (IS_GEN(dev_priv, 6) || |
8273 | IS_IVYBRIDGE(dev_priv) || IS_HASWELL(dev_priv)) { | 8273 | IS_IVYBRIDGE(dev_priv) || IS_HASWELL(dev_priv)) { |
8274 | u32 params = 0; | 8274 | u32 params = 0; |
8275 | 8275 | ||
@@ -9339,9 +9339,9 @@ void intel_init_clock_gating_hooks(struct drm_i915_private *dev_priv) | |||
9339 | dev_priv->display.init_clock_gating = ivb_init_clock_gating; | 9339 | dev_priv->display.init_clock_gating = ivb_init_clock_gating; |
9340 | else if (IS_VALLEYVIEW(dev_priv)) | 9340 | else if (IS_VALLEYVIEW(dev_priv)) |
9341 | dev_priv->display.init_clock_gating = vlv_init_clock_gating; | 9341 | dev_priv->display.init_clock_gating = vlv_init_clock_gating; |
9342 | else if (IS_GEN6(dev_priv)) | 9342 | else if (IS_GEN(dev_priv, 6)) |
9343 | dev_priv->display.init_clock_gating = gen6_init_clock_gating; | 9343 | dev_priv->display.init_clock_gating = gen6_init_clock_gating; |
9344 | else if (IS_GEN5(dev_priv)) | 9344 | else if (IS_GEN(dev_priv, 5)) |
9345 | dev_priv->display.init_clock_gating = ilk_init_clock_gating; | 9345 | dev_priv->display.init_clock_gating = ilk_init_clock_gating; |
9346 | else if (IS_G4X(dev_priv)) | 9346 | else if (IS_G4X(dev_priv)) |
9347 | dev_priv->display.init_clock_gating = g4x_init_clock_gating; | 9347 | dev_priv->display.init_clock_gating = g4x_init_clock_gating; |
@@ -9349,11 +9349,11 @@ void intel_init_clock_gating_hooks(struct drm_i915_private *dev_priv) | |||
9349 | dev_priv->display.init_clock_gating = i965gm_init_clock_gating; | 9349 | dev_priv->display.init_clock_gating = i965gm_init_clock_gating; |
9350 | else if (IS_I965G(dev_priv)) | 9350 | else if (IS_I965G(dev_priv)) |
9351 | dev_priv->display.init_clock_gating = i965g_init_clock_gating; | 9351 | dev_priv->display.init_clock_gating = i965g_init_clock_gating; |
9352 | else if (IS_GEN3(dev_priv)) | 9352 | else if (IS_GEN(dev_priv, 3)) |
9353 | dev_priv->display.init_clock_gating = gen3_init_clock_gating; | 9353 | dev_priv->display.init_clock_gating = gen3_init_clock_gating; |
9354 | else if (IS_I85X(dev_priv) || IS_I865G(dev_priv)) | 9354 | else if (IS_I85X(dev_priv) || IS_I865G(dev_priv)) |
9355 | dev_priv->display.init_clock_gating = i85x_init_clock_gating; | 9355 | dev_priv->display.init_clock_gating = i85x_init_clock_gating; |
9356 | else if (IS_GEN2(dev_priv)) | 9356 | else if (IS_GEN(dev_priv, 2)) |
9357 | dev_priv->display.init_clock_gating = i830_init_clock_gating; | 9357 | dev_priv->display.init_clock_gating = i830_init_clock_gating; |
9358 | else { | 9358 | else { |
9359 | MISSING_CASE(INTEL_DEVID(dev_priv)); | 9359 | MISSING_CASE(INTEL_DEVID(dev_priv)); |
@@ -9367,7 +9367,7 @@ void intel_init_pm(struct drm_i915_private *dev_priv) | |||
9367 | /* For cxsr */ | 9367 | /* For cxsr */ |
9368 | if (IS_PINEVIEW(dev_priv)) | 9368 | if (IS_PINEVIEW(dev_priv)) |
9369 | i915_pineview_get_mem_freq(dev_priv); | 9369 | i915_pineview_get_mem_freq(dev_priv); |
9370 | else if (IS_GEN5(dev_priv)) | 9370 | else if (IS_GEN(dev_priv, 5)) |
9371 | i915_ironlake_get_mem_freq(dev_priv); | 9371 | i915_ironlake_get_mem_freq(dev_priv); |
9372 | 9372 | ||
9373 | /* For FIFO watermark updates */ | 9373 | /* For FIFO watermark updates */ |
@@ -9379,9 +9379,9 @@ void intel_init_pm(struct drm_i915_private *dev_priv) | |||
9379 | } else if (HAS_PCH_SPLIT(dev_priv)) { | 9379 | } else if (HAS_PCH_SPLIT(dev_priv)) { |
9380 | ilk_setup_wm_latency(dev_priv); | 9380 | ilk_setup_wm_latency(dev_priv); |
9381 | 9381 | ||
9382 | if ((IS_GEN5(dev_priv) && dev_priv->wm.pri_latency[1] && | 9382 | if ((IS_GEN(dev_priv, 5) && dev_priv->wm.pri_latency[1] && |
9383 | dev_priv->wm.spr_latency[1] && dev_priv->wm.cur_latency[1]) || | 9383 | dev_priv->wm.spr_latency[1] && dev_priv->wm.cur_latency[1]) || |
9384 | (!IS_GEN5(dev_priv) && dev_priv->wm.pri_latency[0] && | 9384 | (!IS_GEN(dev_priv, 5) && dev_priv->wm.pri_latency[0] && |
9385 | dev_priv->wm.spr_latency[0] && dev_priv->wm.cur_latency[0])) { | 9385 | dev_priv->wm.spr_latency[0] && dev_priv->wm.cur_latency[0])) { |
9386 | dev_priv->display.compute_pipe_wm = ilk_compute_pipe_wm; | 9386 | dev_priv->display.compute_pipe_wm = ilk_compute_pipe_wm; |
9387 | dev_priv->display.compute_intermediate_wm = | 9387 | dev_priv->display.compute_intermediate_wm = |
@@ -9422,12 +9422,12 @@ void intel_init_pm(struct drm_i915_private *dev_priv) | |||
9422 | dev_priv->display.update_wm = NULL; | 9422 | dev_priv->display.update_wm = NULL; |
9423 | } else | 9423 | } else |
9424 | dev_priv->display.update_wm = pineview_update_wm; | 9424 | dev_priv->display.update_wm = pineview_update_wm; |
9425 | } else if (IS_GEN4(dev_priv)) { | 9425 | } else if (IS_GEN(dev_priv, 4)) { |
9426 | dev_priv->display.update_wm = i965_update_wm; | 9426 | dev_priv->display.update_wm = i965_update_wm; |
9427 | } else if (IS_GEN3(dev_priv)) { | 9427 | } else if (IS_GEN(dev_priv, 3)) { |
9428 | dev_priv->display.update_wm = i9xx_update_wm; | 9428 | dev_priv->display.update_wm = i9xx_update_wm; |
9429 | dev_priv->display.get_fifo_size = i9xx_get_fifo_size; | 9429 | dev_priv->display.get_fifo_size = i9xx_get_fifo_size; |
9430 | } else if (IS_GEN2(dev_priv)) { | 9430 | } else if (IS_GEN(dev_priv, 2)) { |
9431 | if (INTEL_INFO(dev_priv)->num_pipes == 1) { | 9431 | if (INTEL_INFO(dev_priv)->num_pipes == 1) { |
9432 | dev_priv->display.update_wm = i845_update_wm; | 9432 | dev_priv->display.update_wm = i845_update_wm; |
9433 | dev_priv->display.get_fifo_size = i845_get_fifo_size; | 9433 | dev_priv->display.get_fifo_size = i845_get_fifo_size; |