[Intel-gfx] [PATCH] drm/i915: don't clobber the special upscaling lvds timings

Daniel Vetter daniel at ffwll.ch
Sat Apr 14 18:54:46 CEST 2012


On Sat, Apr 14, 2012 at 05:43:49PM +0100, Chris Wilson wrote:
> On Sat, 14 Apr 2012 18:17:57 +0200, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> > This regression has been introduced in
> > 
> > commit ca9bfa7eed20ea34e862804e62aae10eb159edbb
> > Author: Daniel Vetter <daniel.vetter at ffwll.ch>
> > Date:   Sat Jan 28 14:49:20 2012 +0100
> > 
> >     drm/i915: fixup interlaced vertical timings confusion, part 1
> > 
> > Unfortunately that commit failed to take into account that the lvds
> > code does some special adjustements to the crtc timings for upscaling
> > an centering.
> > 
> > Fix this by explicitly computing crtc timings in the lvds mode fixup
> > function and setting a special flag in mode->private_flags if the crtc
> > timings have been adjusted.
> 
> Whilst the patch does what it says on the tin, I think this just
> underlines the fact that our handling of crtcinfo is just wrong and
> consists of fragile hacks. :(

Actually I think it's much better now, we compute the crtc info only at
select places now
- encoder->mode_fixup (lvds only atm), this is required to set the new
  CRTC_TIMING_SET flag. In my grepping for the original cleanup patch I've
  failed to notice this, hence the regression.
- crtc->mode_fixup, but only when timings are not yet set (with this
  patch).
- some fixed modes we use for load detect and the fixed TV modes, I think
  these won't go through the above mode_fixup stuff, so I've left them
  out.

To contrast with the state before these two patches:
- No longer splattered all over (some of it was deep down in the encoder
  code, e.g. sdvo).
- No more stupid confusion about interlaced timings.

So imho things are better, but suggestions for further improvements always
highly welcome.

Cheers, Daniel
-- 
Daniel Vetter
Mail: daniel at ffwll.ch
Mobile: +41 (0)79 365 57 48



More information about the Intel-gfx mailing list