[Intel-gfx] [PATCH 1/2] drm/i915: Check VBIOS value for determining LVDS dual channel mode, too
tiwai at suse.de
Tue Mar 20 05:04:41 PDT 2012
At Tue, 20 Mar 2012 11:01:22 +0100,
Daniel Vetter wrote:
> On Mon, Mar 19, 2012 at 12:07:36PM +0100, Takashi Iwai wrote:
> > Currently i915 driver checks [PCH_]LVDS register bits to decide
> > whether to set up the dual-link or the single-link mode. This relies
> > implicitly on that BIOS initializes the register properly at boot.
> > However, BIOS doesn't initialize it always. When the machine is
> > booted with the closed lid, BIOS skips the LVDS reg initialization.
> > This ends up in blank output on a machine with a dual-link LVDS when
> > you open the lid after the boot.
> > This patch adds a workaround for that problem by checking the initial
> > LVDS register value in VBT.
> > Reviewed-by: Rodrigo Vivi <rodrigo.vivi at gmail.com>
> > Reviewed-by: Adam Jackson <ajax at redhat.com>
> > Signed-off-by: Takashi Iwai <tiwai at suse.de>
> If I understand Keith correctly he would like this to only get used when
> the lid is closed and the panel is off. But I don't see that mention in
> you change log nor can I find how it works in the code. Has this been lost
> or am I confused?
Then I just overlooked that part in Keith's comment.
Since checking the lid state is tricky and unreliable, the practical
check would be simply reading the first LVDS reg and seeing whether it
was initialized or not. It seems that it reads to 0x02 when booted
with the lid close, which is LVDS_DETECTED bit.
I'll resend the patches again with that fix.
More information about the Intel-gfx