configure.ac | 2 - src/Makefile.am | 1 src/compat-api.h | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/vesa.c | 92 ++++++++++++++++++++++++++------------------------- 4 files changed, 147 insertions(+), 46 deletions(-)
New commits: commit 0249d01a2623c4f7769914fc0a7b50657a50560f Author: Dave Airlie <airl...@gmail.com> Date: Wed Jul 18 20:02:49 2012 +1000 vesa: bump to 2.3.2 Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/configure.ac b/configure.ac index 4288bdd..6317acd 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-vesa], - [2.3.1], + [2.3.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-vesa]) AC_CONFIG_SRCDIR([Makefile.am]) commit 86f1d894cd3c06a61abbd16e3e73d60db2c98621 Author: Dave Airlie <airl...@redhat.com> Date: Fri Jun 1 12:55:19 2012 +0100 vesa: add api 13 compat layer. Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/src/compat-api.h b/src/compat-api.h index 1bb7724..d4d3882 100644 --- a/src/compat-api.h +++ b/src/compat-api.h @@ -38,4 +38,61 @@ #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 i, 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 ADJUST_FRAME_ARGS(arg, x, y) (arg)->scrnIndex, x, y, 0 + +#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags +#define SWITCH_MODE_ARGS(arg, m) (arg)->scrnIndex, m, 0 + +#define FREE_SCREEN_ARGS_DECL int arg, int flags + +#define VT_FUNC_ARGS_DECL int arg, int flags +#define VT_FUNC_ARGS pScrn->scrnIndex, 0 + +#define SCRN_OR_INDEX_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 ADJUST_FRAME_ARGS(arg, x, y) arg, x, y + +#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode +#define SWITCH_MODE_ARGS(arg, m) arg, m +#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg + +#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg +#define VT_FUNC_ARGS pScrn + +#define SCRN_OR_INDEX_ARG(x) (x) + +#endif + #endif diff --git a/src/vesa.c b/src/vesa.c index ab64060..8ac77da 100644 --- a/src/vesa.c +++ b/src/vesa.c @@ -75,17 +75,16 @@ static Bool VESAPciProbe(DriverPtr drv, int entity_num, struct pci_device *dev, intptr_t match_data); #endif static Bool VESAPreInit(ScrnInfoPtr pScrn, int flags); -static Bool VESAScreenInit(int Index, ScreenPtr pScreen, int argc, - char **argv); -static Bool VESAEnterVT(int scrnIndex, int flags); -static void VESALeaveVT(int scrnIndex, int flags); -static Bool VESACloseScreen(int scrnIndex, ScreenPtr pScreen); +static Bool VESAScreenInit(SCREEN_INIT_ARGS_DECL); +static Bool VESAEnterVT(VT_FUNC_ARGS_DECL); +static void VESALeaveVT(VT_FUNC_ARGS_DECL); +static Bool VESACloseScreen(CLOSE_SCREEN_ARGS_DECL); static Bool VESASaveScreen(ScreenPtr pScreen, int mode); -static Bool VESASwitchMode(int scrnIndex, DisplayModePtr pMode, int flags); +static Bool VESASwitchMode(SWITCH_MODE_ARGS_DECL); static Bool VESASetMode(ScrnInfoPtr pScrn, DisplayModePtr pMode); -static void VESAAdjustFrame(int scrnIndex, int x, int y, int flags); -static void VESAFreeScreen(int scrnIndex, int flags); +static void VESAAdjustFrame(ADJUST_FRAME_ARGS_DECL); +static void VESAFreeScreen(FREE_SCREEN_ARGS_DECL); static void VESAFreeRec(ScrnInfoPtr pScrn); static VESAPtr VESAGetRec(ScrnInfoPtr pScrn); @@ -342,11 +341,11 @@ vesaModesCloseEnough(DisplayModePtr edid, DisplayModePtr vbe) } static ModeStatus -VESAValidMode(int scrn, DisplayModePtr p, Bool flag, int pass) +VESAValidMode(SCRN_ARG_TYPE arg, DisplayModePtr p, Bool flag, int pass) { + SCRN_INFO_PTR(arg); static int warned = 0; int found = 0; - ScrnInfoPtr pScrn = xf86Screens[scrn]; VESAPtr pVesa = VESAGetRec(pScrn); MonPtr mon = pScrn->monitor; ModeStatus ret = MODE_BAD; @@ -357,7 +356,7 @@ VESAValidMode(int scrn, DisplayModePtr p, Bool flag, int pass) if (pass != MODECHECK_FINAL) { if (!warned) { - xf86DrvMsg(scrn, X_WARNING, "VESAValidMode called unexpectedly\n"); + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "VESAValidMode called unexpectedly\n"); warned = 1; } return MODE_OK; @@ -740,7 +739,7 @@ VESAPreInit(ScrnInfoPtr pScrn, int flags) #ifdef HAVE_PANELID else { void *panelid = VBEReadPanelID(pVesa->pVbe); - VBEInterpretPanelID(pScrn->scrnIndex, panelid); + VBEInterpretPanelID(SCRN_OR_INDEX_ARG(pScrn), panelid); free(panelid); } #endif @@ -918,19 +917,19 @@ vesaCreateScreenResources(ScreenPtr pScreen) } static void -vesaEnableDisableFBAccess(int scrnIndex, Bool enable) +vesaEnableDisableFBAccess(SCRN_ARG_TYPE arg, Bool enable) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); VESAPtr pVesa = VESAGetRec(pScrn); pVesa->accessEnabled = enable; - pVesa->EnableDisableFBAccess(scrnIndex, enable); + pVesa->EnableDisableFBAccess(arg, enable); } static Bool -VESAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +VESAScreenInit(SCREEN_INIT_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VESAPtr pVesa = VESAGetRec(pScrn); VisualPtr visual; VbeModeInfoBlock *mode; @@ -988,7 +987,7 @@ VESAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) return (FALSE); /* set the viewport */ - VESAAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); + VESAAdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); /* Blank the screen for aesthetic reasons. */ VESASaveScreen(pScreen, SCREEN_SAVER_ON); @@ -1117,30 +1116,31 @@ VESAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) } static Bool -VESAEnterVT(int scrnIndex, int flags) +VESAEnterVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); if (!VESASetMode(pScrn, pScrn->currentMode)) return FALSE; - VESAAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); + VESAAdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); return TRUE; } static void -VESALeaveVT(int scrnIndex, int flags) +VESALeaveVT(VT_FUNC_ARGS_DECL) { - VESASaveRestore(xf86Screens[scrnIndex], MODE_RESTORE); + SCRN_INFO_PTR(arg); + VESASaveRestore(pScrn, MODE_RESTORE); } static Bool -VESACloseScreen(int scrnIndex, ScreenPtr pScreen) +VESACloseScreen(CLOSE_SCREEN_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VESAPtr pVesa = VESAGetRec(pScrn); if (pScrn->vtSema) { - VESASaveRestore(xf86Screens[scrnIndex], MODE_RESTORE); + VESASaveRestore(pScrn, MODE_RESTORE); if (pVesa->savedPal) VBESetGetPaletteData(pVesa->pVbe, TRUE, 0, 256, pVesa->savedPal, FALSE, TRUE); @@ -1160,21 +1160,21 @@ VESACloseScreen(int scrnIndex, ScreenPtr pScreen) pScrn->EnableDisableFBAccess = pVesa->EnableDisableFBAccess; pScreen->CreateScreenResources = pVesa->CreateScreenResources; pScreen->CloseScreen = pVesa->CloseScreen; - return pScreen->CloseScreen(scrnIndex, pScreen); + return pScreen->CloseScreen(CLOSE_SCREEN_ARGS); } static Bool -VESASwitchMode(int scrnIndex, DisplayModePtr pMode, int flags) +VESASwitchMode(SWITCH_MODE_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); VESAPtr pVesa = VESAGetRec(pScrn); Bool ret, disableAccess = pVesa->ModeSetClearScreen && pVesa->accessEnabled; if (disableAccess) - pScrn->EnableDisableFBAccess(scrnIndex,FALSE); - ret = VESASetMode(xf86Screens[scrnIndex], pMode); + pScrn->EnableDisableFBAccess(SCRN_OR_INDEX_ARG(pScrn),FALSE); + ret = VESASetMode(pScrn, mode); if (disableAccess) - pScrn->EnableDisableFBAccess(scrnIndex,TRUE); + pScrn->EnableDisableFBAccess(SCRN_OR_INDEX_ARG(pScrn),TRUE); return ret; } @@ -1235,17 +1235,19 @@ VESASetMode(ScrnInfoPtr pScrn, DisplayModePtr pMode) } static void -VESAAdjustFrame(int scrnIndex, int x, int y, int flags) +VESAAdjustFrame(ADJUST_FRAME_ARGS_DECL) { - VESAPtr pVesa = VESAGetRec(xf86Screens[scrnIndex]); + SCRN_INFO_PTR(arg); + VESAPtr pVesa = VESAGetRec(pScrn); VBESetDisplayStart(pVesa->pVbe, x, y, TRUE); } static void -VESAFreeScreen(int scrnIndex, int flags) +VESAFreeScreen(FREE_SCREEN_ARGS_DECL) { - VESAFreeRec(xf86Screens[scrnIndex]); + SCRN_INFO_PTR(arg); + VESAFreeRec(pScrn); } static Bool @@ -1735,9 +1737,9 @@ VESADGASetMode(ScrnInfoPtr pScrn, DGAModePtr pDGAMode) frameY0 = pScrn->frameY0; } - if (!(*pScrn->SwitchMode)(scrnIdx, pMode, 0)) + if (!(*pScrn->SwitchMode)(SWITCH_MODE_ARGS(pScrn, pMode))) return (FALSE); - (*pScrn->AdjustFrame)(scrnIdx, frameX0, frameY0, 0); + (*pScrn->AdjustFrame)(ADJUST_FRAME_ARGS(pScrn, frameX0, frameY0)); return (TRUE); } @@ -1745,7 +1747,7 @@ VESADGASetMode(ScrnInfoPtr pScrn, DGAModePtr pDGAMode) static void VESADGASetViewport(ScrnInfoPtr pScrn, int x, int y, int flags) { - (*pScrn->AdjustFrame)(pScrn->pScreen->myNum, x, y, flags); + (*pScrn->AdjustFrame)(ADJUST_FRAME_ARGS(pScrn, x, y)); } static int commit 378e55e375cbb659d66d6739891553d7a83e6a65 Author: Dave Airlie <airl...@redhat.com> Date: Wed May 23 11:30:51 2012 +0100 vesa: fix make distcheck. Add missing compat-api header Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/src/Makefile.am b/src/Makefile.am index dc702f0..35fcd5c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -32,5 +32,6 @@ vesa_drv_la_LDFLAGS = -module -avoid-version vesa_drv_ladir = @moduledir@/drivers vesa_drv_la_SOURCES = \ + compat-api.h \ vesa.c \ vesa.h commit 18bf00600c75b1dc055d174c8ba9ec1dc4ae8b5a Author: Dave Airlie <airl...@redhat.com> Date: Wed May 23 11:25:14 2012 +0100 vesa: convert to new screen conversion APIs. Generated by util/modular/x-driver-screen-scrn-conv.sh Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/src/vesa.c b/src/vesa.c index 9b2f664..ab64060 100644 --- a/src/vesa.c +++ b/src/vesa.c @@ -111,7 +111,7 @@ static void * VESAWindowLinear(ScreenPtr pScreen, CARD32 row, CARD32 offset, int mode, CARD32 *size, void *closure) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VESAPtr pVesa = VESAGetRec(pScrn); *size = pVesa->maxBytesPerScanline; @@ -122,7 +122,7 @@ static void * VESAWindowWindowed(ScreenPtr pScreen, CARD32 row, CARD32 offset, int mode, CARD32 *size, void *closure) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VESAPtr pVesa = VESAGetRec(pScrn); VbeModeInfoBlock *data = ((VbeModeInfoData*)(pScrn->currentMode->Private))->data; int window; @@ -903,7 +903,7 @@ VESAPreInit(ScrnInfoPtr pScrn, int flags) static Bool vesaCreateScreenResources(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VESAPtr pVesa = VESAGetRec(pScrn); Bool ret; @@ -1578,7 +1578,7 @@ RestoreFonts(ScrnInfoPtr pScrn) static Bool VESASaveScreen(ScreenPtr pScreen, int mode) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VESAPtr pVesa = VESAGetRec(pScrn); Bool on = xf86IsUnblank(mode); @@ -1603,7 +1603,7 @@ VESASaveScreen(ScreenPtr pScreen, int mode) static int VESABankSwitch(ScreenPtr pScreen, unsigned int iBank) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); VESAPtr pVesa = VESAGetRec(pScrn); if (pVesa->curBank == iBank) commit 76c67b2735a5b0ee1cf231ff85eb3273a30b4ccc Author: Dave Airlie <airl...@redhat.com> Date: Wed May 23 11:24:57 2012 +0100 vesa: add compat-api.h Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/src/compat-api.h b/src/compat-api.h new file mode 100644 index 0000000..1bb7724 --- /dev/null +++ b/src/compat-api.h @@ -0,0 +1,41 @@ +/* + * 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 <airl...@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 + +#endif diff --git a/src/vesa.c b/src/vesa.c index 23d9e14..9b2f664 100644 --- a/src/vesa.c +++ b/src/vesa.c @@ -64,7 +64,7 @@ #define DPMS_SERVER #include <X11/extensions/dpms.h> #endif - +#include "compat-api.h" /* Mandatory functions */ static const OptionInfoRec * VESAAvailableOptions(int chipid, int busid); commit 8cd553551767c0f970912fb73cae3aa733434106 Author: Adam Jackson <a...@redhat.com> Date: Thu Mar 22 17:32:22 2012 -0400 vesa 2.3.1 Signed-off-by: Adam Jackson <a...@redhat.com> diff --git a/configure.ac b/configure.ac index 5d39bbc..4288bdd 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-vesa], - [2.3.0], + [2.3.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-vesa]) AC_CONFIG_SRCDIR([Makefile.am]) -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1srlrt-0003yw...@vasks.debian.org