aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2013-08-21 11:08:55 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-08-23 08:52:32 -0400
commit3414caf63421762e57b26aa999e5187b42ee1606 (patch)
treeb0589b487c2597452524ed71f3fba75313565d7d
parent5032d871f7d300aee10c309ea004eb4f851553fe (diff)
drm/i915: drop WaMbcDriverBootEnable workaround
Turns out the BIOS will do this for us as needed, and if we try to do it again we risk hangs or other bad behavior. Note that this seems to break libva on ChromeOS after resumes (but strangely _not_ after booting up). This essentially reverts commit b4ae3f22d238617ca11610b29fde16cf8c0bc6e0 Author: Jesse Barnes <jbarnes@virtuousgeek.org> Date: Thu Jun 14 11:04:48 2012 -0700 drm/i915: load boot context at driver init time and commit b3bf076697a68a8577f4a5f7407de0bb2b3b56ac Author: Paulo Zanoni <paulo.r.zanoni@intel.com> Date: Tue Nov 20 13:27:44 2012 -0200 drm/i915: implement WaMbcDriverBootEnable on Haswell Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Reported-and-Tested-by: Stéphane Marchesin <marcheu@chromium.org> [danvet: Add note about impact and regression citation.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/intel_pm.c17
1 files changed, 0 insertions, 17 deletions
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 4f0857346bfd..cbab95dce352 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -4864,10 +4864,6 @@ static void gen6_init_clock_gating(struct drm_device *dev)
4864 ILK_DPARBUNIT_CLOCK_GATE_ENABLE | 4864 ILK_DPARBUNIT_CLOCK_GATE_ENABLE |
4865 ILK_DPFDUNIT_CLOCK_GATE_ENABLE); 4865 ILK_DPFDUNIT_CLOCK_GATE_ENABLE);
4866 4866
4867 /* WaMbcDriverBootEnable:snb */
4868 I915_WRITE(GEN6_MBCTL, I915_READ(GEN6_MBCTL) |
4869 GEN6_MBCTL_ENABLE_BOOT_FETCH);
4870
4871 g4x_disable_trickle_feed(dev); 4867 g4x_disable_trickle_feed(dev);
4872 4868
4873 /* The default value should be 0x200 according to docs, but the two 4869 /* The default value should be 0x200 according to docs, but the two
@@ -4963,10 +4959,6 @@ static void haswell_init_clock_gating(struct drm_device *dev)
4963 I915_WRITE(CACHE_MODE_1, 4959 I915_WRITE(CACHE_MODE_1,
4964 _MASKED_BIT_ENABLE(PIXEL_SUBSPAN_COLLECT_OPT_DISABLE)); 4960 _MASKED_BIT_ENABLE(PIXEL_SUBSPAN_COLLECT_OPT_DISABLE));
4965 4961
4966 /* WaMbcDriverBootEnable:hsw */
4967 I915_WRITE(GEN6_MBCTL, I915_READ(GEN6_MBCTL) |
4968 GEN6_MBCTL_ENABLE_BOOT_FETCH);
4969
4970 /* WaSwitchSolVfFArbitrationPriority:hsw */ 4962 /* WaSwitchSolVfFArbitrationPriority:hsw */
4971 I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL); 4963 I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);
4972 4964
@@ -5050,10 +5042,6 @@ static void ivybridge_init_clock_gating(struct drm_device *dev)
5050 5042
5051 g4x_disable_trickle_feed(dev); 5043 g4x_disable_trickle_feed(dev);
5052 5044
5053 /* WaMbcDriverBootEnable:ivb */
5054 I915_WRITE(GEN6_MBCTL, I915_READ(GEN6_MBCTL) |
5055 GEN6_MBCTL_ENABLE_BOOT_FETCH);
5056
5057 /* WaVSRefCountFullforceMissDisable:ivb */ 5045 /* WaVSRefCountFullforceMissDisable:ivb */
5058 gen7_setup_fixed_func_scheduler(dev_priv); 5046 gen7_setup_fixed_func_scheduler(dev_priv);
5059 5047
@@ -5113,11 +5101,6 @@ static void valleyview_init_clock_gating(struct drm_device *dev)
5113 I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) | 5101 I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
5114 GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB); 5102 GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB);
5115 5103
5116 /* WaMbcDriverBootEnable:vlv */
5117 I915_WRITE(GEN6_MBCTL, I915_READ(GEN6_MBCTL) |
5118 GEN6_MBCTL_ENABLE_BOOT_FETCH);
5119
5120
5121 /* According to the BSpec vol1g, bit 12 (RCPBUNIT) clock 5104 /* According to the BSpec vol1g, bit 12 (RCPBUNIT) clock
5122 * gating disable must be set. Failure to set it results in 5105 * gating disable must be set. Failure to set it results in
5123 * flickering pixels due to Z write ordering failures after 5106 * flickering pixels due to Z write ordering failures after