[Intel-gfx] [PATCH] drm/i915: fix up readout of the lvds dither bit on gen2/3
Daniel Vetter
daniel at ffwll.ch
Thu Jul 11 19:22:21 CEST 2013
On Thu, Jul 11, 2013 at 06:29:15PM +0200, Knut Petersen wrote:
> On 11.07.2013 13:49, Chris Wilson wrote:
> >On Thu, Jul 11, 2013 at 01:35:40PM +0200, Daniel Vetter wrote:
> >>It's in the PFIT_CONTROL register, but very much associated with the
> >>lvds encoder. So move the readout for it (in the case of an otherwise
> >>disabled pfit) from the pipe to the lvds encoder's get_config
> >>function.
> >>
> >>Otherwise we get a pipe state mismatch if we use pipe B for a non-lvds
> >>output and we've left the dither bit enabled behind us. This can
> >>happen if the BIOS has set the bit (some seem to unconditionally do
> >>that, even in the complete absence of an lvds port), but not enabled
> >>pipe B at boot-up. Then we won't clear the pfit control register since
> >>we can only touch that if the pfit is associated with our pipe in the
> >>crtc configuration - we could trample over the pfit state of the other
> >>pipe otherwise since it's shared. Once pipe B is enabled we notice
> >>that the 6to8 dither bit is set and complain about the mismatch.
> >>
> >>Note that testing indicates that we don't actually need to set this
> >>bit when the pfit is disabled, dithering on 18bpp panels seems to work
> >>regardless. But ripping that code out is not something for a bugfix
> >>meant for -rc kernels.
> >>
> >>v2: While at it clarify the logic in i9xx_get_pfit_config, spurred by
> >>comments from Chris on irc.
> >>
> >>v3: Use Chris suggestion to make the control flow in
> >>i9xx_get_pfit_config easier to understand.
> >>
> >>v4: Kill the extra line, spotted by Chris.
> >>
> >>Reported-by: Knut Petersen <Knut_Petersen at t-online.de>
> >>Cc: Knut Petersen <Knut_Petersen at t-online.de>
> >>Cc: Chris Wilson <chris at chris-wilson.co.uk>
> >>References: http://lists.freedesktop.org/archives/intel-gfx/2013-July/030092.html
> >>Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> >Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
> >-Chris
> >
>
> Tested-by: Knut Petersen <Knut_Petersen at t-online.de>
>
> Thanks, that patch cures both inital boot and suspend/resume problems.
> Attached find dmesg (inital boot) and dmesg2 (suspend/resume cycle).
Thanks for testing and reporting this issue, patch is merged into my
-fixes queue now.
Thanks, 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