Hello community, here is the log from the commit of package xorg-x11-driver-video checked in at Sat Apr 14 01:05:55 CEST 2007. -------- --- xorg-x11-driver-video/xorg-x11-driver-video.changes 2007-04-12 20:44:20.000000000 +0200 +++ /mounts/work_src_done/STABLE/xorg-x11-driver-video/xorg-x11-driver-video.changes 2007-04-13 20:57:21.226063000 +0200 @@ -1,0 +2,9 @@ +Fri Apr 13 20:55:38 CEST 2007 - sndirsch@suse.de + +- bug-263199_radeon-autocrt.diff: + * When a monitor in MonitorLayout is specified as "AUTOCRT", it + is set to CRT if no monitor is found at all and the connector + type allows for VGA monitors (that is: only on VGA, DVI-I, + DVI-A). (Bug #263199) + +------------------------------------------------------------------- New: ---- bug-263199_radeon-autocrt.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xorg-x11-driver-video.spec ++++++ --- /var/tmp/diff_new_pack.e27286/_old 2007-04-14 01:04:30.000000000 +0200 +++ /var/tmp/diff_new_pack.e27286/_new 2007-04-14 01:04:30.000000000 +0200 @@ -14,7 +14,7 @@ BuildRequires: Mesa-devel libdrm-devel pkgconfig xorg-x11-proto-devel xorg-x11-server-sdk URL: http://xorg.freedesktop.org/ Version: 7.2 -Release: 78 +Release: 79 License: X11/MIT BuildRoot: %{_tmppath}/%{name}-%{version}-build Group: System/X11/Servers/XF86_4 @@ -90,6 +90,7 @@ Patch30: xf86-video-mga.randr12.diff Patch31: xf86-video-ati-6.6.191.diff Patch32: bug-263199_radeon-mergedfb-crash.diff +Patch33: bug-263199_radeon-autocrt.diff %description This package contains X.Org video drivers. @@ -120,6 +121,9 @@ %patch31 -p0 %patch32 -p2 popd +pushd xf86-video-ati-* +%patch33 -p1 +popd pushd xf86-video-nv-*/src %patch3 -p6 popd @@ -264,6 +268,12 @@ %{_mandir}/man4/* %changelog +* Fri Apr 13 2007 - sndirsch@suse.de +- bug-263199_radeon-autocrt.diff: + * When a monitor in MonitorLayout is specified as "AUTOCRT", it + is set to CRT if no monitor is found at all and the connector + type allows for VGA monitors (that is: only on VGA, DVI-I, + DVI-A). (Bug #263199) * Thu Apr 12 2007 - sndirsch@suse.de - bug-263199_radeon-mergedfb-crash.diff: * fixed MergedFB related Xserver crash (Bug #263199) ++++++ bug-263199_radeon-autocrt.diff ++++++ diff --git a/man/radeon.man b/man/radeon.man index 447dcbe..a0297f1 100644 --- a/man/radeon.man +++ b/man/radeon.man @@ -229,13 +229,17 @@ This option is used to overwrite the det This is only required when driver makes a false detection. The possible monitor types are: .br -NONE \-\- Not connected +AUTO \-\- Autodetect .br -CRT \-\- Analog CRT monitor +AUTOCRT \-\- Autodetect, activate CRT if no monitor found .br -TMDS \-\- Desktop flat panel +NONE \-\- Not connected +.br +CRT \-\- Analog CRT monitor +.br +TMDS \-\- Desktop flat panel .br -LVDS \-\- Laptop flat panel +LVDS \-\- Laptop flat panel .br This option can be used in following format: .br diff --git a/src/radeon_display.c b/src/radeon_display.c index d661c17..9491b45 100644 --- a/src/radeon_display.c +++ b/src/radeon_display.c @@ -49,7 +49,8 @@ extern int getRADEONEntityIndex(void); -const char *MonTypeName[7] = { +const char *MonTypeName[8] = { + "AUTOCRT", "AUTO", "NONE", "CRT", @@ -59,7 +60,8 @@ const char *MonTypeName[7] = { "STV" }; -const RADEONMonitorType MonTypeID[7] = { +const RADEONMonitorType MonTypeID[8] = { + MT_UNKNOWN_FORCECRT, MT_UNKNOWN, /* this is just a dummy value for AUTO DETECTION */ MT_NONE, /* NONE -> NONE */ MT_CRT, /* CRT -> CRT */ @@ -927,7 +929,7 @@ void RADEONSetupConnectors(ScrnInfoPtr p RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); const char *s; Bool ignore_edid = FALSE; - int i = 0, second = 0, max_mt = 5; + int i = 0, second = 0, max_mt = 6; /* We first get the information about all connectors from BIOS. * This is how the card is phyiscally wired up. @@ -1051,7 +1053,7 @@ void RADEONSetupConnectors(ScrnInfoPtr p * after the X server has started. */ if ((s = xf86GetOptValString(info->Options, OPTION_MONITOR_LAYOUT))) { - char s1[5], s2[5]; + char s1[8], s2[8]; i = 0; /* When using user specified monitor types, we will not do DDC detection * @@ -1076,7 +1078,7 @@ void RADEONSetupConnectors(ScrnInfoPtr p i++; break; } - if (i > 4) i = 4; + if (i > 7) i = 7; } while(*s++); s2[i] = '\0'; @@ -1189,6 +1191,16 @@ static void RADEONQueryConnectedDisplays RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); const char *s; Bool ignore_edid = FALSE; + Bool forcecrt[2]; + int i; + + for (i = 0; i < 2; i++) { + forcecrt[i] = FALSE; + if (pRADEONEnt->PortInfo[i]->MonType == MT_UNKNOWN_FORCECRT) { + forcecrt[i] = TRUE; + pRADEONEnt->PortInfo[i]->MonType = MT_UNKNOWN; + } + } /* IgnoreEDID option is different from the NoDDCxx options used by DDC module * When IgnoreEDID is used, monitor detection will still use DDC @@ -1259,6 +1271,24 @@ static void RADEONQueryConnectedDisplays } + for (i = 0; i < 2; i++) { + if (forcecrt[i] && pRADEONEnt->PortInfo[i]->MonType == MT_NONE) { + int a = info->IsAtomBios; + int c = pRADEONEnt->PortInfo[i]->ConnectorType; + if ((!a && (c == CONNECTOR_CRT || c == CONNECTOR_DVI_I)) || + (a && (c == CONNECTOR_VGA_ATOM || c == CONNECTOR_DVI_I_ATOM || + c == CONNECTOR_DVI_A_ATOM))) { + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Port%d forced to CRT\n", i+1); + pRADEONEnt->PortInfo[i]->MonType = MT_CRT; + } else { + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Port%d not forced to CRT due to connector\n", + i+1); + } + } + } + if(ignore_edid) { pRADEONEnt->PortInfo[0]->MonInfo = NULL; pRADEONEnt->PortInfo[1]->MonInfo = NULL; @@ -1297,7 +1327,7 @@ Bool RADEONMapControllers(ScrnInfoPtr pS xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Port1:\n Monitor -- %s\n Connector -- %s\n DAC Type -- %s\n TMDS Type -- %s\n DDC Type -- %s\n", - MonTypeName[pRADEONEnt->PortInfo[0]->MonType+1], + MonTypeName[pRADEONEnt->PortInfo[0]->MonType+2], info->IsAtomBios ? ConnectorTypeNameATOM[pRADEONEnt->PortInfo[0]->ConnectorType]: ConnectorTypeName[pRADEONEnt->PortInfo[0]->ConnectorType], @@ -1307,7 +1337,7 @@ Bool RADEONMapControllers(ScrnInfoPtr pS xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Port2:\n Monitor -- %s\n Connector -- %s\n DAC Type -- %s\n TMDS Type -- %s\n DDC Type -- %s\n", - MonTypeName[pRADEONEnt->PortInfo[1]->MonType+1], + MonTypeName[pRADEONEnt->PortInfo[1]->MonType+2], info->IsAtomBios ? ConnectorTypeNameATOM[pRADEONEnt->PortInfo[1]->ConnectorType]: ConnectorTypeName[pRADEONEnt->PortInfo[1]->ConnectorType], @@ -1360,6 +1390,11 @@ Bool RADEONMapControllers(ScrnInfoPtr pS if (pRADEONEnt->HasSecondary && pRADEONEnt->PortInfo[1]->MonType == MT_NONE) { pRADEONEnt->HasSecondary = FALSE; } + } else { + if (pRADEONEnt->PortInfo[0]->MonType == MT_UNKNOWN_FORCECRT) + pRADEONEnt->PortInfo[0]->MonType = MT_UNKNOWN; + if (pRADEONEnt->PortInfo[1]->MonType == MT_UNKNOWN_FORCECRT) + pRADEONEnt->PortInfo[1]->MonType = MT_UNKNOWN; } if(pRADEONEnt->HasCRTC2) { diff --git a/src/radeon_probe.h b/src/radeon_probe.h index f446516..b470b25 100644 --- a/src/radeon_probe.h +++ b/src/radeon_probe.h @@ -53,6 +53,7 @@ typedef enum typedef enum { + MT_UNKNOWN_FORCECRT = -2, MT_UNKNOWN = -1, MT_NONE = 0, MT_CRT = 1, ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org