diff options
Diffstat (limited to 'main/xf86-video-openchrome')
-rw-r--r-- | main/xf86-video-openchrome/APKBUILD | 10 | ||||
-rw-r--r-- | main/xf86-video-openchrome/openchrome-0.2.904-fix_tvout_flickering.patch | 4 | ||||
-rw-r--r-- | main/xf86-video-openchrome/openchrome-0.2.904-svn921.patch (renamed from main/xf86-video-openchrome/openchrome-0.2.904-svn916.patch) | 754 |
3 files changed, 415 insertions, 353 deletions
diff --git a/main/xf86-video-openchrome/APKBUILD b/main/xf86-video-openchrome/APKBUILD index 0f1785cf8a..0e95564621 100644 --- a/main/xf86-video-openchrome/APKBUILD +++ b/main/xf86-video-openchrome/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Natanael Copa <ncopa@alpinelinux.org> pkgname=xf86-video-openchrome pkgver=0.2.904 -pkgrel=6 +pkgrel=7 pkgdesc="X.Org driver for VIA/S3G cards" url="http://xorg.freedesktop.org/" arch="all" @@ -13,7 +13,7 @@ makedepends="pkgconfig xorg-server-dev libxi-dev libxvmc-dev fontsproto glproto " source="http://www.openchrome.org/releases/xf86-video-openchrome-$pkgver.tar.bz2 - openchrome-0.2.904-svn916.patch + openchrome-0.2.904-svn921.patch openchrome-0.2.904-fix_tvout_flickering.patch openchrome.xinf " @@ -23,7 +23,7 @@ prepare() { cd "$_builddir" for i in $source; do case $i in - *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + *.patch) msg $i; patch -p0 -i "$srcdir"/$i || return 1;; esac done } @@ -44,6 +44,6 @@ package() { } md5sums="f2481d98ef54febf5bffbb88a2a2426d xf86-video-openchrome-0.2.904.tar.bz2 -aa0b1e76e3fc531aa487779dc5e1d1cc openchrome-0.2.904-svn916.patch -cc7dff654c8363c61e8a77e0a12ea4fc openchrome-0.2.904-fix_tvout_flickering.patch +aa6f900c695b4c0eac0e2ea448699971 openchrome-0.2.904-svn921.patch +cde4ab7e4d154f21c1a8cba5c7ccdd11 openchrome-0.2.904-fix_tvout_flickering.patch d6906087f0e93ea2d98e553f4dfbcc97 openchrome.xinf" diff --git a/main/xf86-video-openchrome/openchrome-0.2.904-fix_tvout_flickering.patch b/main/xf86-video-openchrome/openchrome-0.2.904-fix_tvout_flickering.patch index 7a7b5d8a88..0fab55e4fd 100644 --- a/main/xf86-video-openchrome/openchrome-0.2.904-fix_tvout_flickering.patch +++ b/main/xf86-video-openchrome/openchrome-0.2.904-fix_tvout_flickering.patch @@ -1,7 +1,7 @@ Index: src/via_vt162x.c =================================================================== ---- a/src/via_vt162x.c (revision 787) -+++ b/src/via_vt162x.c (revision 786) +--- src/via_vt162x.c (revision 787) ++++ src/via_vt162x.c (revision 786) @@ -684,30 +650,11 @@ VT1622ModeI2C(ScrnInfoPtr pScrn, DisplayModePtr mo xf86I2CWriteByte(pBIOSInfo->TVI2CDev, 0x2B, Table.RGB[4]); if (Table.RGB[5]) diff --git a/main/xf86-video-openchrome/openchrome-0.2.904-svn916.patch b/main/xf86-video-openchrome/openchrome-0.2.904-svn921.patch index c3f659efa2..a26382b608 100644 --- a/main/xf86-video-openchrome/openchrome-0.2.904-svn916.patch +++ b/main/xf86-video-openchrome/openchrome-0.2.904-svn921.patch @@ -1,8 +1,14 @@ Index: ChangeLog =================================================================== ---- a/ChangeLog (.../tags/release_0_2_904) (revision 916) -+++ b/ChangeLog (.../trunk) (revision 916) -@@ -1,3 +1,219 @@ +--- ChangeLog (revision 811) ++++ ChangeLog (working copy) +@@ -1,3 +1,225 @@ ++2011-05-04 Bartosz Kosiorek <gang65@poczta.onet.pl> ++ ++ Fix XAA displaying issues ++ ++ * src/via_accel.c: (viaInitXAA): ++ +2011-01-23 Bartosz Kosiorek <gang65@poczta.onet.pl> + + Enable hardware cursor for VX900 @@ -200,7 +206,7 @@ Index: ChangeLog + Add option to enable unaccelerated RandR rotation ("SWRandR"). + The accelerated option "HWRandR" is currently not implemented. + -+ * man/openchrome.man: ++ * src/openchrome.man: + * src/via_driver.c: (VIAPreInit): + +2009-11-20 Bartosz Kosiorek <gang65@poczta.onet.pl> @@ -224,34 +230,31 @@ Index: ChangeLog Save/restore ECK Clock Synthesizer Index: src/via_panel.c =================================================================== ---- a/src/via_panel.c (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_panel.c (.../trunk) (revision 916) -@@ -45,17 +45,17 @@ static ViaPanelModeRec ViaPanelNativeModes[] = { +--- src/via_panel.c (revision 811) ++++ src/via_panel.c (working copy) +@@ -45,17 +45,17 @@ {1280, 768}, {1280, 1024}, {1400, 1050}, - {1600, 1200}, /* 0x6 Resolution 1440x900 */ -+ {1440, 900}, /* 0x6 Resolution 1440x900 */ ++ {1600, 1200}, /* 0x6 */ {1280, 800}, /* 0x7 Resolution 1280x800 (Samsung NC20) */ {800, 480}, /* 0x8 For Quanta 800x480 */ {1024, 600}, /* 0x9 Resolution 1024x600 (for HP 2133) */ {1366, 768}, /* 0xA Resolution 1366x768 */ -- {1920, 1080}, -- {1920, 1200}, + {1920, 1080}, + {1920, 1200}, - {1280, 1024}, /* 0xD Need to be fixed to 1920x1200 */ - {1440, 900}, /* 0xE Need to be fixed to 640x240 */ -- {1280, 720}, /* 0xF 480x640 */ ++ {1280, 1024}, /* 0xD */ ++ {1440, 900}, /* 0xE */ + {1280, 720}, /* 0xF 480x640 */ - {1200, 900}, /* 0x10 For Panasonic 1280x768 18bit Dual-Channel Panel */ -+ {1600, 1200}, /* 0xB Resolution 1600x1200 */ -+ {1680, 1050}, -+ {1920, 1200}, /* 0xD Resolution 1920x1200 */ -+ {640, 240}, /* 0xE Resolution 640x240 */ -+ {480, 640}, /* 0xF Resolution 480x640 */ -+ {1280, 768}, /* 0x10 For Panasonic 1280x768 18bit Dual-Channel Panel */ ++ {1200, 900}, /* 0x10 For OLPC 1.5 */ {1360, 768}, /* 0x11 Resolution 1360X768 */ {1024, 768}, /* 0x12 Resolution 1024x768 */ {800, 480} /* 0x13 General 8x4 panel use this setting */ -@@ -147,6 +147,9 @@ ViaPanelScaleDisable(ScrnInfoPtr pScrn) +@@ -147,6 +147,9 @@ vgaHWPtr hwp = VGAHWPTR(pScrn); ViaCrtcMask(hwp, 0x79, 0x00, 0x01); @@ -261,7 +264,7 @@ Index: src/via_panel.c if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) ViaCrtcMask(hwp, 0xA2, 0x00, 0xC8); } -@@ -171,12 +174,18 @@ ViaPanelScale(ScrnInfoPtr pScrn, int resWidth, int +@@ -171,12 +174,18 @@ resWidth, resHeight, panelWidth, panelHeight)); if (resWidth < panelWidth) { @@ -285,7 +288,7 @@ Index: src/via_panel.c cr77 = (horScalingFactor & 0x03FC) >> 2; /* HSCaleFactor[9:2] at CR77[7:0] */ cr79 = (horScalingFactor & 0x0C00) >> 10; /* HSCaleFactor[11:10] at CR79[5:4] */ cr79 <<= 4; -@@ -184,11 +193,18 @@ ViaPanelScale(ScrnInfoPtr pScrn, int resWidth, int +@@ -184,11 +193,18 @@ } if (resHeight < panelHeight) { @@ -308,7 +311,7 @@ Index: src/via_panel.c cr78 |= (verScalingFactor & 0x01FE) >> 1; /* VSCaleFactor[8:1] at CR78[7:0] */ cr79 |= ((verScalingFactor & 0x0600) >> 9) << 6; /* VSCaleFactor[10:9] at CR79[7:6] */ scaling = TRUE; -@@ -203,13 +219,19 @@ ViaPanelScale(ScrnInfoPtr pScrn, int resWidth, int +@@ -203,13 +219,19 @@ ViaCrtcMask(hwp, 0x77, cr77, 0xFF); ViaCrtcMask(hwp, 0x78, cr78, 0xFF); ViaCrtcMask(hwp, 0x79, cr79, 0xF8); @@ -332,7 +335,7 @@ Index: src/via_panel.c /* Horizontal scaling selection: interpolation */ // ViaCrtcMask(hwp, 0x79, 0x02, 0x02); // else -@@ -233,14 +255,14 @@ ViaPanelGetNativeDisplayMode(ScrnInfoPtr pScrn) +@@ -233,14 +255,14 @@ if (panelMode->Width && panelMode->Height) { @@ -352,7 +355,7 @@ Index: src/via_panel.c viaTimingCvt(p, panelMode->Width, panelMode->Height, refresh, FALSE, TRUE); p->CrtcHDisplay = p->HDisplay; p->CrtcHSyncStart = p->HSyncStart; -@@ -256,9 +278,13 @@ ViaPanelGetNativeDisplayMode(ScrnInfoPtr pScrn) +@@ -256,9 +278,13 @@ p->CrtcVBlankEnd = max(p->CrtcVSyncEnd, p->CrtcVTotal); p->CrtcHBlankStart = min(p->CrtcHSyncStart, p->CrtcHDisplay); p->CrtcHBlankEnd = max(p->CrtcHSyncEnd, p->CrtcHTotal); @@ -368,7 +371,7 @@ Index: src/via_panel.c } else { xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Invalid panel dimension (%dx%d)\n", panelMode->Width, -@@ -282,10 +308,7 @@ ViaPanelPreInit(ScrnInfoPtr pScrn) +@@ -282,10 +308,7 @@ Bool ret; ret = ViaPanelGetSizeFromDDCv1(pScrn, &width, &height); @@ -380,7 +383,7 @@ Index: src/via_panel.c if (ret) { panel->NativeModeIndex = ViaPanelLookUpModeIndex(width, height); DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "ViaPanelLookUpModeIndex, Width %d, Height %d, NativeModeIndex%d\n", width, height, panel->NativeModeIndex)); -@@ -333,28 +356,28 @@ ViaPanelCenterMode(DisplayModePtr centerMode, Disp +@@ -333,28 +356,28 @@ /* @@ -416,7 +419,7 @@ Index: src/via_panel.c *height = vsize; return TRUE; } -@@ -369,14 +392,14 @@ ViaPanelGetSizeFromEDID(ScrnInfoPtr pScrn, xf86Mon +@@ -369,14 +392,14 @@ struct detailed_timings timing = pMon->det_mon[i].section.d_timings; /* ignore v_active for now */ @@ -435,7 +438,7 @@ Index: src/via_panel.c *height = vsize; return TRUE; } -@@ -386,7 +409,6 @@ ViaPanelGetSizeFromEDID(ScrnInfoPtr pScrn, xf86Mon +@@ -386,7 +409,6 @@ Bool ViaPanelGetSizeFromDDCv1(ScrnInfoPtr pScrn, int *width, int *height) @@ -443,7 +446,7 @@ Index: src/via_panel.c { VIAPtr pVia = VIAPTR(pScrn); xf86MonPtr pMon; -@@ -396,7 +418,7 @@ ViaPanelGetSizeFromDDCv1(ScrnInfoPtr pScrn, int *w +@@ -396,7 +418,7 @@ if (!xf86I2CProbeAddress(pVia->pI2CBus2, 0xA0)) return FALSE; @@ -454,9 +457,9 @@ Index: src/via_panel.c Index: src/via_id.h =================================================================== ---- a/src/via_id.h (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_id.h (.../trunk) (revision 916) -@@ -39,6 +39,7 @@ enum VIACHIPTAGS { +--- src/via_id.h (revision 811) ++++ src/via_id.h (working copy) +@@ -39,6 +39,7 @@ VIA_P4M890, VIA_VX800, VIA_VX855, @@ -464,7 +467,7 @@ Index: src/via_id.h VIA_LAST }; -@@ -56,6 +57,7 @@ enum VIACHIPTAGS { +@@ -56,6 +57,7 @@ #define PCI_CHIP_VT3327 0x3343 /* P4M890 */ #define PCI_CHIP_VT3353 0x1122 /* VX800 */ #define PCI_CHIP_VT3409 0x5122 /* VX855/VX875 */ @@ -474,9 +477,9 @@ Index: src/via_id.h * the CLE266, often labelled Ax and Cx. The dividing line seems to be Index: src/via_video.c =================================================================== ---- a/src/via_video.c (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_video.c (.../trunk) (revision 916) -@@ -354,6 +354,14 @@ DecideOverlaySupport(ScrnInfoPtr pScrn) +--- src/via_video.c (revision 811) ++++ src/via_video.c (working copy) +@@ -354,6 +354,14 @@ mClock = 333; memEfficiency = (float)SINGLE_3205_133; break; @@ -491,7 +494,7 @@ Index: src/via_video.c default: /*Unknow DRAM Type */ DBG_DD(ErrorF("Unknow DRAM Type!\n")); -@@ -426,7 +434,7 @@ DecideOverlaySupport(ScrnInfoPtr pScrn) +@@ -426,7 +434,7 @@ DBG_DD(ErrorF(" via_video.c : totalBandwidth= %f : \n", totalBandWidth)); if (needBandWidth < totalBandWidth) @@ -500,7 +503,7 @@ Index: src/via_video.c } return FALSE; } -@@ -466,8 +474,8 @@ viaResetVideo(ScrnInfoPtr pScrn) +@@ -466,8 +474,8 @@ viaVidEng->video1_ctl = 0; viaVidEng->video3_ctl = 0; @@ -511,7 +514,7 @@ Index: src/via_video.c viaVidEng->color_key = 0x821; viaVidEng->snd_color_key = 0x821; -@@ -479,16 +487,16 @@ viaSaveVideo(ScrnInfoPtr pScrn) +@@ -479,16 +487,16 @@ VIAPtr pVia = VIAPTR(pScrn); vmmtr viaVidEng = (vmmtr) pVia->VidMapBase; @@ -531,7 +534,7 @@ Index: src/via_video.c } void -@@ -496,16 +504,66 @@ viaRestoreVideo(ScrnInfoPtr pScrn) +@@ -496,16 +504,66 @@ { VIAPtr pVia = VIAPTR(pScrn); vmmtr viaVidEng = (vmmtr) pVia->VidMapBase; @@ -603,7 +606,7 @@ Index: src/via_video.c } void -@@ -524,8 +582,8 @@ viaExitVideo(ScrnInfoPtr pScrn) +@@ -524,8 +582,8 @@ viaVidEng->video1_ctl = 0; viaVidEng->video3_ctl = 0; @@ -614,7 +617,7 @@ Index: src/via_video.c /* * Free all adaptor info allocated in viaInitVideo. -@@ -542,15 +600,15 @@ viaExitVideo(ScrnInfoPtr pScrn) +@@ -542,15 +600,15 @@ (viaPortPrivPtr) curAdapt->pPortPrivates->ptr + j, TRUE); } @@ -634,7 +637,7 @@ Index: src/via_video.c } void -@@ -561,7 +619,7 @@ viaInitVideo(ScreenPtr pScreen) +@@ -561,7 +619,7 @@ XF86VideoAdaptorPtr *adaptors, *newAdaptors; int num_adaptors, num_new; @@ -643,7 +646,7 @@ Index: src/via_video.c allAdaptors = NULL; newAdaptors = NULL; -@@ -611,7 +669,7 @@ viaInitVideo(ScreenPtr pScreen) +@@ -611,7 +669,7 @@ DBG_DD(ErrorF(" via_video.c : num_adaptors : %d\n", num_adaptors)); if (newAdaptors) { @@ -652,7 +655,7 @@ Index: src/via_video.c sizeof(XF86VideoAdaptorPtr *)); if (allAdaptors) { if (num_adaptors) -@@ -636,134 +694,7 @@ viaInitVideo(ScreenPtr pScreen) +@@ -636,194 +694,6 @@ } } @@ -661,7 +664,7 @@ Index: src/via_video.c -{ - int *dataA, *dataB; - int num; - +- - num = REGION_NUM_RECTS(A); - if (num != REGION_NUM_RECTS(B)) - return FALSE; @@ -784,34 +787,70 @@ Index: src/via_video.c -} - - - /* - * This one gets called, for example, on panning. - */ -@@ -779,14 +710,19 @@ viaReputImage(ScrnInfoPtr pScrn, - viaPortPrivPtr pPriv = (viaPortPrivPtr) data; - VIAPtr pVia = VIAPTR(pScrn); - +-/* +- * This one gets called, for example, on panning. +- */ +- +-static int +-viaReputImage(ScrnInfoPtr pScrn, +- short drw_x, short drw_y, RegionPtr clipBoxes, pointer data, +- DrawablePtr pDraw) +-{ +- +- DDUPDATEOVERLAY UpdateOverlay_Video; +- LPDDUPDATEOVERLAY lpUpdateOverlay = &UpdateOverlay_Video; +- viaPortPrivPtr pPriv = (viaPortPrivPtr) data; +- VIAPtr pVia = VIAPTR(pScrn); +- - if (!RegionsEqual(&pPriv->clip, clipBoxes)) { -+ if (!REGION_EQUAL(pScrn->pScreen, &pPriv->clip, clipBoxes)) { - REGION_COPY(pScrn->pScreen, &pPriv->clip, clipBoxes); - if (pPriv->autoPaint) { - if (pDraw->type == DRAWABLE_WINDOW) { +- REGION_COPY(pScrn->pScreen, &pPriv->clip, clipBoxes); +- if (pPriv->autoPaint) { +- if (pDraw->type == DRAWABLE_WINDOW) { - viaPaintColorkey(pScrn, pPriv, clipBoxes, pDraw); -+ /* TODO Replace xf86XVFillKeyHelper with xf86XVFillKeyHelperDrawable -+ Currently resizing problem exist in VLC Media Player -+ Example of implementation: -+ xf86XVFillKeyHelperDrawable(pDraw, pPriv->colorKey, clipBoxes); -+ DamageDamageRegion(pDraw, clipBoxes); */ -+ -+ xf86XVFillKeyHelper(pScrn->pScreen, pPriv->colorKey, clipBoxes); - } else { +- } else { - xf86XVFillKeyHelper(pScrn->pScreen, pPriv->colorKey, - clipBoxes); -+ xf86XVFillKeyHelper(pScrn->pScreen, pPriv->colorKey, clipBoxes); - } - } - } -@@ -832,7 +768,7 @@ viaSetupAdaptors(ScreenPtr pScreen, XF86VideoAdapt +- } +- } +- } +- +- if (drw_x == pPriv->old_drw_x && +- drw_y == pPriv->old_drw_y && +- pVia->swov.oldPanningX == pVia->swov.panning_x && +- pVia->swov.oldPanningY == pVia->swov.panning_y) { +- viaXvError(pScrn, pPriv, xve_none); +- return Success; +- } +- +- lpUpdateOverlay->SrcLeft = pPriv->old_src_x; +- lpUpdateOverlay->SrcTop = pPriv->old_src_y; +- lpUpdateOverlay->SrcRight = pPriv->old_src_x + pPriv->old_src_w; +- lpUpdateOverlay->SrcBottom = pPriv->old_src_y + pPriv->old_src_h; +- +- lpUpdateOverlay->DstLeft = drw_x; +- lpUpdateOverlay->DstTop = drw_y; +- lpUpdateOverlay->DstRight = drw_x + pPriv->old_drw_w; +- lpUpdateOverlay->DstBottom = drw_y + pPriv->old_drw_h; +- pPriv->old_drw_x = drw_x; +- pPriv->old_drw_y = drw_y; +- +- lpUpdateOverlay->dwFlags = DDOVER_KEYDEST; +- +- if (pScrn->bitsPerPixel == 8) +- lpUpdateOverlay->dwColorSpaceLowValue = pPriv->colorKey & 0xff; +- else +- lpUpdateOverlay->dwColorSpaceLowValue = pPriv->colorKey; +- +- VIAVidUpdateOverlay(pScrn, lpUpdateOverlay); +- +- viaXvError(pScrn, pPriv, xve_none); +- return Success; +-} +- + static unsigned + viaSetupAdaptors(ScreenPtr pScreen, XF86VideoAdaptorPtr ** adaptors) + { +@@ -832,7 +702,7 @@ DevUnion *pdevUnion; int i, j, usedPorts, numPorts; @@ -820,7 +859,16 @@ Index: src/via_video.c xvBrightness = MAKE_ATOM("XV_BRIGHTNESS"); xvContrast = MAKE_ATOM("XV_CONTRAST"); -@@ -931,7 +867,7 @@ viaStopVideo(ScrnInfoPtr pScrn, pointer data, Bool +@@ -884,7 +754,7 @@ + viaAdaptPtr[i]->GetPortAttribute = viaGetPortAttribute; + viaAdaptPtr[i]->SetPortAttribute = viaSetPortAttribute; + viaAdaptPtr[i]->PutImage = viaPutImage; +- viaAdaptPtr[i]->ReputImage = viaReputImage; ++ viaAdaptPtr[i]->ReputImage = NULL; + viaAdaptPtr[i]->QueryImageAttributes = viaQueryImageAttributes; + for (j = 0; j < numPorts; ++j) { + viaPortPriv[j].dmaBounceBuffer = NULL; +@@ -931,7 +801,7 @@ if (exit) { ViaSwovSurfaceDestroy(pScrn, pPriv); if (pPriv->dmaBounceBuffer) @@ -829,7 +877,7 @@ Index: src/via_video.c pPriv->dmaBounceBuffer = 0; pPriv->dmaBounceStride = 0; pPriv->dmaBounceLines = 0; -@@ -1042,6 +978,8 @@ viaGetPortAttribute(ScrnInfoPtr pScrn, +@@ -1042,6 +912,8 @@ } } else { @@ -838,7 +886,7 @@ Index: src/via_video.c /*return BadMatch */; } return Success; -@@ -1070,6 +1008,7 @@ Flip(VIAPtr pVia, viaPortPrivPtr pPriv, int fourcc +@@ -1070,6 +942,7 @@ unsigned long DisplayBufferIndex) { unsigned long proReg = 0; @@ -846,7 +894,7 @@ Index: src/via_video.c if (pVia->ChipId == PCI_CHIP_VT3259 && !(pVia->swov.gdwVideoFlagSW & VIDEO_1_INUSE)) -@@ -1081,7 +1020,8 @@ Flip(VIAPtr pVia, viaPortPrivPtr pPriv, int fourcc +@@ -1081,7 +954,8 @@ case FOURCC_RV15: case FOURCC_RV16: case FOURCC_RV32: @@ -856,7 +904,7 @@ Index: src/via_video.c VIDOutD(HQV_SRC_STARTADDR_Y + proReg, pVia->swov.SWDevice.dwSWPhysicalAddr[DisplayBufferIndex]); VIDOutD(HQV_CONTROL + proReg, -@@ -1090,7 +1030,8 @@ Flip(VIAPtr pVia, viaPortPrivPtr pPriv, int fourcc +@@ -1090,7 +964,8 @@ break; case FOURCC_YV12: default: @@ -866,7 +914,7 @@ Index: src/via_video.c VIDOutD(HQV_SRC_STARTADDR_Y + proReg, pVia->swov.SWDevice.dwSWPhysicalAddr[DisplayBufferIndex]); if (pVia->VideoEngine == VIDEO_ENGINE_CME) { -@@ -1174,7 +1115,7 @@ viaDmaBlitImage(VIAPtr pVia, +@@ -1174,7 +1049,7 @@ pPort->dmaBounceStride != bounceStride || pPort->dmaBounceLines != bounceLines) { if (pPort->dmaBounceBuffer) { @@ -875,7 +923,7 @@ Index: src/via_video.c pPort->dmaBounceBuffer = 0; } size = bounceStride * bounceLines + 16; -@@ -1296,7 +1237,7 @@ viaPutImage(ScrnInfoPtr pScrn, +@@ -1296,7 +1171,7 @@ unsigned long retCode; # ifdef XV_DEBUG @@ -884,7 +932,7 @@ Index: src/via_video.c ErrorF(" via_video.c : FourCC=0x%x width=%d height=%d sync=%d\n", id, width, height, sync); ErrorF -@@ -1405,12 +1346,11 @@ viaPutImage(ScrnInfoPtr pScrn, +@@ -1405,12 +1280,11 @@ lpUpdateOverlay->dwFlags = DDOVER_KEYDEST; @@ -902,7 +950,7 @@ Index: src/via_video.c /* If use extend FIFO mode */ if (pScrn->currentMode->HDisplay > 1024) { dwUseExtendedFIFO = 1; -@@ -1436,7 +1376,8 @@ viaPutImage(ScrnInfoPtr pScrn, +@@ -1436,7 +1310,8 @@ && (pPriv->old_src_w == src_w) && (pPriv->old_src_h == src_h) && (pVia->old_dwUseExtendedFIFO == dwUseExtendedFIFO) && (pVia->VideoStatus & VIDEO_SWOV_ON) && @@ -912,7 +960,7 @@ Index: src/via_video.c viaXvError(pScrn, pPriv, xve_none); return Success; } -@@ -1454,16 +1395,18 @@ viaPutImage(ScrnInfoPtr pScrn, +@@ -1454,16 +1329,18 @@ pVia->VideoStatus |= VIDEO_SWOV_ON; /* BitBlt: Draw the colorkey rectangle */ @@ -935,7 +983,7 @@ Index: src/via_video.c } /* * Update video overlay -@@ -1498,6 +1441,7 @@ viaQueryImageAttributes(ScrnInfoPtr pScrn, +@@ -1498,6 +1375,7 @@ DBG_DD(ErrorF(" via_video.c : viaQueryImageAttributes : FourCC=0x%x, ", id)); @@ -945,8 +993,8 @@ Index: src/via_video.c return 0; Index: src/via_lvds.c =================================================================== ---- a/src/via_lvds.c (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_lvds.c (.../trunk) (revision 916) +--- src/via_lvds.c (revision 811) ++++ src/via_lvds.c (working copy) @@ -42,7 +42,7 @@ 2^13 X 0.0698uSec [1/14.318MHz] = 8192 X 0.0698uSec =572.1uSec Timer = Counter x 572 uSec @@ -958,8 +1006,8 @@ Index: src/via_lvds.c The meaning of the TD0~TD3 are count of the clock. Index: src/via_video.h =================================================================== ---- a/src/via_video.h (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_video.h (.../trunk) (revision 916) +--- src/via_video.h (revision 811) ++++ src/via_video.h (working copy) @@ -44,6 +44,10 @@ #define VIDEO_BPP 2 @@ -971,7 +1019,7 @@ Index: src/via_video.h typedef struct { CARD32 interruptflag; /* 200 */ -@@ -89,7 +93,7 @@ typedef struct +@@ -89,7 +93,7 @@ CARD32 video3_ctl; /* 2a0 */ CARD32 video3_addr0; /* 2a4 */ CARD32 video3_addr1; /* 2a8 */ @@ -982,9 +1030,9 @@ Index: src/via_video.h CARD32 v3alpha_fetch; /* 2b8 */ Index: src/via_mode.c =================================================================== ---- a/src/via_mode.c (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_mode.c (.../trunk) (revision 916) -@@ -308,11 +308,14 @@ ViaDFPDetect(ScrnInfoPtr pScrn) +--- src/via_mode.c (revision 811) ++++ src/via_mode.c (working copy) +@@ -308,11 +308,14 @@ xf86MonPtr monPtr = NULL; if (pVia->pI2CBus2) @@ -1000,7 +1048,7 @@ Index: src/via_mode.c return TRUE; } else { return FALSE; -@@ -380,6 +383,7 @@ ViaOutputsDetect(ScrnInfoPtr pScrn) +@@ -380,6 +383,7 @@ case VIA_CX700: case VIA_VX800: case VIA_VX855: @@ -1008,7 +1056,7 @@ Index: src/via_mode.c if (ViaDFPDetect(pScrn)) { pBIOSInfo->DfpPresent = TRUE; xf86DrvMsg(pScrn->scrnIndex, X_INFO, -@@ -514,6 +518,7 @@ ViaOutputsSelect(ScrnInfoPtr pScrn) +@@ -514,6 +518,7 @@ case VIA_CX700: case VIA_VX800: case VIA_VX855: @@ -1016,7 +1064,7 @@ Index: src/via_mode.c pVia->pBIOSInfo->Lvds->IsActive = TRUE ; break; } -@@ -859,6 +864,9 @@ ViaGetMemoryBandwidth(ScrnInfoPtr pScrn) +@@ -859,6 +864,9 @@ case VIA_MEM_DDR533: case VIA_MEM_DDR667: return VIA_BW_DDR667; @@ -1026,7 +1074,7 @@ Index: src/via_mode.c default: xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "ViaBandwidthAllowed: Unknown memory type: %d\n", pVia->MemClk); -@@ -999,8 +1007,8 @@ ViaSetDotclock(ScrnInfoPtr pScrn, CARD32 clock, in +@@ -999,8 +1007,8 @@ dn = pll.params.dn; dm = pll.params.dm; @@ -1037,7 +1085,7 @@ Index: src/via_mode.c dm -= 2; dn -= 2; } -@@ -1078,7 +1086,7 @@ VIASetLCDMode(ScrnInfoPtr pScrn, DisplayModePtr mo +@@ -1078,7 +1086,7 @@ pBIOSInfo->Clock = Table.InitTb.LCDClk_12Bit; else { pBIOSInfo->Clock = Table.InitTb.VClk_12Bit; @@ -1046,7 +1094,7 @@ Index: src/via_mode.c ViaSetSecondaryDotclock(pScrn, Table.InitTb.LCDClk_12Bit); } } else { -@@ -1708,7 +1716,7 @@ ViaModeSet(ScrnInfoPtr pScrn, DisplayModePtr mode) +@@ -1708,7 +1716,7 @@ ViaModeSecondCRTC(pScrn, mode); ViaSecondDisplayChannelEnable(pScrn); } @@ -1055,7 +1103,7 @@ Index: src/via_mode.c if (pBIOSInfo->FirstCRTC->IsActive) { if (pBIOSInfo->CrtActive) { /* CRT on FirstCRTC */ -@@ -1734,6 +1742,15 @@ ViaModeSet(ScrnInfoPtr pScrn, DisplayModePtr mode) +@@ -1734,6 +1742,15 @@ ViaDisplayDisableCRT(pScrn); } @@ -1073,8 +1121,8 @@ Index: src/via_mode.c } else { Index: src/via_mode.h =================================================================== ---- a/src/via_mode.h (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_mode.h (.../trunk) (revision 916) +--- src/via_mode.h (revision 811) ++++ src/via_mode.h (working copy) @@ -32,8 +32,9 @@ */ #define VIA_BW_MIN 74000000 /* > 640x480@60Hz@32bpp */ @@ -1086,7 +1134,7 @@ Index: src/via_mode.h union pllparams { struct { -@@ -54,50 +55,50 @@ static struct ViaDotClock { +@@ -54,50 +55,50 @@ CARD16 UniChrome; union pllparams UniChromePro; } ViaDotClocks[] = { @@ -1181,7 +1229,7 @@ Index: src/via_mode.h }; /* -@@ -131,7 +132,7 @@ static DisplayModeRec ViaPanelModes[] = { +@@ -131,7 +132,7 @@ { MODEPREFIX("856x480"), 31704, 856, 872, 960, 1064, 0, 480, 480, 483, 497, 0, V_NHSYNC | V_PVSYNC, MODESUFFIX }, { MODEPREFIX("1024x512"), 41164, 1024, 1056, 1160, 1296, 0, 512, 512, 515, 531, 0, V_NHSYNC | V_PVSYNC, MODESUFFIX }, { MODEPREFIX("1024x576"), 46981, 1024, 1064, 1168, 1312, 0, 576, 576, 579, 597, 0, V_NHSYNC | V_PVSYNC, MODESUFFIX }, @@ -1192,9 +1240,9 @@ Index: src/via_mode.h { MODEPREFIX("1280x768"), 81135, 1280, 1328, 1440, 1688, 0, 768, 770, 776, 802, 0, V_PHSYNC | V_NVSYNC, MODESUFFIX }, Index: src/via_memcpy.c =================================================================== ---- a/src/via_memcpy.c (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_memcpy.c (.../trunk) (revision 916) -@@ -581,12 +581,12 @@ viaVidCopyInit(char *copyType, ScreenPtr pScreen) +--- src/via_memcpy.c (revision 811) ++++ src/via_memcpy.c (working copy) +@@ -581,12 +581,12 @@ if (VIAAllocLinear(&tmpFbBuffer, pScrn, alignSize + 31)) return libc_YUV42X; @@ -1210,7 +1258,7 @@ Index: src/via_memcpy.c VIAFreeLinear(&tmpFbBuffer); return libc_YUV42X; } -@@ -642,8 +642,8 @@ viaVidCopyInit(char *copyType, ScreenPtr pScreen) +@@ -642,8 +642,8 @@ curData->mName); } } @@ -1223,9 +1271,9 @@ Index: src/via_memcpy.c "Using %s YUV42X copy for %s.\n", Index: src/via_driver.c =================================================================== ---- a/src/via_driver.c (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_driver.c (.../trunk) (revision 916) -@@ -143,6 +143,7 @@ static const struct pci_id_match via_device_match[ +--- src/via_driver.c (revision 811) ++++ src/via_driver.c (working copy) +@@ -143,6 +143,7 @@ VIA_DEVICE_MATCH (PCI_CHIP_VT3327, 0 ), VIA_DEVICE_MATCH (PCI_CHIP_VT3353, 0 ), VIA_DEVICE_MATCH (PCI_CHIP_VT3409, 0 ), @@ -1233,7 +1281,7 @@ Index: src/via_driver.c { 0, 0, 0 }, }; -@@ -174,12 +175,13 @@ static SymTabRec VIAChipsets[] = { +@@ -174,12 +175,13 @@ {VIA_K8M800, "K8M800/K8N800"}, {VIA_PM800, "PM800/PM880/CN400"}, {VIA_VM800, "VM800/P4M800Pro/VN800/CN700"}, @@ -1251,7 +1299,7 @@ Index: src/via_driver.c {-1, NULL } }; -@@ -190,12 +192,13 @@ static PciChipsets VIAPciChipsets[] = { +@@ -190,12 +192,13 @@ {VIA_K8M800, PCI_CHIP_VT3204, VIA_RES_SHARED}, {VIA_PM800, PCI_CHIP_VT3259, VIA_RES_SHARED}, {VIA_VM800, PCI_CHIP_VT3314, VIA_RES_SHARED}, @@ -1267,7 +1315,7 @@ Index: src/via_driver.c {-1, -1, VIA_RES_UNDEF} }; -@@ -215,9 +218,11 @@ typedef enum +@@ -215,9 +218,11 @@ OPTION_EXA_SCRATCH_SIZE, OPTION_SWCURSOR, OPTION_SHADOW_FB, @@ -1279,7 +1327,7 @@ Index: src/via_driver.c OPTION_BUSWIDTH, OPTION_CENTER, OPTION_PANELSIZE, -@@ -253,6 +258,7 @@ static OptionInfoRec VIAOptions[] = { +@@ -253,6 +258,7 @@ {OPTION_EXA_SCRATCH_SIZE, "ExaScratchSize", OPTV_INTEGER, {0}, FALSE}, {OPTION_SWCURSOR, "SWCursor", OPTV_BOOLEAN, {0}, FALSE}, {OPTION_SHADOW_FB, "ShadowFB", OPTV_BOOLEAN, {0}, FALSE}, @@ -1287,7 +1335,7 @@ Index: src/via_driver.c {OPTION_ROTATE, "Rotate", OPTV_ANYSTR, {0}, FALSE}, {OPTION_VIDEORAM, "VideoRAM", OPTV_INTEGER, {0}, FALSE}, {OPTION_ACTIVEDEVICE, "ActiveDevice", OPTV_ANYSTR, {0}, FALSE}, -@@ -276,6 +282,7 @@ static OptionInfoRec VIAOptions[] = { +@@ -276,6 +282,7 @@ {OPTION_MODE_SWITCH_METHOD, "ModeSwitchMethod", OPTV_ANYSTR, {0}, FALSE}, {OPTION_MAX_DRIMEM, "MaxDRIMem", OPTV_INTEGER, {0}, FALSE}, {OPTION_AGPMEM, "AGPMem", OPTV_INTEGER, {0}, FALSE}, @@ -1295,7 +1343,7 @@ Index: src/via_driver.c {-1, NULL, OPTV_NONE, {0}, FALSE} }; -@@ -307,6 +314,7 @@ VIASetup(pointer module, pointer opts, int *errmaj +@@ -307,6 +314,7 @@ { static Bool setupDone = FALSE; @@ -1303,7 +1351,7 @@ Index: src/via_driver.c if (!setupDone) { setupDone = TRUE; xf86AddDriver(&VIA, module, -@@ -339,6 +347,7 @@ VIAGetRec(ScrnInfoPtr pScrn) +@@ -339,6 +347,7 @@ if (pScrn->driverPrivate) return TRUE; @@ -1311,7 +1359,7 @@ Index: src/via_driver.c pScrn->driverPrivate = xnfcalloc(sizeof(VIARec), 1); VIAPtr pVia = ((VIARec *) (pScrn->driverPrivate)); -@@ -400,36 +409,36 @@ VIAFreeRec(ScrnInfoPtr pScrn) +@@ -400,36 +409,36 @@ if (pBIOSInfo->Panel) { if (pBIOSInfo->Panel->NativeMode) @@ -1358,7 +1406,7 @@ Index: src/via_driver.c pScrn->driverPrivate = NULL; } /* VIAFreeRec */ -@@ -455,7 +464,6 @@ via_pci_probe(DriverPtr driver, int entity_num, +@@ -455,7 +464,6 @@ { ScrnInfoPtr scrn = NULL; EntityInfoPtr entity; @@ -1366,7 +1414,7 @@ Index: src/via_driver.c scrn = xf86ConfigPciEntity(scrn, 0, entity_num, VIAPciChipsets, NULL, NULL, NULL, NULL, NULL); -@@ -513,7 +521,7 @@ VIAProbe(DriverPtr drv, int flags) +@@ -513,7 +521,7 @@ numDevSections, drv, &usedChips); @@ -1375,7 +1423,7 @@ Index: src/via_driver.c if (numUsed <= 0) return FALSE; -@@ -588,11 +596,11 @@ VIAProbe(DriverPtr drv, int flags) +@@ -588,11 +596,11 @@ } instance++; } @@ -1389,7 +1437,7 @@ Index: src/via_driver.c return foundScreen; -@@ -652,6 +660,12 @@ VIAProbeDDC(ScrnInfoPtr pScrn, int index) +@@ -652,6 +660,12 @@ vbeInfoPtr pVbe; if (xf86LoadSubModule(pScrn, "vbe")) { @@ -1402,7 +1450,7 @@ Index: src/via_driver.c pVbe = VBEInit(NULL, index); ConfiguredMonitor = vbeDoEDID(pVbe, NULL); vbeFree(pVbe); -@@ -664,7 +678,7 @@ VIASetupDefaultOptions(ScrnInfoPtr pScrn) +@@ -664,7 +678,7 @@ VIAPtr pVia = VIAPTR(pScrn); VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo; @@ -1411,7 +1459,7 @@ Index: src/via_driver.c pVia->shadowFB = FALSE; pVia->NoAccel = FALSE; -@@ -684,10 +698,14 @@ VIASetupDefaultOptions(ScrnInfoPtr pScrn) +@@ -684,10 +698,14 @@ pVia->maxDriSize = 0; pVia->agpMem = AGP_SIZE / 1024; pVia->ActiveDevice = 0x00; @@ -1426,7 +1474,7 @@ Index: src/via_driver.c pVia->swov.maxWInterp = 800; pVia->swov.maxHInterp = 600; pVia->useLegacyVBE = TRUE; -@@ -710,20 +728,30 @@ VIASetupDefaultOptions(ScrnInfoPtr pScrn) +@@ -710,20 +728,30 @@ break; case VIA_K8M800: pVia->DRIIrqEnable = FALSE; @@ -1460,7 +1508,7 @@ Index: src/via_driver.c case VIA_P4M900: pVia->VideoEngine = VIDEO_ENGINE_CME; pVia->agpEnable = FALSE; -@@ -732,20 +760,13 @@ VIASetupDefaultOptions(ScrnInfoPtr pScrn) +@@ -732,20 +760,13 @@ pVia->dmaXV = FALSE; pBIOSInfo->TVDIPort = VIA_DI_PORT_DVP0; break; @@ -1485,7 +1533,7 @@ Index: src/via_driver.c break; } -@@ -807,7 +828,7 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -807,7 +828,7 @@ pEnt = xf86GetEntityInfo(pScrn->entityList[0]); #ifndef XSERVER_LIBPCIACCESS if (pEnt->resources) { @@ -1494,7 +1542,7 @@ Index: src/via_driver.c VIAFreeRec(pScrn); return FALSE; } -@@ -825,7 +846,7 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -825,7 +846,7 @@ pPriv = xf86GetEntityPrivate(pScrn->entityList[0], gVIAEntityIndex); pVIAEnt = pPriv->ptr; if (pVIAEnt->BypassSecondary) { @@ -1503,7 +1551,7 @@ Index: src/via_driver.c VIAFreeRec(pScrn); return FALSE; } -@@ -848,6 +869,7 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -848,6 +869,7 @@ pVIAEnt->HasSecondary = FALSE; pVIAEnt->RestorePrimary = FALSE; pVIAEnt->IsSecondaryRestored = FALSE; @@ -1511,7 +1559,7 @@ Index: src/via_driver.c } } else { pVia->sharedData = xnfcalloc(sizeof(ViaSharedRec), 1); -@@ -866,7 +888,7 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -866,7 +888,7 @@ */ if (!xf86SetDepthBpp(pScrn, 0, 0, 0, Support32bppFb)) { @@ -1520,7 +1568,7 @@ Index: src/via_driver.c VIAFreeRec(pScrn); return FALSE; } else { -@@ -881,7 +903,7 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -881,7 +903,7 @@ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Given depth (%d) is not supported by this driver\n", pScrn->depth); @@ -1529,7 +1577,7 @@ Index: src/via_driver.c VIAFreeRec(pScrn); return FALSE; } -@@ -897,7 +919,7 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -897,7 +919,7 @@ rgb zeros = { 0, 0, 0 }; if (!xf86SetWeight(pScrn, zeros, zeros)) { @@ -1538,7 +1586,7 @@ Index: src/via_driver.c VIAFreeRec(pScrn); return FALSE; } else { -@@ -914,7 +936,7 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -914,7 +936,7 @@ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Given default visual" " (%s) is not supported at depth %d.\n", xf86GetVisualName(pScrn->defaultVisual), pScrn->depth); @@ -1547,7 +1595,7 @@ Index: src/via_driver.c VIAFreeRec(pScrn); return FALSE; } -@@ -979,7 +1001,7 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -979,7 +1001,7 @@ xf86DrvMsg(pScrn->scrnIndex, from, "Chipset revision: %d\n", pVia->ChipRev); @@ -1556,7 +1604,7 @@ Index: src/via_driver.c /* Detect the amount of installed RAM */ from = X_PROBED; -@@ -993,6 +1015,12 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -993,6 +1015,12 @@ switch (pVia->Chipset) { case VIA_CLE266: @@ -1569,7 +1617,7 @@ Index: src/via_driver.c case VIA_KM400: #ifdef XSERVER_LIBPCIACCESS pci_device_cfg_read_u8(bridge, &videoRam, 0xE1); -@@ -1000,6 +1028,12 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -1000,6 +1028,12 @@ videoRam = pciReadByte(pciTag(0, 0, 0), 0xE1) & 0x70; #endif pScrn->videoRam = (1 << ((videoRam & 0x70) >> 4)) << 10; @@ -1582,7 +1630,7 @@ Index: src/via_driver.c break; case VIA_PM800: case VIA_VM800: -@@ -1017,6 +1051,7 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -1017,6 +1051,7 @@ case VIA_CX700: case VIA_VX800: case VIA_VX855: @@ -1590,7 +1638,7 @@ Index: src/via_driver.c #ifdef XSERVER_LIBPCIACCESS pci_device_cfg_read_u8(vgaDevice, &videoRam, 0xA1); #else -@@ -1046,23 +1081,18 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -1046,23 +1081,18 @@ } } @@ -1616,7 +1664,7 @@ Index: src/via_driver.c if (xf86GetOptValInteger(VIAOptions, OPTION_VIDEORAM, &pScrn->videoRam)) xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Setting amount of VideoRAM to %d kB\n", pScrn->videoRam); -@@ -1100,6 +1130,31 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -1100,6 +1130,31 @@ } /* When rotating, switch shadow framebuffer on and acceleration off. */ @@ -1648,7 +1696,7 @@ Index: src/via_driver.c if ((s = xf86GetOptValString(VIAOptions, OPTION_ROTATE))) { if (!xf86NameCmp(s, "CW")) { pVia->shadowFB = TRUE; -@@ -1498,6 +1553,7 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -1498,6 +1553,7 @@ } } @@ -1656,7 +1704,7 @@ Index: src/via_driver.c Gamma zeros = { 0.0, 0.0, 0.0 }; if (!xf86SetGamma(pScrn, zeros)) { VIAFreeRec(pScrn); -@@ -1523,6 +1579,17 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -1523,6 +1579,17 @@ pVia->videoRambytes = pScrn->videoRam << 10; @@ -1674,7 +1722,7 @@ Index: src/via_driver.c if (!xf86LoadSubModule(pScrn, "i2c")) { VIAFreeRec(pScrn); return FALSE; -@@ -1536,10 +1603,13 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -1536,10 +1603,13 @@ } else { if (pVia->pI2CBus1) { @@ -1689,7 +1737,7 @@ Index: src/via_driver.c } } } -@@ -1559,17 +1629,6 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -1559,17 +1629,6 @@ ViaPanelPreInit(pScrn); } @@ -1707,7 +1755,7 @@ Index: src/via_driver.c pVia->pVbe = NULL; if (pVia->useVBEModes) { /* VBE doesn't properly initialise int10 itself. */ -@@ -1593,6 +1652,7 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -1593,6 +1652,7 @@ } } else { @@ -1715,7 +1763,7 @@ Index: src/via_driver.c /* Add own modes. */ ViaModesAttach(pScrn, pScrn->monitor); -@@ -1609,6 +1669,26 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -1609,6 +1669,26 @@ clockRanges->interlaceAllowed = TRUE; clockRanges->doubleScanAllowed = FALSE; @@ -1742,7 +1790,7 @@ Index: src/via_driver.c /* * xf86ValidateModes will check that the mode HTotal and VTotal values * don't exceed the chipset's limit if pScrn->maxHValue and -@@ -1621,7 +1701,7 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -1621,7 +1701,7 @@ * * CLE266A: primary AdjustFrame can use only 24 bits, so we are limited * to 12x11 bits; 4080x2048 (~2:1), 3344x2508 (4:3), or 2896x2896 (1:1). @@ -1751,7 +1799,7 @@ Index: src/via_driver.c * * We should be able to limit the memory available for a mode to 32 MB, * but xf86ValidateModes (or miScanLineWidth) fails to catch this -@@ -1629,15 +1709,16 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -1629,15 +1709,16 @@ */ /* Select valid modes from those available. */ @@ -1775,7 +1823,7 @@ Index: src/via_driver.c pScrn->display->virtualX, /* virtual width */ pScrn->display->virtualY, /* virtual height */ pVia->videoRambytes, /* apertureSize */ -@@ -1650,6 +1731,7 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -1650,6 +1731,7 @@ return FALSE; } @@ -1783,7 +1831,7 @@ Index: src/via_driver.c xf86PruneDriverModes(pScrn); if (i == 0 || pScrn->modes == NULL) { -@@ -1662,9 +1744,17 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) +@@ -1662,9 +1744,17 @@ /* Set up screen parameters. */ pVia->Bpp = pScrn->bitsPerPixel >> 3; pVia->Bpl = pScrn->displayWidth * pVia->Bpp; @@ -1801,7 +1849,7 @@ Index: src/via_driver.c xf86SetDpi(pScrn, 0, 0); #ifdef USE_FB -@@ -1822,6 +1912,7 @@ VIALeaveVT(int scrnIndex, int flags) +@@ -1822,6 +1912,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -1809,7 +1857,7 @@ Index: src/via_driver.c break; default: hwp->writeSeq(hwp, 0x1A, pVia->SavedReg.SR1A | 0x40); -@@ -1935,7 +2026,9 @@ VIASave(ScrnInfoPtr pScrn) +@@ -1935,7 +2026,9 @@ Regs->SR17 = hwp->readSeq(hwp, 0x17); Regs->SR18 = hwp->readSeq(hwp, 0x18); Regs->SR19 = hwp->readSeq(hwp, 0x19); @@ -1819,7 +1867,7 @@ Index: src/via_driver.c Regs->SR1B = hwp->readSeq(hwp, 0x1B); Regs->SR1C = hwp->readSeq(hwp, 0x1C); Regs->SR1D = hwp->readSeq(hwp, 0x1D); -@@ -1977,40 +2070,59 @@ VIASave(ScrnInfoPtr pScrn) +@@ -1977,40 +2070,59 @@ Regs->SR4C = hwp->readSeq(hwp, 0x4C); break; } @@ -1888,7 +1936,7 @@ Index: src/via_driver.c } /* Save TMDS status */ -@@ -2018,6 +2130,7 @@ VIASave(ScrnInfoPtr pScrn) +@@ -2018,6 +2130,7 @@ case VIA_CX700: case VIA_VX800: case VIA_VX855: @@ -1896,7 +1944,7 @@ Index: src/via_driver.c Regs->CRD2 = hwp->readCrtc(hwp, 0xD2); break; } -@@ -2045,15 +2158,15 @@ VIARestore(ScrnInfoPtr pScrn) +@@ -2045,15 +2158,15 @@ /* Unlock extended registers. */ hwp->writeSeq(hwp, 0x10, 0x01); @@ -1916,7 +1964,7 @@ Index: src/via_driver.c ViaGammaDisable(pScrn); if (pBIOSInfo->TVI2CDev) -@@ -2098,11 +2211,19 @@ VIARestore(ScrnInfoPtr pScrn) +@@ -2098,11 +2211,19 @@ hwp->writeSeq(hwp, 0x45, Regs->SR45); hwp->writeSeq(hwp, 0x46, Regs->SR46); @@ -1936,7 +1984,7 @@ Index: src/via_driver.c switch (pVia->Chipset) { case VIA_CLE266: case VIA_KM400: -@@ -2112,9 +2233,22 @@ VIARestore(ScrnInfoPtr pScrn) +@@ -2112,9 +2233,22 @@ hwp->writeSeq(hwp, 0x4A, Regs->SR4A); hwp->writeSeq(hwp, 0x4B, Regs->SR4B); hwp->writeSeq(hwp, 0x4C, Regs->SR4C); @@ -1959,7 +2007,7 @@ Index: src/via_driver.c /* Reset dotclocks. */ ViaSeqMask(hwp, 0x40, 0x06, 0x06); ViaSeqMask(hwp, 0x40, 0x00, 0x06); -@@ -2127,14 +2261,23 @@ VIARestore(ScrnInfoPtr pScrn) +@@ -2127,14 +2261,23 @@ hwp->writeCrtc(hwp, 0x32, Regs->CR32); /* HSYNCH Adjuster */ hwp->writeCrtc(hwp, 0x33, Regs->CR33); @@ -1985,7 +2033,7 @@ Index: src/via_driver.c hwp->writeCrtc(hwp, 0x49, Regs->CR49); /* Restore LCD control registers. */ -@@ -2160,6 +2303,7 @@ VIARestore(ScrnInfoPtr pScrn) +@@ -2160,6 +2303,7 @@ case VIA_CX700: case VIA_VX800: case VIA_VX855: @@ -1993,7 +2041,7 @@ Index: src/via_driver.c /* LVDS Control Register */ hwp->writeCrtc(hwp, 0xD2, Regs->CRD2); break; -@@ -2189,6 +2333,7 @@ ViaMMIOEnable(ScrnInfoPtr pScrn) +@@ -2189,6 +2333,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -2001,7 +2049,7 @@ Index: src/via_driver.c ViaSeqMask(hwp, 0x1A, 0x08, 0x08); break; default: -@@ -2212,6 +2357,7 @@ ViaMMIODisable(ScrnInfoPtr pScrn) +@@ -2212,6 +2357,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -2009,7 +2057,7 @@ Index: src/via_driver.c ViaSeqMask(hwp, 0x1A, 0x00, 0x08); break; default: -@@ -2328,10 +2474,18 @@ VIAMapFB(ScrnInfoPtr pScrn) +@@ -2328,10 +2474,18 @@ VIAPtr pVia = VIAPTR(pScrn); #ifdef XSERVER_LIBPCIACCESS @@ -2030,7 +2078,7 @@ Index: src/via_driver.c #endif DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAMapFB\n")); -@@ -2453,7 +2607,6 @@ static void +@@ -2453,7 +2607,6 @@ VIALoadRgbLut(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors, VisualPtr pVisual) { @@ -2038,7 +2086,7 @@ Index: src/via_driver.c vgaHWPtr hwp = VGAHWPTR(pScrn); int i, j, index; -@@ -2844,7 +2997,7 @@ VIAInternalScreenInit(int scrnIndex, ScreenPtr pSc +@@ -2844,7 +2997,7 @@ if (pVia->shadowFB) { pVia->ShadowPitch = BitmapBytePad(pScrn->bitsPerPixel * width); @@ -2047,7 +2095,7 @@ Index: src/via_driver.c displayWidth = pVia->ShadowPitch / (pScrn->bitsPerPixel >> 3); FBStart = pVia->ShadowPtr; } else { -@@ -2880,7 +3033,6 @@ static Bool +@@ -2880,7 +3033,6 @@ VIAWriteMode(ScrnInfoPtr pScrn, DisplayModePtr mode) { VIAPtr pVia = VIAPTR(pScrn); @@ -2055,7 +2103,7 @@ Index: src/via_driver.c DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAWriteMode\n")); -@@ -2917,6 +3069,7 @@ VIAWriteMode(ScrnInfoPtr pScrn, DisplayModePtr mod +@@ -2917,6 +3069,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -2063,7 +2111,7 @@ Index: src/via_driver.c /* * Since we are using virtual, we need to adjust * the offset to match the framebuffer alignment. -@@ -2963,6 +3116,7 @@ VIACloseScreen(int scrnIndex, ScreenPtr pScreen) +@@ -2963,6 +3116,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -2071,7 +2119,7 @@ Index: src/via_driver.c break; default : hwp->writeSeq(hwp, 0x1A, pVia->SavedReg.SR1A | 0x40); -@@ -2986,11 +3140,11 @@ VIACloseScreen(int scrnIndex, ScreenPtr pScreen) +@@ -2986,11 +3140,11 @@ viaExitAccel(pScreen); if (pVia->ShadowPtr) { @@ -2085,7 +2133,7 @@ Index: src/via_driver.c pVia->DGAModes = NULL; } -@@ -3033,9 +3187,7 @@ static void +@@ -3033,9 +3187,7 @@ VIAAdjustFrame(int scrnIndex, int x, int y, int flags) { ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; @@ -2095,7 +2143,7 @@ Index: src/via_driver.c DEBUG(xf86DrvMsg(scrnIndex, X_INFO, "VIAAdjustFrame %dx%d\n", x, y)); -@@ -3173,7 +3325,6 @@ VIASwitchMode(int scrnIndex, DisplayModePtr mode, +@@ -3173,7 +3325,6 @@ static void VIADPMS(ScrnInfoPtr pScrn, int mode, int flags) { @@ -2105,9 +2153,9 @@ Index: src/via_driver.c Index: src/via_crtc.c =================================================================== ---- a/src/via_crtc.c (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_crtc.c (.../trunk) (revision 916) -@@ -174,6 +174,7 @@ ViaFirstCRTCSetMode(ScrnInfoPtr pScrn, DisplayMode +--- src/via_crtc.c (revision 811) ++++ src/via_crtc.c (working copy) +@@ -174,6 +174,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -2115,7 +2163,7 @@ Index: src/via_crtc.c break; default: ViaSeqMask(hwp, 0x16, 0x08, 0xBF); -@@ -234,8 +235,8 @@ ViaFirstCRTCSetMode(ScrnInfoPtr pScrn, DisplayMode +@@ -234,8 +235,8 @@ /* Primary starting address -> 0x00, adjustframe does the rest */ hwp->writeCrtc(hwp, 0x0C, 0x00); hwp->writeCrtc(hwp, 0x0D, 0x00); @@ -2125,7 +2173,7 @@ Index: src/via_crtc.c /* vertical sync start : 2047 */ temp = mode->CrtcVSyncStart; -@@ -278,6 +279,7 @@ ViaFirstCRTCSetMode(ScrnInfoPtr pScrn, DisplayMode +@@ -278,6 +279,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -2133,7 +2181,7 @@ Index: src/via_crtc.c break; default: /* some leftovers */ -@@ -314,6 +316,7 @@ ViaFirstCRTCSetMode(ScrnInfoPtr pScrn, DisplayMode +@@ -314,6 +316,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -2141,7 +2189,7 @@ Index: src/via_crtc.c break; default: /* some leftovers */ -@@ -331,15 +334,20 @@ ViaFirstCRTCSetStartingAddress(ScrnInfoPtr pScrn, +@@ -331,15 +334,20 @@ CARD32 Base; CARD32 tmp; @@ -2164,7 +2212,7 @@ Index: src/via_crtc.c } void -@@ -434,6 +442,7 @@ ViaSecondCRTCSetMode(ScrnInfoPtr pScrn, DisplayMod +@@ -434,6 +442,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -2172,7 +2220,7 @@ Index: src/via_crtc.c break; default: ViaSeqMask(hwp, 0x16, 0x08, 0xBF); -@@ -518,6 +527,7 @@ ViaSecondCRTCSetMode(ScrnInfoPtr pScrn, DisplayMod +@@ -518,6 +527,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -2182,8 +2230,8 @@ Index: src/via_crtc.c /* some leftovers */ Index: src/via_swov.c =================================================================== ---- a/src/via_swov.c (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_swov.c (.../trunk) (revision 916) +--- src/via_swov.c (revision 811) ++++ src/via_swov.c (working copy) @@ -65,6 +65,31 @@ #define IN_VIDEO_DISPLAY (*((unsigned long volatile *)(pVia->VidMapBase+V_FLAGS))&VBI_STATUS) #define VIA_FIRETIMEOUT 40000 @@ -2216,7 +2264,7 @@ Index: src/via_swov.c static void viaWaitVideoCommandFire(VIAPtr pVia) { -@@ -88,6 +113,7 @@ viaWaitHQVFlip(VIAPtr pVia) +@@ -88,6 +113,7 @@ { unsigned long proReg = 0; CARD32 volatile *pdwState; @@ -2224,7 +2272,7 @@ Index: src/via_swov.c if (pVia->ChipId == PCI_CHIP_VT3259 && !(pVia->swov.gdwVideoFlagSW & VIDEO_1_INUSE)) -@@ -96,10 +122,9 @@ viaWaitHQVFlip(VIAPtr pVia) +@@ -96,10 +122,9 @@ pdwState = (CARD32 volatile *)(pVia->VidMapBase + (HQV_CONTROL + proReg)); if (pVia->VideoEngine == VIDEO_ENGINE_CME) { @@ -2237,7 +2285,7 @@ Index: src/via_swov.c } } -@@ -109,8 +134,9 @@ viaWaitHQVFlipClear(VIAPtr pVia, unsigned long dwD +@@ -109,8 +134,9 @@ CARD32 volatile *pdwState = (CARD32 volatile *)(pVia->VidMapBase + HQV_CONTROL); *pdwState = dwData; @@ -2248,7 +2296,7 @@ Index: src/via_swov.c VIDOutD(HQV_CONTROL, *pdwState | HQV_FLIP_STATUS); } } -@@ -126,6 +152,7 @@ viaWaitHQVDone(VIAPtr pVia) +@@ -126,6 +152,7 @@ { CARD32 volatile *pdwState; unsigned long proReg = 0; @@ -2256,7 +2304,7 @@ Index: src/via_swov.c if (pVia->ChipId == PCI_CHIP_VT3259 && !(pVia->swov.gdwVideoFlagSW & VIDEO_1_INUSE)) -@@ -133,7 +160,7 @@ viaWaitHQVDone(VIAPtr pVia) +@@ -133,7 +160,7 @@ pdwState = (CARD32 volatile *)(pVia->VidMapBase + (HQV_CONTROL + proReg)); if (pVia->swov.MPEG_ON) { @@ -2265,7 +2313,7 @@ Index: src/via_swov.c } } -@@ -179,12 +206,14 @@ ResetVidRegBuffer(VIAPtr pVia) +@@ -179,12 +206,14 @@ static void SaveVideoRegister(VIAPtr pVia, CARD32 index, CARD32 data) { @@ -2284,7 +2332,7 @@ Index: src/via_swov.c } /* -@@ -224,6 +253,7 @@ VIAVidHWDiffInit(ScrnInfoPtr pScrn) +@@ -224,6 +253,7 @@ HWDiff->dwHQVDisablePatch = VID_HWDIFF_TRUE; HWDiff->dwNeedV1Prefetch = VID_HWDIFF_FALSE; } @@ -2292,7 +2340,7 @@ Index: src/via_swov.c break; case VIA_KM400: HWDiff->dwThreeHQVBuffer = VID_HWDIFF_TRUE; -@@ -232,6 +262,7 @@ VIAVidHWDiffInit(ScrnInfoPtr pScrn) +@@ -232,6 +262,7 @@ HWDiff->dwHQVInitPatch = VID_HWDIFF_FALSE; HWDiff->dwHQVDisablePatch = VID_HWDIFF_TRUE; HWDiff->dwNeedV1Prefetch = VID_HWDIFF_FALSE; @@ -2300,7 +2348,7 @@ Index: src/via_swov.c break; case VIA_K8M800: HWDiff->dwThreeHQVBuffer = VID_HWDIFF_TRUE; -@@ -240,6 +271,7 @@ VIAVidHWDiffInit(ScrnInfoPtr pScrn) +@@ -240,6 +271,7 @@ HWDiff->dwHQVInitPatch = VID_HWDIFF_FALSE; HWDiff->dwHQVDisablePatch = VID_HWDIFF_TRUE; HWDiff->dwNeedV1Prefetch = VID_HWDIFF_FALSE; @@ -2308,7 +2356,7 @@ Index: src/via_swov.c break; case VIA_PM800: HWDiff->dwThreeHQVBuffer = VID_HWDIFF_TRUE; -@@ -248,6 +280,8 @@ VIAVidHWDiffInit(ScrnInfoPtr pScrn) +@@ -248,6 +280,8 @@ HWDiff->dwHQVInitPatch = VID_HWDIFF_FALSE; HWDiff->dwHQVDisablePatch = VID_HWDIFF_FALSE; HWDiff->dwNeedV1Prefetch = VID_HWDIFF_FALSE; @@ -2317,7 +2365,7 @@ Index: src/via_swov.c break; case VIA_VM800: case VIA_P4M900: -@@ -257,6 +291,8 @@ VIAVidHWDiffInit(ScrnInfoPtr pScrn) +@@ -257,6 +291,8 @@ HWDiff->dwHQVInitPatch = VID_HWDIFF_FALSE; HWDiff->dwHQVDisablePatch = VID_HWDIFF_TRUE; HWDiff->dwNeedV1Prefetch = VID_HWDIFF_FALSE; @@ -2326,7 +2374,7 @@ Index: src/via_swov.c break; case VIA_K8M890: HWDiff->dwThreeHQVBuffer = VID_HWDIFF_TRUE; -@@ -265,6 +301,8 @@ VIAVidHWDiffInit(ScrnInfoPtr pScrn) +@@ -265,6 +301,8 @@ HWDiff->dwHQVInitPatch = VID_HWDIFF_FALSE; HWDiff->dwHQVDisablePatch = VID_HWDIFF_TRUE; HWDiff->dwNeedV1Prefetch = VID_HWDIFF_TRUE; @@ -2335,7 +2383,7 @@ Index: src/via_swov.c break; case VIA_P4M890: HWDiff->dwThreeHQVBuffer = VID_HWDIFF_TRUE; -@@ -273,6 +311,8 @@ VIAVidHWDiffInit(ScrnInfoPtr pScrn) +@@ -273,6 +311,8 @@ HWDiff->dwHQVInitPatch = VID_HWDIFF_FALSE; HWDiff->dwHQVDisablePatch = VID_HWDIFF_TRUE; HWDiff->dwNeedV1Prefetch = VID_HWDIFF_FALSE; @@ -2344,7 +2392,7 @@ Index: src/via_swov.c break; case VIA_CX700: HWDiff->dwThreeHQVBuffer = VID_HWDIFF_TRUE; -@@ -281,8 +321,19 @@ VIAVidHWDiffInit(ScrnInfoPtr pScrn) +@@ -281,8 +321,19 @@ HWDiff->dwHQVInitPatch = VID_HWDIFF_FALSE; HWDiff->dwHQVDisablePatch = VID_HWDIFF_FALSE; HWDiff->dwNeedV1Prefetch = VID_HWDIFF_FALSE; @@ -2364,7 +2412,7 @@ Index: src/via_swov.c case VIA_VX855: HWDiff->dwThreeHQVBuffer = VID_HWDIFF_TRUE; HWDiff->dwHQVFetchByteUnit = VID_HWDIFF_TRUE; -@@ -290,6 +341,8 @@ VIAVidHWDiffInit(ScrnInfoPtr pScrn) +@@ -290,6 +341,8 @@ HWDiff->dwHQVInitPatch = VID_HWDIFF_FALSE; HWDiff->dwHQVDisablePatch = VID_HWDIFF_FALSE; HWDiff->dwNeedV1Prefetch = VID_HWDIFF_FALSE; @@ -2373,7 +2421,7 @@ Index: src/via_swov.c break; default: xf86DrvMsg(pScrn->scrnIndex, X_ERROR, -@@ -509,10 +562,12 @@ viaOverlayHQVCalcZoomWidth(VIAPtr pVia, +@@ -509,10 +562,12 @@ unsigned long *pMiniCtl, unsigned long *pHQVfilterCtl, unsigned long *pHQVminiCtl, @@ -2386,7 +2434,7 @@ Index: src/via_swov.c CARD32 HQVfilter[5] = { HQV_H_FILTER_DEFAULT, HQV_H_TAP4_121, HQV_H_TAP4_121, HQV_H_TAP8_12221, HQV_H_TAP8_12221 -@@ -525,24 +580,57 @@ viaOverlayHQVCalcZoomWidth(VIAPtr pVia, +@@ -525,24 +580,57 @@ if (srcWidth == dstWidth) { /* No zoom */ *pHQVfilterCtl |= HQV_H_FILTER_DEFAULT; } else if (srcWidth < dstWidth) { /* Zoom in */ @@ -2457,7 +2505,7 @@ Index: src/via_swov.c /* Scale down the picture by a factor mdiv = (1 << d) = {2, 4, 8 or 16} */ sw1 = srcWidth; -@@ -561,27 +649,25 @@ viaOverlayHQVCalcZoomWidth(VIAPtr pVia, +@@ -561,27 +649,25 @@ *pMiniCtl |= ((d << 1) - 1) << 24; /* <= {1,3,5,7} << 24 */ *pHQVfilterCtl |= HQVfilter[d]; @@ -2500,7 +2548,7 @@ Index: src/via_swov.c return zoom_ok; } -@@ -591,10 +677,12 @@ viaOverlayHQVCalcZoomHeight(VIAPtr pVia, +@@ -591,10 +677,12 @@ unsigned long *pZoomCtl, unsigned long *pMiniCtl, unsigned long *pHQVfilterCtl, unsigned long *pHQVminiCtl, @@ -2513,7 +2561,7 @@ Index: src/via_swov.c CARD32 HQVfilter[5] = { HQV_V_TAP4_121, HQV_V_TAP4_121, HQV_V_TAP4_121, HQV_V_TAP8_12221, HQV_V_TAP8_12221 }; -@@ -608,48 +696,58 @@ viaOverlayHQVCalcZoomHeight(VIAPtr pVia, +@@ -608,48 +696,58 @@ if (srcHeight == dstHeight) { /* No zoom */ *pHQVfilterCtl |= HQV_V_TAP4_121; } else if (srcHeight < dstHeight) { /* Zoom in */ @@ -2606,7 +2654,7 @@ Index: src/via_swov.c } return zoom_ok; -@@ -1488,6 +1586,7 @@ SetColorKey(VIAPtr pVia, unsigned long videoFlag, +@@ -1488,6 +1586,7 @@ if (videoFlag & VIDEO_1_INUSE) { SaveVideoRegister(pVia, V_COLOR_KEY, keyLow); @@ -2614,7 +2662,7 @@ Index: src/via_swov.c } else { if (pVia->HWDiff.dwSupportTwoColorKey) /*CLE_C0 */ SaveVideoRegister(pVia, V3_COLOR_KEY, keyLow); -@@ -1561,8 +1660,9 @@ SetHQVFetch(VIAPtr pVia, CARD32 srcFetch, unsigned +@@ -1561,8 +1660,9 @@ srcFetch >>= 3; /* fetch unit is 8 bytes */ } @@ -2626,7 +2674,7 @@ Index: src/via_swov.c } static void -@@ -1713,13 +1813,14 @@ Upd_Video(ScrnInfoPtr pScrn, unsigned long videoFl +@@ -1713,13 +1813,14 @@ unsigned long zoomCtl = 0, miniCtl = 0; unsigned long hqvCtl = 0; unsigned long hqvFilterCtl = 0, hqvMiniCtl = 0; @@ -2642,7 +2690,7 @@ Index: src/via_swov.c if (pVia->ChipId == PCI_CHIP_VT3259 && !(videoFlag & VIDEO_1_INUSE)) proReg = PRO_HQV1_OFFSET; -@@ -1762,16 +1863,16 @@ Upd_Video(ScrnInfoPtr pScrn, unsigned long videoFl +@@ -1762,16 +1863,16 @@ /* * FIXME: @@ -2662,7 +2710,7 @@ Index: src/via_swov.c } viaOverlayGetV1V3Format(pVia, (videoFlag & VIDEO_1_INUSE) ? 1 : 3, -@@ -1925,7 +2026,7 @@ Upd_Video(ScrnInfoPtr pScrn, unsigned long videoFl +@@ -1925,7 +2026,7 @@ if (!viaOverlayHQVCalcZoomWidth(pVia, videoFlag, srcWidth, dstWidth, &zoomCtl, &miniCtl, &hqvFilterCtl, @@ -2671,7 +2719,7 @@ Index: src/via_swov.c /* Need to scale (minify) too much - can't handle it. */ SetFetch(pVia, videoFlag, fetch); FireVideoCommand(pVia, videoFlag, compose); -@@ -1964,7 +2065,7 @@ Upd_Video(ScrnInfoPtr pScrn, unsigned long videoFl +@@ -1964,7 +2065,7 @@ if (!viaOverlayHQVCalcZoomHeight(pVia, srcHeight, dstHeight, &zoomCtl, &miniCtl, &hqvFilterCtl, &hqvMiniCtl, @@ -2680,7 +2728,7 @@ Index: src/via_swov.c /* Need to scale (minify) too much - can't handle it. */ FireVideoCommand(pVia, videoFlag, compose); FlushVidRegBuffer(pVia); -@@ -2008,8 +2109,13 @@ Upd_Video(ScrnInfoPtr pScrn, unsigned long videoFl +@@ -2008,8 +2109,13 @@ hqvFilterCtl &= 0xfffdffff; SetMiniAndZoom(pVia, videoFlag, 0, 0); } @@ -2696,7 +2744,7 @@ Index: src/via_swov.c } else SetMiniAndZoom(pVia, videoFlag, miniCtl, zoomCtl); -@@ -2022,11 +2128,24 @@ Upd_Video(ScrnInfoPtr pScrn, unsigned long videoFl +@@ -2022,11 +2128,24 @@ miniCtl, compose); if (pVia->VideoEngine == VIDEO_ENGINE_CME) { @@ -2725,7 +2773,7 @@ Index: src/via_swov.c } } -@@ -2062,9 +2181,6 @@ Upd_Video(ScrnInfoPtr pScrn, unsigned long videoFl +@@ -2062,9 +2181,6 @@ usleep(1); } @@ -2737,9 +2785,9 @@ Index: src/via_swov.c Index: src/via_driver.h =================================================================== ---- a/src/via_driver.h (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_driver.h (.../trunk) (revision 916) -@@ -127,9 +127,10 @@ typedef struct { +--- src/via_driver.h (revision 811) ++++ src/via_driver.h (working copy) +@@ -127,9 +127,10 @@ CARD8 SR27, SR28, SR29, SR2A,SR2B,SR2C,SR2D,SR2E; CARD8 SR2F, SR30, SR31, SR32,SR33,SR34,SR40,SR41; CARD8 SR42, SR43, SR44, SR45,SR46,SR47,SR48,SR49; @@ -2751,7 +2799,7 @@ Index: src/via_driver.h CARD8 CR13, CR30, CR31, CR32, CR33, CR34, CR35, CR36; CARD8 CR37, CR38, CR39, CR3A, CR40, CR41, CR42, CR43; CARD8 CR44, CR45, CR46, CR47, CR48, CR49, CR4A; -@@ -142,7 +143,7 @@ typedef struct { +@@ -142,7 +143,7 @@ } VIARegRec, *VIARegPtr; /* @@ -2760,7 +2808,7 @@ Index: src/via_driver.h */ typedef struct { Bool b3DRegsInitialized; -@@ -285,6 +286,7 @@ typedef struct _VIA { +@@ -285,6 +286,7 @@ Bool agpDMA; Bool nPOT[VIA_NUM_TEXUNITS]; const unsigned *TwodRegs; @@ -2768,7 +2816,7 @@ Index: src/via_driver.h ExaDriverPtr exaDriverPtr; ExaOffscreenArea *exa_scratch; unsigned int exa_scratch_next; -@@ -412,16 +414,18 @@ typedef struct _VIA { +@@ -412,16 +414,18 @@ void *cursorMap; CARD32 cursorOffset; @@ -2788,7 +2836,7 @@ Index: src/via_driver.h } VIARec, *VIAPtr; #define VIAPTR(p) ((VIAPtr)((p)->driverPrivate)) -@@ -433,7 +437,7 @@ typedef struct +@@ -433,7 +437,7 @@ Bool HasSecondary; Bool BypassSecondary; /*These two registers are used to make sure the CRTC2 is @@ -2799,8 +2847,8 @@ Index: src/via_driver.h Index: src/via_bios.h =================================================================== ---- a/src/via_bios.h (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_bios.h (.../trunk) (revision 916) +--- src/via_bios.h (revision 811) ++++ src/via_bios.h (working copy) @@ -82,6 +82,11 @@ #define VIA_DEVICE_TV 0x04 #define VIA_DEVICE_DFP 0x08 @@ -2826,9 +2874,9 @@ Index: src/via_bios.h /* Digital Output Bus Width */ Index: src/via_swov.h =================================================================== ---- a/src/via_swov.h (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_swov.h (.../trunk) (revision 916) -@@ -53,7 +53,7 @@ typedef struct __VIAHWDiff +--- src/via_swov.h (revision 811) ++++ src/via_swov.h (working copy) +@@ -53,7 +53,7 @@ { unsigned long dwThreeHQVBuffer; /* Use Three HQV Buffers */ /* unsigned long dwV3SrcHeightSetting; *//* Set Video Source Width and Height */ @@ -2837,7 +2885,7 @@ Index: src/via_swov.h unsigned long dwHQVFetchByteUnit; /* HQV Fetch Count unit is byte */ unsigned long dwHQVInitPatch; /* Initialize HQV Engine 2 times */ /*unsigned long dwSupportV3Gamma; *//* Support V3 Gamma */ -@@ -73,6 +73,8 @@ typedef struct __VIAHWDiff +@@ -73,6 +73,8 @@ /*unsigned long dwV3FIFOPatch; *//* For CLE V3 FIFO Bug (srcWidth <= 8) */ unsigned long dwSupportTwoColorKey; /* Support two color key */ /* unsigned long dwCxColorSpace; *//* CLE_Cx ColorSpace */ @@ -2848,9 +2896,9 @@ Index: src/via_swov.h void VIAVidHWDiffInit(ScrnInfoPtr pScrn); Index: src/via_bandwidth.c =================================================================== ---- a/src/via_bandwidth.c (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_bandwidth.c (.../trunk) (revision 916) -@@ -194,6 +194,7 @@ ViaSetPrimaryFIFO(ScrnInfoPtr pScrn, DisplayModePt +--- src/via_bandwidth.c (revision 811) ++++ src/via_bandwidth.c (working copy) +@@ -194,6 +194,7 @@ else ViaSeqMask(hwp, 0x22, 0x00, 0x1F); /* 128/4 = overflow = 0 */ break; @@ -2858,7 +2906,7 @@ Index: src/via_bandwidth.c case VIA_PM800: hwp->writeSeq(hwp, 0x17, 0x5F); /* 95 */ ViaSeqMask(hwp, 0x16, 0x20, 0xBF); /* 32 */ -@@ -204,9 +205,10 @@ ViaSetPrimaryFIFO(ScrnInfoPtr pScrn, DisplayModePt +@@ -204,9 +205,10 @@ else ViaSeqMask(hwp, 0x22, 0x1F, 0x1F); /* 31 */ break; @@ -2870,7 +2918,7 @@ Index: src/via_bandwidth.c ViaSeqMask(hwp, 0x18, 0x08, 0xBF); if ((mode->HDisplay >= 1400) && (pScrn->bitsPerPixel == 32)) -@@ -215,40 +217,60 @@ ViaSetPrimaryFIFO(ScrnInfoPtr pScrn, DisplayModePt +@@ -215,40 +217,60 @@ ViaSeqMask(hwp, 0x22, 0x00, 0x1F); break; case VIA_K8M890: @@ -2952,7 +3000,7 @@ Index: src/via_bandwidth.c default: xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "ViaSetPrimaryFIFO: " "Chipset %d not implemented\n", pVia->Chipset); -@@ -371,7 +393,38 @@ ViaSetSecondaryFIFO(ScrnInfoPtr pScrn, DisplayMode +@@ -371,7 +393,38 @@ ViaCrtcMask(hwp, 0x94, 0x20, 0x7F); break; case VIA_P4M890: @@ -2991,7 +3039,7 @@ Index: src/via_bandwidth.c break; case VIA_P4M900: ViaCrtcMask(hwp, 0x68, 0xB0, 0xF0); -@@ -402,8 +455,8 @@ ViaSetSecondaryFIFO(ScrnInfoPtr pScrn, DisplayMode +@@ -402,8 +455,8 @@ break; case VIA_VX800: /* {CR68,4,7},{CR94,7,7},{CR95,7,7} : 96/8-1 = 0x0B */ @@ -3002,7 +3050,7 @@ Index: src/via_bandwidth.c ViaCrtcMask(hwp, 0x95, 0x00, 0x80); /* {CR68,0,3},{CR95,4,6} : 64/4 = 0x10 */ ViaCrtcMask(hwp, 0x68, 0x04, 0x0F); -@@ -418,7 +471,39 @@ ViaSetSecondaryFIFO(ScrnInfoPtr pScrn, DisplayMode +@@ -418,7 +471,39 @@ ViaCrtcMask(hwp, 0x94, 0x20, 0x7F); break; case VIA_VX855: @@ -3044,9 +3092,9 @@ Index: src/via_bandwidth.c "Chipset %d not implemented\n", pVia->Chipset); Index: src/via_accel.c =================================================================== ---- a/src/via_accel.c (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_accel.c (.../trunk) (revision 916) -@@ -196,6 +196,7 @@ viaFlushPCI(ViaCommandBuffer * buf) +--- src/via_accel.c (revision 811) ++++ src/via_accel.c (working copy) +@@ -196,6 +196,7 @@ switch (pVia->Chipset) { case VIA_VX800: case VIA_VX855: @@ -3054,7 +3102,7 @@ Index: src/via_accel.c while ((VIAGETREG(VIA_REG_STATUS) & (VIA_CMD_RGTR_BUSY_H5 | VIA_2D_ENG_BUSY_H5)) && (loop++ < MAXLOOP)) ; -@@ -287,7 +288,7 @@ viaSetupCBuffer(ScrnInfoPtr pScrn, ViaCommandBuffe +@@ -287,7 +288,7 @@ buf->pScrn = pScrn; buf->bufSize = ((size == 0) ? VIA_DMASIZE : size) >> 2; @@ -3063,7 +3111,7 @@ Index: src/via_accel.c if (!buf->buf) return BadAlloc; buf->waitFlags = 0; -@@ -312,7 +313,7 @@ void +@@ -312,7 +313,7 @@ viaTearDownCBuffer(ViaCommandBuffer * buf) { if (buf && buf->buf) @@ -3072,7 +3120,7 @@ Index: src/via_accel.c buf->buf = NULL; } -@@ -417,6 +418,9 @@ viaDisableVQ(ScrnInfoPtr pScrn) +@@ -417,6 +418,9 @@ switch (pVia->Chipset) { case VIA_K8M890: case VIA_P4M900: @@ -3082,7 +3130,7 @@ Index: src/via_accel.c VIASETREG(0x41c, 0x00100000); VIASETREG(0x420, 0x74301000); break; -@@ -472,16 +476,25 @@ viaInitialize2DEngine(ScrnInfoPtr pScrn) +@@ -472,16 +476,25 @@ VIASETREG(i, 0x0); } @@ -3110,7 +3158,7 @@ Index: src/via_accel.c pVia->TwodRegs = via_2d_regs_m1; break; default: -@@ -492,6 +505,9 @@ viaInitialize2DEngine(ScrnInfoPtr pScrn) +@@ -492,6 +505,9 @@ switch (pVia->Chipset) { case VIA_K8M890: case VIA_P4M900: @@ -3120,7 +3168,7 @@ Index: src/via_accel.c viaInitPCIe(pVia); break; default: -@@ -503,6 +519,9 @@ viaInitialize2DEngine(ScrnInfoPtr pScrn) +@@ -503,6 +519,9 @@ switch (pVia->Chipset) { case VIA_K8M890: case VIA_P4M900: @@ -3130,7 +3178,7 @@ Index: src/via_accel.c viaEnablePCIeVQ(pVia); break; default: -@@ -530,6 +549,7 @@ viaAccelSync(ScrnInfoPtr pScrn) +@@ -530,6 +549,7 @@ switch (pVia->Chipset) { case VIA_VX800: case VIA_VX855: @@ -3138,7 +3186,16 @@ Index: src/via_accel.c while ((VIAGETREG(VIA_REG_STATUS) & (VIA_CMD_RGTR_BUSY_H5 | VIA_2D_ENG_BUSY_H5 | VIA_3D_ENG_BUSY_H5)) && (loop++ < MAXLOOP)) ; -@@ -590,7 +610,9 @@ viaPitchHelper(VIAPtr pVia, unsigned dstPitch, uns +@@ -582,7 +602,7 @@ + + /* + * This is a small helper to wrap around a PITCH register write +- * to deal with the sublte differences of M1 and old 2D engine ++ * to deal with the subtle differences of M1 and old 2D engine + */ + static void + viaPitchHelper(VIAPtr pVia, unsigned dstPitch, unsigned srcPitch) +@@ -590,7 +610,9 @@ unsigned val = (dstPitch >> 3) << 16 | (srcPitch >> 3); RING_VARS; @@ -3149,7 +3206,7 @@ Index: src/via_accel.c val |= VIA_PITCH_ENABLE; } OUT_RING_H1(VIA_REG(pVia, PITCH), val); -@@ -759,6 +781,7 @@ viaSetupForScreenToScreenCopy(ScrnInfoPtr pScrn, i +@@ -759,6 +781,7 @@ tdc->cmd = cmd; viaAccelTransparentHelper(pVia, (trans_color != -1) ? 0x4000 : 0x0000, trans_color, FALSE); @@ -3157,7 +3214,7 @@ Index: src/via_accel.c } static void -@@ -796,6 +819,7 @@ viaSetupForSolidFill(ScrnInfoPtr pScrn, int color, +@@ -796,6 +819,7 @@ tdc->cmd = VIA_GEC_BLT | VIA_GEC_FIXCOLOR_PAT | VIAACCELPATTERNROP(rop); tdc->fgColor = color; viaAccelTransparentHelper(pVia, 0x00, 0x00, FALSE); @@ -3165,7 +3222,7 @@ Index: src/via_accel.c } static void -@@ -852,6 +876,7 @@ viaSetupForMono8x8PatternFill(ScrnInfoPtr pScrn, i +@@ -852,6 +876,7 @@ tdc->pattern0 = pattern0; tdc->pattern1 = pattern1; viaAccelTransparentHelper(pVia, 0x00, 0x00, FALSE); @@ -3173,7 +3230,7 @@ Index: src/via_accel.c } static void -@@ -901,6 +926,7 @@ viaSetupForColor8x8PatternFill(ScrnInfoPtr pScrn, +@@ -901,6 +926,7 @@ tdc->patternAddr = (patternx * pVia->Bpp + patterny * pVia->Bpl); viaAccelTransparentHelper(pVia, (trans_color != -1) ? 0x4000 : 0x0000, trans_color, FALSE); @@ -3181,7 +3238,7 @@ Index: src/via_accel.c } static void -@@ -962,9 +988,9 @@ viaSetupForCPUToScreenColorExpandFill(ScrnInfoPtr +@@ -962,9 +988,9 @@ tdc->fgColor = fg; tdc->bgColor = bg; @@ -3193,7 +3250,7 @@ Index: src/via_accel.c } static void -@@ -991,7 +1017,7 @@ viaSubsequentScanlineCPUToScreenColorExpandFill(Sc +@@ -991,7 +1017,7 @@ pScrn->fbOffset + sub * pVia->Bpl, tdc->mode, pVia->Bpl, pVia->Bpl, tdc->cmd); @@ -3202,7 +3259,7 @@ Index: src/via_accel.c viaDisableClipping(pScrn); } -@@ -1005,9 +1031,9 @@ viaSetupForImageWrite(ScrnInfoPtr pScrn, int rop, +@@ -1005,9 +1031,9 @@ RING_VARS; tdc->cmd = VIA_GEC_BLT | VIA_GEC_SRC_SYS | VIAACCELCOPYROP(rop); @@ -3213,7 +3270,7 @@ Index: src/via_accel.c } static void -@@ -1030,7 +1056,7 @@ viaSubsequentImageWriteRect(ScrnInfoPtr pScrn, int +@@ -1030,7 +1056,7 @@ pScrn->fbOffset + pVia->Bpl * sub, tdc->mode, pVia->Bpl, pVia->Bpl, tdc->cmd); @@ -3222,7 +3279,7 @@ Index: src/via_accel.c viaDisableClipping(pScrn); } -@@ -1052,6 +1078,7 @@ viaSetupForSolidLine(ScrnInfoPtr pScrn, int color, +@@ -1052,6 +1078,7 @@ OUT_RING_H1(VIA_REG(pVia, GEMODE), tdc->mode); OUT_RING_H1(VIA_REG(pVia, MONOPAT0), 0xFF); OUT_RING_H1(VIA_REG(pVia, MONOPATFGC), tdc->fgColor); @@ -3230,7 +3287,7 @@ Index: src/via_accel.c } static void -@@ -1189,6 +1216,7 @@ viaSetupForDashedLine(ScrnInfoPtr pScrn, int fg, i +@@ -1189,6 +1216,7 @@ OUT_RING_H1(VIA_REG(pVia, MONOPATFGC), tdc->fgColor); OUT_RING_H1(VIA_REG(pVia, MONOPATBGC), tdc->bgColor); OUT_RING_H1(VIA_REG(pVia, MONOPAT0), tdc->pattern0); @@ -3238,7 +3295,7 @@ Index: src/via_accel.c } static void -@@ -1210,7 +1238,8 @@ viaInitXAA(ScreenPtr pScreen) +@@ -1210,7 +1238,8 @@ /* General acceleration flags. */ xaaptr->Flags = (PIXMAP_CACHE | @@ -3248,7 +3305,7 @@ Index: src/via_accel.c MICROSOFT_ZERO_LINE_BIAS | 0); if (pScrn->bitsPerPixel == 8) -@@ -1218,24 +1247,29 @@ viaInitXAA(ScreenPtr pScreen) +@@ -1218,24 +1247,31 @@ xaaptr->SetClippingRectangle = viaSetClippingRectangle; xaaptr->DisableClipping = viaDisableClipping; @@ -3261,7 +3318,9 @@ Index: src/via_accel.c HARDWARE_CLIP_COLOR_8x8_FILL | HARDWARE_CLIP_SCREEN_TO_SCREEN_COLOR_EXPAND | 0); -+ if (pVia->Chipset != VIA_VX855 && pVia->Chipset != VIA_VX900) ++ if (pVia->Chipset != VIA_VX800 && ++ pVia->Chipset != VIA_VX855 && ++ pVia->Chipset != VIA_VX900) + xaaptr->ClippingFlags |= (HARDWARE_CLIP_SOLID_FILL | + HARDWARE_CLIP_SOLID_LINE | + HARDWARE_CLIP_DASHED_LINE); @@ -3282,7 +3341,7 @@ Index: src/via_accel.c xaaptr->SetupForMono8x8PatternFill = viaSetupForMono8x8PatternFill; xaaptr->SubsequentMono8x8PatternFillRect = viaSubsequentMono8x8PatternFillRect; -@@ -1244,6 +1278,7 @@ viaInitXAA(ScreenPtr pScreen) +@@ -1244,6 +1280,7 @@ HARDWARE_PATTERN_PROGRAMMED_ORIGIN | BIT_ORDER_IN_BYTE_MSBFIRST | 0); @@ -3290,7 +3349,7 @@ Index: src/via_accel.c xaaptr->SetupForColor8x8PatternFill = viaSetupForColor8x8PatternFill; xaaptr->SubsequentColor8x8PatternFillRect = viaSubsequentColor8x8PatternFillRect; -@@ -1252,12 +1287,14 @@ viaInitXAA(ScreenPtr pScreen) +@@ -1252,12 +1289,14 @@ HARDWARE_PATTERN_PROGRAMMED_BITS | HARDWARE_PATTERN_PROGRAMMED_ORIGIN | 0); @@ -3305,7 +3364,7 @@ Index: src/via_accel.c xaaptr->SetupForDashedLine = viaSetupForDashedLine; xaaptr->SubsequentDashedTwoPointLine = viaSubsequentDashedTwoPointLine; xaaptr->DashPatternMaxLength = 8; -@@ -1266,49 +1303,50 @@ viaInitXAA(ScreenPtr pScreen) +@@ -1266,49 +1305,50 @@ LINE_PATTERN_POWER_OF_2_ONLY | LINE_PATTERN_MSBFIRST_LSBJUSTIFIED | 0); @@ -3377,7 +3436,7 @@ Index: src/via_accel.c xaaptr->ImageWriteRange = VIA_MMIO_BLTSIZE; else xaaptr->ImageWriteRange = (64 * 1024); -@@ -2344,7 +2382,7 @@ viaInitExa(ScreenPtr pScreen) +@@ -2344,7 +2384,7 @@ } if (!exaDriverInit(pScreen, pExa)) { @@ -3386,7 +3445,7 @@ Index: src/via_accel.c return NULL; } -@@ -2354,7 +2392,7 @@ viaInitExa(ScreenPtr pScreen) +@@ -2354,7 +2394,7 @@ /* @@ -3395,7 +3454,7 @@ Index: src/via_accel.c * and initializes engines and acceleration method. */ Bool -@@ -2542,7 +2580,7 @@ viaExitAccel(ScreenPtr pScreen) +@@ -2542,7 +2582,7 @@ } } if (pVia->dBounce) @@ -3404,7 +3463,7 @@ Index: src/via_accel.c #endif /* XF86DRI */ if (pVia->scratchAddr) { exaOffscreenFree(pScreen, pVia->scratchFBBuffer); -@@ -2551,7 +2589,7 @@ viaExitAccel(ScreenPtr pScreen) +@@ -2551,7 +2591,7 @@ if (pVia->exaDriverPtr) { exaDriverFini(pScreen); } @@ -3413,7 +3472,7 @@ Index: src/via_accel.c pVia->exaDriverPtr = NULL; return; } -@@ -2577,7 +2615,7 @@ viaFinishInitAccel(ScreenPtr pScreen) +@@ -2577,7 +2617,7 @@ if (pVia->directRenderingEnabled && pVia->useEXA) { @@ -3424,9 +3483,9 @@ Index: src/via_accel.c Index: src/via_vt162x.c =================================================================== ---- a/src/via_vt162x.c (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_vt162x.c (.../trunk) (revision 916) -@@ -41,30 +41,42 @@ ViaSetTVClockSource(ScrnInfoPtr pScrn) +--- src/via_vt162x.c (revision 811) ++++ src/via_vt162x.c (working copy) +@@ -41,30 +41,42 @@ VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo; vgaHWPtr hwp = VGAHWPTR(pScrn); @@ -3488,9 +3547,9 @@ Index: src/via_vt162x.c static void Index: src/via_vbe.c =================================================================== ---- a/src/via_vbe.c (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_vbe.c (.../trunk) (revision 916) -@@ -230,7 +230,7 @@ ViaVbeSetMode(ScrnInfoPtr pScrn, DisplayModePtr pM +--- src/via_vbe.c (revision 811) ++++ src/via_vbe.c (working copy) +@@ -230,7 +230,7 @@ /* Some cards do not like setting the clock. */ xf86ErrorF("...but worked OK without customized " "refresh and dotclock.\n"); @@ -3499,7 +3558,7 @@ Index: src/via_vbe.c data->block = NULL; data->mode &= ~(1 << 11); } else { -@@ -322,7 +322,7 @@ ViaVbeSaveRestore(ScrnInfoPtr pScrn, vbeSaveRestor +@@ -322,7 +322,7 @@ && (function == MODE_SAVE)) { /* Do not rely on the memory not being touched. */ if (pVia->vbeMode.pstate == NULL) @@ -3510,9 +3569,9 @@ Index: src/via_vbe.c } Index: src/via_xvmc.c =================================================================== ---- a/src/via_xvmc.c (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_xvmc.c (.../trunk) (revision 916) -@@ -151,7 +151,7 @@ cleanupViaXvMC(ViaXvMCPtr vXvMC, XF86VideoAdaptorP +--- src/via_xvmc.c (revision 811) ++++ src/via_xvmc.c (working copy) +@@ -151,7 +151,7 @@ for (i = 0; i < VIA_XVMC_MAX_CONTEXTS; ++i) { vXvMC->contexts[i] = 0; if (vXvMC->cPrivs[i]) { @@ -3521,7 +3580,7 @@ Index: src/via_xvmc.c vXvMC->cPrivs[i] = 0; } } -@@ -159,7 +159,7 @@ cleanupViaXvMC(ViaXvMCPtr vXvMC, XF86VideoAdaptorP +@@ -159,7 +159,7 @@ for (i = 0; i < VIA_XVMC_MAX_SURFACES; ++i) { vXvMC->surfaces[i] = 0; if (vXvMC->sPrivs[i]) { @@ -3530,7 +3589,7 @@ Index: src/via_xvmc.c vXvMC->sPrivs[i] = 0; } } -@@ -270,7 +270,7 @@ static XF86ImagePtr Via_subpicture_list[2] = { +@@ -270,7 +270,7 @@ /* * Filling in the device dependent adaptor record. * This is named "VIA Video Overlay" because this code falls under the @@ -3539,7 +3598,7 @@ Index: src/via_xvmc.c * * For surface and subpicture, see above. * The function pointers point to functions below. -@@ -325,10 +325,11 @@ ViaInitXVMC(ScreenPtr pScreen) +@@ -325,10 +325,11 @@ if ((pVia->Chipset == VIA_KM400) || (pVia->Chipset == VIA_CX700) || @@ -3553,7 +3612,7 @@ Index: src/via_xvmc.c xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "[XvMC] XvMC is not supported on this chipset.\n"); return; -@@ -424,7 +425,7 @@ ViaCleanupXVMC(ScrnInfoPtr pScrn, XF86VideoAdaptor +@@ -424,7 +425,7 @@ viaPortPrivPtr pPriv = XvAdaptors[i]->pPortPrivates[j].ptr; if (pPriv->xvmc_priv) @@ -3562,7 +3621,7 @@ Index: src/via_xvmc.c } } pVia->XvMCEnabled = 0; -@@ -460,7 +461,7 @@ ViaXvMCCreateContext(ScrnInfoPtr pScrn, XvMCContex +@@ -460,7 +461,7 @@ return BadAlloc; } @@ -3571,7 +3630,7 @@ Index: src/via_xvmc.c contextRec = (ViaXvMCCreateContextRec *) * priv; if (!*priv) { -@@ -475,12 +476,12 @@ ViaXvMCCreateContext(ScrnInfoPtr pScrn, XvMCContex +@@ -475,12 +476,12 @@ break; } @@ -3586,7 +3645,7 @@ Index: src/via_xvmc.c *num_priv = 0; return BadAlloc; } -@@ -532,7 +533,7 @@ ViaXvMCCreateSurface(ScrnInfoPtr pScrn, XvMCSurfac +@@ -532,7 +533,7 @@ return BadAlloc; } @@ -3595,7 +3654,7 @@ Index: src/via_xvmc.c if (!sPriv) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, -@@ -566,13 +567,13 @@ ViaXvMCCreateSurface(ScrnInfoPtr pScrn, XvMCSurfac +@@ -566,13 +567,13 @@ #endif *num_priv = numBuffers + 2; @@ -3611,7 +3670,7 @@ Index: src/via_xvmc.c return BadAlloc; } -@@ -588,8 +589,8 @@ ViaXvMCCreateSurface(ScrnInfoPtr pScrn, XvMCSurfac +@@ -588,8 +589,8 @@ sPriv->memory_ref.pool = 0; if (VIAAllocLinear(&(sPriv->memory_ref), pScrn, numBuffers * bufSize + 32)) { @@ -3622,7 +3681,7 @@ Index: src/via_xvmc.c xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "[XvMC] ViaXvMCCreateSurface: " "Unable to allocate frambuffer memory!\n"); return BadAlloc; -@@ -631,7 +632,7 @@ ViaXvMCCreateSubpicture(ScrnInfoPtr pScrn, XvMCSub +@@ -631,7 +632,7 @@ return BadAlloc; } @@ -3631,7 +3690,7 @@ Index: src/via_xvmc.c if (!sPriv) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "[XvMC] ViaXvMCCreateSubpicture:" -@@ -640,13 +641,13 @@ ViaXvMCCreateSubpicture(ScrnInfoPtr pScrn, XvMCSub +@@ -640,13 +641,13 @@ return BadAlloc; } @@ -3647,7 +3706,7 @@ Index: src/via_xvmc.c return BadAlloc; } -@@ -663,8 +664,8 @@ ViaXvMCCreateSubpicture(ScrnInfoPtr pScrn, XvMCSub +@@ -663,8 +664,8 @@ bufSize = size_xx44(ctx->width, ctx->height); sPriv->memory_ref.pool = 0; if (VIAAllocLinear(&(sPriv->memory_ref), pScrn, 1 * bufSize + 32)) { @@ -3658,7 +3717,7 @@ Index: src/via_xvmc.c xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "[XvMC] ViaXvMCCreateSubpicture:" " Unable to allocate framebuffer memory!\n"); return BadAlloc; -@@ -701,7 +702,7 @@ ViaXvMCDestroyContext(ScrnInfoPtr pScrn, XvMCConte +@@ -701,7 +702,7 @@ vx->ctxDisplaying = 0; } @@ -3667,7 +3726,7 @@ Index: src/via_xvmc.c vXvMC->cPrivs[i] = 0; vXvMC->nContexts--; vXvMC->contexts[i] = 0; -@@ -736,7 +737,7 @@ ViaXvMCDestroySurface(ScrnInfoPtr pScrn, XvMCSurfa +@@ -736,7 +737,7 @@ } VIAFreeLinear(&(vXvMC->sPrivs[i]->memory_ref)); @@ -3676,7 +3735,7 @@ Index: src/via_xvmc.c vXvMC->nSurfaces--; vXvMC->sPrivs[i] = 0; vXvMC->surfaces[i] = 0; -@@ -778,7 +779,7 @@ ViaXvMCDestroySubpicture(ScrnInfoPtr pScrn, XvMCSu +@@ -778,7 +779,7 @@ } VIAFreeLinear(&(vXvMC->sPrivs[i]->memory_ref)); @@ -3685,7 +3744,7 @@ Index: src/via_xvmc.c vXvMC->nSurfaces--; vXvMC->sPrivs[i] = 0; vXvMC->surfaces[i] = 0; -@@ -828,7 +829,7 @@ viaXvMCInitXv(ScrnInfoPtr pScrn, XF86VideoAdaptorP +@@ -828,7 +829,7 @@ for (j = 0; j < XvAdapt->nPorts; ++j) { pPriv = (viaPortPrivPtr) XvAdapt->pPortPrivates[j].ptr; @@ -3696,9 +3755,9 @@ Index: src/via_xvmc.c for (i = 0; i < VIA_NUM_XVMC_ATTRIBUTES; ++i) { Index: src/via_cursor.c =================================================================== ---- a/src/via_cursor.c (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_cursor.c (.../trunk) (revision 916) -@@ -98,6 +98,7 @@ viaHWCursorInit(ScreenPtr pScreen) +--- src/via_cursor.c (revision 811) ++++ src/via_cursor.c (working copy) +@@ -98,6 +98,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -3706,7 +3765,7 @@ Index: src/via_cursor.c if (pVia->pBIOSInfo->FirstCRTC->IsActive) { pVia->CursorRegControl = VIA_REG_HI_CONTROL0; pVia->CursorRegBase = VIA_REG_HI_BASE0; -@@ -145,9 +146,12 @@ viaHWCursorInit(ScreenPtr pScreen) +@@ -145,9 +146,12 @@ infoPtr->ShowCursor = viaShowCursor; infoPtr->UseHWCursor = viaUseHWCursor; @@ -3720,7 +3779,7 @@ Index: src/via_cursor.c /* Set cursor location in frame buffer. */ VIASETREG(VIA_REG_CURSOR_MODE, pVia->cursorOffset); -@@ -166,6 +170,7 @@ viaHWCursorInit(ScreenPtr pScreen) +@@ -166,6 +170,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -3728,7 +3787,7 @@ Index: src/via_cursor.c if (pVia->pBIOSInfo->FirstCRTC->IsActive) { VIASETREG(VIA_REG_PRIM_HI_INVTCOLOR, 0x00FFFFFF); VIASETREG(VIA_REG_V327_HI_INVTCOLOR, 0x00FFFFFF); -@@ -225,6 +230,7 @@ viaCursorStore(ScrnInfoPtr pScrn) +@@ -225,6 +230,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -3736,7 +3795,7 @@ Index: src/via_cursor.c if (pVia->pBIOSInfo->FirstCRTC->IsActive) { pVia->CursorPrimHiInvtColor = VIAGETREG(VIA_REG_PRIM_HI_INVTCOLOR); pVia->CursorV327HiInvtColor = VIAGETREG(VIA_REG_V327_HI_INVTCOLOR); -@@ -265,6 +271,7 @@ viaCursorRestore(ScrnInfoPtr pScrn) +@@ -265,6 +271,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -3744,7 +3803,7 @@ Index: src/via_cursor.c if (pVia->pBIOSInfo->FirstCRTC->IsActive) { VIASETREG(VIA_REG_PRIM_HI_INVTCOLOR, pVia->CursorPrimHiInvtColor); VIASETREG(VIA_REG_V327_HI_INVTCOLOR, pVia->CursorV327HiInvtColor); -@@ -284,7 +291,7 @@ viaCursorRestore(ScrnInfoPtr pScrn) +@@ -284,7 +291,7 @@ } /* @@ -3753,7 +3812,7 @@ Index: src/via_cursor.c */ void -@@ -298,6 +305,7 @@ viaShowCursor(ScrnInfoPtr pScrn) +@@ -298,6 +305,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -3761,7 +3820,7 @@ Index: src/via_cursor.c if (pVia->pBIOSInfo->FirstCRTC->IsActive) { VIASETREG(VIA_REG_HI_CONTROL0, 0x36000005); } -@@ -319,13 +327,19 @@ viaShowCursor(ScrnInfoPtr pScrn) +@@ -319,13 +327,19 @@ */ /* Duoview */ @@ -3783,7 +3842,7 @@ Index: src/via_cursor.c void viaHideCursor(ScrnInfoPtr pScrn) { -@@ -338,6 +352,7 @@ viaHideCursor(ScrnInfoPtr pScrn) +@@ -338,6 +352,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -3791,7 +3850,7 @@ Index: src/via_cursor.c if (pVia->pBIOSInfo->FirstCRTC->IsActive) { temp = VIAGETREG(VIA_REG_HI_CONTROL0); VIASETREG(VIA_REG_HI_CONTROL0, temp & 0xFFFFFFFA); -@@ -350,10 +365,16 @@ viaHideCursor(ScrnInfoPtr pScrn) +@@ -350,10 +365,16 @@ default: temp = VIAGETREG(VIA_REG_ALPHA_CONTROL); @@ -3808,7 +3867,7 @@ Index: src/via_cursor.c static void viaSetCursorPosition(ScrnInfoPtr pScrn, int x, int y) { -@@ -380,6 +401,7 @@ viaSetCursorPosition(ScrnInfoPtr pScrn, int x, int +@@ -380,6 +401,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -3816,7 +3875,7 @@ Index: src/via_cursor.c if (pVia->pBIOSInfo->FirstCRTC->IsActive) { VIASETREG(VIA_REG_HI_POS0, ((x << 16) | (y & 0x07ff))); VIASETREG(VIA_REG_HI_OFFSET0, ((xoff << 16) | (yoff & 0x07ff))); -@@ -409,6 +431,15 @@ viaUseHWCursorARGB(ScreenPtr pScreen, CursorPtr pC +@@ -409,6 +431,15 @@ && pCurs->bits->height <= pVia->CursorMaxHeight); } @@ -3832,7 +3891,7 @@ Index: src/via_cursor.c static Bool viaUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs) { -@@ -423,8 +454,11 @@ viaUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs) +@@ -423,8 +454,11 @@ && pCurs->bits->height <= pVia->CursorMaxHeight); } @@ -3845,7 +3904,7 @@ Index: src/via_cursor.c { VIAPtr pVia = VIAPTR(pScrn); CARD32 temp; -@@ -439,7 +473,7 @@ static void +@@ -439,7 +473,7 @@ if (pVia->CursorARGBSupported) { #define ARGB_PER_CHUNK (8 * sizeof (chunk) / 2) for (i = 0; i < (pVia->CursorMaxWidth * pVia->CursorMaxHeight / ARGB_PER_CHUNK); i++) { @@ -3854,7 +3913,7 @@ Index: src/via_cursor.c for (j = 0; j < ARGB_PER_CHUNK; j++, chunk >>= 2) *dst++ = mono_cursor_color[chunk & 3]; } -@@ -447,7 +481,7 @@ static void +@@ -447,7 +481,7 @@ pVia->CursorFG = mono_cursor_color[3]; pVia->CursorBG = mono_cursor_color[2]; } else { @@ -3863,7 +3922,7 @@ Index: src/via_cursor.c } switch(pVia->Chipset) { case VIA_CX700: -@@ -455,6 +489,7 @@ static void +@@ -455,6 +489,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -3871,7 +3930,7 @@ Index: src/via_cursor.c if (pVia->pBIOSInfo->FirstCRTC->IsActive) { temp = VIAGETREG(VIA_REG_HI_CONTROL0); VIASETREG(VIA_REG_HI_CONTROL0, temp & 0xFFFFFFFE); -@@ -471,11 +506,17 @@ static void +@@ -471,11 +506,17 @@ } } @@ -3890,7 +3949,7 @@ Index: src/via_cursor.c CARD32 pixel; CARD32 temp; CARD32 *dst; -@@ -487,12 +528,10 @@ viaSetCursorColors(ScrnInfoPtr pScrn, int bg, int +@@ -487,12 +528,10 @@ fg |= 0xff000000; bg |= 0xff000000; @@ -3904,7 +3963,7 @@ Index: src/via_cursor.c dst = (CARD32*)pVia->cursorMap; for (i = 0; i < pVia->CursorMaxWidth * pVia->CursorMaxHeight; i++, dst++) if ((pixel = *dst)) -@@ -507,6 +546,7 @@ viaSetCursorColors(ScrnInfoPtr pScrn, int bg, int +@@ -507,6 +546,7 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -3912,7 +3971,7 @@ Index: src/via_cursor.c if (pVia->pBIOSInfo->FirstCRTC->IsActive) { temp = VIAGETREG(VIA_REG_HI_CONTROL0); VIASETREG(VIA_REG_HI_CONTROL0, temp & 0xFFFFFFFE); -@@ -517,7 +557,8 @@ viaSetCursorColors(ScrnInfoPtr pScrn, int bg, int +@@ -517,7 +557,8 @@ } break; default: @@ -3924,9 +3983,9 @@ Index: src/via_cursor.c Index: src/via_i2c.c =================================================================== ---- a/src/via_i2c.c (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_i2c.c (.../trunk) (revision 916) -@@ -365,9 +365,18 @@ ViaI2CInit(ScrnInfoPtr pScrn) +--- src/via_i2c.c (revision 811) ++++ src/via_i2c.c (working copy) +@@ -365,9 +365,18 @@ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "ViaI2CInit\n")); @@ -3950,9 +4009,9 @@ Index: src/via_i2c.c if (pVia->I2CScan) { Index: src/via_dri.c =================================================================== ---- a/src/via_dri.c (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_dri.c (.../trunk) (revision 916) -@@ -187,7 +187,7 @@ VIADRIRingBufferInit(ScrnInfoPtr pScrn) +--- src/via_dri.c (revision 811) ++++ src/via_dri.c (working copy) +@@ -187,7 +187,7 @@ return FALSE; /* @@ -3961,7 +4020,7 @@ Index: src/via_dri.c */ switch (pVia->ChipId) { -@@ -267,6 +267,7 @@ VIADRIAgpInit(ScreenPtr pScreen, VIAPtr pVia) +@@ -267,6 +267,7 @@ pVIADRI = pDRIInfo->devPrivate; pVia->agpSize = 0; @@ -3969,7 +4028,7 @@ Index: src/via_dri.c if (drmAgpAcquire(pVia->drmFD) < 0) { xf86DrvMsg(pScreen->myNum, X_ERROR, "[drm] drmAgpAcquire failed %d\n", errno); -@@ -431,17 +432,17 @@ VIAInitVisualConfigs(ScreenPtr pScreen) +@@ -431,17 +432,17 @@ if (pScrn->bitsPerPixel == 16 || pScrn->bitsPerPixel == 32) { numConfigs = 12; if (!(pConfigs = (__GLXvisualConfig *) @@ -3993,7 +4052,7 @@ Index: src/via_dri.c return FALSE; } for (i = 0; i < numConfigs; i++) -@@ -593,23 +594,28 @@ VIADRIScreenInit(ScreenPtr pScreen) +@@ -593,23 +594,28 @@ case VIA_P4M900: case VIA_VX800: case VIA_VX855: @@ -4030,7 +4089,7 @@ Index: src/via_dri.c pDRIInfo->ddxDriverMajorVersion = VIA_DRIDDX_VERSION_MAJOR; pDRIInfo->ddxDriverMinorVersion = VIA_DRIDDX_VERSION_MINOR; pDRIInfo->ddxDriverPatchVersion = VIA_DRIDDX_VERSION_PATCH; -@@ -646,7 +652,7 @@ VIADRIScreenInit(ScreenPtr pScreen) +@@ -646,7 +652,7 @@ pDRIInfo->SAREASize = SAREA_MAX; #endif @@ -4039,7 +4098,7 @@ Index: src/via_dri.c DRIDestroyInfoRec(pVia->pDRIInfo); pVia->pDRIInfo = NULL; return FALSE; -@@ -665,7 +671,7 @@ VIADRIScreenInit(ScreenPtr pScreen) +@@ -665,7 +671,7 @@ if (!DRIScreenInit(pScreen, pDRIInfo, &pVia->drmFD)) { xf86DrvMsg(pScreen->myNum, X_ERROR, "[dri] DRIScreenInit failed. Disabling DRI.\n"); @@ -4048,7 +4107,7 @@ Index: src/via_dri.c pDRIInfo->devPrivate = NULL; DRIDestroyInfoRec(pVia->pDRIInfo); pVia->pDRIInfo = NULL; -@@ -748,7 +754,7 @@ VIADRICloseScreen(ScreenPtr pScreen) +@@ -748,7 +754,7 @@ if (pVia->pDRIInfo) { if ((pVIADRI = (VIADRIPtr) pVia->pDRIInfo->devPrivate)) { VIADRIIrqExit(pScrn, pVIADRI); @@ -4057,7 +4116,7 @@ Index: src/via_dri.c pVia->pDRIInfo->devPrivate = NULL; } DRIDestroyInfoRec(pVia->pDRIInfo); -@@ -756,11 +762,11 @@ VIADRICloseScreen(ScreenPtr pScreen) +@@ -756,11 +762,11 @@ } if (pVia->pVisualConfigs) { @@ -4073,8 +4132,8 @@ Index: src/via_dri.c } Index: src/via.h =================================================================== ---- a/src/via.h (.../tags/release_0_2_904) (revision 916) -+++ b/src/via.h (.../trunk) (revision 916) +--- src/via.h (revision 811) ++++ src/via.h (working copy) @@ -34,7 +34,7 @@ /* Video Engines */ @@ -4154,8 +4213,8 @@ Index: src/via.h #define CHROMA_KEY_HIGH 0x00FFFFFF Index: man/openchrome.man =================================================================== ---- a/man/openchrome.man (.../tags/release_0_2_904) (revision 916) -+++ b/man/openchrome.man (.../trunk) (revision 916) +--- man/openchrome.man (.../tags/release_0_2_904) (revision 921) ++++ man/openchrome.man (.../trunk) (revision 921) @@ -22,7 +22,7 @@ The .B openchrome driver supports the following chipsets: CLE266, KM400/KN400/KM400A/P4M800, @@ -4239,9 +4298,9 @@ Index: man/openchrome.man Authors include: ... Index: src/via_dga.c =================================================================== ---- a/src/via_dga.c (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_dga.c (.../trunk) (revision 916) -@@ -89,16 +89,16 @@ VIASetupDGAMode( +--- src/via_dga.c (revision 811) ++++ src/via_dga.c (working copy) +@@ -89,16 +89,16 @@ otherPitch = secondPitch ? secondPitch : pMode->HDisplay; if (pMode->HDisplay != otherPitch) { @@ -4263,9 +4322,9 @@ Index: src/via_dga.c Index: src/via_id.c =================================================================== ---- a/src/via_id.c (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_id.c (.../trunk) (revision 916) -@@ -63,6 +63,7 @@ static struct ViaCardIdStruct ViaCardId[] = { +--- src/via_id.c (revision 811) ++++ src/via_id.c (working copy) +@@ -63,6 +63,7 @@ {"Giga-byte 7VM400(A)M", VIA_KM400, 0x1458, 0xD000, VIA_DEVICE_CRT}, {"MSI KM4(A)M-V", VIA_KM400, 0x1462, 0x7061, VIA_DEVICE_CRT}, /* aka "DFI KM400-MLV" */ {"MSI PM8M2-V", VIA_KM400, 0x1462, 0x7071, VIA_DEVICE_CRT}, @@ -4273,7 +4332,15 @@ Index: src/via_id.c {"MSI KM4(A)M-L", VIA_KM400, 0x1462, 0x7348, VIA_DEVICE_CRT}, {"Abit VA-10 (1)", VIA_KM400, 0x147B, 0x140B, VIA_DEVICE_CRT}, {"Abit VA-10 (2)", VIA_KM400, 0x147B, 0x140C, VIA_DEVICE_CRT}, -@@ -114,6 +115,7 @@ static struct ViaCardIdStruct ViaCardId[] = { +@@ -92,6 +93,7 @@ + {"Shuttle FX21", VIA_K8M800, 0x1297, 0x3052, VIA_DEVICE_CRT}, + {"Shuttle FX83", VIA_K8M800, 0x1297, 0xF683, VIA_DEVICE_CRT | VIA_DEVICE_TV}, + {"Sharp Actius AL27", VIA_K8M800, 0x13BD, 0x1044, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, ++ {"Sharp Mebius PC-CS30H", VIA_K8M800, 0x13BD, 0x1047, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, + {"Sharp PC-AE30J", VIA_K8M800, 0x13BD, 0x104B, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, + {"Giga-byte GA-K8VM800M", VIA_K8M800, 0x1458, 0xD000, VIA_DEVICE_CRT}, + {"MSI K8M Neo-V", VIA_K8M800, 0x1462, 0x0320, VIA_DEVICE_CRT}, +@@ -114,6 +116,7 @@ {"Packard Bell Easynote B3 800/B3340", VIA_K8M800, 0x1631, 0xC009, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"Packard Bell Imedia 2097", VIA_K8M800, 0x1631, 0xD007, VIA_DEVICE_CRT}, {"Fujitsu-Siemens Amilo K7610", VIA_K8M800, 0x1734, 0x10B3, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, @@ -4281,7 +4348,7 @@ Index: src/via_id.c {"ASRock K8Upgrade-VM800", VIA_K8M800, 0x1849, 0x3108, VIA_DEVICE_CRT}, {"Axper XP-M8VM800", VIA_K8M800, 0x1940, 0xD000, VIA_DEVICE_CRT}, -@@ -138,6 +140,7 @@ static struct ViaCardIdStruct ViaCardId[] = { +@@ -138,6 +141,7 @@ {"Haier A60-440256080BD", VIA_VM800, 0x1019, 0x0F79, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"PCChips P23G", VIA_VM800, 0x1019, 0x1623, VIA_DEVICE_CRT}, {"ECS P4M800PRO-M", VIA_VM800, 0x1019, 0x2122, VIA_DEVICE_CRT}, @@ -4289,7 +4356,7 @@ Index: src/via_id.c {"ECS C7VCM", VIA_VM800, 0x1019, 0xAA2D, VIA_DEVICE_CRT}, {"PCChips V21G", VIA_VM800, 0x1019, 0xAA51, VIA_DEVICE_CRT}, {"Asustek P5VDC-MX", VIA_VM800, 0x1043, 0x3344, VIA_DEVICE_CRT}, -@@ -152,6 +155,7 @@ static struct ViaCardIdStruct ViaCardId[] = { +@@ -152,6 +156,7 @@ {"MSI PM8PM", VIA_VM800, 0x1462, 0x7222, VIA_DEVICE_CRT}, {"Twinhead M6", VIA_VM800, 0x14FF, 0xA007, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"RoverBook Partner W500", VIA_VM800, 0x1509, 0x4330, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, @@ -4297,7 +4364,7 @@ Index: src/via_id.c {"Clevo/RoverBook Voyager V511L", VIA_VM800, 0x1558, 0x0662, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"Clevo M5xxS", VIA_VM800, 0x1558, 0x5406, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"Biostar P4M80-M4 / P4VMA-M", VIA_VM800, 0x1565, 0x1202, VIA_DEVICE_CRT}, -@@ -170,6 +174,7 @@ static struct ViaCardIdStruct ViaCardId[] = { +@@ -170,6 +175,7 @@ {"Asustek M2V-MX SE", VIA_K8M890, 0x1043, 0x8297, VIA_DEVICE_CRT}, {"Foxconn K8M890M2MA-RS2H", VIA_K8M890, 0x105B, 0x0C84, VIA_DEVICE_CRT}, {"Shuttle FX22V1", VIA_K8M890, 0x1297, 0x3080, VIA_DEVICE_CRT}, @@ -4305,7 +4372,7 @@ Index: src/via_id.c {"MSI K9VGM-V", VIA_K8M890, 0x1462, 0x7253, VIA_DEVICE_CRT}, {"Averatec 226x", VIA_K8M890, 0x14FF, 0xA002, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"Fujitsu/Siemens Amilo La 1703", VIA_K8M890, 0x1734, 0x10D9, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, -@@ -183,12 +188,13 @@ static struct ViaCardIdStruct ViaCardId[] = { +@@ -183,12 +189,14 @@ {"Mitac 8515", VIA_P4M900, 0x1071, 0x8515, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"Medion Notebook MD96483", VIA_P4M900, 0x1071, 0x8615, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"Mitac 8624", VIA_P4M900, 0x1071, 0x8624, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, @@ -4317,28 +4384,21 @@ Index: src/via_id.c {"MSI P4M900M3-L", VIA_P4M900, 0x1462, 0x7387, VIA_DEVICE_CRT}, {"Twinhead H12V", VIA_P4M900, 0x14FF, 0xA00F, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, + {"Twinhead K15V", VIA_P4M900, 0x14FF, 0xA012, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, ++ {"Semp Informática Notebook IS 1462", VIA_P4M900, 0x1509, 0x1D41, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"Everex NC1501/NC1503", VIA_P4M900, 0x1509, 0x1E30, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"Clevo M660SE", VIA_P4M900, 0x1558, 0x0664, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"Clevo M660SR", VIA_P4M900, 0x1558, 0x0669, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, -@@ -198,6 +204,7 @@ static struct ViaCardIdStruct ViaCardId[] = { - {"Fujitsu/Siemens Amilo Pro V3515", VIA_P4M900, 0x1734, 0x10CB, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, - {"Fujitsu/Siemens Amilo Li1705", VIA_P4M900, 0x1734, 0x10F7, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, - {"ASRock P4VM900-SATA2", VIA_P4M900, 0x1849, 0x3371, VIA_DEVICE_CRT}, -+ {"Semp Informática Notebook IS 1462", VIA_P4M900, 0x1509, 0x1D41, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, - - /*** CX700 ***/ - {"VIA VT8454B", VIA_CX700, 0x0908, 0x1975, VIA_DEVICE_CRT}, /* Evaluation board, reference possibly wrong */ -@@ -224,14 +231,21 @@ static struct ViaCardIdStruct ViaCardId[] = { +@@ -224,14 +232,23 @@ /*** VX800 ***/ {"VIA Epia M700", VIA_VX800, 0x1106, 0x1122, VIA_DEVICE_CRT}, ++ {"Siragon ML-6200", VIA_VX800, 0x1106, 0x2211, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, + {"Guillemot-Hercules ECafe EC900B", VIA_VX800, 0x1106, 0x3349, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"VIA OpenBook", VIA_VX800, 0x1170, 0x0311, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, /* VIA OpenBook eNote VBE8910 */ {"Samsung NC20", VIA_VX800, 0x144d, 0xc04e, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, + {"FIC CE2A1", VIA_VX800, 0x1509, 0x3002, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"Quanta DreamBook Light IL1", VIA_VX800, 0x152d, 0x0771, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"Lenovo S12", VIA_VX800, 0x17aa, 0x388c, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, -+ {"Siragon ML-6200", VIA_VX800, 0x1106, 0x2211, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, /*** VX855 ***/ {"VIA VT8562C", VIA_VX855, 0x1106, 0x5122, VIA_DEVICE_CRT}, @@ -4346,14 +4406,16 @@ Index: src/via_id.c + /*** VX900 ***/ + {"Foxconn L740", VIA_VX900, 0x105B, 0x0CFD, VIA_DEVICE_LCD | VIA_DEVICE_CRT}, ++ {"HP T5550 Thin Client", VIA_VX900, 0x1106, 0x7122, VIA_DEVICE_CRT}, ++ + /* keep this */ {NULL, VIA_UNKNOWN, 0x0000, 0x0000, VIA_DEVICE_NONE} }; Index: src/via_timing.h =================================================================== ---- a/src/via_timing.h (.../tags/release_0_2_904) (revision 916) -+++ b/src/via_timing.h (.../trunk) (revision 916) +--- src/via_timing.h (revision 811) ++++ src/via_timing.h (working copy) @@ -40,7 +40,7 @@ #define TIMING_CVT_WARN_REFRESH_RATE_NOT_RB 1 << 3 |