[Intel-gfx] [PATCH 3/3] drm/i915: explicitly set up PIPECONF (and gamma table) on haswell
Daniel Vetter
daniel at ffwll.ch
Thu Jun 13 12:01:40 CEST 2013
On Thu, Jun 13, 2013 at 10:57:52AM +0300, Ville Syrjälä wrote:
> On Thu, Jun 13, 2013 at 12:54:59AM +0200, Daniel Vetter wrote:
> > 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.
> >
> > Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> > ---
> > drivers/gpu/drm/i915/i915_reg.h | 6 +++---
> > drivers/gpu/drm/i915/intel_display.c | 7 ++++---
> > 2 files changed, 7 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> > index 01e8783..8136b00 100644
> > --- a/drivers/gpu/drm/i915/i915_reg.h
> > +++ b/drivers/gpu/drm/i915/i915_reg.h
> > @@ -3670,9 +3670,9 @@
> > #define _GAMMA_MODE_B 0x4ac80
> > #define GAMMA_MODE(pipe) _PIPE(pipe, _GAMMA_MODE_A, _GAMMA_MODE_B)
> > #define GAMMA_MODE_MODE_MASK (3 << 0)
> > -#define GAMMA_MODE_MODE_8bit (0 << 0)
> > -#define GAMMA_MODE_MODE_10bit (1 << 0)
> > -#define GAMMA_MODE_MODE_12bit (2 << 0)
> > +#define GAMMA_MODE_MODE_8BIT (0 << 0)
> > +#define GAMMA_MODE_MODE_10BIT (1 << 0)
> > +#define GAMMA_MODE_MODE_12BIT (2 << 0)
> > #define GAMMA_MODE_MODE_SPLIT (3 << 0)
> >
> > /* interrupts */
> > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> > index 4ca0273..e1184eb 100644
> > --- a/drivers/gpu/drm/i915/intel_display.c
> > +++ b/drivers/gpu/drm/i915/intel_display.c
> > @@ -5393,13 +5393,11 @@ static void haswell_set_pipeconf(struct drm_crtc *crtc)
> > enum transcoder cpu_transcoder = intel_crtc->config.cpu_transcoder;
> > uint32_t val;
> >
> > - val = I915_READ(PIPECONF(cpu_transcoder));
> > + val = 0;
> >
> > - val &= ~(PIPECONF_DITHER_EN | PIPECONF_DITHER_TYPE_MASK);
> > if (intel_crtc->config.dither)
> > val |= (PIPECONF_DITHER_EN | PIPECONF_DITHER_TYPE_SP);
> >
> > - val &= ~PIPECONF_INTERLACE_MASK_HSW;
> > if (intel_crtc->config.adjusted_mode.flags & DRM_MODE_FLAG_INTERLACE)
> > val |= PIPECONF_INTERLACED_ILK;
> > else
> > @@ -5407,6 +5405,9 @@ static void haswell_set_pipeconf(struct drm_crtc *crtc)
> >
> > I915_WRITE(PIPECONF(cpu_transcoder), val);
> > POSTING_READ(PIPECONF(cpu_transcoder));
> > +
> > + I915_WRITE(GAMMA_MODE(intel_crtc->pipe), GAMMA_MODE_MODE_8BIT);
> > + POSTING_READ(GAMMA_MODE(intel_crtc->pipe));
>
> Why the POSTING_READ()? In fact, why do we have any posting reads in
> xxx_set_pipeconf()?
Cargo-culting at its best ;-) But I think cleaning that up is best left to
another series ...
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
More information about the Intel-gfx
mailing list