Intel driver accesses reserved register bit SDVOC/SDVO_DETECTED
pgarrone at optusnet.com.au
Fri Dec 12 00:56:37 PST 2008
On Thu, Dec 11, 2008 at 12:23:56PM -0800, Eric Anholt wrote:
> On Tue, 2008-11-18 at 09:43 +1100, garrone wrote:
> > Using the intel driver on a GM45 device, with monitors
> > connected to the TMDS1/2 outputs, it was found that
> > the xserver was refusing to accept the option
> > option "Monitor-TMDS-2" "<monitor-id>"
> > and also leaving the second screen rather blank.
> > Eventually, it was found that at xf86-video-intel::src/i830_driver.c,
> > function I830SetupOutputs, line 922, the register SDVOC is anded with
> > the SDVO_DETECTED mask in order to detect if a monitor was connected at
> > startup. This register bit was clear, causing the screen to be missed.
> > A careful reading of the intel documentation shows that while this bit
> > indicates an initially detected connected monitor for SDVOB,
> > in fact it is reserved in the SDVOC register, and should therefore be
> > ignored.
> > So to cause the second monitor to be enabled, the
> > option ForceSDVODetect, false by default, should be set to true.
> > Perhaps consideration could be given to defaulting this option to true,
> > or even ignoring such initialization bits as SDVO_DETECTED altogether.
> It's true that the bit is reserved for G/GM965, but not for G/GM45.
> Also, (still) by my reading, it's not about a monitor being connected at
> startup, but the SDVO chip being present.
> Eric Anholt
> eric at anholt.net eric.anholt at intel.com
The documentation I downloaded says, for the sDVO/HDMIB register Digital Display Port B Control Register,
the bit means:
"Digital Port B Detected:Read-only bit indicating whether a digital port B was detected during initialization.
It signifies the level of the GMBUS port 4 (sDVO B/C) data line at boot. This bit is valid regardless of whether
the port is enabled."
I assumed this indicated whether a display was connected at boot.
I take your work for it that it means something else.
More information about the xorg