diff --git a/driver/xf86-video-openchrome/NEWS b/driver/xf86-video-openchrome/NEWS index 77401ad7e..eef34361a 100644 --- a/driver/xf86-video-openchrome/NEWS +++ b/driver/xf86-video-openchrome/NEWS @@ -1,4 +1,22 @@ -openchrome 0.2.902 (29/03/2008) +openchrome 0.2.903 (19/08/2008) +------------------------------- +* Enhancements and bug fixes: +- Simplify memory bandwidth setting. +- Fix compilation without EXA. +- Fix interpolation for CN400. +- Fix Xv on LCD for K8M890 and CX700. +- Disable XvDMA for P4M890 and K8M890, it is broken... +- Replace xf86strstr by the unwrapped version. +- Fix chipset revision detection in libpciaccess code path. +- Print driver version in the libpciaccess code path. + +* New boards: +- Biostar P4M890-M7 TE, ECS CLE266, FIC CE261, Foxconn P4M9007MB-8RS2H, + Hewlett Packard 2133 Mini-Note, KamLAB KINO-LUKE-533-R20, Mercury P4VM800M7, + MSI K9MM-V, MSI VR321, PCChips (unknown model), Samsung Q1B. + + +openchrome 0.2.902 (08/04/2008) ------------------------------- * Enhancements and bug fixes: - libpciaccess support. diff --git a/driver/xf86-video-openchrome/configure b/driver/xf86-video-openchrome/configure index d93054488..d4748409e 100755 --- a/driver/xf86-video-openchrome/configure +++ b/driver/xf86-video-openchrome/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for xf86-video-openchrome 0.2.902. +# Generated by GNU Autoconf 2.59 for xf86-video-openchrome 0.2.903. # # Report bugs to . # @@ -423,8 +423,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='xf86-video-openchrome' PACKAGE_TARNAME='xf86-video-openchrome' -PACKAGE_VERSION='0.2.902' -PACKAGE_STRING='xf86-video-openchrome 0.2.902' +PACKAGE_VERSION='0.2.903' +PACKAGE_STRING='xf86-video-openchrome 0.2.903' PACKAGE_BUGREPORT='http://www.openchrome.org/trac/report/1' ac_unique_file="Makefile.am" @@ -982,7 +982,7 @@ if test "$ac_init_help" = "long"; then # 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-openchrome 0.2.902 to adapt to many kinds of systems. +\`configure' configures xf86-video-openchrome 0.2.903 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1048,7 +1048,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of xf86-video-openchrome 0.2.902:";; + short | recursive ) echo "Configuration of xf86-video-openchrome 0.2.903:";; esac cat <<\_ACEOF @@ -1206,7 +1206,7 @@ fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -xf86-video-openchrome configure 0.2.902 +xf86-video-openchrome configure 0.2.903 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. @@ -1220,7 +1220,7 @@ cat >&5 <<_ACEOF 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-openchrome $as_me 0.2.902, which was +It was created by xf86-video-openchrome $as_me 0.2.903, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ @@ -1823,7 +1823,7 @@ fi # Define the identity of the package. PACKAGE='xf86-video-openchrome' - VERSION='0.2.902' + VERSION='0.2.903' cat >>confdefs.h <<_ACEOF @@ -21902,7 +21902,7 @@ _ASBOX } >&5 cat >&5 <<_CSEOF -This file was extended by xf86-video-openchrome $as_me 0.2.902, which was +This file was extended by xf86-video-openchrome $as_me 0.2.903, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21965,7 +21965,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -xf86-video-openchrome config.status 0.2.902 +xf86-video-openchrome config.status 0.2.903 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" diff --git a/driver/xf86-video-openchrome/configure.ac b/driver/xf86-video-openchrome/configure.ac index a44b1b291..dddc21daf 100644 --- a/driver/xf86-video-openchrome/configure.ac +++ b/driver/xf86-video-openchrome/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-openchrome], - 0.2.902, + 0.2.903, [http://www.openchrome.org/trac/report/1], xf86-video-openchrome) diff --git a/driver/xf86-video-openchrome/man/Makefile.in b/driver/xf86-video-openchrome/man/Makefile.in index 9b0966155..7a7504bc7 100644 --- a/driver/xf86-video-openchrome/man/Makefile.in +++ b/driver/xf86-video-openchrome/man/Makefile.in @@ -14,7 +14,7 @@ @SET_MAKE@ -# $Id: Makefile.in,v 1.2 2008/07/12 12:59:52 matthieu Exp $ +# $Id: Makefile.in,v 1.3 2008/11/03 20:37:24 matthieu Exp $ # # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # diff --git a/driver/xf86-video-openchrome/src/svnversion.h b/driver/xf86-video-openchrome/src/svnversion.h index 438c63901..ee38fde40 100644 --- a/driver/xf86-video-openchrome/src/svnversion.h +++ b/driver/xf86-video-openchrome/src/svnversion.h @@ -1 +1 @@ -#define BUILDCOMMENT "(openchrome 0.2.902 release)" +#define BUILDCOMMENT "(openchrome 0.2.903 release)" diff --git a/driver/xf86-video-openchrome/src/via_accel.c b/driver/xf86-video-openchrome/src/via_accel.c index 1de2c53bb..3b485d14c 100644 --- a/driver/xf86-video-openchrome/src/via_accel.c +++ b/driver/xf86-video-openchrome/src/via_accel.c @@ -1200,6 +1200,44 @@ viaAccelWaitMarker(ScreenPtr pScreen, int marker) } } +/* + * Check if we need to force upload of the whole 3D state (when other + * clients or subsystems have touched the 3D engine). Also tell DRI + * clients and subsystems that we have touched the 3D engine. + */ +static Bool +viaCheckUpload(ScrnInfoPtr pScrn, Via3DState * v3d) +{ + VIAPtr pVia = VIAPTR(pScrn); + Bool forceUpload; + + forceUpload = (pVia->lastToUpload != v3d); + pVia->lastToUpload = v3d; + +#ifdef XF86DRI + if (pVia->directRenderingEnabled) { + volatile drm_via_sarea_t *saPriv = (drm_via_sarea_t *) + DRIGetSAREAPrivate(pScrn->pScreen); + int myContext = DRIGetContext(pScrn->pScreen); + + forceUpload = forceUpload || (saPriv->ctxOwner != myContext); + saPriv->ctxOwner = myContext; + } +#endif + return forceUpload; +} + +static Bool +viaOrder(CARD32 val, CARD32 * shift) +{ + *shift = 0; + + while (val > (1 << *shift)) + (*shift)++; + return (val == (1 << *shift)); +} + + #ifdef VIA_HAVE_EXA /* * Exa functions. It is assumed that EXA does not exceed the blitter limits. @@ -1473,43 +1511,6 @@ viaExpandablePixel(int format) formatType == PICT_TYPE_ABGR || formatType == PICT_TYPE_ARGB); } -/* - * Check if we need to force upload of the whole 3D state (when other - * clients or subsystems have touched the 3D engine). Also tell DRI - * clients and subsystems that we have touched the 3D engine. - */ -static Bool -viaCheckUpload(ScrnInfoPtr pScrn, Via3DState * v3d) -{ - VIAPtr pVia = VIAPTR(pScrn); - Bool forceUpload; - - forceUpload = (pVia->lastToUpload != v3d); - pVia->lastToUpload = v3d; - -#ifdef XF86DRI - if (pVia->directRenderingEnabled) { - volatile drm_via_sarea_t *saPriv = (drm_via_sarea_t *) - DRIGetSAREAPrivate(pScrn->pScreen); - int myContext = DRIGetContext(pScrn->pScreen); - - forceUpload = forceUpload || (saPriv->ctxOwner != myContext); - saPriv->ctxOwner = myContext; - } -#endif - return forceUpload; -} - -static Bool -viaOrder(CARD32 val, CARD32 * shift) -{ - *shift = 0; - - while (val > (1 << *shift)) - (*shift)++; - return (val == (1 << *shift)); -} - #ifdef XF86DRI static int diff --git a/driver/xf86-video-openchrome/src/via_driver.c b/driver/xf86-video-openchrome/src/via_driver.c index 5bd437178..a937edf94 100644 --- a/driver/xf86-video-openchrome/src/via_driver.c +++ b/driver/xf86-video-openchrome/src/via_driver.c @@ -600,6 +600,9 @@ via_pci_probe(DriverPtr driver, int entity_num, "VIA Technologies does not support this driver in any way.\n"); xf86Msg(X_NOTICE, "For support, please refer to http://www.openchrome.org/.\n"); +#ifdef BUILDCOMMENT + xf86Msg(X_NOTICE, BUILDCOMMENT"\n"); +#endif } return scrn != NULL; } @@ -820,12 +823,16 @@ VIASetupDefaultOptions(ScrnInfoPtr pScrn) pVia->agpEnable = FALSE; pVia->DRIIrqEnable = FALSE; break; + case VIA_PM800: + pVia->VideoEngine = VIDEO_ENGINE_CME; + break; case VIA_VM800: pVia->agpEnable = FALSE; break; case VIA_K8M890: pVia->VideoEngine = VIDEO_ENGINE_CME; pVia->agpEnable = FALSE; + pVia->dmaXV = FALSE; break; case VIA_P4M900: pVia->VideoEngine = VIDEO_ENGINE_CME; @@ -835,13 +842,13 @@ VIASetupDefaultOptions(ScrnInfoPtr pScrn) pVia->dmaXV = FALSE; break; case VIA_CX700: - case VIA_PM800: pVia->VideoEngine = VIDEO_ENGINE_CME; pVia->swov.maxWInterp = 1920; pVia->swov.maxHInterp = 1080; break; case VIA_P4M890: pVia->VideoEngine = VIDEO_ENGINE_CME; + pVia->dmaXV = FALSE; break; } @@ -1062,7 +1069,7 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) #ifdef XSERVER_LIBPCIACCESS struct pci_device *bridge = via_host_bridge(); - pci_device_cfg_read_u32(bridge, &pVia->ChipRev, 0xF6); + pci_device_cfg_read_u8(bridge, &pVia->ChipRev, 0xF6); #else pVia->ChipRev = pciReadByte(pciTag(0, 0, 0), 0xF6); #endif @@ -1335,13 +1342,13 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags) /* ActiveDevice Option for device selection */ //pVia->ActiveDevice = 0x00; if ((s = xf86GetOptValString(VIAOptions, OPTION_ACTIVEDEVICE))) { - if (xf86strstr(s, "CRT")) + if (strstr(s, "CRT")) pVia->ActiveDevice |= VIA_DEVICE_CRT; - if (xf86strstr(s, "LCD")) + if (strstr(s, "LCD")) pVia->ActiveDevice |= VIA_DEVICE_LCD; - if (xf86strstr(s, "DFP")) /* just treat this the same as LCD */ + if (strstr(s, "DFP")) /* just treat this the same as LCD */ pVia->ActiveDevice |= VIA_DEVICE_LCD; - if (xf86strstr(s, "TV")) + if (strstr(s, "TV")) pVia->ActiveDevice |= VIA_DEVICE_TV; } diff --git a/driver/xf86-video-openchrome/src/via_driver.h b/driver/xf86-video-openchrome/src/via_driver.h index 75f74df7c..901b61bf0 100644 --- a/driver/xf86-video-openchrome/src/via_driver.h +++ b/driver/xf86-video-openchrome/src/via_driver.h @@ -102,7 +102,7 @@ #define VERSION_MAJOR 0 #define VERSION_MINOR 2 #ifdef USE_NEW_XVABI -#define PATCHLEVEL 902 +#define PATCHLEVEL 903 #else #define PATCHLEVEL 0 #endif diff --git a/driver/xf86-video-openchrome/src/via_id.c b/driver/xf86-video-openchrome/src/via_id.c index 1bea72d09..fb4d31250 100644 --- a/driver/xf86-video-openchrome/src/via_id.c +++ b/driver/xf86-video-openchrome/src/via_id.c @@ -39,6 +39,7 @@ */ static struct ViaCardIdStruct ViaCardId[] = { /*** CLE266 ***/ + {"ECS CLE266 (1.0)", VIA_CLE266, 0x1019, 0x1B43, VIA_DEVICE_CRT | VIA_DEVICE_TV}, {"LT21 VA28", VIA_CLE266, 0x1019, 0x1B44, VIA_DEVICE_CRT}, {"ECS G320", VIA_CLE266, 0x1019, 0xB320, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"Asustek Terminator C3V", VIA_CLE266, 0x1043, 0x8155, VIA_DEVICE_CRT}, @@ -74,7 +75,8 @@ static struct ViaCardIdStruct ViaCardId[] = { {"Packard Bell Quasar2 (MSI MS6786)", VIA_KM400, 0x1631, 0xD002, VIA_DEVICE_CRT}, {"Epox EP-8KMM3I", VIA_KM400, 0x1695, 0x9023, VIA_DEVICE_CRT}, {"ASRock Inc. K7VM2/3/4", VIA_KM400, 0x1849, 0x7205, VIA_DEVICE_CRT}, - {"ACorp KM400QP", VIA_KM400, 0x1915, 0x1100, VIA_DEVICE_CRT| VIA_DEVICE_TV}, + {"ACorp KM400QP", VIA_KM400, 0x1915, 0x1100, VIA_DEVICE_CRT | VIA_DEVICE_TV}, + {"Mercury P4VM800M7 (1.0)", VIA_KM400, 0x3344, 0x1122, VIA_DEVICE_CRT}, {"Soyo K7VME", VIA_KM400, 0xA723, 0x10FD, VIA_DEVICE_CRT}, /*** K8M800, K8N800, K8N800A ***/ @@ -93,6 +95,7 @@ static struct ViaCardIdStruct ViaCardId[] = { {"MSI K8M Neo-V", VIA_K8M800, 0x1462, 0x0320, VIA_DEVICE_CRT}, {"MSI K8MM-V", VIA_K8M800, 0x1462, 0x7142, VIA_DEVICE_CRT}, {"MSI K8MM3-V", VIA_K8M800, 0x1462, 0x7181, VIA_DEVICE_CRT}, + {"MSI K9MM-V", VIA_K8M800, 0x1462, 0x7312, VIA_DEVICE_CRT}, {"MSI K8MM-ILSR", VIA_K8M800, 0x1462, 0x7410, VIA_DEVICE_CRT}, {"Abit KV-80", VIA_K8M800, 0x147B, 0x1419, VIA_DEVICE_CRT}, {"Abit KV-81", VIA_K8M800, 0x147B, 0x141A, VIA_DEVICE_CRT}, @@ -125,6 +128,7 @@ static struct ViaCardIdStruct ViaCardId[] = { {"Fujitsu/Siemens Amilo L7310", VIA_PM800, 0x1734, 0x10AB, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"ASRock P4VM8", VIA_PM800, 0x1849, 0x3118, VIA_DEVICE_CRT}, {"Chaintech MPM800-3", VIA_PM800, 0x270F, 0x7671, VIA_DEVICE_CRT}, + {"KamLAB KINO-LUKE-533-R20", VIA_PM800, 0x3344, 0x1122, VIA_DEVICE_CRT}, /*** P4M800Pro, VN800, CN700 ***/ {"Clevo/RoverBook Partner E419L", VIA_VM800, 0x1019, 0x0F75, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, @@ -164,13 +168,16 @@ static struct ViaCardIdStruct ViaCardId[] = { /*** P4M900, VN896, CN896 ***/ {"VIA Epia SN", VIA_P4M900, 0x0908, 0x1975, VIA_DEVICE_CRT}, + {"Hewlett Packard 2133 Mini-Note", VIA_P4M900, 0x103C, 0x3030, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"Asustek P5VD2-VM", VIA_P4M900, 0x1043, 0x81CE, VIA_DEVICE_CRT}, {"Asustek P5VD2-VM SE", VIA_P4M900, 0x1043, 0x8252, VIA_DEVICE_CRT}, + {"Foxconn P4M9007MB-8RS2H", VIA_P4M900, 0x105B, 0x0C87, VIA_DEVICE_CRT}, {"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}, {"VIA VT3364 (P4M900)", VIA_P4M900, 0x1106, 0x3371, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"Gigabyte GA-VM900M", VIA_P4M900, 0x1458, 0xD000, VIA_DEVICE_CRT}, + {"MSI VR321", VIA_P4M900, 0x1462, 0x3355, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"MSI P4M900M / P4M900M2-F/L", VIA_P4M900, 0x1462, 0x7255, VIA_DEVICE_CRT}, {"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}, @@ -186,16 +193,20 @@ static struct ViaCardIdStruct ViaCardId[] = { {"VIA VT8454B", VIA_CX700, 0x0908, 0x1975, VIA_DEVICE_CRT}, /* Evaluation board, reference possibly wrong */ {"VIA VT3324 (CX700)", VIA_CX700, 0x1106, 0x3157, VIA_DEVICE_CRT}, {"MSI Fuzzy CX700/CX700D", VIA_CX700, 0x1462, 0x8020, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, + {"Samsung Q1B", VIA_CX700, 0x144D, 0xC02C, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"FIC CE260", VIA_CX700, 0x1509, 0x2D30, VIA_DEVICE_LCD}, + {"FIC CE261", VIA_CX700, 0x1509, 0x2F07, VIA_DEVICE_LCD}, {"Packard Bell EasyNote XS", VIA_CX700, 0x1631, 0xC201, VIA_DEVICE_LCD}, /* aka Everex Cloudbook CE1200V */ /*** P4M890, VN890 ***/ {"PCChips P29G", VIA_P4M890, 0x1019, 0x1629, VIA_DEVICE_CRT}, + {"PCChips ????", VIA_P4M890, 0x1019, 0x2174, VIA_DEVICE_CRT}, {"Asustek P5V-VM ULTRA", VIA_P4M890, 0x1043, 0x81B5, VIA_DEVICE_CRT}, {"Asustek P5V-VM DH", VIA_P4M890, 0x1043, 0x81CE, VIA_DEVICE_CRT}, {"Mitac 8615", VIA_P4M890, 0x1071, 0x8615, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, {"VIA VT3343 (P4M890)", VIA_P4M890, 0x1106, 0x3343, VIA_DEVICE_CRT}, {"MSI P4M890M-L/IL (MS-7255)", VIA_P4M890, 0x1462, 0x7255, VIA_DEVICE_CRT}, + {"Biostar P4M890-M7 TE", VIA_P4M890, 0x1565, 0x1207, VIA_DEVICE_CRT}, {"ASRock P4VM890", VIA_P4M890, 0x1849, 0x3343, VIA_DEVICE_CRT}, /* keep this */ diff --git a/driver/xf86-video-openchrome/src/via_memory.c b/driver/xf86-video-openchrome/src/via_memory.c index 3fc7982f7..553545d03 100644 --- a/driver/xf86-video-openchrome/src/via_memory.c +++ b/driver/xf86-video-openchrome/src/via_memory.c @@ -52,6 +52,7 @@ * 2 - DRM */ +#ifdef VIA_HAVE_EXA static void viaExaFBSave(ScreenPtr pScreen, ExaOffscreenArea * exa) { @@ -60,6 +61,7 @@ viaExaFBSave(ScreenPtr pScreen, ExaOffscreenArea * exa) "\t\thttp://wiki.openchrome.org/tikiwiki/tiki-index" ".php?page=EXAAcceleration .\n"); } +#endif void VIAFreeLinear(VIAMemPtr mem) diff --git a/driver/xf86-video-openchrome/src/via_mode.c b/driver/xf86-video-openchrome/src/via_mode.c index 49b289f7e..b7c4ef07f 100644 --- a/driver/xf86-video-openchrome/src/via_mode.c +++ b/driver/xf86-video-openchrome/src/via_mode.c @@ -794,37 +794,23 @@ ViaGetMemoryBandwidth(ScrnInfoPtr pScrn) DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "ViaGetMemoryBandwidth\n")); - switch (pVia->Chipset) { - case VIA_CLE266: - if (CLE266_REV_IS_AX(pVia->ChipRev)) - return ViaBandwidthTable[VIA_BW_CLE266A].Bandwidth[pVia-> - MemClk]; - else - return ViaBandwidthTable[VIA_BW_CLE266C].Bandwidth[pVia-> - MemClk]; - case VIA_KM400: - /* 0x84 is earliest public device, 0x80 is more likely though */ - if (pVia->ChipRev < 0x84) - return ViaBandwidthTable[VIA_BW_KM400].Bandwidth[pVia->MemClk]; - else - return ViaBandwidthTable[VIA_BW_KM400A].Bandwidth[pVia->MemClk]; - case VIA_K8M800: - return ViaBandwidthTable[VIA_BW_K8M800].Bandwidth[pVia->MemClk]; - case VIA_PM800: - return ViaBandwidthTable[VIA_BW_PM800].Bandwidth[pVia->MemClk]; - case VIA_VM800: - return ViaBandwidthTable[VIA_BW_VM800].Bandwidth[pVia->MemClk]; - case VIA_K8M890: - return ViaBandwidthTable[VIA_BW_K8M890].Bandwidth[pVia->MemClk]; - case VIA_P4M900: - return ViaBandwidthTable[VIA_BW_P4M900].Bandwidth[pVia->MemClk]; - case VIA_CX700: - return ViaBandwidthTable[VIA_BW_CX700].Bandwidth[pVia->MemClk]; - case VIA_P4M890: - return ViaBandwidthTable[VIA_BW_P4M890].Bandwidth[pVia->MemClk]; + switch (pVia->MemClk) { + case VIA_MEM_SDR66: + case VIA_MEM_SDR100: + case VIA_MEM_SDR133: + return VIA_BW_MIN; + case VIA_MEM_DDR200: + return VIA_BW_DDR200; + case VIA_MEM_DDR266: + case VIA_MEM_DDR333: + case VIA_MEM_DDR400: + return VIA_BW_DDR400; + case VIA_MEM_DDR533: + case VIA_MEM_DDR667: + return VIA_BW_DDR667; default: xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "ViaBandwidthAllowed: Unknown Chipset.\n"); + "ViaBandwidthAllowed: Unknown memory type: %d\n", pVia->MemClk); return VIA_BW_MIN; } } diff --git a/driver/xf86-video-openchrome/src/via_mode.h b/driver/xf86-video-openchrome/src/via_mode.h index 0f6933691..d29013b8d 100644 --- a/driver/xf86-video-openchrome/src/via_mode.h +++ b/driver/xf86-video-openchrome/src/via_mode.h @@ -30,43 +30,11 @@ * Bandwidth * */ -/* used for impossible entries: allow a minimum bandwidth in case this does happen */ -#define VIA_BW_MIN 74000000 /* > 640x480@60Hz@32bpp */ +#define VIA_BW_MIN 74000000 /* > 640x480@60Hz@32bpp */ +#define VIA_BW_DDR200 394000000 +#define VIA_BW_DDR400 461000000 +#define VIA_BW_DDR667 922000000 -/* index to table */ -#define VIA_BW_CLE266A 0 -#define VIA_BW_CLE266C 1 -#define VIA_BW_KM400 2 -#define VIA_BW_KM400A 3 -#define VIA_BW_K8M800 4 -#define VIA_BW_PM800 5 -#define VIA_BW_VM800 6 -#define VIA_BW_K8M890 7 -#define VIA_BW_P4M900 8 -#define VIA_BW_CX700 9 -#define VIA_BW_P4M890 10 -#define VIA_BW_ALL 11 - -/* - * 393216000 is for SDR133 in via_refresh.h - * 460800000 is for DDR266 - */ -static struct { - CARD8 Device; /* equal to index */ - CARD32 Bandwidth[VIA_MEM_END]; -} ViaBandwidthTable[VIA_BW_ALL] = { - { VIA_BW_CLE266A, { VIA_BW_MIN, VIA_BW_MIN, VIA_BW_MIN, 394000000, 461000000, VIA_BW_MIN, VIA_BW_MIN, VIA_BW_MIN, VIA_BW_MIN } }, - { VIA_BW_CLE266C, { VIA_BW_MIN, VIA_BW_MIN, VIA_BW_MIN, 394000000, 461000000, VIA_BW_MIN, VIA_BW_MIN, VIA_BW_MIN, VIA_BW_MIN } }, - { VIA_BW_KM400, { VIA_BW_MIN, VIA_BW_MIN, VIA_BW_MIN, 394000000, 461000000, 461000000, VIA_BW_MIN, VIA_BW_MIN, VIA_BW_MIN } }, - { VIA_BW_KM400A, { VIA_BW_MIN, VIA_BW_MIN, VIA_BW_MIN, 394000000, 461000000, 461000000, 461000000, VIA_BW_MIN, VIA_BW_MIN } }, - { VIA_BW_K8M800, { VIA_BW_MIN, VIA_BW_MIN, VIA_BW_MIN, 394000000, 461000000, 461000000, 461000000, VIA_BW_MIN, VIA_BW_MIN } }, - { VIA_BW_PM800, { VIA_BW_MIN, VIA_BW_MIN, VIA_BW_MIN, 394000000, 461000000, 461000000, 461000000, 922000000, VIA_BW_MIN } }, - { VIA_BW_VM800, { VIA_BW_MIN, VIA_BW_MIN, VIA_BW_MIN, 394000000, 461000000, 461000000, 461000000, 922000000, VIA_BW_MIN } }, - { VIA_BW_K8M890, { VIA_BW_MIN, VIA_BW_MIN, VIA_BW_MIN, 394000000, 461000000, 461000000, 461000000, 922000000, 922000000 } }, - { VIA_BW_P4M900, { VIA_BW_MIN, VIA_BW_MIN, VIA_BW_MIN, 394000000, 461000000, 461000000, 461000000, 922000000, 922000000 } }, - { VIA_BW_CX700, { VIA_BW_MIN, VIA_BW_MIN, VIA_BW_MIN, 394000000, 461000000, 461000000, 461000000, 922000000, VIA_BW_MIN } }, - { VIA_BW_P4M890, { VIA_BW_MIN, VIA_BW_MIN, VIA_BW_MIN, 394000000, 461000000, 461000000, 461000000, 922000000, VIA_BW_MIN } } -}; /* * simple lookup table for dotclocks diff --git a/driver/xf86-video-openchrome/src/via_swov.c b/driver/xf86-video-openchrome/src/via_swov.c index 249447a08..e85d0bada 100644 --- a/driver/xf86-video-openchrome/src/via_swov.c +++ b/driver/xf86-video-openchrome/src/via_swov.c @@ -1727,7 +1727,8 @@ Upd_Video(ScrnInfoPtr pScrn, unsigned long videoFlag, * FIXME: * Enable video on secondary */ - if ((pVia->Chipset == VIA_P4M900 || pVia->Chipset == VIA_VM800) + if ((pVia->VideoEngine == VIDEO_ENGINE_CME + || pVia->Chipset == VIA_VM800) && pVia->pBIOSInfo->PanelActive) { /* V1_ON_SND_DISPLAY */ vidCtl |= 0x80000000;