diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-04-11 14:42:38 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-04-17 05:19:52 -0400 |
commit | de4a8bd16205283e9cb746e8fbfa7f9735c039b5 (patch) | |
tree | 4c9f0ba6aec0d92a81f5032c1d49917de5081e87 /drivers | |
parent | 767878908e7cc28c440c5431f6591157d8bd4ae7 (diff) |
drm/i915: implement a media hang w/a
Contrary to the other clock gating w/a in GEN6_UCGCTL1, this one is
actually documented in Bspec, vol1g "GT Interface Registers [SNB]",
Section 1.5.1 "UCGCTL1 - Unit Level Clock Gating Control 1".
Supposedly this can prevent hangs on the media ring.
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/i915/i915_reg.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 3f7fc4629363..1124e4f594f5 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h | |||
@@ -3893,6 +3893,7 @@ | |||
3893 | 3893 | ||
3894 | #define GEN6_UCGCTL1 0x9400 | 3894 | #define GEN6_UCGCTL1 0x9400 |
3895 | # define GEN6_BLBUNIT_CLOCK_GATE_DISABLE (1 << 5) | 3895 | # define GEN6_BLBUNIT_CLOCK_GATE_DISABLE (1 << 5) |
3896 | # define GEN6_CSUNIT_CLOCK_GATE_DISABLE (1 << 7) | ||
3896 | 3897 | ||
3897 | #define GEN6_UCGCTL2 0x9404 | 3898 | #define GEN6_UCGCTL2 0x9404 |
3898 | # define GEN6_RCZUNIT_CLOCK_GATE_DISABLE (1 << 13) | 3899 | # define GEN6_RCZUNIT_CLOCK_GATE_DISABLE (1 << 13) |
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 2d0dc27323c1..813cc3cda059 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -8880,7 +8880,8 @@ static void gen6_init_clock_gating(struct drm_device *dev) | |||
8880 | 8880 | ||
8881 | I915_WRITE(GEN6_UCGCTL1, | 8881 | I915_WRITE(GEN6_UCGCTL1, |
8882 | I915_READ(GEN6_UCGCTL1) | | 8882 | I915_READ(GEN6_UCGCTL1) | |
8883 | GEN6_BLBUNIT_CLOCK_GATE_DISABLE); | 8883 | GEN6_BLBUNIT_CLOCK_GATE_DISABLE | |
8884 | GEN6_CSUNIT_CLOCK_GATE_DISABLE); | ||
8884 | 8885 | ||
8885 | /* According to the BSpec vol1g, bit 12 (RCPBUNIT) clock | 8886 | /* According to the BSpec vol1g, bit 12 (RCPBUNIT) clock |
8886 | * gating disable must be set. Failure to set it results in | 8887 | * gating disable must be set. Failure to set it results in |