diff options
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_reg.h | 2 |
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 1417fc6c28ee..d554b2171df0 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
@@ -4010,7 +4010,16 @@ int i915_gem_init(struct drm_device *dev) | |||
4010 | int ret; | 4010 | int ret; |
4011 | 4011 | ||
4012 | mutex_lock(&dev->struct_mutex); | 4012 | mutex_lock(&dev->struct_mutex); |
4013 | |||
4014 | if (IS_VALLEYVIEW(dev)) { | ||
4015 | /* VLVA0 (potential hack), BIOS isn't actually waking us */ | ||
4016 | I915_WRITE(VLV_GTLC_WAKE_CTRL, 1); | ||
4017 | if (wait_for((I915_READ(VLV_GTLC_PW_STATUS) & 1) == 1, 10)) | ||
4018 | DRM_DEBUG_DRIVER("allow wake ack timed out\n"); | ||
4019 | } | ||
4020 | |||
4013 | i915_gem_init_global_gtt(dev); | 4021 | i915_gem_init_global_gtt(dev); |
4022 | |||
4014 | ret = i915_gem_init_hw(dev); | 4023 | ret = i915_gem_init_hw(dev); |
4015 | mutex_unlock(&dev->struct_mutex); | 4024 | mutex_unlock(&dev->struct_mutex); |
4016 | if (ret) { | 4025 | if (ret) { |
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 4cf3eceb5153..f187b60739ed 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h | |||
@@ -4150,6 +4150,8 @@ | |||
4150 | #define FORCEWAKE_ACK_VLV 0x1300b4 | 4150 | #define FORCEWAKE_ACK_VLV 0x1300b4 |
4151 | #define FORCEWAKE_ACK_HSW 0x130044 | 4151 | #define FORCEWAKE_ACK_HSW 0x130044 |
4152 | #define FORCEWAKE_ACK 0x130090 | 4152 | #define FORCEWAKE_ACK 0x130090 |
4153 | #define VLV_GTLC_WAKE_CTRL 0x130090 | ||
4154 | #define VLV_GTLC_PW_STATUS 0x130094 | ||
4153 | #define FORCEWAKE_MT 0xa188 /* multi-threaded */ | 4155 | #define FORCEWAKE_MT 0xa188 /* multi-threaded */ |
4154 | #define FORCEWAKE_KERNEL 0x1 | 4156 | #define FORCEWAKE_KERNEL 0x1 |
4155 | #define FORCEWAKE_USER 0x2 | 4157 | #define FORCEWAKE_USER 0x2 |