diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-06-12 18:54:59 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-06-18 08:05:20 -0400 |
commit | 3eff4faa9f59c581538663e3f42b9e16210cafd0 (patch) | |
tree | 7f2b87ba186124797e52af8bc5d0ecfff6cfa30a /drivers/gpu/drm/i915/intel_display.c | |
parent | 9f11a9e4e50006b615ba94722dfc33ced89664cf (diff) |
drm/i915: explicitly set up PIPECONF (and gamma table) on haswell
Again we don't really support different settings, so don't let the
BIOS sneak stuff through.
Since the motivation for this patch series is to ensure we have the
correct gamma table mode selected also add the required write to the
GAMMA_MODE register to select the 8bit legacy table.
And since I find lowercase letters in #defines offensive, also
bikeshed those.
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index a6b4bee9034c..06b1180c4c16 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -5437,13 +5437,11 @@ static void haswell_set_pipeconf(struct drm_crtc *crtc) | |||
5437 | enum transcoder cpu_transcoder = intel_crtc->config.cpu_transcoder; | 5437 | enum transcoder cpu_transcoder = intel_crtc->config.cpu_transcoder; |
5438 | uint32_t val; | 5438 | uint32_t val; |
5439 | 5439 | ||
5440 | val = I915_READ(PIPECONF(cpu_transcoder)); | 5440 | val = 0; |
5441 | 5441 | ||
5442 | val &= ~(PIPECONF_DITHER_EN | PIPECONF_DITHER_TYPE_MASK); | ||
5443 | if (intel_crtc->config.dither) | 5442 | if (intel_crtc->config.dither) |
5444 | val |= (PIPECONF_DITHER_EN | PIPECONF_DITHER_TYPE_SP); | 5443 | val |= (PIPECONF_DITHER_EN | PIPECONF_DITHER_TYPE_SP); |
5445 | 5444 | ||
5446 | val &= ~PIPECONF_INTERLACE_MASK_HSW; | ||
5447 | if (intel_crtc->config.adjusted_mode.flags & DRM_MODE_FLAG_INTERLACE) | 5445 | if (intel_crtc->config.adjusted_mode.flags & DRM_MODE_FLAG_INTERLACE) |
5448 | val |= PIPECONF_INTERLACED_ILK; | 5446 | val |= PIPECONF_INTERLACED_ILK; |
5449 | else | 5447 | else |
@@ -5451,6 +5449,9 @@ static void haswell_set_pipeconf(struct drm_crtc *crtc) | |||
5451 | 5449 | ||
5452 | I915_WRITE(PIPECONF(cpu_transcoder), val); | 5450 | I915_WRITE(PIPECONF(cpu_transcoder), val); |
5453 | POSTING_READ(PIPECONF(cpu_transcoder)); | 5451 | POSTING_READ(PIPECONF(cpu_transcoder)); |
5452 | |||
5453 | I915_WRITE(GAMMA_MODE(intel_crtc->pipe), GAMMA_MODE_MODE_8BIT); | ||
5454 | POSTING_READ(GAMMA_MODE(intel_crtc->pipe)); | ||
5454 | } | 5455 | } |
5455 | 5456 | ||
5456 | static bool ironlake_compute_clocks(struct drm_crtc *crtc, | 5457 | static bool ironlake_compute_clocks(struct drm_crtc *crtc, |