commit xorg-x11-driver-video for openSUSE:Factory
Hello community, here is the log from the commit of package xorg-x11-driver-video for openSUSE:Factory checked in at Fri Jan 9 02:20:35 CET 2009. -------- --- xorg-x11-driver-video/xorg-x11-driver-video.changes 2008-12-22 12:20:52.000000000 +0100 +++ /mounts/work_src_done/STABLE/xorg-x11-driver-video/xorg-x11-driver-video.changes 2009-01-05 17:02:34.822510722 +0100 @@ -2 +2,9 @@ -Mon Dec 22 12:20:45 CET 2008 - ro@suse.de +Mon Jan 5 17:01:20 CET 2009 - sndirsch@suse.de + +- xf86-video-intel-NoFBC-945GME.diff + * After some hours VGA external display stops working on + 945GME with FBC enabled. Thus disable it. For more details see: + http://bugs.freedesktop.org/show_bug.cgi?id=18821 (bnc #457623) + +------------------------------------------------------------------- +Mon Jan 5 15:42:52 CET 2009 - sndirsch@suse.de @@ -6,0 +15,31 @@ +Tue Dec 23 11:16:19 CET 2008 - sndirsch@suse.de + +- xf86-video-ati-es1000.diff + * version11: "Probably, I should apply the patch for 7000ve too, + just a little change. For IBM issue, driver will take care of + all modes validation, including monitor modes and graphics + modes and so on. Although it's xorg.conf responsibility. + +------------------------------------------------------------------- +Sun Dec 21 16:55:25 CET 2008 - sndirsch@suse.de + +- updated geode driver to release 2.11.0 (bnc #457182) + +------------------------------------------------------------------- +Fri Dec 19 11:15:22 CET 2008 - sndirsch@suse.de + +- xf86-video-ati-es1000.diff + * version10: Fix potential bug, if VGA is not connected DVI + maybe black; fix memory leak. + +------------------------------------------------------------------- +Thu Dec 18 22:15:37 CET 2008 - sndirsch@suse.de + +- xf86-video-ati-es1000.diff + * version8: includes new patch for black screen; root cause is + that for some monitors, xserver can't pick a CRTC for VGA + output, because of hw's limitation, now just cheat xserver. + Tested on SLES11 with IBM machine, DELL machine, and new + Xserver. + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- xf86-video-geode-2.10.1.tar.bz2 New: ---- xf86-video-geode-2.11.0.tar.bz2 xf86-video-intel-NoFBC-945GME.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xorg-x11-driver-video.spec ++++++ --- /var/tmp/diff_new_pack.K11757/_old 2009-01-09 02:19:40.000000000 +0100 +++ /var/tmp/diff_new_pack.K11757/_new 2009-01-09 02:19:40.000000000 +0100 @@ -22,7 +22,7 @@ BuildRequires: Mesa-devel libdrm-devel pkgconfig xorg-x11-proto-devel xorg-x11-server-sdk Url: http://xorg.freedesktop.org/ Version: 7.4 -Release: 22 +Release: 23 License: X11/MIT BuildRoot: %{_tmppath}/%{name}-%{version}-build Group: System/X11/Servers/XF86_4 @@ -68,7 +68,7 @@ Source46: xf86-video-ati-6.9.0.tar.bz2 Source48: xf86-video-mga-1.9.100.tar.bz2 Source50: xf86-video-xgi-1.5.0.tar.bz2 -Source51: xf86-video-geode-2.10.1.tar.bz2 +Source51: xf86-video-geode-2.11.0.tar.bz2 Source53: xf86-video-xgixp-1.7.99.3.tar.bz2 Source54: xf86-video-mach64-6.8.0.tar.bz2 Source55: xf86-video-r128-6.8.0.tar.bz2 @@ -92,6 +92,7 @@ Patch59: xf86-video-mga-01e60b3.diff Patch60: xf86-video-mga-ba37697.diff Patch61: xf86-video-intel-bug18462.diff +Patch62: xf86-video-intel-NoFBC-945GME.diff Patch103: xf86-video-ati-6.7.197-r128-xvideo.patch %description @@ -120,6 +121,7 @@ %patch1 %patch57 -p1 %patch61 -p1 +%patch62 -p1 popd pushd xf86-video-nv-* %patch3 -p0 @@ -252,8 +254,32 @@ /var/lib/hardware/ids/20.%{name} %changelog -* Mon Dec 22 2008 ro@suse.de +* Mon Jan 05 2009 sndirsch@suse.de +- xf86-video-intel-NoFBC-945GME.diff + * After some hours VGA external display stops working on + 945GME with FBC enabled. Thus disable it. For more details see: + http://bugs.freedesktop.org/show_bug.cgi?id=18821 (bnc #457623) +* Mon Jan 05 2009 sndirsch@suse.de - add excludearch s390 s390x +* Tue Dec 23 2008 sndirsch@suse.de +- xf86-video-ati-es1000.diff + * version11: "Probably, I should apply the patch for 7000ve too, + just a little change. For IBM issue, driver will take care of + all modes validation, including monitor modes and graphics + modes and so on. Although it's xorg.conf responsibility. +* Sun Dec 21 2008 sndirsch@suse.de +- updated geode driver to release 2.11.0 (bnc #457182) +* Fri Dec 19 2008 sndirsch@suse.de +- xf86-video-ati-es1000.diff + * version10: Fix potential bug, if VGA is not connected DVI + maybe black; fix memory leak. +* Thu Dec 18 2008 sndirsch@suse.de +- xf86-video-ati-es1000.diff + * version8: includes new patch for black screen; root cause is + that for some monitors, xserver can't pick a CRTC for VGA + output, because of hw's limitation, now just cheat xserver. + Tested on SLES11 with IBM machine, DELL machine, and new + Xserver. * Mon Dec 15 2008 sndirsch@suse.de - sax2/hwinfo-data: * renamed "G200 WB" to "G200 eW" (request by Matrox) ++++++ xf86-video-ati-es1000.diff ++++++ --- /var/tmp/diff_new_pack.K11757/_old 2009-01-09 02:19:41.000000000 +0100 +++ /var/tmp/diff_new_pack.K11757/_new 2009-01-09 02:19:41.000000000 +0100 @@ -1,109 +1,205 @@ -diff -urpw xf86-video-ati-6.9.0/src/radeon.h xf86-video-ati-6.9.0.mod/src/radeon.h ---- xf86-video-ati-6.9.0/src/radeon.h 2008-06-25 02:56:40.000000000 -0400 -+++ xf86-video-ati-6.9.0.mod/src/radeon.h 2008-11-11 04:48:29.000000000 -0500 +Only in xf86-video-ati-6.9.0-all: ;q +diff -urpw xf86-video-ati-6.9.0/src/radeon_driver.c xf86-video-ati-6.9.0-all/src/radeon_driver.c +--- xf86-video-ati-6.9.0/src/radeon_driver.c 2008-06-23 21:38:42.000000000 +0800 ++++ xf86-video-ati-6.9.0-all/src/radeon_driver.c 2008-12-19 05:01:53.000000000 +0800 +@@ -2673,6 +2673,9 @@ Bool RADEONPreInit(ScrnInfoPtr pScrn, in + info->IsSecondary = FALSE; + info->IsPrimary = FALSE; + ++ info->modes[0] = NULL; ++ info->modes[1] = NULL; ++ + info->pEnt = xf86GetEntityInfo(pScrn->entityList[pScrn->numEntities - 1]); + if (info->pEnt->location.type != BUS_PCI) goto fail; + +@@ -5571,10 +5574,22 @@ void RADEONFreeScreen(int scrnIndex, int + { + ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + RADEONInfoPtr info = RADEONPTR(pScrn); ++ int i; ++ DisplayModePtr pm; + + xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, + "RADEONFreeScreen\n"); + ++ for (i = 0; i < 2; i++) ++ { ++ pm = info->modes[i]; ++ while (pm) ++ { ++ xfree(pm); ++ pm = pm->next; ++ } ++ } ++ + /* when server quits at PreInit, we don't need do this anymore*/ + if (!info) return; + +diff -urpw xf86-video-ati-6.9.0/src/radeon.h xf86-video-ati-6.9.0-all/src/radeon.h +--- xf86-video-ati-6.9.0/src/radeon.h 2008-06-25 14:56:40.000000000 +0800 ++++ xf86-video-ati-6.9.0-all/src/radeon.h 2008-12-19 04:56:37.000000000 +0800 @@ -774,6 +774,7 @@ typedef struct { int num_gb_pipes; Bool has_tcl; -+ int maxHDisplay; ++ DisplayModePtr modes[2]; } RADEONInfoRec, *RADEONInfoPtr; #define RADEONWaitForFifo(pScrn, entries) \ -diff -urpw xf86-video-ati-6.9.0/src/radeon_driver.c xf86-video-ati-6.9.0.mod/src/radeon_driver.c ---- xf86-video-ati-6.9.0/src/radeon_driver.c 2008-06-23 09:38:42.000000000 -0400 -+++ xf86-video-ati-6.9.0.mod/src/radeon_driver.c 2008-11-11 04:48:29.000000000 -0500 -@@ -2672,7 +2672,7 @@ Bool RADEONPreInit(ScrnInfoPtr pScrn, in - - info->IsSecondary = FALSE; - info->IsPrimary = FALSE; -- -+ info->maxHDisplay = 0; - info->pEnt = xf86GetEntityInfo(pScrn->entityList[pScrn->numEntities - 1]); - if (info->pEnt->location.type != BUS_PCI) goto fail; - -diff -urpw xf86-video-ati-6.9.0/src/radeon_modes.c xf86-video-ati-6.9.0.mod/src/radeon_modes.c ---- xf86-video-ati-6.9.0/src/radeon_modes.c 2008-06-09 11:49:42.000000000 -0400 -+++ xf86-video-ati-6.9.0.mod/src/radeon_modes.c 2008-11-17 21:29:40.000000000 -0500 -@@ -263,7 +263,8 @@ RADEONProbeOutputModes(xf86OutputPtr out +diff -urpw xf86-video-ati-6.9.0/src/radeon_modes.c xf86-video-ati-6.9.0-all/src/radeon_modes.c +--- xf86-video-ati-6.9.0/src/radeon_modes.c 2008-06-09 23:49:42.000000000 +0800 ++++ xf86-video-ati-6.9.0-all/src/radeon_modes.c 2008-12-19 05:39:15.000000000 +0800 +@@ -263,7 +263,9 @@ RADEONProbeOutputModes(xf86OutputPtr out RADEONOutputPrivatePtr radeon_output = output->driver_private; ScrnInfoPtr pScrn = output->scrn; RADEONInfoPtr info = RADEONPTR(pScrn); - DisplayModePtr modes = NULL; -+ DisplayModePtr modes = NULL, pMode=NULL; -+ int maxH = 0; ++ DisplayModePtr modes = NULL, pm = NULL, qm = NULL, hm = NULL, new = NULL; ++ DisplayModePtr edidModes = NULL; ++ int i; AtomBiosArgRec atomBiosArg; AtomBiosResult atomBiosResult; -@@ -304,7 +305,20 @@ RADEONProbeOutputModes(xf86OutputPtr out +@@ -283,7 +285,10 @@ RADEONProbeOutputModes(xf86OutputPtr out } + } else { + if (output->MonInfo) ++ { + modes = xf86OutputGetEDIDModes (output); ++ edidModes = modes; ++ } + if (modes == NULL) { + if ((radeon_output->type == OUTPUT_LVDS) && info->IsAtomBios) { + atomBiosResult = RHDAtomBiosFunc(pScrn->scrnIndex, +@@ -305,6 +310,35 @@ RADEONProbeOutputModes(xf86OutputPtr out } } -- -+ErrorF("cooper, before maxHDisplay = %d\n",info->maxHDisplay); + + if (info->ChipFamily == CHIP_FAMILY_RV100) -+ { -+ pMode = modes; -+ while (pMode) -+ { -+ if (maxH < pMode->HDisplay) -+ maxH = pMode->HDisplay; -+ pMode = pMode->next; ++ { ++ pm = modes; ++ ++ for (i = 0; i < 2; i++) ++ { ++ if (edidModes && !info->modes[i]) ++ { ++ while (pm) ++ { ++ new = xnfcalloc(1, sizeof(DisplayModeRec)); ++ memcpy(new, pm, sizeof(DisplayModeRec)); ++ if (!hm) ++ hm = new; ++ if (qm) ++ { ++ qm->next = new; ++ new->prev = qm; ++ } ++ qm = new; ++ pm = pm->next; ++ } ++ qm->next = NULL; ++ info->modes[i] = hm; ++ break; ++ } + } -+ if ((info->maxHDisplay ==0) || (info->maxHDisplay > maxH)) -+ info->maxHDisplay = maxH; + } -+ErrorF("cooper, after maxHDisplay = %d\n", info->maxHDisplay); ++ return modes; } -diff -urpw xf86-video-ati-6.9.0/src/radeon_output.c xf86-video-ati-6.9.0.mod/src/radeon_output.c ---- xf86-video-ati-6.9.0/src/radeon_output.c 2008-06-25 02:56:40.000000000 -0400 -+++ xf86-video-ati-6.9.0.mod/src/radeon_output.c 2008-11-17 21:28:14.000000000 -0500 -@@ -468,9 +468,13 @@ radeon_mode_valid(xf86OutputPtr output, - * XXX should really do this for all chips by properly computing - * memory bandwidth and an overhead factor. - */ -- if (info->ChipFamily == CHIP_FAMILY_RV100 && !pRADEONEnt->HasCRTC2) { -+ if (info->ChipFamily == CHIP_FAMILY_RV100) +diff -urpw xf86-video-ati-6.9.0/src/radeon_output.c xf86-video-ati-6.9.0-all/src/radeon_output.c +--- xf86-video-ati-6.9.0/src/radeon_output.c 2008-06-25 14:56:40.000000000 +0800 ++++ xf86-video-ati-6.9.0-all/src/radeon_output.c 2008-12-22 22:08:35.000000000 +0800 +@@ -455,6 +455,21 @@ radeon_restore(xf86OutputPtr restore) + + } + ++static Bool ++radeon_find_mode(DisplayModePtr mode, DisplayModePtr saveMode) ++{ ++ DisplayModePtr pm = saveMode; ++ while (pm) + { -+ErrorF("cooper, final maxHDisplay = %d\n",info->maxHDisplay); ++ if (xf86ModesEqual(mode, pm)) ++ { ++ return TRUE; ++ } ++ pm = pm->next; ++ } ++ return FALSE; ++} ++ + static int + radeon_mode_valid(xf86OutputPtr output, DisplayModePtr pMode) + { +@@ -462,7 +477,6 @@ radeon_mode_valid(xf86OutputPtr output, + ScrnInfoPtr pScrn = output->scrn; + RADEONInfoPtr info = RADEONPTR(pScrn); + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); +- + /* + * RN50 has effective maximum mode bandwidth of about 300MiB/s. + * XXX should really do this for all chips by properly computing +@@ -472,6 +486,24 @@ radeon_mode_valid(xf86OutputPtr output, if (xf86ModeBandwidth(pMode, pScrn->bitsPerPixel) > 300) return MODE_BANDWIDTH; -+ if (pMode->HDisplay > info->maxHDisplay) -+ return MODE_BAD; } ++ if (info->ChipFamily == CHIP_FAMILY_RV100) ++ { ++ if (info->modes[0] && !info->modes[1]) ++ { ++ if (!radeon_find_mode(pMode, info->modes[0])) ++ return MODE_BAD; ++ } ++ else if (info->modes[1] && !info->modes[0]) ++ { ++ if (!radeon_find_mode(pMode, info->modes[1])) ++ return MODE_BAD; ++ } ++ else if (info->modes[0] && info->modes[1]) ++ { ++ if (!radeon_find_mode(pMode, info->modes[0]) || !radeon_find_mode(pMode, info->modes[1])) ++ return MODE_BAD; ++ } ++ } if (OUTPUT_IS_TV) { -@@ -2679,6 +2683,7 @@ Bool RADEONSetupConnectors(ScrnInfoPtr p - RADEONInfoPtr info = RADEONPTR(pScrn); - RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); - xf86OutputPtr output; -+ RADEONBIOSConnector tmpConn; - char *optstr; - int i = 0; - int num_vga = 0; -@@ -2742,6 +2747,24 @@ Bool RADEONSetupConnectors(ScrnInfoPtr p - RADEONSetupGenericConnectors(pScrn); - } + /* FIXME: Update when more modes are added */ +@@ -613,12 +645,37 @@ radeon_mode_set(xf86OutputPtr output, Di + DisplayModePtr adjusted_mode) + { + RADEONInfoPtr info = RADEONPTR(output->scrn); ++ RADEONOutputPrivatePtr radeon_output = output->driver_private; ++ RADEONEntPtr pRADEONEnt = RADEONEntPriv(output->scrn); -+ if (info->ChipFamily == CHIP_FAMILY_RV100) + if (IS_AVIVO_VARIANT) + { -+ tmpConn = info->BiosConnector[0]; -+ -+ for (i = 0; i< RADEON_MAX_BIOS_CONNECTOR; i++) + atombios_output_mode_set(output, mode, adjusted_mode); ++ radeon_bios_output_crtc(output); ++ } ++ else ++ { ++ /* ++ * For RN50, we should set twice, first set DFP, then set CRT. ++ */ ++ if (info->ChipFamily == CHIP_FAMILY_RV100 && !pRADEONEnt->HasCRTC2) + { -+ if ((info->BiosConnector[i].ConnectorType == CONNECTOR_DVI_D) || -+ (info->BiosConnector[i].ConnectorType == CONNECTOR_DVI_I) || -+ (info->BiosConnector[i].ConnectorType == CONNECTOR_DVI_A)) -+ { -+ info->BiosConnector[0] = info->BiosConnector[i]; -+ info->BiosConnector[i] = tmpConn; -+ErrorF("cooper, dvi is on slot %d\n", i); -+ break; -+ } ++ radeon_output->MonType = MT_DFP; ++ radeon_output->TMDSType = TMDS_EXT; ++ legacy_output_mode_set(output, mode, adjusted_mode); ++ radeon_bios_output_crtc(output); ++ ++ radeon_output->DACType = DAC_PRIMARY; ++ radeon_output->MonType = MT_CRT; ++ legacy_output_mode_set(output, mode, adjusted_mode); ++ radeon_bios_output_crtc(output); ++ } + else ++ { + legacy_output_mode_set(output, mode, adjusted_mode); + radeon_bios_output_crtc(output); + } + } -+ - if (!pRADEONEnt->HasCRTC2) { - for (i = 0; i < RADEON_MAX_BIOS_CONNECTOR; i++) { - if (info->BiosConnector[i].ConnectorType == CONNECTOR_VGA) + + } + ++++++ xf86-video-geode-2.10.1.tar.bz2 -> xf86-video-geode-2.11.0.tar.bz2 ++++++ ++++ 58683 lines of diff (skipped) ++++++ xf86-video-intel-NoFBC-945GME.diff ++++++ diff --git a/src/i830.h b/src/i830.h index 3381c3c..808739f 100644 --- a/src/i830.h +++ b/src/i830.h @@ -978,6 +978,12 @@ static inline int i830_fb_compression_supported(I830Ptr pI830) */ if (IS_I965GM(pI830)) return FALSE; + /* After some hours VGA external display stops working on + * 945GME with FBC enabled. For more details see: + * http://bugs.freedesktop.org/show_bug.cgi?id=18821 + */ + if (DEVICE_ID(pI830->PciInfo) == PCI_CHIP_I945_GME) + return FALSE; return TRUE; } ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de