Hello community, here is the log from the commit of package xorg-x11-driver-video checked in at Thu Sep 13 10:35:23 CEST 2007. -------- --- xorg-x11-driver-video/xorg-x11-driver-video.changes 2007-09-11 12:31:35.000000000 +0200 +++ /mounts/work_src_done/STABLE/xorg-x11-driver-video/xorg-x11-driver-video.changes 2007-09-12 17:35:11.808139000 +0200 @@ -1,0 +2,6 @@ +Wed Sep 12 17:37:09 CEST 2007 - sndirsch@suse.de + +- xf86-video-nv-g80_lvds_detect.diff: + * G80: Fix LVDS detection on some laptops + +------------------------------------------------------------------- New: ---- xf86-video-nv-g80_lvds_detect.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xorg-x11-driver-video.spec ++++++ --- /var/tmp/diff_new_pack.U26283/_old 2007-09-13 10:34:55.000000000 +0200 +++ /var/tmp/diff_new_pack.U26283/_new 2007-09-13 10:34:55.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: 177 +Release: 179 License: X11/MIT BuildRoot: %{_tmppath}/%{name}-%{version}-build Group: System/X11/Servers/XF86_4 @@ -89,6 +89,7 @@ Patch40: xf86-video-unichrome.diff Patch41: xf86-video-xgi.diff Patch42: xf86-video-ati-opma.diff +Patch43: xf86-video-nv-g80_lvds_detect.diff %description This package contains X.Org video drivers. @@ -132,6 +133,7 @@ popd pushd xf86-video-nv-*/src %patch3 -p6 +%patch43 -p2 popd pushd xf86-video-mga-*/src tar xzf %{SOURCE44} @@ -229,6 +231,9 @@ %{_mandir}/man4/* %changelog +* Wed Sep 12 2007 - sndirsch@suse.de +- xf86-video-nv-g80_lvds_detect.diff: + * G80: Fix LVDS detection on some laptops * Tue Sep 11 2007 - sndirsch@suse.de - removed superfluous sun video drivers (Bug #309417) * Fri Sep 07 2007 - sndirsch@suse.de ++++++ xf86-video-nv-g80_lvds_detect.diff ++++++ .gitignore | 1 + src/g80_output.c | 30 +++++++++++++++++++++++------- src/g80_type.h | 5 ++++- 3 files changed, 28 insertions(+), 8 deletions(-) New commits: diff-tree b2db7d414400d80a5567d71eed9a7e94f1043a20 (from 07fb9f0b00fafe18bd33bddff23cbb4325eb50f8) Author: Aaron Plattner <aplattner@nvidia.com> Date: Tue Sep 11 22:51:20 2007 -0700 G80: Fix LVDS detection on some laptops. diff --git a/src/g80_output.c b/src/g80_output.c index 8bd2096..1ec6a89 100644 --- a/src/g80_output.c +++ b/src/g80_output.c @@ -66,10 +66,11 @@ static Bool G80ReadPortMapping(int scrnI port = (b >> 4) & 0xf; or = ffs((b >> 24) & 0xf) - 1; - if(type < 4 && port != 0xf) { + if(type == 0xe) break; + + if(type < 4) { switch(type) { case 0: /* CRT */ - case 1: /* TV */ if(pNv->i2cMap[port].dac != -1) { xf86DrvMsg(scrnIndex, X_WARNING, "DDC routing table corrupt! DAC %i -> %i " @@ -78,21 +79,30 @@ static Bool G80ReadPortMapping(int scrnI } pNv->i2cMap[port].dac = or; break; + case 1: /* TV */ + /* Ignore TVs */ + break; + case 2: /* TMDS */ - case 3: /* LVDS */ if(pNv->i2cMap[port].sor != -1) xf86DrvMsg(scrnIndex, X_WARNING, "DDC routing table corrupt! SOR %i -> %i " "for port %i\n", or, pNv->i2cMap[port].sor, port); pNv->i2cMap[port].sor = or; - pNv->i2cMap[port].panelType = (type == 2) ? TMDS : LVDS; + break; + + case 3: /* LVDS */ + pNv->lvds.present = TRUE; + pNv->lvds.or = or; break; } } } - xf86DrvMsg(scrnIndex, X_PROBED, "I2C map:\n"); + xf86DrvMsg(scrnIndex, X_PROBED, "Connector map:\n"); + if(pNv->lvds.present) + xf86DrvMsg(scrnIndex, X_PROBED, " [N/A] -> SOR%i (LVDS)\n", pNv->lvds.or); for(i = 0; i < 4; i++) { if(pNv->i2cMap[i].dac != -1) xf86DrvMsg(scrnIndex, X_PROBED, " Bus %i -> DAC%i\n", i, pNv->i2cMap[i].dac); @@ -315,8 +325,7 @@ G80CreateOutputs(ScrnInfoPtr pScrn) if(pNv->i2cMap[i].dac != -1) dac = G80CreateDac(pScrn, pNv->i2cMap[i].dac); if(pNv->i2cMap[i].sor != -1) - sor = G80CreateSor(pScrn, pNv->i2cMap[i].sor, - pNv->i2cMap[i].panelType); + sor = G80CreateSor(pScrn, pNv->i2cMap[i].sor, TMDS); if(dac) { G80OutputPrivPtr pPriv = dac->driver_private; @@ -334,6 +343,13 @@ G80CreateOutputs(ScrnInfoPtr pScrn) } } + if(pNv->lvds.present) { + xf86OutputPtr lvds = G80CreateSor(pScrn, pNv->lvds.or, LVDS); + G80OutputPrivPtr pPriv = lvds->driver_private; + + pPriv->scale = G80_SCALE_ASPECT; + } + /* For each output, set the crtc and clone masks */ for(i = 0; i < xf86_config->num_output; i++) { xf86OutputPtr output = xf86_config->output[i]; diff --git a/src/g80_type.h b/src/g80_type.h index 0830ecc..ecaedaa 100644 --- a/src/g80_type.h +++ b/src/g80_type.h @@ -48,8 +48,11 @@ typedef struct G80Rec { struct { ORNum dac; ORNum sor; - PanelType panelType; } i2cMap[4]; + struct { + Bool present; + ORNum or; + } lvds; xf86Int10InfoPtr int10; int int10Mode; /* Console mode to restore */ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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