Hello community, here is the log from the commit of package xorg-x11-driver-video checked in at Thu May 17 14:47:22 CEST 2007. -------- --- xorg-x11-driver-video/xorg-x11-driver-video.changes 2007-05-14 22:11:44.000000000 +0200 +++ /mounts/work_src_done/STABLE/xorg-x11-driver-video/xorg-x11-driver-video.changes 2007-05-17 13:53:23.809353000 +0200 @@ -1,0 +2,13 @@ +Thu May 17 13:51:00 CEST 2007 - sndirsch@suse.de + +- updated nv driver to release 2.0.96 + * This release adds simple VBE-based dualhead support for pre-G80 + graphics cards. This mode has a few restrictions: + 1. Both heads must be connected when the system is booted. + 2. The same mode is used on both heads. + 3. The heads are always placed side-by-side. + 4. Only VBE modes are available. + 5. No Xinerama information is provided. + Use ' Option "Dualhead" "on" ' for configuration. + +------------------------------------------------------------------- Old: ---- xf86-video-nv-2.0.95.tar.bz2 New: ---- xf86-video-nv-2.0.96.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xorg-x11-driver-video.spec ++++++ --- /var/tmp/diff_new_pack.p17696/_old 2007-05-17 14:47:01.000000000 +0200 +++ /var/tmp/diff_new_pack.p17696/_new 2007-05-17 14:47:01.000000000 +0200 @@ -15,7 +15,7 @@ BuildRequires: Mesa-devel libdrm-devel pkgconfig xorg-x11-proto-devel xorg-x11-server-sdk URL: http://xorg.freedesktop.org/ Version: 7.2 -Release: 98 +Release: 99 License: X11/MIT BuildRoot: %{_tmppath}/%{name}-%{version}-build Group: System/X11/Servers/XF86_4 @@ -40,7 +40,7 @@ Source15: xf86-video-neomagic-X11R7.1-1.1.1.tar.bz2 Source16: xf86-video-newport-0.2.1.tar.bz2 Source17: xf86-video-nsc-2.8.2.tar.bz2 -Source18: xf86-video-nv-2.0.95.tar.bz2 +Source18: xf86-video-nv-2.0.96.tar.bz2 Source19: xf86-video-rendition-4.1.3.tar.bz2 Source20: xf86-video-s3-0.5.0.tar.bz2 Source21: xf86-video-s3virge-X11R7.1-1.9.1.tar.bz2 @@ -263,6 +263,16 @@ %{_mandir}/man4/* %changelog +* Thu May 17 2007 - sndirsch@suse.de +- updated nv driver to release 2.0.96 + * This release adds simple VBE-based dualhead support for pre-G80 + graphics cards. This mode has a few restrictions: + 1. Both heads must be connected when the system is booted. + 2. The same mode is used on both heads. + 3. The heads are always placed side-by-side. + 4. Only VBE modes are available. + 5. No Xinerama information is provided. + Use ' Option "Dualhead" "on" ' for configuration. * Mon May 14 2007 - sndirsch@suse.de - disabled generation of kernel framebuffer blacklist (Bug #239194, comments #27, #28, #31) ++++++ xf86-video-nv-2.0.95.tar.bz2 -> xf86-video-nv-2.0.96.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.0.95/aclocal.m4 new/xf86-video-nv-2.0.96/aclocal.m4 --- old/xf86-video-nv-2.0.95/aclocal.m4 2007-05-03 20:57:15.000000000 +0200 +++ new/xf86-video-nv-2.0.96/aclocal.m4 2007-05-16 23:43:10.000000000 +0200 @@ -6611,7 +6611,8 @@ _PKG_TEXT ])], - [$4]) + [AC_MSG_RESULT([no]) + $4]) elif test $pkg_failed = untried; then ifelse([$4], , [AC_MSG_FAILURE(dnl [The pkg-config script could not be found or is too old. Make sure it diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.0.95/ChangeLog new/xf86-video-nv-2.0.96/ChangeLog --- old/xf86-video-nv-2.0.95/ChangeLog 2007-05-03 20:59:27.000000000 +0200 +++ new/xf86-video-nv-2.0.96/ChangeLog 2007-05-16 23:46:54.000000000 +0200 @@ -1,3 +1,15 @@ +commit 9b8470e9c81e6ce2c8cd69942fb2ffd2d4c06102 +Author: Aaron Plattner <aplattner@nvidia.com> +Date: Wed May 16 14:45:36 2007 -0700 + + Bump to 2.0.96. + +commit 51c6425bea6e4ef02f7b76e58e759f99b0e993e8 +Author: Aaron Plattner <aplattner@nvidia.com> +Date: Thu May 10 17:09:36 2007 -0700 + + Add rudimentary VBE-based dual head support for pre-G80. + commit 0415ecaead518123ac6774300241867883a6dd57 Author: Aaron Plattner <aplattner@nvidia.com> Date: Thu May 3 11:54:28 2007 -0700 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.0.95/compat/parser/xf86Parser.h new/xf86-video-nv-2.0.96/compat/parser/xf86Parser.h --- old/xf86-video-nv-2.0.95/compat/parser/xf86Parser.h 2007-04-20 23:25:55.000000000 +0200 +++ new/xf86-video-nv-2.0.96/compat/parser/xf86Parser.h 2007-05-16 23:37:59.000000000 +0200 @@ -82,6 +82,7 @@ /* Values for load_type */ #define XF86_LOAD_MODULE 0 #define XF86_LOAD_DRIVER 1 +#define XF86_DISABLE_MODULE 2 typedef struct { @@ -97,6 +98,7 @@ typedef struct { XF86LoadPtr mod_load_lst; + XF86LoadPtr mod_disable_lst; char *mod_comment; } XF86ConfModuleRec, *XF86ConfModulePtr; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.0.95/configure new/xf86-video-nv-2.0.96/configure --- old/xf86-video-nv-2.0.95/configure 2007-05-03 20:57:17.000000000 +0200 +++ new/xf86-video-nv-2.0.96/configure 2007-05-16 23:43:12.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for xf86-video-nv 2.0.95. +# Generated by GNU Autoconf 2.61 for xf86-video-nv 2.0.96. # # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>. # @@ -728,8 +728,8 @@ # Identity of this package. PACKAGE_NAME='xf86-video-nv' PACKAGE_TARNAME='xf86-video-nv' -PACKAGE_VERSION='2.0.95' -PACKAGE_STRING='xf86-video-nv 2.0.95' +PACKAGE_VERSION='2.0.96' +PACKAGE_STRING='xf86-video-nv 2.0.96' PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg' ac_unique_file="Makefile.am" @@ -1418,7 +1418,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures xf86-video-nv 2.0.95 to adapt to many kinds of systems. +\`configure' configures xf86-video-nv 2.0.96 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1488,7 +1488,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of xf86-video-nv 2.0.95:";; + short | recursive ) echo "Configuration of xf86-video-nv 2.0.96:";; esac cat <<\_ACEOF @@ -1602,7 +1602,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -xf86-video-nv configure 2.0.95 +xf86-video-nv configure 2.0.96 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1616,7 +1616,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by xf86-video-nv $as_me 2.0.95, which was +It was created by xf86-video-nv $as_me 2.0.96, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ @@ -2311,7 +2311,7 @@ # Define the identity of the package. PACKAGE='xf86-video-nv' - VERSION='2.0.95' + VERSION='2.0.96' cat >>confdefs.h <<_ACEOF @@ -21554,7 +21554,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by xf86-video-nv $as_me 2.0.95, which was +This file was extended by xf86-video-nv $as_me 2.0.96, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21607,7 +21607,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -xf86-video-nv config.status 2.0.95 +xf86-video-nv config.status 2.0.96 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.0.95/configure.ac new/xf86-video-nv-2.0.96/configure.ac --- old/xf86-video-nv-2.0.95/configure.ac 2007-05-03 20:53:55.000000000 +0200 +++ new/xf86-video-nv-2.0.96/configure.ac 2007-05-16 23:37:36.000000000 +0200 @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-nv], - 2.0.95, + 2.0.96, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-nv) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.0.95/man/nv.man new/xf86-video-nv-2.0.96/man/nv.man --- old/xf86-video-nv-2.0.95/man/nv.man 2007-05-03 00:24:54.000000000 +0200 +++ new/xf86-video-nv-2.0.96/man/nv.man 2007-05-16 23:37:10.000000000 +0200 @@ -93,6 +93,11 @@ The options are "0" or "1". Default: autodetected. .TP +.BI "Option \*qDualhead\*q \*q" boolean \*q +Enables simple VBE-based dual head mode. +This sets the same resolution on both outputs and lays them out side-by-side. +The screens will be panned together as one big metamode if the virtual desktop is larger than both screens combined. +.TP .BI "Option \*qFlatPanel\*q \*q" boolean \*q The driver usually can autodetect the presence of a digital flat panel. In the case that this fails, this option can be used to force the driver to diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.0.95/src/nv_driver.c new/xf86-video-nv-2.0.96/src/nv_driver.c --- old/xf86-video-nv-2.0.95/src/nv_driver.c 2007-05-03 00:24:54.000000000 +0200 +++ new/xf86-video-nv-2.0.96/src/nv_driver.c 2007-05-16 23:37:10.000000000 +0200 @@ -34,6 +34,7 @@ #include "nv_include.h" #include "xf86int10.h" +#include "vbeModes.h" const OptionInfoRec * RivaAvailableOptions(int chipid, int busid); Bool RivaGetScrnInfoRec(PciChipsets *chips, int chip); @@ -70,8 +71,10 @@ static Bool NVMapMemFBDev(ScrnInfoPtr pScrn); static Bool NVUnmapMem(ScrnInfoPtr pScrn); static void NVSave(ScrnInfoPtr pScrn); +static void NVSaveRestoreVBE(ScrnInfoPtr, vbeSaveRestoreFunction); static void NVRestore(ScrnInfoPtr pScrn); static Bool NVModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode); +static Bool NVSetModeVBE(ScrnInfoPtr pScrn, DisplayModePtr pMode); /* @@ -410,6 +413,17 @@ "vbeDoEDID", NULL }; + +static const char *vbeModeSymbols[] = { + "VBEExtendedInit", + "VBEGetVBEInfo", + "VBEGetModePool", + "VBEValidateModes", + "VBESetModeParameters", + "VBEGetVBEMode", + "VBESetVBEMode", + NULL +}; #endif static const char *i2cSymbols[] = { @@ -488,7 +502,8 @@ OPTION_FP_DITHER, OPTION_CRTC_NUMBER, OPTION_FP_SCALE, - OPTION_FP_TWEAK + OPTION_FP_TWEAK, + OPTION_DUALHEAD, } NVOpts; @@ -505,6 +520,7 @@ { OPTION_CRTC_NUMBER, "CrtcNumber", OPTV_INTEGER, {0}, FALSE }, { OPTION_FP_SCALE, "FPScale", OPTV_BOOLEAN, {0}, FALSE }, { OPTION_FP_TWEAK, "FPTweak", OPTV_INTEGER, {0}, FALSE }, + { OPTION_DUALHEAD, "DualHead", OPTV_BOOLEAN, {0}, FALSE }, { -1, NULL, OPTV_NONE, {0}, FALSE } }; @@ -821,6 +837,27 @@ return NVModeInit(pScrn, mode); } +Bool +NVSwitchModeVBE(int scrnIndex, DisplayModePtr mode, int flags) +{ + ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + NVPtr pNv = NVPTR(pScrn); + const Bool disableAccess = pNv->accessEnabled; + + if(disableAccess) + pScrn->EnableDisableFBAccess(scrnIndex, FALSE); + + NVSync(pScrn); + if (!NVSetModeVBE(pScrn, mode)) + return FALSE; + NVAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); + + if(disableAccess) + pScrn->EnableDisableFBAccess(scrnIndex, TRUE); + + return TRUE; +} + /* * This function is used to initialize the Start Address - the first * displayed location in the video memory. @@ -869,6 +906,17 @@ return TRUE; } +static Bool +NVEnterVTVBE(int scrnIndex, int flags) +{ + ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + + if (!NVSetModeVBE(pScrn, pScrn->currentMode)) + return FALSE; + NVAdjustFrame(scrnIndex, 0, 0, 0); + return TRUE; +} + /* * This is called when VT switching away from the X server. Its job is * to restore the previous (text) mode. @@ -888,7 +936,14 @@ NVLockUnlock(pNv, 1); } +static void +NVLeaveVTVBE(int scrnIndex, int flags) +{ + ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + NVSync(pScrn); + NVSaveRestoreVBE(pScrn, MODE_RESTORE); +} static void NVBlockHandler ( @@ -930,9 +985,15 @@ NVPtr pNv = NVPTR(pScrn); if (pScrn->vtSema) { - NVSync(pScrn); - NVRestore(pScrn); - NVLockUnlock(pNv, 1); + if (!pNv->NoAccel) + NVSync(pScrn); + + if (pNv->VBEDualhead) { + NVSaveRestoreVBE(pScrn, MODE_RESTORE); + } else { + NVRestore(pScrn); + NVLockUnlock(pNv, 1); + } } NVUnmapMem(pScrn); @@ -956,6 +1017,16 @@ return (*pScreen->CloseScreen)(scrnIndex, pScreen); } +static void +NVEnableDisableFBAccess(int scrnIndex, Bool enable) +{ + NVPtr pNv = NVPTR(xf86Screens[scrnIndex]); + + pNv->accessEnabled = enable; + pNv->EnableDisableFBAccess(scrnIndex, enable); +} + + /* Free up any persistent data structures */ /* Optional */ @@ -1404,7 +1475,43 @@ } else { pNv->usePanelTweak = FALSE; } - + + if (xf86ReturnOptValBool(pNv->Options, OPTION_DUALHEAD, FALSE)) { + if (pNv->FBDev) + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "FBDev and Dualhead are incompatible.\n"); + else + pNv->VBEDualhead = TRUE; + } + + if (pNv->VBEDualhead) { + if (!xf86LoadSubModule(pScrn, "vbe")) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "Couldn't load the VBE module and Dualhead is " + "enabled.\n"); + return FALSE; + } + xf86LoaderReqSymLists(vbeModeSymbols, NULL); + pNv->pVbe = VBEExtendedInit(NULL, pNv->pEnt->index, + SET_BIOS_SCRATCH | RESTORE_BIOS_SCRATCH); + if (!pNv->pVbe) return FALSE; + + pNv->pVbeInfo = VBEGetVBEInfo(pNv->pVbe); + if (!pNv->pVbeInfo) return FALSE; + + xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, + "Using VBE dual-head mode.\n"); + + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Using software cursor.\n"); + pNv->HWCursor = FALSE; + + pScrn->SwitchMode = NVSwitchModeVBE; + pScrn->EnterVT = NVEnterVTVBE; + pScrn->LeaveVT = NVLeaveVTVBE; + pScrn->ValidMode = NULL; + } + if (pNv->pEnt->device->MemBase != 0) { /* Require that the config file value matches one of the PCI values. */ if (!xf86CheckPciMemBase(pNv->PciInfo, pNv->pEnt->device->MemBase)) { @@ -1622,14 +1729,31 @@ * pScrn->maxVValue are set. Since our NVValidMode() already takes * care of this, we don't worry about setting them here. */ - i = xf86ValidateModes(pScrn, pScrn->monitor->Modes, - pScrn->display->modes, clockRanges, - NULL, 256, max_width, - 512, 128, max_height, - pScrn->display->virtualX, - pScrn->display->virtualY, - pNv->ScratchBufferStart, - LOOKUP_BEST_REFRESH); + if (pNv->VBEDualhead) { + pScrn->modePool = VBEGetModePool(pScrn, pNv->pVbe, pNv->pVbeInfo, + V_MODETYPE_VBE); + + VBESetModeNames(pScrn->modePool); + i = VBEValidateModes(pScrn, pScrn->monitor->Modes, + pScrn->display->modes, clockRanges, + NULL, 256, max_width, + 512, 128, max_height, + pScrn->display->virtualX, + pScrn->display->virtualY, + pNv->ScratchBufferStart, + LOOKUP_BEST_REFRESH); + if (i > 0) + VBESetModeParameters(pScrn, pNv->pVbe); + } else { + i = xf86ValidateModes(pScrn, pScrn->monitor->Modes, + pScrn->display->modes, clockRanges, + NULL, 256, max_width, + 512, 128, max_height, + pScrn->display->virtualX, + pScrn->display->virtualY, + pNv->ScratchBufferStart, + LOOKUP_BEST_REFRESH); + } if (i < 1 && pNv->FBDev) { fbdevHWUseBuildinMode(pScrn); @@ -1662,6 +1786,22 @@ */ xf86SetCrtcForModes(pScrn, 0); + if (pNv->VBEDualhead) { + DisplayModePtr p = pScrn->modes; + + /* + * Loop through modes and double their widths. Stash the real width in + * CrtcHDisplay. Also adjust the screen dimensions. + */ + do { + p->CrtcHDisplay = p->HDisplay; + p->HDisplay *= 2; + } while ((p = p->next) != pScrn->modes); + + pScrn->virtualX *= 2; + pScrn->displayWidth *= 2; + } + /* Set the current mode to the first in the list */ pScrn->currentMode = pScrn->modes; @@ -1843,6 +1983,32 @@ return TRUE; } +static Bool +NVSetModeVBE(ScrnInfoPtr pScrn, DisplayModePtr pMode) +{ + NVPtr pNv = NVPTR(pScrn); + VbeModeInfoData *data; + int mode; + + data = (VbeModeInfoData*)pMode->Private; + mode = data->mode | 1 << 14; + + if(!VBESetVBEMode(pNv->pVbe, mode, data->block)) + return FALSE; + pNv->PCRTC0[0x820/4] = pNv->PCRTC0[0x2820/4] = + pScrn->displayWidth * (pScrn->bitsPerPixel / 8); + pNv->vbeCRTC1Offset = pMode->CrtcHDisplay * (pScrn->bitsPerPixel / 8); + + pScrn->vtSema = TRUE; + + NVLoadStateExt(pNv, NULL); + NVResetGraphics(pScrn); + + pNv->CurrentLayout.mode = pMode; + + return TRUE; +} + /* * Restore the initial (text) mode. */ @@ -2015,6 +2181,10 @@ fbdevHWSave(pScrn); if (!fbdevHWModeInit(pScrn, pScrn->currentMode)) return FALSE; + } else if (pNv->VBEDualhead) { + NVSaveRestoreVBE(pScrn, MODE_SAVE); + if (!NVSetModeVBE(pScrn, pScrn->currentMode)) + return FALSE; } else { /* Save the current state */ NVSave(pScrn); @@ -2210,6 +2380,10 @@ pNv->BlockHandler = pScreen->BlockHandler; pScreen->BlockHandler = NVBlockHandler; + pNv->accessEnabled = TRUE; + pNv->EnableDisableFBAccess = pScrn->EnableDisableFBAccess; + pScrn->EnableDisableFBAccess = NVEnableDisableFBAccess; + #ifdef RANDR /* Install our DriverFunc. We have to do it this way instead of using the * HaveDriverFuncs argument to xf86AddDriver, because InitOutput clobbers @@ -2248,6 +2422,20 @@ NVDACSave(pScrn, vgaReg, nvReg, pNv->Primary); } +static void +NVSaveRestoreVBE(ScrnInfoPtr pScrn, vbeSaveRestoreFunction function) +{ + NVPtr pNv = NVPTR(pScrn); + + if (function == MODE_SAVE) { + VBEGetVBEMode(pNv->pVbe, &pNv->vbeMode); + NVSave(pScrn); + } else if (function == MODE_RESTORE) { + NVRestore(pScrn); + VBESetVBEMode(pNv->pVbe, pNv->vbeMode, NULL); + } +} + #ifdef RANDR static Bool NVRandRGetInfo(ScrnInfoPtr pScrn, Rotation *rotations) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.0.95/src/nv_hw.c new/xf86-video-nv-2.0.96/src/nv_hw.c --- old/xf86-video-nv-2.0.95/src/nv_hw.c 2007-05-03 00:23:54.000000000 +0200 +++ new/xf86-video-nv-2.0.96/src/nv_hw.c 2007-05-16 23:37:10.000000000 +0200 @@ -948,7 +948,8 @@ pNv->PTIMER[0x0100] = 0xFFFFFFFF; if(pNv->Architecture == NV_ARCH_04) { - pNv->PFB[0x0200/4] = state->config; + if (state) + pNv->PFB[0x0200/4] = state->config; } else if((pNv->Architecture < NV_ARCH_40) || ((pNv->Chipset & 0xfff0) == 0x0040)) @@ -1411,6 +1412,11 @@ pNv->PFIFO[0x0495] = 0x00000001; pNv->PFIFO[0x0140] = 0x00000001; + if(!state) { + pNv->CurrentState = NULL; + return; + } + if(pNv->Architecture >= NV_ARCH_10) { if(pNv->twoHeads) { pNv->PCRTC0[0x0860/4] = state->head; @@ -1590,7 +1596,12 @@ CARD32 start ) { - pNv->PCRTC[0x800/4] = start; + if (pNv->VBEDualhead) { + pNv->PCRTC0[0x800/4] = start; + pNv->PCRTC0[0x2800/4] = start + pNv->vbeCRTC1Offset; + } else { + pNv->PCRTC[0x800/4] = start; + } } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.0.95/src/nv_type.h new/xf86-video-nv-2.0.96/src/nv_type.h --- old/xf86-video-nv-2.0.95/src/nv_type.h 2007-04-21 02:56:47.000000000 +0200 +++ new/xf86-video-nv-2.0.96/src/nv_type.h 2007-05-16 23:37:10.000000000 +0200 @@ -133,6 +133,8 @@ void (*PointerMoved)(int index, int x, int y); ScreenBlockHandlerProcPtr BlockHandler; CloseScreenProcPtr CloseScreen; + xf86EnableDisableFBAccessProc *EnableDisableFBAccess; + Bool accessEnabled; Bool FBDev; int Rotate; NVFBLayout CurrentLayout; @@ -174,6 +176,13 @@ Bool WaitVSyncPossible; Bool BlendingPossible; Bool RandRRotation; + + /* VBE dual-head */ + Bool VBEDualhead; + vbeInfoPtr pVbe; + VbeInfoBlock *pVbeInfo; + int vbeMode; + CARD32 vbeCRTC1Offset; } NVRec, *NVPtr; #define NVPTR(p) ((NVPtr)((p)->driverPrivate)) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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