diff options
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 12 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_runtime_pm.c | 28 |
2 files changed, 20 insertions, 20 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 717f4321e987..627b1c8a7ea3 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
| @@ -5301,18 +5301,6 @@ int i915_gem_init_hw(struct drm_i915_private *dev_priv) | |||
| 5301 | I915_WRITE(MI_PREDICATE_RESULT_2, IS_HSW_GT3(dev_priv) ? | 5301 | I915_WRITE(MI_PREDICATE_RESULT_2, IS_HSW_GT3(dev_priv) ? |
| 5302 | LOWER_SLICE_ENABLED : LOWER_SLICE_DISABLED); | 5302 | LOWER_SLICE_ENABLED : LOWER_SLICE_DISABLED); |
| 5303 | 5303 | ||
| 5304 | if (HAS_PCH_NOP(dev_priv)) { | ||
| 5305 | if (IS_IVYBRIDGE(dev_priv)) { | ||
| 5306 | u32 temp = I915_READ(GEN7_MSG_CTL); | ||
| 5307 | temp &= ~(WAIT_FOR_PCH_FLR_ACK | WAIT_FOR_PCH_RESET_ACK); | ||
| 5308 | I915_WRITE(GEN7_MSG_CTL, temp); | ||
| 5309 | } else if (INTEL_GEN(dev_priv) >= 7) { | ||
| 5310 | u32 temp = I915_READ(HSW_NDE_RSTWRN_OPT); | ||
| 5311 | temp &= ~RESET_PCH_HANDSHAKE_ENABLE; | ||
| 5312 | I915_WRITE(HSW_NDE_RSTWRN_OPT, temp); | ||
| 5313 | } | ||
| 5314 | } | ||
| 5315 | |||
| 5316 | intel_gt_workarounds_apply(dev_priv); | 5304 | intel_gt_workarounds_apply(dev_priv); |
| 5317 | 5305 | ||
| 5318 | i915_gem_init_swizzling(dev_priv); | 5306 | i915_gem_init_swizzling(dev_priv); |
diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c index d051b0d440c4..3cf8533e0834 100644 --- a/drivers/gpu/drm/i915/intel_runtime_pm.c +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c | |||
| @@ -3243,14 +3243,25 @@ static void icl_mbus_init(struct drm_i915_private *dev_priv) | |||
| 3243 | static void intel_pch_reset_handshake(struct drm_i915_private *dev_priv, | 3243 | static void intel_pch_reset_handshake(struct drm_i915_private *dev_priv, |
| 3244 | bool enable) | 3244 | bool enable) |
| 3245 | { | 3245 | { |
| 3246 | u32 val = I915_READ(HSW_NDE_RSTWRN_OPT); | 3246 | i915_reg_t reg; |
| 3247 | u32 reset_bits, val; | ||
| 3248 | |||
| 3249 | if (IS_IVYBRIDGE(dev_priv)) { | ||
| 3250 | reg = GEN7_MSG_CTL; | ||
| 3251 | reset_bits = WAIT_FOR_PCH_FLR_ACK | WAIT_FOR_PCH_RESET_ACK; | ||
| 3252 | } else { | ||
| 3253 | reg = HSW_NDE_RSTWRN_OPT; | ||
| 3254 | reset_bits = RESET_PCH_HANDSHAKE_ENABLE; | ||
| 3255 | } | ||
| 3256 | |||
| 3257 | val = I915_READ(reg); | ||
| 3247 | 3258 | ||
| 3248 | if (enable) | 3259 | if (enable) |
| 3249 | val |= RESET_PCH_HANDSHAKE_ENABLE; | 3260 | val |= reset_bits; |
| 3250 | else | 3261 | else |
| 3251 | val &= ~RESET_PCH_HANDSHAKE_ENABLE; | 3262 | val &= ~reset_bits; |
| 3252 | 3263 | ||
| 3253 | I915_WRITE(HSW_NDE_RSTWRN_OPT, val); | 3264 | I915_WRITE(reg, val); |
| 3254 | } | 3265 | } |
| 3255 | 3266 | ||
| 3256 | static void skl_display_core_init(struct drm_i915_private *dev_priv, | 3267 | static void skl_display_core_init(struct drm_i915_private *dev_priv, |
| @@ -3262,7 +3273,7 @@ static void skl_display_core_init(struct drm_i915_private *dev_priv, | |||
| 3262 | gen9_set_dc_state(dev_priv, DC_STATE_DISABLE); | 3273 | gen9_set_dc_state(dev_priv, DC_STATE_DISABLE); |
| 3263 | 3274 | ||
| 3264 | /* enable PCH reset handshake */ | 3275 | /* enable PCH reset handshake */ |
| 3265 | intel_pch_reset_handshake(dev_priv, true); | 3276 | intel_pch_reset_handshake(dev_priv, !HAS_PCH_NOP(dev_priv)); |
| 3266 | 3277 | ||
| 3267 | /* enable PG1 and Misc I/O */ | 3278 | /* enable PG1 and Misc I/O */ |
| 3268 | mutex_lock(&power_domains->lock); | 3279 | mutex_lock(&power_domains->lock); |
| @@ -3448,7 +3459,7 @@ static void cnl_display_core_init(struct drm_i915_private *dev_priv, bool resume | |||
| 3448 | gen9_set_dc_state(dev_priv, DC_STATE_DISABLE); | 3459 | gen9_set_dc_state(dev_priv, DC_STATE_DISABLE); |
| 3449 | 3460 | ||
| 3450 | /* 1. Enable PCH Reset Handshake */ | 3461 | /* 1. Enable PCH Reset Handshake */ |
| 3451 | intel_pch_reset_handshake(dev_priv, true); | 3462 | intel_pch_reset_handshake(dev_priv, !HAS_PCH_NOP(dev_priv)); |
| 3452 | 3463 | ||
| 3453 | /* 2. Enable Comp */ | 3464 | /* 2. Enable Comp */ |
| 3454 | val = I915_READ(CHICKEN_MISC_2); | 3465 | val = I915_READ(CHICKEN_MISC_2); |
| @@ -3531,7 +3542,7 @@ static void icl_display_core_init(struct drm_i915_private *dev_priv, | |||
| 3531 | gen9_set_dc_state(dev_priv, DC_STATE_DISABLE); | 3542 | gen9_set_dc_state(dev_priv, DC_STATE_DISABLE); |
| 3532 | 3543 | ||
| 3533 | /* 1. Enable PCH reset handshake. */ | 3544 | /* 1. Enable PCH reset handshake. */ |
| 3534 | intel_pch_reset_handshake(dev_priv, true); | 3545 | intel_pch_reset_handshake(dev_priv, !HAS_PCH_NOP(dev_priv)); |
| 3535 | 3546 | ||
| 3536 | for (port = PORT_A; port <= PORT_B; port++) { | 3547 | for (port = PORT_A; port <= PORT_B; port++) { |
| 3537 | /* 2. Enable DDI combo PHY comp. */ | 3548 | /* 2. Enable DDI combo PHY comp. */ |
| @@ -3763,7 +3774,8 @@ void intel_power_domains_init_hw(struct drm_i915_private *dev_priv, bool resume) | |||
| 3763 | mutex_lock(&power_domains->lock); | 3774 | mutex_lock(&power_domains->lock); |
| 3764 | vlv_cmnlane_wa(dev_priv); | 3775 | vlv_cmnlane_wa(dev_priv); |
| 3765 | mutex_unlock(&power_domains->lock); | 3776 | mutex_unlock(&power_domains->lock); |
| 3766 | } | 3777 | } else if (IS_IVYBRIDGE(dev_priv) || INTEL_GEN(dev_priv) >= 7) |
| 3778 | intel_pch_reset_handshake(dev_priv, !HAS_PCH_NOP(dev_priv)); | ||
| 3767 | 3779 | ||
| 3768 | /* | 3780 | /* |
| 3769 | * Keep all power wells enabled for any dependent HW access during | 3781 | * Keep all power wells enabled for any dependent HW access during |
