diff options
author | James Simmons <jsimmons@infradead.org> | 2012-06-29 08:45:35 -0400 |
---|---|---|
committer | James Simmons <jsimmons@infradead.org> | 2012-06-29 08:45:35 -0400 |
commit | 28f00c86fbfccb539af748ff13aa9d64b5da091b (patch) | |
tree | 16cca90b10d39bffd36d74a2a92b1ffbf473df33 | |
parent | 6754933bb48a0fd306a62636f6fb0c540b85df7e (diff) | |
parent | bb0329d5c4276bdcbfb457a9dcfffdda33d8954f (diff) |
Merge branch 'master' into kms_branch
Conflicts:
configure.ac
src/Makefile.am
src/via_accel.c
src/via_cursor.c
src/via_dga.c
src/via_dri.c
src/via_driver.c
src/via_driver.h
src/via_eng_regs.h
src/via_memory.c
src/via_mode.c
src/via_panel.c
src/via_ums.h
src/via_xv.c
src/via_xv_overlay.c
-rw-r--r-- | NEWS | 11 | ||||
-rw-r--r-- | README | 7 | ||||
-rw-r--r-- | src/Makefile.am | 1 | ||||
-rw-r--r-- | src/compat-api.h | 96 | ||||
-rw-r--r-- | src/via_display.c | 7 | ||||
-rw-r--r-- | src/via_dri.c | 31 | ||||
-rw-r--r-- | src/via_driver.c | 54 | ||||
-rw-r--r-- | src/via_driver.h | 1 | ||||
-rw-r--r-- | src/via_exa.c | 12 | ||||
-rw-r--r-- | src/via_exa_h2.c | 18 | ||||
-rw-r--r-- | src/via_exa_h6.c | 18 | ||||
-rw-r--r-- | src/via_i2c.c | 30 | ||||
-rw-r--r-- | src/via_id.c | 1 | ||||
-rw-r--r-- | src/via_kms.c | 2 | ||||
-rw-r--r-- | src/via_memcpy.c | 4 | ||||
-rw-r--r-- | src/via_ums.c | 2 | ||||
-rw-r--r-- | src/via_ums.h | 2 | ||||
-rw-r--r-- | src/via_vbe.c | 4 | ||||
-rw-r--r-- | src/via_xv.c | 8 | ||||
-rw-r--r-- | src/via_xvmc.c | 4 |
20 files changed, 214 insertions, 99 deletions
@@ -1,3 +1,14 @@ +openchrome 0.2.906 (15/05/2012) +------------------------------- +* New features : +- VX900 Xv support. +- EXA is now the default although compositing is buggy and thus disabled. + +* Bugfixes and enhancements : +- Fix I420 Xv surface on CME engine. +- Fix EXA to not require XAA module in X server. + + openchrome 0.2.905 (10/02/2012) ------------------------------- * New features : @@ -55,11 +55,8 @@ KNOWN BUGS/LIMITATIONS : - CX700, VX800 and VX855 integrated TMDS is supported. * Chrome9 -- Chrome9 chipsets' family (P4M900, K8M890, VX800, VX855) currently doesn't - support neither AGP DMA nor 3D acceleration. - -* VX900 -- Xv is not yet supported. +- Chrome9 chipsets' family (P4M900, K8M890, VX800, VX855, VX900) currently + doesn't support neither AGP DMA nor 3D acceleration. Please note that 3D acceleration is provided by Mesa (http://mesa3d.org) and is diff --git a/src/Makefile.am b/src/Makefile.am index 4e5b21e..db044d6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -35,6 +35,7 @@ openchrome_drv_la_LDFLAGS = -module -avoid-version openchrome_drv_ladir = @moduledir@/drivers openchrome_drv_la_SOURCES = \ + compat-api.h \ via_eng_regs.h \ via_3d.c \ via_3d.h \ diff --git a/src/compat-api.h b/src/compat-api.h new file mode 100644 index 0000000..b1591b1 --- /dev/null +++ b/src/compat-api.h @@ -0,0 +1,96 @@ +/* + * Copyright 2012 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Dave Airlie <airlied@redhat.com> + */ + +/* this file provides API compat between server post 1.13 and pre it, + it should be reused inside as many drivers as possible */ +#ifndef COMPAT_API_H +#define COMPAT_API_H + +#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR +#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum] +#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p +#endif + +#ifndef XF86_HAS_SCRN_CONV +#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum] +#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex] +#endif + +#ifndef XF86_SCRN_INTERFACE + +#define SCRN_ARG_TYPE int +#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = xf86Screens[(arg1)] + +#define SCREEN_ARG_TYPE int +#define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)] + +#define SCREEN_INIT_ARGS_DECL int index, ScreenPtr pScreen, int argc, char **argv + +#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, pointer pReadmask +#define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask + +#define CLOSE_SCREEN_ARGS_DECL int scrnIndex, ScreenPtr pScreen +#define CLOSE_SCREEN_ARGS scrnIndex, pScreen + +#define ADJUST_FRAME_ARGS_DECL int arg, int x, int y, int flags + +#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags + +#define FREE_SCREEN_ARGS_DECL int arg, int flags +#define FREE_SCREEN_ARGS(x) (x)->scrnIndex, 0 + +#define VT_FUNC_ARGS_DECL int arg, int flags +#define VT_FUNC_ARGS(flags) pScrn->scrnIndex, (flags) + +#define XF86_ENABLEDISABLEFB_ARG(x) ((x)->scrnIndex) +#else +#define SCRN_ARG_TYPE ScrnInfoPtr +#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = (arg1) + +#define SCREEN_ARG_TYPE ScreenPtr +#define SCREEN_PTR(arg1) ScreenPtr pScreen = (arg1) + +#define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv + +#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask +#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask + +#define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen +#define CLOSE_SCREEN_ARGS pScreen + +#define ADJUST_FRAME_ARGS_DECL ScrnInfoPtr arg, int x, int y +#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode + +#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg +#define FREE_SCREEN_ARGS(x) (x) + +#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg +#define VT_FUNC_ARGS(flags) pScrn + +#define XF86_ENABLEDISABLEFB_ARG(x) (x) + +#endif + +#endif diff --git a/src/via_display.c b/src/via_display.c index c5ccc1e..4472778 100644 --- a/src/via_display.c +++ b/src/via_display.c @@ -940,15 +940,13 @@ static void iga1_crtc_set_origin(xf86CrtcPtr crtc, int x, int y) { ScrnInfoPtr pScrn = crtc->scrn; - int scrnIndex = pScrn->scrnIndex; VIAPtr pVia = VIAPTR(pScrn); if (pVia->pVbe) { - ViaVbeAdjustFrame(scrnIndex, x, y); + ViaVbeAdjustFrame(pScrn, x, y); } else { ViaFirstCRTCSetStartingAddress(pScrn, x, y); } - VIAVidAdjustFrame(pScrn, x, y); } @@ -1344,11 +1342,10 @@ static void iga2_crtc_set_origin(xf86CrtcPtr crtc, int x, int y) { ScrnInfoPtr pScrn = crtc->scrn; - int scrnIndex = pScrn->scrnIndex; VIAPtr pVia = VIAPTR(pScrn); if (pVia->pVbe) { - ViaVbeAdjustFrame(scrnIndex, x, y); + ViaVbeAdjustFrame(pScrn, x, y); } else { ViaSecondCRTCSetStartingAddress(pScrn, x, y); } diff --git a/src/via_dri.c b/src/via_dri.c index d42d495..3907785 100644 --- a/src/via_dri.c +++ b/src/via_dri.c @@ -368,7 +368,7 @@ VIADRIFBInit(ScrnInfoPtr pScrn) static Bool VIAInitVisualConfigs(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VIAPtr pVia = VIAPTR(pScrn); int numConfigs = 0; __GLXvisualConfig *pConfigs = 0; @@ -493,7 +493,7 @@ VIAInitVisualConfigs(ScreenPtr pScreen) Bool VIADRI1ScreenInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VIAPtr pVia = VIAPTR(pScrn); int major, minor, patch; DRIInfoPtr pDRIInfo; @@ -510,7 +510,7 @@ VIADRI1ScreenInit(ScreenPtr pScreen) if (!xf86LoaderCheckSymbol("drmAvailable")) return FALSE; if (!xf86LoaderCheckSymbol("DRIQueryVersion")) { - xf86DrvMsg(pScreen->myNum, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "[dri] VIADRI1ScreenInit failed (libdri.a is too old).\n"); return FALSE; } @@ -518,7 +518,7 @@ VIADRI1ScreenInit(ScreenPtr pScreen) /* Check the DRI version. */ DRIQueryVersion(&major, &minor, &patch); if (major != DRIINFO_MAJOR_VERSION || minor < DRIINFO_MINOR_VERSION) { - xf86DrvMsg(pScreen->myNum, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "[dri] VIADRI1ScreenInit failed -- FALSE mismatch.\n" "[dri] libdri is %d.%d.%d, but %d.%d.x is needed.\n" "[dri] Disabling DRI.\n", @@ -599,7 +599,7 @@ VIADRI1ScreenInit(ScreenPtr pScreen) pDRIInfo->bufferRequests = DRI_ALL_WINDOWS; if (!DRIScreenInit(pScreen, pDRIInfo, &pVia->drmmode.fd)) { - xf86DrvMsg(pScreen->myNum, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "[dri] DRIScreenInit failed. Disabling DRI.\n"); free(pDRIInfo->devPrivate); pDRIInfo->devPrivate = NULL; @@ -623,7 +623,7 @@ VIADRI1ScreenInit(ScreenPtr pScreen) } pVIADRI->regs.size = VIA_MMIO_REGSIZE; pVIADRI->regs.handle = pVia->registerHandle; - xf86DrvMsg(pScreen->myNum, X_INFO, "[drm] mmio Registers = 0x%08lx\n", + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[drm] mmio Registers = 0x%08lx\n", (unsigned long)pVIADRI->regs.handle); xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[dri] mmio mapped.\n"); @@ -633,7 +633,7 @@ VIADRI1ScreenInit(ScreenPtr pScreen) void VIADRICloseScreen(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VIAPtr pVia = VIAPTR(pScrn); VIADRIPtr pVIADRI; @@ -642,9 +642,9 @@ VIADRICloseScreen(ScreenPtr pScreen) drmUnmap(pVia->agpMappedAddr, pVia->agpSize); drmRmMap(pVia->drmmode.fd, pVia->agpHandle); drmAgpUnbind(pVia->drmmode.fd, pVia->agpHandle); - xf86DrvMsg(pScreen->myNum, X_INFO, "[drm] Freeing agp memory\n"); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[drm] Freeing agp memory\n"); drmAgpFree(pVia->drmmode.fd, pVia->agpHandle); - xf86DrvMsg(pScreen->myNum, X_INFO, "[drm] Releasing agp module\n"); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[drm] Releasing agp module\n"); drmAgpRelease(pVia->drmmode.fd); } @@ -691,7 +691,7 @@ VIADestroyContext(ScreenPtr pScreen, drm_context_t hwContext, Bool VIADRIFinishScreenInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VIAPtr pVia = VIAPTR(pScrn); VIADRIPtr pVIADRI; @@ -754,7 +754,7 @@ VIADRISwapContext(ScreenPtr pScreen, DRISyncType syncType, DRIContextType newContextType, void *newContext) { #if 0 - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VIAPtr pVia = VIAPTR(pScrn); #endif return; @@ -765,7 +765,7 @@ VIADRIInitBuffers(WindowPtr pWin, RegionPtr prgn, CARD32 index) { #if 0 ScreenPtr pScreen = pWin->drawable.pScreen; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VIAPtr pVia = VIAPTR(pScrn); #endif return; @@ -777,7 +777,7 @@ VIADRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg, { #if 0 ScreenPtr pScreen = pParent->drawable.pScreen; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VIAPtr pVia = VIAPTR(pScrn); #endif return; @@ -832,19 +832,20 @@ VIADRIKernelInit(ScrnInfoPtr pScrn) static Bool VIADRIMapInit(ScreenPtr pScreen, VIAPtr pVia) { + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); int flags = DRM_READ_ONLY; if (drmAddMap(pVia->drmmode.fd, pVia->MmioBase, VIA_MMIO_REGSIZE, DRM_REGISTERS, flags, &pVia->registerHandle) < 0) { return FALSE; } - xf86DrvMsg(pScreen->myNum, X_INFO, "[drm] register handle = 0x%08lx\n", + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[drm] register handle = 0x%08lx\n", (unsigned long)pVia->registerHandle); if (drmAddMap(pVia->drmmode.fd, pVia->FrameBufferBase, pVia->videoRambytes, DRM_FRAME_BUFFER, 0, &pVia->frameBufferHandle) < 0) { return FALSE; } - xf86DrvMsg(pScreen->myNum, X_INFO, "[drm] framebuffer handle = 0x%08lx\n", + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[drm] framebuffer handle = 0x%08lx\n", (unsigned long)pVia->frameBufferHandle); return TRUE; diff --git a/src/via_driver.c b/src/via_driver.c index d3fed2d..bd7593f 100644 --- a/src/via_driver.c +++ b/src/via_driver.c @@ -288,21 +288,21 @@ VIAAvailableOptions(int chipid, int busid) } static Bool -VIASwitchMode(int scrnIndex, DisplayModePtr mode, int flags) +VIASwitchMode(SWITCH_MODE_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); return xf86SetSingleMode(pScrn, mode, RR_Rotate_0); } static void -VIAAdjustFrame(int scrnIndex, int x, int y, int flags) +VIAAdjustFrame(ADJUST_FRAME_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); int i; - DEBUG(xf86DrvMsg(scrnIndex, X_INFO, "VIAAdjustFrame %dx%d\n", x, y)); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAAdjustFrame %dx%d\n", x, y)); for (i = 0; i < xf86_config->num_crtc; i++) { xf86CrtcPtr crtc = xf86_config->crtc[i]; @@ -312,14 +312,14 @@ VIAAdjustFrame(int scrnIndex, int x, int y, int flags) } static Bool -VIAEnterVT(int scrnIndex, int flags) +VIAEnterVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); VIAPtr pVia = VIAPTR(pScrn); int i; - DEBUG(xf86DrvMsg(scrnIndex, X_INFO, "VIAEnterVT\n")); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAEnterVT\n")); for (i = 0; i < xf86_config->num_crtc; i++) { xf86CrtcPtr crtc = xf86_config->crtc[i]; @@ -348,7 +348,7 @@ VIAEnterVT(int scrnIndex, int flags) kickVblank(pScrn); VIADRIRingBufferInit(pScrn); viaDRIOffscreenRestore(pScrn); - DRIUnlock(screenInfo.screens[scrnIndex]); + DRIUnlock(xf86ScrnToScreen(pScrn)); } #endif } @@ -356,20 +356,20 @@ VIAEnterVT(int scrnIndex, int flags) } static void -VIALeaveVT(int scrnIndex, int flags) +VIALeaveVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); VIAPtr pVia = VIAPTR(pScrn); int i; - DEBUG(xf86DrvMsg(scrnIndex, X_INFO, "VIALeaveVT\n")); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIALeaveVT\n")); #ifdef XF86DRI if (pVia->directRenderingType == DRI_1) { volatile drm_via_sarea_t *saPriv = (drm_via_sarea_t *) DRIGetSAREAPrivate(pScrn->pScreen); - DRILock(screenInfo.screens[scrnIndex], 0); + DRILock(xf86ScrnToScreen(pScrn), 0); saPriv->ctxOwner = ~0; viaAccelSync(pScrn); @@ -437,12 +437,12 @@ VIAFreeRec(ScrnInfoPtr pScrn) * get called routinely at the end of a server generation. */ static void -VIAFreeScreen(int scrnIndex, int flags) +VIAFreeScreen(FREE_SCREEN_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); VIAPtr pVia = VIAPTR(pScrn); - DEBUG(xf86DrvMsg(scrnIndex, X_INFO, "VIAFreeScreen\n")); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAFreeScreen\n")); if (pVia->directRenderingType != DRI_2) VIAUnmapMem(pScrn); @@ -450,7 +450,7 @@ VIAFreeScreen(int scrnIndex, int flags) VIAFreeRec(pScrn); if (!pVia->KMS && xf86LoaderCheckSymbol("vgaHWFreeHWRec")) - vgaHWFreeHWRec(xf86Screens[scrnIndex]); + vgaHWFreeHWRec(pScrn); } static void @@ -1644,10 +1644,10 @@ LoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, } static void * -viaShadowWindow(ScreenPtr screen, CARD32 row, CARD32 offset, int mode, +viaShadowWindow(ScreenPtr pScreen, CARD32 row, CARD32 offset, int mode, CARD32 *size, void *closure) { - ScrnInfoPtr pScrn = xf86Screens[screen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VIAPtr pVia = VIAPTR(pScrn); int stride; @@ -1659,7 +1659,7 @@ viaShadowWindow(ScreenPtr screen, CARD32 row, CARD32 offset, int mode, static Bool VIACreateScreenResources(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VIAPtr pVia = VIAPTR(pScrn); PixmapPtr rootPixmap; void *surface; @@ -1693,14 +1693,14 @@ VIACreateScreenResources(ScreenPtr pScreen) } static Bool -VIACloseScreen(int scrnIndex, ScreenPtr pScreen) +VIACloseScreen(CLOSE_SCREEN_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); VIAPtr pVia = VIAPTR(pScrn); int i; - DEBUG(xf86DrvMsg(scrnIndex, X_INFO, "VIACloseScreen\n")); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIACloseScreen\n")); if (pVia->directRenderingType != DRI_2) viaExitVideo(pScrn); @@ -1754,12 +1754,12 @@ VIACloseScreen(int scrnIndex, ScreenPtr pScreen) } static Bool -VIAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +VIAScreenInit(SCREEN_INIT_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); VIAPtr pVia = VIAPTR(pScrn); - int pitch, i; + int pitch; pScrn->pScreen = pScreen; pScrn->displayWidth = pScrn->virtualX; @@ -1931,7 +1931,7 @@ VIAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) xf86DPMSInit(pScreen, xf86DPMSSet, 0); DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "- DPMS set up\n")); - if (!VIAEnterVT(scrnIndex, 1)) + if (!VIAEnterVT(VT_FUNC_ARGS(1))) return FALSE; if (pVia->directRenderingType != DRI_2) { diff --git a/src/via_driver.h b/src/via_driver.h index da22c0e..bb4bdf7 100644 --- a/src/via_driver.h +++ b/src/via_driver.h @@ -34,6 +34,7 @@ #define DEBUG(x) #endif +#include "compat-api.h" #include "vgaHW.h" #include "xf86.h" diff --git a/src/via_exa.c b/src/via_exa.c index 6dafb89..ffedae1 100644 --- a/src/via_exa.c +++ b/src/via_exa.c @@ -496,7 +496,7 @@ viaAccelSync(ScrnInfoPtr pScrn) static void viaAccelWaitMarker(ScreenPtr pScreen, int marker) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VIAPtr pVia = VIAPTR(pScrn); CARD32 uMarker = marker; @@ -603,7 +603,7 @@ static Bool viaExaDownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h, char *dst, int dst_pitch) { - ScrnInfoPtr pScrn = xf86Screens[pSrc->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pSrc->drawable.pScreen); unsigned wBytes = (pSrc->drawable.bitsPerPixel * w + 7) >> 3; unsigned srcPitch = exaGetPixmapPitch(pSrc), srcOffset; char *bounceAligned = NULL; @@ -658,7 +658,7 @@ static Bool viaExaTexUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int src_pitch) { - ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDst->drawable.pScreen); unsigned dstPitch = exaGetPixmapPitch(pDst), dstOffset; unsigned wBytes = (w * pDst->drawable.bitsPerPixel + 7) >> 3; int i, sync[2], yOffs, bufH, bufOffs, height, format; @@ -776,7 +776,7 @@ viaExaTexUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, Bool viaInitExa(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ExaDriverPtr pExa = exaDriverAlloc(); Bool nPOTSupported = TRUE; VIAPtr pVia = VIAPTR(pScrn); @@ -917,7 +917,7 @@ viaInitExa(ScreenPtr pScreen) void viaFinishInitAccel(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VIAPtr pVia = VIAPTR(pScrn); #ifdef XF86DRI int size, ret; @@ -976,7 +976,7 @@ viaFinishInitAccel(ScreenPtr pScreen) void viaExitAccel(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VIAPtr pVia = VIAPTR(pScrn); viaAccelSync(pScrn); diff --git a/src/via_exa_h2.c b/src/via_exa_h2.c index 5a91dfd..6f78249 100644 --- a/src/via_exa_h2.c +++ b/src/via_exa_h2.c @@ -134,7 +134,7 @@ viaAccelTransparentHelper_H2(VIAPtr pVia, CARD32 keyControl, int viaAccelMarkSync_H2(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VIAPtr pVia = VIAPTR(pScrn); RING_VARS; @@ -166,7 +166,7 @@ viaAccelMarkSync_H2(ScreenPtr pScreen) Bool viaExaPrepareSolid_H2(PixmapPtr pPixmap, int alu, Pixel planeMask, Pixel fg) { - ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); VIAPtr pVia = VIAPTR(pScrn); ViaTwodContext *tdc = &pVia->td; @@ -193,7 +193,7 @@ viaExaPrepareSolid_H2(PixmapPtr pPixmap, int alu, Pixel planeMask, Pixel fg) void viaExaSolid_H2(PixmapPtr pPixmap, int x1, int y1, int x2, int y2) { - ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); CARD32 dstOffset = exaGetPixmapOffset(pPixmap); CARD32 dstPitch = exaGetPixmapPitch(pPixmap); int w = x2 - x1, h = y2 - y1; @@ -223,7 +223,7 @@ Bool viaExaPrepareCopy_H2(PixmapPtr pSrcPixmap, PixmapPtr pDstPixmap, int xdir, int ydir, int alu, Pixel planeMask) { - ScrnInfoPtr pScrn = xf86Screens[pDstPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDstPixmap->drawable.pScreen); VIAPtr pVia = VIAPTR(pScrn); ViaTwodContext *tdc = &pVia->td; @@ -260,7 +260,7 @@ void viaExaCopy_H2(PixmapPtr pDstPixmap, int srcX, int srcY, int dstX, int dstY, int width, int height) { - ScrnInfoPtr pScrn = xf86Screens[pDstPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDstPixmap->drawable.pScreen); CARD32 dstOffset = exaGetPixmapOffset(pDstPixmap), val; CARD32 dstPitch = exaGetPixmapPitch(pDstPixmap); VIAPtr pVia = VIAPTR(pScrn); @@ -299,7 +299,7 @@ Bool viaExaCheckComposite_H2(int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture, PicturePtr pDstPicture) { - ScrnInfoPtr pScrn = xf86Screens[pDstPicture->pDrawable->pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDstPicture->pDrawable->pScreen); VIAPtr pVia = VIAPTR(pScrn); Via3DState *v3d = &pVia->v3d; @@ -389,7 +389,7 @@ viaIsAGP(VIAPtr pVia, PixmapPtr pPix, unsigned long *offset) static Bool viaExaIsOffscreen(PixmapPtr pPix) { - ScrnInfoPtr pScrn = xf86Screens[pPix->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPix->drawable.pScreen); VIAPtr pVia = VIAPTR(pScrn); return ((unsigned long)pPix->devPrivate.ptr - @@ -402,7 +402,7 @@ viaExaPrepareComposite_H2(int op, PicturePtr pSrcPicture, PixmapPtr pSrc, PixmapPtr pMask, PixmapPtr pDst) { CARD32 height, width; - ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDst->drawable.pScreen); VIAPtr pVia = VIAPTR(pScrn); Via3DState *v3d = &pVia->v3d; int curTex = 0; @@ -510,7 +510,7 @@ void viaExaComposite_H2(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY, int dstX, int dstY, int width, int height) { - ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDst->drawable.pScreen); VIAPtr pVia = VIAPTR(pScrn); Via3DState *v3d = &pVia->v3d; CARD32 col; diff --git a/src/via_exa_h6.c b/src/via_exa_h6.c index edfa79b..9aa7bc7 100644 --- a/src/via_exa_h6.c +++ b/src/via_exa_h6.c @@ -134,7 +134,7 @@ viaAccelTransparentHelper_H6(VIAPtr pVia, CARD32 keyControl, int viaAccelMarkSync_H6(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VIAPtr pVia = VIAPTR(pScrn); RING_VARS; @@ -167,7 +167,7 @@ viaAccelMarkSync_H6(ScreenPtr pScreen) Bool viaExaPrepareSolid_H6(PixmapPtr pPixmap, int alu, Pixel planeMask, Pixel fg) { - ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); VIAPtr pVia = VIAPTR(pScrn); ViaTwodContext *tdc = &pVia->td; @@ -194,7 +194,7 @@ viaExaPrepareSolid_H6(PixmapPtr pPixmap, int alu, Pixel planeMask, Pixel fg) void viaExaSolid_H6(PixmapPtr pPixmap, int x1, int y1, int x2, int y2) { - ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); CARD32 dstOffset = exaGetPixmapOffset(pPixmap); CARD32 dstPitch = exaGetPixmapPitch(pPixmap); int w = x2 - x1, h = y2 - y1; @@ -224,7 +224,7 @@ Bool viaExaPrepareCopy_H6(PixmapPtr pSrcPixmap, PixmapPtr pDstPixmap, int xdir, int ydir, int alu, Pixel planeMask) { - ScrnInfoPtr pScrn = xf86Screens[pDstPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDstPixmap->drawable.pScreen); VIAPtr pVia = VIAPTR(pScrn); ViaTwodContext *tdc = &pVia->td; @@ -261,7 +261,7 @@ void viaExaCopy_H6(PixmapPtr pDstPixmap, int srcX, int srcY, int dstX, int dstY, int width, int height) { - ScrnInfoPtr pScrn = xf86Screens[pDstPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDstPixmap->drawable.pScreen); CARD32 dstOffset = exaGetPixmapOffset(pDstPixmap), val; CARD32 dstPitch = exaGetPixmapPitch(pDstPixmap); VIAPtr pVia = VIAPTR(pScrn); @@ -301,7 +301,7 @@ Bool viaExaCheckComposite_H6(int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture, PicturePtr pDstPicture) { - ScrnInfoPtr pScrn = xf86Screens[pDstPicture->pDrawable->pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDstPicture->pDrawable->pScreen); VIAPtr pVia = VIAPTR(pScrn); Via3DState *v3d = &pVia->v3d; @@ -391,7 +391,7 @@ viaIsAGP(VIAPtr pVia, PixmapPtr pPix, unsigned long *offset) static Bool viaExaIsOffscreen(PixmapPtr pPix) { - ScrnInfoPtr pScrn = xf86Screens[pPix->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPix->drawable.pScreen); VIAPtr pVia = VIAPTR(pScrn); return ((unsigned long)pPix->devPrivate.ptr - @@ -404,7 +404,7 @@ viaExaPrepareComposite_H6(int op, PicturePtr pSrcPicture, PixmapPtr pSrc, PixmapPtr pMask, PixmapPtr pDst) { CARD32 height, width; - ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDst->drawable.pScreen); VIAPtr pVia = VIAPTR(pScrn); Via3DState *v3d = &pVia->v3d; int curTex = 0; @@ -512,7 +512,7 @@ void viaExaComposite_H6(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY, int dstX, int dstY, int width, int height) { - ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDst->drawable.pScreen); VIAPtr pVia = VIAPTR(pScrn); Via3DState *v3d = &pVia->v3d; CARD32 col; diff --git a/src/via_i2c.c b/src/via_i2c.c index ba2bc8d..912b87d 100644 --- a/src/via_i2c.c +++ b/src/via_i2c.c @@ -44,7 +44,8 @@ static void ViaI2C1PutBits(I2CBusPtr Bus, int clock, int data) { - vgaHWPtr hwp = VGAHWPTR(xf86Screens[Bus->scrnIndex]); + SCRN_INFO_PTR(Bus->scrnIndex); + vgaHWPtr hwp = VGAHWPTR(pScrn); CARD8 value = 0x01; /* Enable */ if (clock) @@ -59,7 +60,8 @@ ViaI2C1PutBits(I2CBusPtr Bus, int clock, int data) static void ViaI2C1GetBits(I2CBusPtr Bus, int *clock, int *data) { - vgaHWPtr hwp = VGAHWPTR(xf86Screens[Bus->scrnIndex]); + SCRN_INFO_PTR(Bus->scrnIndex); + vgaHWPtr hwp = VGAHWPTR(pScrn); CARD8 value = hwp->readSeq(hwp, 0x26); *clock = (value & SCL_READ) != 0; @@ -97,7 +99,8 @@ ViaI2CBus1Init(int scrnIndex) static void ViaI2C2PutBits(I2CBusPtr Bus, int clock, int data) { - vgaHWPtr hwp = VGAHWPTR(xf86Screens[Bus->scrnIndex]); + SCRN_INFO_PTR(Bus->scrnIndex); + vgaHWPtr hwp = VGAHWPTR(pScrn); CARD8 value = 0x01; /* Enable */ if (clock) @@ -112,7 +115,8 @@ ViaI2C2PutBits(I2CBusPtr Bus, int clock, int data) static void ViaI2C2GetBits(I2CBusPtr Bus, int *clock, int *data) { - vgaHWPtr hwp = VGAHWPTR(xf86Screens[Bus->scrnIndex]); + SCRN_INFO_PTR(Bus->scrnIndex); + vgaHWPtr hwp = VGAHWPTR(pScrn); CARD8 value = hwp->readSeq(hwp, 0x31); *clock = (value & SCL_READ) != 0; @@ -151,7 +155,8 @@ ViaI2CBus2Init(int scrnIndex) static Bool ViaI2C3Start(I2CBusPtr b, int timeout) { - vgaHWPtr hwp = VGAHWPTR(xf86Screens[b->scrnIndex]); + SCRN_INFO_PTR(b->scrnIndex); + vgaHWPtr hwp = VGAHWPTR(pScrn); ViaSeqMask(hwp, 0x2C, 0xF0, 0xF0); b->I2CUDelay(b, b->RiseFallTime); @@ -192,7 +197,8 @@ static void ViaI2C3Stop(I2CDevPtr d) { I2CBusPtr b = d->pI2CBus; - vgaHWPtr hwp = VGAHWPTR(xf86Screens[b->scrnIndex]); + SCRN_INFO_PTR(b->scrnIndex); + vgaHWPtr hwp = VGAHWPTR(pScrn); ViaSeqMask(hwp, 0x2C, 0xC0, 0xF0); b->I2CUDelay(b, b->RiseFallTime); @@ -210,7 +216,8 @@ ViaI2C3Stop(I2CDevPtr d) static void ViaI2C3PutBit(I2CBusPtr b, Bool sda, int timeout) { - vgaHWPtr hwp = VGAHWPTR(xf86Screens[b->scrnIndex]); + SCRN_INFO_PTR(b->scrnIndex); + vgaHWPtr hwp = VGAHWPTR(pScrn); if (sda) ViaSeqMask(hwp, 0x2C, 0x50, 0x50); @@ -230,7 +237,8 @@ static Bool ViaI2C3PutByte(I2CDevPtr d, I2CByte data) { I2CBusPtr b = d->pI2CBus; - vgaHWPtr hwp = VGAHWPTR(xf86Screens[b->scrnIndex]); + SCRN_INFO_PTR(b->scrnIndex); + vgaHWPtr hwp = VGAHWPTR(pScrn); Bool ret; int i; @@ -257,7 +265,8 @@ ViaI2C3PutByte(I2CDevPtr d, I2CByte data) static Bool ViaI2C3GetBit(I2CBusPtr b, int timeout) { - vgaHWPtr hwp = VGAHWPTR(xf86Screens[b->scrnIndex]); + SCRN_INFO_PTR(b->scrnIndex); + vgaHWPtr hwp = VGAHWPTR(pScrn); Bool ret; ViaSeqMask(hwp, 0x2c, 0x80, 0xC0); @@ -282,7 +291,8 @@ static Bool ViaI2C3GetByte(I2CDevPtr d, I2CByte * data, Bool last) { I2CBusPtr b = d->pI2CBus; - vgaHWPtr hwp = VGAHWPTR(xf86Screens[b->scrnIndex]); + SCRN_INFO_PTR(b->scrnIndex); + vgaHWPtr hwp = VGAHWPTR(pScrn); int i; *data = 0x00; diff --git a/src/via_id.c b/src/via_id.c index 911131f..6bf97c9 100644 --- a/src/via_id.c +++ b/src/via_id.c @@ -239,6 +239,7 @@ static struct ViaCardIdStruct ViaCardId[] = { {"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}, + {"Fujitsu Futro S100", VIA_VX800, 0xA0A0, 0x0702, VIA_DEVICE_CRT}, /*** VX855 ***/ {"VIA VT8562C", VIA_VX855, 0x1106, 0x5122, VIA_DEVICE_CRT}, diff --git a/src/via_kms.c b/src/via_kms.c index 90165fc..c0847d6 100644 --- a/src/via_kms.c +++ b/src/via_kms.c @@ -962,7 +962,7 @@ drmmode_handle_uevents(int fd, void *closure) if (!dev) return; - RRGetInfo(screenInfo.screens[scrn->scrnIndex], TRUE); + RRGetInfo(xf86ScrnToScreen(scrn), TRUE); udev_device_unref(dev); } #endif diff --git a/src/via_memcpy.c b/src/via_memcpy.c index 6eff2af..d4eb804 100644 --- a/src/via_memcpy.c +++ b/src/via_memcpy.c @@ -523,7 +523,7 @@ cpuValid(const char *cpuinfo, char **flags) vidCopyFunc viaVidCopyInit(char *copyType, ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); #ifdef linux char buf[BSIZ]; @@ -653,7 +653,7 @@ viaVidCopyInit(char *copyType, ScreenPtr pScreen) vidCopyFunc viaVidCopyInit(char *copyType, ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Using default xfree86 memcpy for video.\n"); diff --git a/src/via_ums.c b/src/via_ums.c index 6d84755..d775a7c 100644 --- a/src/via_ums.c +++ b/src/via_ums.c @@ -557,7 +557,7 @@ VIAInitialize3DEngine(ScrnInfoPtr pScrn) Bool UMSAccelInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VIAPtr pVia = VIAPTR(pScrn); Bool ret = FALSE; diff --git a/src/via_ums.h b/src/via_ums.h index 7d5a0a9..db7c7de 100644 --- a/src/via_ums.h +++ b/src/via_ums.h @@ -183,7 +183,7 @@ typedef struct _VIABIOSINFO { /* Function prototypes */ /* via_vbe.c */ -void ViaVbeAdjustFrame(int scrnIndex, int x, int y); +void ViaVbeAdjustFrame(ScrnInfoPtr pScrn, int x, int y); Bool ViaVbeSetMode(ScrnInfoPtr pScrn, DisplayModePtr pMode); Bool ViaVbeSaveRestore(ScrnInfoPtr pScrn, vbeSaveRestoreFunction function); Bool ViaVbeModePreInit(ScrnInfoPtr pScrn); diff --git a/src/via_vbe.c b/src/via_vbe.c index fd8b06d..a13c464 100644 --- a/src/via_vbe.c +++ b/src/via_vbe.c @@ -41,9 +41,9 @@ #define VBE_DEFAULT_REFRESH 6000 void -ViaVbeAdjustFrame(int scrnIndex, int x, int y) +ViaVbeAdjustFrame(ScrnInfoPtr pScrn, int x, int y) { - VIAPtr pVia = VIAPTR(xf86Screens[scrnIndex]); + VIAPtr pVia = VIAPTR(pScrn); VBESetDisplayStart(pVia->pVbe, x, y, TRUE); } diff --git a/src/via_xv.c b/src/via_xv.c index 21e5a3f..028ee29 100644 --- a/src/via_xv.c +++ b/src/via_xv.c @@ -588,9 +588,9 @@ viaExitVideo(ScrnInfoPtr pScrn) void viaInitVideo(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; - VIAPtr pVia = VIAPTR(pScrn); + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); XF86VideoAdaptorPtr *adaptors, *newAdaptors; + VIAPtr pVia = VIAPTR(pScrn); int num_adaptors, num_new; DBG_DD(ErrorF(" via_xv.c : viaInitVideo, Screen[%d]\n", pScrn->scrnIndex)); @@ -672,10 +672,10 @@ viaInitVideo(ScreenPtr pScreen) static unsigned viaSetupAdaptors(ScreenPtr pScreen, XF86VideoAdaptorPtr ** adaptors) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); + int i, j, usedPorts, numPorts; viaPortPrivRec *viaPortPriv; DevUnion *pdevUnion; - int i, j, usedPorts, numPorts; DBG_DD(ErrorF(" via_xv.c : viaSetupAdaptors (viaSetupImageVideo): \n")); diff --git a/src/via_xvmc.c b/src/via_xvmc.c index de5dcf1..50acfe9 100644 --- a/src/via_xvmc.c +++ b/src/via_xvmc.c @@ -311,7 +311,7 @@ mpegDisable(VIAPtr pVia, CARD32 val) void ViaInitXVMC(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VIAPtr pVia = VIAPTR(pScrn); ViaXvMCPtr vXvMC = &(pVia->xvmc); volatile ViaXvMCSAreaPriv *saPriv; @@ -500,7 +500,7 @@ ViaXvMCCreateContext(ScrnInfoPtr pScrn, XvMCContextPtr pContext, (pVia->Chipset == VIA_PM800) || (pVia->Chipset == VIA_P4M900))); contextRec->chipId = pVia->ChipId; - contextRec->screen = pScrn->pScreen->myNum; + contextRec->screen = pScrn->scrnIndex; contextRec->depth = pScrn->bitsPerPixel; contextRec->stride = pVia->Bpp * pScrn->virtualX; |