[stable] PATCH drm/i915/lvds: ditch ->prepare special case
Haitao Zhang
haitao.zhang at canonical.com
Wed Aug 14 14:44:35 UTC 2013
This commit fixed the following bug:
https://bugs.launchpad.net/ubuntu/quantal/+source/linux/+bug/1103856
originally affected on Thinkpad M490s laptop with v3.2 kernel,
the patch also applicable on v3.2.50, v3.4.57 stable kernel and
3.5.y.z extended stable kernel, since it was merged into v3.6 kernel officially.
the test was based on Ironlake laptop Thinkpad v490s and
pre-Ironlake laptop Thinkpad X200 with all the stable kernel listed above.
commit 520c41cf2fa029d1e8b923ac2026f96664f17c4b
Author: Daniel Vetter <daniel.vetter at ffwll.ch>
Date: Wed Jul 11 16:27:52 2012 +0200
drm/i915/lvds: ditch ->prepare special case
LVDS is the first output where dpms on/off and prepare/commit don't
perfectly match. Now the idea behind this special case seems to be
that for simple resolution changes on the LVDS we don't need to stop
the pipe, because (at least on newer chips) we can adjust the panel
fitter on the fly.
There are a few problems with the current code though:
- We still stop and restart the pipe unconditionally, because the
crtc
helper code isn't flexible enough.
- We show some ugly flickering, especially when changing crtcs (this
the crtc helper would actually take into account, but we don't
implement the encoder->get_crtc callback required to make this
work
properly).
So it doesn't even work as advertised. I agree that it would be nice
to do resolution changes on LVDS (and also eDP) whithout blacking
the
screen where the panel fitter allows to do that. But imo we should
implement this as a special case a few layers up in the mode set
code,
akin to how we already detect simple framebuffer changes (and only
update the required registers with ->mode_set_base).
Until this is all in place, make our lives easier and just rip it
out.
Also note that this seems to fix actual bugs with enabling the lvds
output, see:
http://lists.freedesktop.org/archives/intel-gfx/2012-July/018614.html
Cc: Takashi Iwai <tiwai at suse.de>
Cc: Giacomo Comes <comes at naic.edu>
Acked-by: Chris Wilson <chris at chris-wilson.co.uk>
Tested-by: Takashi Iwai <tiwai at suse.de>
Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
More information about the kernel-team
mailing list