[Bug 1514] (radeon) monitor resolution/frequency is locked
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Wed Oct 13 05:39:16 PDT 2004
Please do not reply to this email: if you want to comment on the bug, go to
the URL shown below and enter yourcomments there.
https://freedesktop.org/bugzilla/show_bug.cgi?id=1514
------- Additional Comments From mharris at www.linux.org.uk 2004-10-13 05:39 -------
RADEONQueryConnectedMonitors() calls RADEONGetConnectorInfoFromBIOS() which
fails with FALSE in the following code for a LegacyBIOS:
} else {
if ((tmp = RADEON_BIOS16(info->ROMHeaderStart + 0x50))) {
for (i = 1; i < 4; i++) {
if (!RADEON_BIOS8(tmp + i*2) && i > 1) break; /* end of table */
tmp0 = RADEON_BIOS16(tmp + i*2);
if (((tmp0 >> 12) & 0x1f) == 0) continue; /* no connector */
/* internal DDC_DVI port will get assigned to PortInfo[0], or if
there is no DDC_DVI (like in some IGPs). */
tmp1 = ((((tmp0 >> 8) & 0xf) == DDC_DVI) || (tmp1 == 1)) ? 0 :
1; /* determine port info index */
pRADEONEnt->PortInfo[tmp1].DDCType = (tmp0 >> 8) & 0x0f;
if (pRADEONEnt->PortInfo[tmp1].DDCType > DDC_CRT2)
pRADEONEnt->PortInfo[tmp1].DDCType = DDC_NONE_DETECTED;
pRADEONEnt->PortInfo[tmp1].DACType = (tmp0 & 0x01) ?
DAC_TVDAC : DAC_PRIMARY;
pRADEONEnt->PortInfo[tmp1].ConnectorType = (tmp0 >> 12) & 0x0f;
if (pRADEONEnt->PortInfo[tmp1].ConnectorType >
CONNECTOR_UNSUPPORTED) pRADEONEnt->PortInfo[tmp1].ConnectorType =
CONNECTOR_UNSUPPORTED;
pRADEONEnt->PortInfo[tmp1].TMDSType = ((tmp0 >> 4) & 0x01)
? TMDS_EXT : TMDS_INT;
/* some sanity checks */
if (((pRADEONEnt->PortInfo[tmp1].ConnectorType !=
CONNECTOR_DVI_D) &&
(pRADEONEnt->PortInfo[tmp1].ConnectorType !=
CONNECTOR_DVI_I)) &&
pRADEONEnt->PortInfo[tmp1].TMDSType == TMDS_INT)
pRADEONEnt->PortInfo[tmp1].TMDSType = TMDS_UNKNOWN;
xf86DrvMsg(0, X_INFO, "Connector%d: DDCType-%d, DACType-%d,
TMDSType-%d, ConnectorType-%d\n",
tmp1, pRADEONEnt->PortInfo[tmp1].DDCType,
pRADEONEnt->PortInfo[tmp1].DACType,
pRADEONEnt->PortInfo[tmp1].TMDSType,
pRADEONEnt->PortInfo[tmp1].ConnectorType);
}
} else {
xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "No Connector Info Table
found!\n");
return FALSE;
}
This causes the Connector Info Table message we see in the log file to
get output. Back in RADEONQueryConnectedMonitors(), the following is
what is executed for this block above:
if (!RADEONGetConnectorInfoFromBIOS(pScrn)) {
/* Below is the most common setting, but may not be true */
pRADEONEnt->PortInfo[0].MonType = MT_UNKNOWN;
pRADEONEnt->PortInfo[0].MonInfo = NULL;
pRADEONEnt->PortInfo[0].DDCType = DDC_DVI;
pRADEONEnt->PortInfo[0].DACType = DAC_TVDAC;
pRADEONEnt->PortInfo[0].TMDSType = TMDS_INT;
pRADEONEnt->PortInfo[0].ConnectorType = CONNECTOR_DVI_D;
pRADEONEnt->PortInfo[1].MonType = MT_UNKNOWN;
pRADEONEnt->PortInfo[1].MonInfo = NULL;
pRADEONEnt->PortInfo[1].DDCType = DDC_VGA;
pRADEONEnt->PortInfo[1].DACType = DAC_PRIMARY;
pRADEONEnt->PortInfo[1].TMDSType = TMDS_EXT;
pRADEONEnt->PortInfo[1].ConnectorType = CONNECTOR_CRT;
}
The comment there "Below is the most common setting, but may not be true"
definitely seems to not be true for a Radeon 7200, as it has one single
head, and is not DVI.
--
Configure bugmail: https://freedesktop.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
More information about the xorg-bugzilla-noise
mailing list