diff options
Diffstat (limited to 'xorg-server/hw/kdrive/src')
-rw-r--r-- | xorg-server/hw/kdrive/src/Makefile.am | 2 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/src/kcmap.c | 145 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/src/kcurscol.c | 94 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/src/kdrive.c | 217 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/src/kdrive.h | 110 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/src/kinfo.c | 2 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/src/kmap.c | 172 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/src/kmode.c | 38 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/src/kshadow.c | 34 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/src/kxv.h | 38 |
10 files changed, 205 insertions, 647 deletions
diff --git a/xorg-server/hw/kdrive/src/Makefile.am b/xorg-server/hw/kdrive/src/Makefile.am index 7ac23c2aa..51375b950 100644 --- a/xorg-server/hw/kdrive/src/Makefile.am +++ b/xorg-server/hw/kdrive/src/Makefile.am @@ -15,12 +15,10 @@ endif libkdrive_la_SOURCES = \ fourcc.h \ kcmap.c \ - kcurscol.c \ kdrive.c \ kdrive.h \ kinfo.c \ kinput.c \ - kmap.c \ kmode.c \ kshadow.c \ $(KDRIVE_XV_SOURCES) \ diff --git a/xorg-server/hw/kdrive/src/kcmap.c b/xorg-server/hw/kdrive/src/kcmap.c index 2c33e798a..40697e091 100644 --- a/xorg-server/hw/kdrive/src/kcmap.c +++ b/xorg-server/hw/kdrive/src/kcmap.c @@ -30,10 +30,10 @@ */ void -KdSetColormap (ScreenPtr pScreen, int fb) +KdSetColormap (ScreenPtr pScreen) { KdScreenPriv(pScreen); - ColormapPtr pCmap = pScreenPriv->pInstalledmap[fb]; + ColormapPtr pCmap = pScreenPriv->pInstalledmap; Pixel pixels[KD_MAX_PSEUDO_SIZE]; xrgb colors[KD_MAX_PSEUDO_SIZE]; xColorItem defs[KD_MAX_PSEUDO_SIZE]; @@ -41,12 +41,12 @@ KdSetColormap (ScreenPtr pScreen, int fb) if (!pScreenPriv->card->cfuncs->putColors) return; - if (pScreenPriv->screen->fb[fb].depth > KD_MAX_PSEUDO_DEPTH) + if (pScreenPriv->screen->fb.depth > KD_MAX_PSEUDO_DEPTH) return; - + if (!pScreenPriv->enabled) return; - + if (!pCmap) return; @@ -54,13 +54,13 @@ KdSetColormap (ScreenPtr pScreen, int fb) * Make DIX convert pixels into RGB values -- this handles * true/direct as well as pseudo/static visuals */ - - for (i = 0; i < (1 << pScreenPriv->screen->fb[fb].depth); i++) + + for (i = 0; i < (1 << pScreenPriv->screen->fb.depth); i++) pixels[i] = i; - QueryColors (pCmap, (1 << pScreenPriv->screen->fb[fb].depth), pixels, colors); - - for (i = 0; i < (1 << pScreenPriv->screen->fb[fb].depth); i++) + QueryColors (pCmap, (1 << pScreenPriv->screen->fb.depth), pixels, colors); + + for (i = 0; i < (1 << pScreenPriv->screen->fb.depth); i++) { defs[i].pixel = i; defs[i].red = colors[i].red; @@ -69,8 +69,8 @@ KdSetColormap (ScreenPtr pScreen, int fb) defs[i].flags = DoRed|DoGreen|DoBlue; } - (*pScreenPriv->card->cfuncs->putColors) (pCmap->pScreen, fb, - (1 << pScreenPriv->screen->fb[fb].depth), + (*pScreenPriv->card->cfuncs->putColors) (pCmap->pScreen, + (1 << pScreenPriv->screen->fb.depth), defs); /* recolor hardware cursor */ @@ -87,77 +87,35 @@ KdEnableColormap (ScreenPtr pScreen) { KdScreenPriv(pScreen); int i; - int fb; - Bool done = FALSE; if (!pScreenPriv->card->cfuncs->putColors) return; - for (fb = 0; fb < KD_MAX_FB && pScreenPriv->screen->fb[fb].depth; fb++) + + if (pScreenPriv->screen->fb.depth <= KD_MAX_PSEUDO_DEPTH) { - if (pScreenPriv->screen->fb[fb].depth <= KD_MAX_PSEUDO_DEPTH && !done) - { - for (i = 0; i < (1 << pScreenPriv->screen->fb[fb].depth); i++) - pScreenPriv->systemPalette[i].pixel = i; - (*pScreenPriv->card->cfuncs->getColors) (pScreen, fb, - (1 << pScreenPriv->screen->fb[fb].depth), - pScreenPriv->systemPalette); - done = TRUE; - } - KdSetColormap (pScreen, fb); + for (i = 0; i < (1 << pScreenPriv->screen->fb.depth); i++) + pScreenPriv->systemPalette[i].pixel = i; + (*pScreenPriv->card->cfuncs->getColors) (pScreen, + (1 << pScreenPriv->screen->fb.depth), + pScreenPriv->systemPalette); } + KdSetColormap (pScreen); } void KdDisableColormap (ScreenPtr pScreen) { KdScreenPriv(pScreen); - int fb; if (!pScreenPriv->card->cfuncs->putColors) return; - for (fb = 0; fb < KD_MAX_FB && pScreenPriv->screen->fb[fb].depth; fb++) - { - if (pScreenPriv->screen->fb[fb].depth <= KD_MAX_PSEUDO_DEPTH) - { - (*pScreenPriv->card->cfuncs->putColors) (pScreen, fb, - (1 << pScreenPriv->screen->fb[fb].depth), - pScreenPriv->systemPalette); - break; - } - } -} -static int -KdColormapFb (ColormapPtr pCmap) -{ - ScreenPtr pScreen = pCmap->pScreen; - KdScreenPriv (pScreen); - KdScreenInfo *screen = pScreenPriv->screen; - int d; - DepthPtr depth; - int v; - VisualID vid = pCmap->pVisual->vid; - int fb; - - if (screen->fb[1].depth) + if (pScreenPriv->screen->fb.depth <= KD_MAX_PSEUDO_DEPTH) { - for (d = 0; d < pScreen->numDepths; d++) - { - depth = &pScreen->allowedDepths[d]; - for (v = 0; v < depth->numVids; v++) - { - if (depth->vids[v] == vid) - { - for (fb = 0; fb < KD_MAX_FB && screen->fb[fb].depth; fb++) - { - if (depth->depth == screen->fb[fb].depth) - return fb; - } - } - } - } + (*pScreenPriv->card->cfuncs->putColors) (pScreen, + (1 << pScreenPriv->screen->fb.depth), + pScreenPriv->systemPalette); } - return 0; } /* @@ -173,21 +131,20 @@ void KdInstallColormap (ColormapPtr pCmap) { KdScreenPriv(pCmap->pScreen); - int fb = KdColormapFb (pCmap); - if (pCmap == pScreenPriv->pInstalledmap[fb]) + if (pCmap == pScreenPriv->pInstalledmap) return; /* Tell X clients that the installed colormap is going away. */ - if (pScreenPriv->pInstalledmap[fb]) - WalkTree(pScreenPriv->pInstalledmap[fb]->pScreen, TellLostMap, - (pointer) &(pScreenPriv->pInstalledmap[fb]->mid)); + if (pScreenPriv->pInstalledmap) + WalkTree(pScreenPriv->pInstalledmap->pScreen, TellLostMap, + (pointer) &(pScreenPriv->pInstalledmap->mid)); /* Take note of the new installed colorscreen-> */ - pScreenPriv->pInstalledmap[fb] = pCmap; + pScreenPriv->pInstalledmap = pCmap; + + KdSetColormap (pCmap->pScreen); - KdSetColormap (pCmap->pScreen, fb); - /* Tell X clients of the new colormap */ WalkTree(pCmap->pScreen, TellGainedMap, (pointer) &(pCmap->mid)); } @@ -195,7 +152,7 @@ KdInstallColormap (ColormapPtr pCmap) /* * KdUninstallColormap * - * This function uninstalls a colormap by either installing + * This function uninstalls a colormap by either installing * the default X colormap or erasing the installed colormap pointer. * The default X colormap itself cannot be uninstalled. */ @@ -203,12 +160,11 @@ void KdUninstallColormap (ColormapPtr pCmap) { KdScreenPriv(pCmap->pScreen); - int fb = KdColormapFb (pCmap); Colormap defMapID; ColormapPtr defMap; /* ignore if not installed */ - if (pCmap != pScreenPriv->pInstalledmap[fb]) + if (pCmap != pScreenPriv->pInstalledmap) return; /* ignore attempts to uninstall default colormap */ @@ -216,17 +172,17 @@ KdUninstallColormap (ColormapPtr pCmap) if ((Colormap) pCmap->mid == defMapID) return; - /* install default if on same fb */ + /* install default */ dixLookupResourceByType((pointer *)&defMap, defMapID, RT_COLORMAP, serverClient, DixInstallAccess); - if (defMap && KdColormapFb (defMap) == fb) + if (defMap) (*pCmap->pScreen->InstallColormap)(defMap); else { /* uninstall and clear colormap pointer */ WalkTree(pCmap->pScreen, TellLostMap, (pointer) &(pCmap->mid)); - pScreenPriv->pInstalledmap[fb] = 0; + pScreenPriv->pInstalledmap = 0; } } @@ -234,16 +190,12 @@ int KdListInstalledColormaps (ScreenPtr pScreen, Colormap *pCmaps) { KdScreenPriv(pScreen); - int fb; int n = 0; - - for (fb = 0; fb < KD_MAX_FB && pScreenPriv->screen->fb[fb].depth; fb++) + + if (pScreenPriv->pInstalledmap) { - if (pScreenPriv->pInstalledmap[fb]) - { - *pCmaps++ = pScreenPriv->pInstalledmap[fb]->mid; - n++; - } + *pCmaps++ = pScreenPriv->pInstalledmap->mid; + n++; } return n; } @@ -261,20 +213,19 @@ KdStoreColors (ColormapPtr pCmap, int ndef, xColorItem *pdefs) KdScreenPriv(pCmap->pScreen); VisualPtr pVisual; xColorItem expanddefs[KD_MAX_PSEUDO_SIZE]; - int fb = KdColormapFb (pCmap); - if (pCmap != pScreenPriv->pInstalledmap[fb]) + if (pCmap != pScreenPriv->pInstalledmap) return; - + if (!pScreenPriv->card->cfuncs->putColors) return; - - if (pScreenPriv->screen->fb[fb].depth > KD_MAX_PSEUDO_DEPTH) + + if (pScreenPriv->screen->fb.depth > KD_MAX_PSEUDO_DEPTH) return; - + if (!pScreenPriv->enabled) return; - + /* Check for DirectColor or TrueColor being simulated on a PseudoColor device. */ pVisual = pCmap->pVisual; if ((pVisual->class | DynamicClass) == DirectColor) @@ -287,8 +238,8 @@ KdStoreColors (ColormapPtr pCmap, int ndef, xColorItem *pdefs) pdefs = expanddefs; } - (*pScreenPriv->card->cfuncs->putColors) (pCmap->pScreen, fb, ndef, pdefs); - + (*pScreenPriv->card->cfuncs->putColors) (pCmap->pScreen, ndef, pdefs); + /* recolor hardware cursor */ if (pScreenPriv->card->cfuncs->recolorCursor) (*pScreenPriv->card->cfuncs->recolorCursor) (pCmap->pScreen, ndef, pdefs); diff --git a/xorg-server/hw/kdrive/src/kcurscol.c b/xorg-server/hw/kdrive/src/kcurscol.c deleted file mode 100644 index 6a17df30f..000000000 --- a/xorg-server/hw/kdrive/src/kcurscol.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright © 1999 Keith Packard - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Keith Packard not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Keith Packard makes no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -#ifdef HAVE_CONFIG_H -#include <kdrive-config.h> -#endif -#include "kdrive.h" -#include "cursorstr.h" - -static int -KdComputeCmapShift (unsigned long mask) -{ - int shift; - unsigned long bit; - - shift = 16; - bit = 0x80000000; - while (!(mask & bit)) - { - shift--; - bit >>= 1; - } - return shift; -} - -#define Shift(v,d) ((d) < 0 ? ((v) >> (-d)) : ((v) << (d))) - -void -KdAllocateCursorPixels (ScreenPtr pScreen, - int fb, - CursorPtr pCursor, - Pixel *source, - Pixel *mask) -{ - xColorItem sourceColor, maskColor; - int r, g, b; - KdScreenPriv(pScreen); - - if (pScreenPriv->screen->fb[fb].redMask) - { - - r = KdComputeCmapShift (pScreenPriv->screen->fb[fb].redMask); - g = KdComputeCmapShift (pScreenPriv->screen->fb[fb].greenMask); - b = KdComputeCmapShift (pScreenPriv->screen->fb[fb].blueMask); - *source = ((Shift(pCursor->foreRed,r) & pScreenPriv->screen->fb[fb].redMask) | - (Shift(pCursor->foreGreen,g) & pScreenPriv->screen->fb[fb].greenMask) | - (Shift(pCursor->foreBlue,b) & pScreenPriv->screen->fb[fb].blueMask)); - *mask = ((Shift(pCursor->backRed,r) & pScreenPriv->screen->fb[fb].redMask) | - (Shift(pCursor->backGreen,g) & pScreenPriv->screen->fb[fb].greenMask) | - (Shift(pCursor->backBlue,b) & pScreenPriv->screen->fb[fb].blueMask)); - } - else - { - /* - * Set these to an invalid pixel value so that - * when the store colors comes through, the cursor - * won't get recolored - */ - *source = ~0; - *mask = ~0; - - sourceColor.red = pCursor->foreRed; - sourceColor.green = pCursor->foreGreen; - sourceColor.blue = pCursor->foreBlue; - FakeAllocColor(pScreenPriv->pInstalledmap[fb], &sourceColor); - maskColor.red = pCursor->backRed; - maskColor.green = pCursor->backGreen; - maskColor.blue = pCursor->backBlue; - FakeAllocColor(pScreenPriv->pInstalledmap[fb], &maskColor); - FakeFreeColor(pScreenPriv->pInstalledmap[fb], sourceColor.pixel); - FakeFreeColor(pScreenPriv->pInstalledmap[fb], maskColor.pixel); - *source = sourceColor.pixel; - *mask = maskColor.pixel; - } -} diff --git a/xorg-server/hw/kdrive/src/kdrive.c b/xorg-server/hw/kdrive/src/kdrive.c index 5cfe54ff8..7675c1e86 100644 --- a/xorg-server/hw/kdrive/src/kdrive.c +++ b/xorg-server/hw/kdrive/src/kdrive.c @@ -148,9 +148,9 @@ KdSetRootClip (ScreenPtr pScreen, BOOL enable) REGION_EMPTY(pScreen, &pWin->borderClip); REGION_BREAK (pWin->drawable.pScreen, &pWin->clipList); } - + ResizeChildrenWinSize (pWin, 0, 0, 0, 0); - + if (WasViewable) { if (pWin->firstChild) @@ -185,7 +185,7 @@ void KdDisableScreen (ScreenPtr pScreen) { KdScreenPriv(pScreen); - + if (!pScreenPriv->enabled) return; if (!pScreenPriv->closed) @@ -209,7 +209,7 @@ KdDoSwitchCmd (char *reason) { char *command = xalloc (strlen (kdSwitchCmd) + 1 + - strlen (reason) + + strlen (reason) + 1); if (!command) return; @@ -389,10 +389,9 @@ KdParseScreen (KdScreenInfo *screen, { char delim; char save[1024]; - int fb; int i; int pixels, mm; - + screen->dumb = kdDumbDriver; screen->softCursor = kdSoftCursor; screen->origin = kdOrigin; @@ -403,22 +402,21 @@ KdParseScreen (KdScreenInfo *screen, screen->height_mm = 0; screen->subpixel_order = kdSubpixelOrder; screen->rate = 0; - for (fb = 0; fb < KD_MAX_FB; fb++) - screen->fb[fb].depth = 0; + screen->fb.depth = 0; if (!arg) return; if (strlen (arg) >= sizeof (save)) return; - + for (i = 0; i < 2; i++) { arg = KdParseFindNext (arg, "x/@XY", save, &delim); if (!save[0]) return; - + pixels = atoi(save); mm = 0; - + if (delim == '/') { arg = KdParseFindNext (arg, "x@XY", save, &delim); @@ -426,7 +424,7 @@ KdParseScreen (KdScreenInfo *screen, return; mm = atoi(save); } - + if (i == 0) { screen->width = pixels; @@ -476,26 +474,19 @@ KdParseScreen (KdScreenInfo *screen, arg = KdParseFindNext (arg, "xY", save, &delim); screen->randr |= RR_Reflect_Y; } - - fb = 0; - while (fb < KD_MAX_FB) + + arg = KdParseFindNext (arg, "x/,", save, &delim); + if (save[0]) { - arg = KdParseFindNext (arg, "x/,", save, &delim); - if (!save[0]) - break; - screen->fb[fb].depth = atoi(save); + screen->fb.depth = atoi(save); if (delim == '/') { arg = KdParseFindNext (arg, "x,", save, &delim); - if (!save[0]) - break; - screen->fb[fb].bitsPerPixel = atoi (save); + if (save[0]) + screen->fb.bitsPerPixel = atoi (save); } else - screen->fb[fb].bitsPerPixel = 0; - if (delim != ',') - break; - fb++; + screen->fb.bitsPerPixel = 0; } if (delim == 'x') @@ -538,7 +529,7 @@ void KdUseMsg (void) { ErrorF("\nTinyX Device Dependent Usage:\n"); - ErrorF("-screen WIDTH[/WIDTHMM]xHEIGHT[/HEIGHTMM][@ROTATION][X][Y][xDEPTH/BPP{,DEPTH/BPP}[xFREQ]] Specify screen characteristics\n"); + ErrorF("-screen WIDTH[/WIDTHMM]xHEIGHT[/HEIGHTMM][@ROTATION][X][Y][xDEPTH/BPP[xFREQ]] Specify screen characteristics\n"); ErrorF("-rgba rgb/bgr/vrgb/vbgr/none Specify subpixel ordering for LCD panels\n"); ErrorF("-mouse driver [,n,,options] Specify the pointer driver and its options (n is the number of buttons)\n"); ErrorF("-keybd driver [,,options] Specify the keyboard driver and its options\n"); @@ -691,7 +682,7 @@ KdOsInit (KdOsFuncs *pOsFuncs) kdOsFuncs = pOsFuncs; if (pOsFuncs) { - if (serverGeneration == 1) + if (serverGeneration == 1) { KdDoSwitchCmd ("start"); if (pOsFuncs->Init) @@ -704,7 +695,7 @@ Bool KdAllocatePrivates (ScreenPtr pScreen) { KdPrivScreenPtr pScreenPriv; - + if (kdGeneration != serverGeneration) kdGeneration = serverGeneration; @@ -741,20 +732,20 @@ KdCloseScreen (int index, ScreenPtr pScreen) KdScreenInfo *screen = pScreenPriv->screen; KdCardInfo *card = pScreenPriv->card; Bool ret; - + pScreenPriv->closed = TRUE; pScreen->CloseScreen = pScreenPriv->CloseScreen; if(pScreen->CloseScreen) ret = (*pScreen->CloseScreen) (index, pScreen); else ret = TRUE; - + if (pScreenPriv->dpmsState != KD_DPMS_NORMAL) (*card->cfuncs->dpms) (pScreen, KD_DPMS_NORMAL); - + if (screen->mynum == card->selected) KdDisableScreen (pScreen); - + /* * Restore video hardware when last screen is closed */ @@ -763,7 +754,7 @@ KdCloseScreen (int index, ScreenPtr pScreen) if (kdEnabled && card->cfuncs->restore) (*card->cfuncs->restore) (card); } - + if (!pScreenPriv->screen->dumb && card->cfuncs->finiAccel) (*card->cfuncs->finiAccel) (pScreen); @@ -794,9 +785,9 @@ KdCloseScreen (int index, ScreenPtr pScreen) } } } - + pScreenPriv->screen->pScreen = 0; - + xfree ((pointer) pScreenPriv); return ret; } @@ -806,10 +797,10 @@ KdSaveScreen (ScreenPtr pScreen, int on) { KdScreenPriv(pScreen); int dpmsState; - + if (!pScreenPriv->card->cfuncs->dpms) return FALSE; - + dpmsState = pScreenPriv->dpmsState; switch (on) { case SCREEN_SAVER_OFF: @@ -861,7 +852,7 @@ KdSetSubpixelOrder (ScreenPtr pScreen, Rotation randr) int subpixel_order = screen->subpixel_order; Rotation subpixel_dir; int i; - + static struct { int subpixel_order; Rotation direction; @@ -874,7 +865,7 @@ KdSetSubpixelOrder (ScreenPtr pScreen, Rotation randr) static struct { int bit; - int normal; + int normal; int reflect; } reflects[] = { { RR_Reflect_X, SubPixelHorizontalRGB, SubPixelHorizontalBGR }, @@ -882,7 +873,7 @@ KdSetSubpixelOrder (ScreenPtr pScreen, Rotation randr) { RR_Reflect_Y, SubPixelVerticalRGB, SubPixelVerticalBGR }, { RR_Reflect_Y, SubPixelVerticalRGB, SubPixelVerticalRGB }, }; - + /* map subpixel to direction */ for (i = 0; i < 4; i++) if (orders[i].subpixel_order == subpixel_order) @@ -890,7 +881,7 @@ KdSetSubpixelOrder (ScreenPtr pScreen, Rotation randr) if (i < 4) { subpixel_dir = KdAddRotation (randr & RR_Rotate_All, orders[i].direction); - + /* map back to subpixel order */ for (i = 0; i < 4; i++) if (orders[i].direction & subpixel_dir) @@ -919,7 +910,6 @@ KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) KdScreenInfo *screen = kdCurrentScreen; KdCardInfo *card = screen->card; KdPrivScreenPtr pScreenPriv; - int fb; /* * note that screen->fb is set up for the nominal orientation * of the screen; that means if randr is rotated, the values @@ -931,7 +921,7 @@ KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) KdAllocatePrivates (pScreen); pScreenPriv = KdGetScreenPriv(pScreen); - + if (!rotated) { width = screen->width; @@ -949,8 +939,7 @@ KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) screen->pScreen = pScreen; pScreenPriv->screen = screen; pScreenPriv->card = card; - for (fb = 0; fb < KD_MAX_FB && screen->fb[fb].depth; fb++) - pScreenPriv->bytesPerPixel[fb] = screen->fb[fb].bitsPerPixel >> 3; + pScreenPriv->bytesPerPixel = screen->fb.bitsPerPixel >> 3; pScreenPriv->dpmsState = KD_DPMS_NORMAL; #ifdef PANORAMIX dixScreenOrigins[pScreen->myNum] = screen->origin; @@ -963,12 +952,12 @@ KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) * our GC functions; fbFinishScreenInit initializes MI * backing store */ - if (!fbSetupScreen (pScreen, - screen->fb[0].frameBuffer, - width, height, - monitorResolution, monitorResolution, - screen->fb[0].pixelStride, - screen->fb[0].bitsPerPixel)) + if (!fbSetupScreen (pScreen, + screen->fb.frameBuffer, + width, height, + monitorResolution, monitorResolution, + screen->fb.pixelStride, + screen->fb.bitsPerPixel)) { return FALSE; } @@ -980,42 +969,20 @@ KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) pScreen->UninstallColormap = KdUninstallColormap; pScreen->ListInstalledColormaps = KdListInstalledColormaps; pScreen->StoreColors = KdStoreColors; - + pScreen->SaveScreen = KdSaveScreen; pScreen->CreateWindow = KdCreateWindow; -#if KD_MAX_FB > 1 - if (screen->fb[1].depth) + if (!fbFinishScreenInit (pScreen, + screen->fb.frameBuffer, + width, height, + monitorResolution, monitorResolution, + screen->fb.pixelStride, + screen->fb.bitsPerPixel)) { - if (!fbOverlayFinishScreenInit (pScreen, - screen->fb[0].frameBuffer, - screen->fb[1].frameBuffer, - width, height, - monitorResolution, monitorResolution, - screen->fb[0].pixelStride, - screen->fb[1].pixelStride, - screen->fb[0].bitsPerPixel, - screen->fb[1].bitsPerPixel, - screen->fb[0].depth, - screen->fb[1].depth)) - { - return FALSE; - } - } - else -#endif - { - if (!fbFinishScreenInit (pScreen, - screen->fb[0].frameBuffer, - width, height, - monitorResolution, monitorResolution, - screen->fb[0].pixelStride, - screen->fb[0].bitsPerPixel)) - { - return FALSE; - } + return FALSE; } - + /* * Fix screen sizes; for some reason mi takes dpi instead of mm. * Rounding errors are annoying @@ -1028,14 +995,14 @@ KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) pScreen->mmHeight = *height_mmp; else *height_mmp = pScreen->mmHeight; - + /* * Plug in our own block/wakeup handlers. * miScreenInit installs NoopDDA in both places */ pScreen->BlockHandler = KdBlockHandler; pScreen->WakeupHandler = KdWakeupHandler; - + #ifdef RENDER if (!fbPictureInit (pScreen, 0, 0)) return FALSE; @@ -1043,26 +1010,26 @@ KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) if (card->cfuncs->initScreen) if (!(*card->cfuncs->initScreen) (pScreen)) return FALSE; - + if (!screen->dumb && card->cfuncs->initAccel) if (!(*card->cfuncs->initAccel) (pScreen)) screen->dumb = TRUE; - + if (card->cfuncs->finishInitScreen) if (!(*card->cfuncs->finishInitScreen) (pScreen)) return FALSE; - + #if 0 fbInitValidateTree (pScreen); #endif - + #if 0 pScreen->backingStoreSupport = Always; miInitializeBackingStore (pScreen); #endif - /* + /* * Wrap CloseScreen, the order now is: * KdCloseScreen * miBSCloseScreen @@ -1073,9 +1040,9 @@ KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) pScreenPriv->CreateScreenResources = pScreen->CreateScreenResources; pScreen->CreateScreenResources = KdCreateScreenResources; - + if (screen->softCursor || - !card->cfuncs->initCursor || + !card->cfuncs->initCursor || !(*card->cfuncs->initCursor) (pScreen)) { /* Use MI for cursor display and event queueing. */ @@ -1083,7 +1050,7 @@ KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) miDCInitialize(pScreen, &kdPointerScreenFuncs); } - + if (!fbCreateDefColormap (pScreen)) { return FALSE; @@ -1100,7 +1067,7 @@ KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) if(kdOsFuncs->Enable) (*kdOsFuncs->Enable) (); } - + if (screen->mynum == card->selected) { if(card->cfuncs->preserve) @@ -1115,7 +1082,7 @@ KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) if (!screen->dumb && card->cfuncs->enableAccel) (*card->cfuncs->enableAccel) (pScreen); } - + return TRUE; } @@ -1126,9 +1093,9 @@ KdInitScreen (ScreenInfo *pScreenInfo, char **argv) { KdCardInfo *card = screen->card; - + (*card->cfuncs->scrinit) (screen); - + if (!card->cfuncs->initAccel) screen->dumb = TRUE; if (!card->cfuncs->initCursor) @@ -1143,7 +1110,6 @@ KdSetPixmapFormats (ScreenInfo *pScreenInfo) KdScreenInfo *screen; int i; int bpp; - int fb; PixmapFormatRec *format; for (i = 1; i <= 32; i++) @@ -1159,33 +1125,30 @@ KdSetPixmapFormats (ScreenInfo *pScreenInfo) { for (screen = card->screenList; screen; screen = screen->next) { - for (fb = 0; fb < KD_MAX_FB && screen->fb[fb].depth; fb++) - { - bpp = screen->fb[fb].bitsPerPixel; - if (bpp == 24) - bpp = 32; - if (!depthToBpp[screen->fb[fb].depth]) - depthToBpp[screen->fb[fb].depth] = bpp; - else if (depthToBpp[screen->fb[fb].depth] != bpp) - return FALSE; - } + bpp = screen->fb.bitsPerPixel; + if (bpp == 24) + bpp = 32; + if (!depthToBpp[screen->fb.depth]) + depthToBpp[screen->fb.depth] = bpp; + else if (depthToBpp[screen->fb.depth] != bpp) + return FALSE; } } - + /* * Fill in additional formats */ for (i = 0; i < NUM_KD_DEPTHS; i++) if (!depthToBpp[kdDepths[i].depth]) depthToBpp[kdDepths[i].depth] = kdDepths[i].bpp; - + pScreenInfo->imageByteOrder = IMAGE_BYTE_ORDER; pScreenInfo->bitmapScanlineUnit = BITMAP_SCANLINE_UNIT; pScreenInfo->bitmapScanlinePad = BITMAP_SCANLINE_PAD; pScreenInfo->bitmapBitOrder = BITMAP_BIT_ORDER; - + pScreenInfo->numPixmapFormats = 0; - + for (i = 1; i <= 32; i++) { if (depthToBpp[i]) @@ -1196,7 +1159,7 @@ KdSetPixmapFormats (ScreenInfo *pScreenInfo) format->scanlinePad = BITMAP_SCANLINE_PAD; } } - + return TRUE; } @@ -1214,20 +1177,15 @@ KdAddScreen (ScreenInfo *pScreenInfo, { unsigned long visuals; Pixel rm, gm, bm; - int fb; - + visuals = 0; rm = gm = bm = 0; - for (fb = 0; fb < KD_MAX_FB && screen->fb[fb].depth; fb++) + if (pScreenInfo->formats[i].depth == screen->fb.depth) { - if (pScreenInfo->formats[i].depth == screen->fb[fb].depth) - { - visuals = screen->fb[fb].visuals; - rm = screen->fb[fb].redMask; - gm = screen->fb[fb].greenMask; - bm = screen->fb[fb].blueMask; - break; - } + visuals = screen->fb.visuals; + rm = screen->fb.redMask; + gm = screen->fb.greenMask; + bm = screen->fb.blueMask; } fbSetVisualTypesAndMasks (pScreenInfo->formats[i].depth, visuals, @@ -1236,7 +1194,7 @@ KdAddScreen (ScreenInfo *pScreenInfo, } kdCurrentScreen = screen; - + AddScreen (KdScreenInit, argc, argv); } @@ -1246,10 +1204,9 @@ int KdDepthToFb (ScreenPtr pScreen, int depth) { KdScreenPriv(pScreen); - int fb; - for (fb = 0; fb <= KD_MAX_FB && pScreenPriv->screen->fb[fb].frameBuffer; fb++) - if (pScreenPriv->screen->fb[fb].depth == depth) + for (fb = 0; fb <= KD_MAX_FB && pScreenPriv->screen->fb.frameBuffer; fb++) + if (pScreenPriv->screen->fb.depth == depth) return fb; } @@ -1292,14 +1249,14 @@ KdInitOutput (ScreenInfo *pScreenInfo, KdInitScreen (pScreenInfo, screen, argc, argv); } } - + /* * Merge the various pixmap formats together, this can fail * when two screens share depth but not bitsPerPixel */ if (!KdSetPixmapFormats (pScreenInfo)) return; - + /* * Add all of the screens */ diff --git a/xorg-server/hw/kdrive/src/kdrive.h b/xorg-server/hw/kdrive/src/kdrive.h index 9620391c6..35ce03660 100644 --- a/xorg-server/hw/kdrive/src/kdrive.h +++ b/xorg-server/hw/kdrive/src/kdrive.h @@ -53,45 +53,15 @@ #define KD_DPMS_POWERDOWN 3 #define KD_DPMS_MAX KD_DPMS_POWERDOWN -#ifndef KD_MAX_FB -#define KD_MAX_FB FB_OVERLAY_MAX -#endif - -#ifndef KD_MAX_CARD_ADDRESS -#define KD_MAX_CARD_ADDRESS 8 -#endif - #define Status int -/* - * Configuration information per video card - */ - -typedef struct _KdCardAttr { - CARD32 io; - CARD32 address[KD_MAX_CARD_ADDRESS]; - int naddr; - - /* PCI bus info */ - CARD16 vendorID; - CARD16 deviceID; - CARD8 domain; - CARD8 bus; - CARD8 slot; - CARD8 func; -} KdCardAttr; - typedef struct _KdCardInfo { struct _KdCardFuncs *cfuncs; void *closure; - KdCardAttr attr; void *driver; struct _KdScreenInfo *screenList; int selected; struct _KdCardInfo *next; - - Bool needSync; - int lastMarker; } KdCardInfo; extern KdCardInfo *kdCardInfo; @@ -130,10 +100,7 @@ typedef struct _KdScreenInfo { Bool softCursor; int mynum; DDXPointRec origin; - KdFrameBuffer fb[KD_MAX_FB]; - CARD8 *memory_base; - unsigned long memory_size; - unsigned long off_screen_base; + KdFrameBuffer fb; } KdScreenInfo; typedef struct _KdCardFuncs { @@ -161,8 +128,8 @@ typedef struct _KdCardFuncs { void (*disableAccel) (ScreenPtr); void (*finiAccel) (ScreenPtr); - void (*getColors) (ScreenPtr, int, int, xColorItem *); - void (*putColors) (ScreenPtr, int, int, xColorItem *); + void (*getColors) (ScreenPtr, int, xColorItem *); + void (*putColors) (ScreenPtr, int, xColorItem *); } KdCardFuncs; @@ -175,11 +142,11 @@ typedef struct { Bool enabled; Bool closed; - int bytesPerPixel[KD_MAX_FB]; + int bytesPerPixel; int dpmsState; - ColormapPtr pInstalledmap[KD_MAX_FB]; /* current colormap */ + ColormapPtr pInstalledmap; /* current colormap */ xColorItem systemPalette[KD_MAX_PSEUDO_SIZE];/* saved windows colors */ CreateScreenResourcesProcPtr CreateScreenResources; @@ -242,7 +209,7 @@ struct _KdPointerInfo { int z; int flags; int absrel; - } heldEvent; + } heldEvent; unsigned char buttonState; Bool transformCoordinates; int pressureThreshold; @@ -392,12 +359,9 @@ extern KdOsFuncs *kdOsFuncs; dixSetPrivate(&(pScreen)->devPrivates, kdScreenPrivateKey, v) #define KdScreenPriv(pScreen) KdPrivScreenPtr pScreenPriv = KdGetScreenPriv(pScreen) -/* knoop.c */ -extern GCOps kdNoopOps; - /* kcmap.c */ void -KdSetColormap (ScreenPtr pScreen, int fb); +KdSetColormap (ScreenPtr pScreen); void KdEnableColormap (ScreenPtr pScreen); @@ -417,14 +381,6 @@ KdListInstalledColormaps (ScreenPtr pScreen, Colormap *pCmaps); void KdStoreColors (ColormapPtr pCmap, int ndef, xColorItem *pdefs); -/* kcurscol.c */ -void -KdAllocateCursorPixels (ScreenPtr pScreen, - int fb, - CursorPtr pCursor, - Pixel *source, - Pixel *mask); - /* kdrive.c */ extern miPointerScreenFuncRec kdPointerScreenFuncs; @@ -517,17 +473,16 @@ void KdInitOutput (ScreenInfo *pScreenInfo, int argc, char **argv); - + void KdSetSubpixelOrder (ScreenPtr pScreen, Rotation randr); void KdBacktrace (int signum); - + /* kinfo.c */ KdCardInfo * KdCardInfoAdd (KdCardFuncs *funcs, - KdCardAttr *attr, void *closure); KdCardInfo * @@ -584,7 +539,7 @@ _KdEnqueuePointerEvent(KdPointerInfo *pi, int type, int x, int y, int z, void KdReleaseAllKeys (void); - + void KdSetLed (KdKeyboardInfo *ki, int led, Bool on); @@ -604,7 +559,7 @@ KdBlockHandler (int screen, pointer readmask); void -KdWakeupHandler (int screen, +KdWakeupHandler (int screen, pointer data, unsigned long result, pointer readmask); @@ -624,37 +579,6 @@ KdRingBell (KdKeyboardInfo *ki, int pitch, int duration); -extern KdPointerDriver LinuxMouseDriver; -extern KdPointerDriver LinuxEvdevMouseDriver; -extern KdPointerDriver Ps2MouseDriver; -extern KdPointerDriver BusMouseDriver; -extern KdPointerDriver MsMouseDriver; -extern KdPointerDriver TsDriver; -extern KdKeyboardDriver LinuxKeyboardDriver; -extern KdKeyboardDriver LinuxEvdevKeyboardDriver; -extern KdOsFuncs LinuxFuncs; - -extern KdPointerDriver VxWorksMouseDriver; -extern KdKeyboardDriver VxWorksKeyboardDriver; -extern KdOsFuncs VxWorksFuncs; - -/* kmap.c */ - -#define KD_MAPPED_MODE_REGISTERS 0 -#define KD_MAPPED_MODE_FRAMEBUFFER 1 - -void * -KdMapDevice (CARD32 addr, CARD32 size); - -void -KdUnmapDevice (void *addr, CARD32 size); - -void -KdSetMappedMode (CARD32 addr, CARD32 size, int mode); - -void -KdResetMappedMode (CARD32 addr, CARD32 size, int mode); - /* kmode.c */ const KdMonitorTiming * KdFindMode (KdScreenInfo *screen, @@ -669,14 +593,14 @@ KdTuneMode (KdScreenInfo *screen, #ifdef RANDR Bool -KdRandRGetInfo (ScreenPtr pScreen, +KdRandRGetInfo (ScreenPtr pScreen, int randr, - Bool (*supported) (ScreenPtr pScreen, + Bool (*supported) (ScreenPtr pScreen, const KdMonitorTiming *)); const KdMonitorTiming * KdRandRGetTiming (ScreenPtr pScreen, - Bool (*supported) (ScreenPtr pScreen, + Bool (*supported) (ScreenPtr pScreen, const KdMonitorTiming *), int rate, RRScreenSizePtr pSize); @@ -684,14 +608,14 @@ KdRandRGetTiming (ScreenPtr pScreen, /* kshadow.c */ Bool -KdShadowFbAlloc (KdScreenInfo *screen, int fb, Bool rotate); +KdShadowFbAlloc (KdScreenInfo *screen, Bool rotate); void -KdShadowFbFree (KdScreenInfo *screen, int fb); +KdShadowFbFree (KdScreenInfo *screen); Bool KdShadowSet (ScreenPtr pScreen, int randr, ShadowUpdateProc update, ShadowWindowProc window); - + void KdShadowUnset (ScreenPtr pScreen); diff --git a/xorg-server/hw/kdrive/src/kinfo.c b/xorg-server/hw/kdrive/src/kinfo.c index 95afc7963..0825ee24f 100644 --- a/xorg-server/hw/kdrive/src/kinfo.c +++ b/xorg-server/hw/kdrive/src/kinfo.c @@ -29,7 +29,6 @@ KdCardInfo *kdCardInfo; KdCardInfo * KdCardInfoAdd (KdCardFuncs *funcs, - KdCardAttr *attr, void *closure) { KdCardInfo *ci, **prev; @@ -40,7 +39,6 @@ KdCardInfoAdd (KdCardFuncs *funcs, for (prev = &kdCardInfo; *prev; prev = &(*prev)->next); *prev = ci; ci->cfuncs = funcs; - ci->attr = *attr; ci->closure = closure; ci->screenList = 0; ci->selected = 0; diff --git a/xorg-server/hw/kdrive/src/kmap.c b/xorg-server/hw/kdrive/src/kmap.c deleted file mode 100644 index 60e8ae134..000000000 --- a/xorg-server/hw/kdrive/src/kmap.c +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright © 1999 Keith Packard - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Keith Packard not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Keith Packard makes no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -#include <kdrive-config.h> -#include "kdrive.h" - -#include <errno.h> -#include <unistd.h> -#include <sys/mman.h> -#ifdef HAVE_ASM_MTRR_H -#include <asm/mtrr.h> -#endif - -#include <sys/ioctl.h> - -void * -KdMapDevice (CARD32 addr, CARD32 size) -{ -#ifdef WINDOWS - void *a; - void *d; - - d = VirtualAlloc (NULL, size, MEM_RESERVE, PAGE_NOACCESS); - if (!d) - return NULL; - DRAW_DEBUG ((DEBUG_S3INIT, "Virtual address of 0x%x is 0x%x", addr, d)); - a = VirtualCopyAddr (addr); - DRAW_DEBUG ((DEBUG_S3INIT, "Translated address is 0x%x", a)); - if (!VirtualCopy (d, a, size, - PAGE_READWRITE|PAGE_NOCACHE|PAGE_PHYSICAL)) - { - DRAW_DEBUG ((DEBUG_FAILURE, "VirtualCopy failed %d", - GetLastError ())); - return NULL; - } - DRAW_DEBUG ((DEBUG_S3INIT, "Device mapped successfully")); - return d; -#endif -#ifdef linux - void *a; - int fd; - -#ifdef __arm__ - fd = open ("/dev/mem", O_RDWR|O_SYNC); -#else - fd = open ("/dev/mem", O_RDWR); -#endif - if (fd < 0) - FatalError ("KdMapDevice: failed to open /dev/mem (%s)\n", - strerror (errno)); - - a = mmap ((caddr_t) 0, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, addr); - close (fd); - if ((long) a == -1) - FatalError ("KdMapDevice: failed to map frame buffer (%s)\n", - strerror (errno)); - return a; -#endif -} - -void -KdUnmapDevice (void *addr, CARD32 size) -{ -#ifdef WINDOWS - VirtualFree (addr, size, MEM_DECOMMIT); - VirtualFree (addr, 0, MEM_RELEASE); -#endif -#ifdef linux - munmap (addr, size); -#endif -} - -#ifdef HAVE_ASM_MTRR_H -static int mtrr; -#endif - -void -KdSetMappedMode (CARD32 addr, CARD32 size, int mode) -{ -#ifdef HAVE_ASM_MTRR_H - struct mtrr_sentry sentry; - unsigned long base, bound; - unsigned int type = MTRR_TYPE_WRBACK; - - if (addr < 0x100000) - return; - if (!mtrr) - mtrr = open ("/proc/mtrr", 2); - if (mtrr > 0) - { - unsigned long nsize; - base = addr & ~((1<<22)-1); - bound = ((addr + size) + ((1<<22) - 1)) & ~((1<<22) - 1); - nsize = 1; - while (nsize < (bound - base)) - nsize <<= 1; - switch (mode) { - case KD_MAPPED_MODE_REGISTERS: - type = MTRR_TYPE_UNCACHABLE; - break; - case KD_MAPPED_MODE_FRAMEBUFFER: - type = MTRR_TYPE_WRCOMB; - break; - } - sentry.base = base; - sentry.size = nsize; - sentry.type = type; - - if (ioctl (mtrr, MTRRIOC_ADD_ENTRY, &sentry) < 0) - ErrorF ("MTRRIOC_ADD_ENTRY failed 0x%x 0x%x %d (%s)\n", - base, bound - base, type, strerror(errno)); - } -#endif -} - -void -KdResetMappedMode (CARD32 addr, CARD32 size, int mode) -{ -#ifdef HAVE_ASM_MTRR_H - struct mtrr_sentry sentry; - unsigned long base, bound; - unsigned int type = MTRR_TYPE_WRBACK; - - if (addr < 0x100000) - return; - if (!mtrr) - mtrr = open ("/proc/mtrr", 2); - if (mtrr > 0) - { - unsigned long nsize; - base = addr & ~((1<<22)-1); - bound = ((addr + size) + ((1<<22) - 1)) & ~((1<<22) - 1); - nsize = 1; - while (nsize < (bound - base)) - nsize <<= 1; - switch (mode) { - case KD_MAPPED_MODE_REGISTERS: - type = MTRR_TYPE_UNCACHABLE; - break; - case KD_MAPPED_MODE_FRAMEBUFFER: - type = MTRR_TYPE_WRCOMB; - break; - } - sentry.base = base; - sentry.size = nsize; - sentry.type = type; - - if (ioctl (mtrr, MTRRIOC_DEL_ENTRY, &sentry) < 0) - ErrorF ("MTRRIOC_DEL_ENTRY failed 0x%x 0x%x %d (%s)\n", - base, bound - base, type, strerror(errno)); - } -#endif -} diff --git a/xorg-server/hw/kdrive/src/kmode.c b/xorg-server/hw/kdrive/src/kmode.c index d02cb55e1..38b7bc881 100644 --- a/xorg-server/hw/kdrive/src/kmode.c +++ b/xorg-server/hw/kdrive/src/kmode.c @@ -15,7 +15,7 @@ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION - * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * Author: Keith Packard, SuSE, Inc. @@ -38,7 +38,7 @@ const KdMonitorTiming kdMonitorTimings[] = { 17, 12, 32, KdSyncNegative, 1, 11, 14, KdSyncNegative, }, - + /* Other VESA modes */ { 640, 350, 85, 31500, /* VESA */ 32, 96, 192, KdSyncPositive, /* 26.413 */ @@ -60,7 +60,7 @@ const KdMonitorTiming kdMonitorTimings[] = { 16, 80, 160, KdSyncPositive, /* 32.954 */ 1, 45, 49, KdSyncPositive, /* 52.727 */ }, - + /* 640x480 modes */ { 640, 480, 85, 36000, /* VESA */ 56, 80, 192, KdSyncNegative, /* 43.269 */ @@ -78,7 +78,7 @@ const KdMonitorTiming kdMonitorTimings[] = { 16, 48, 160, KdSyncNegative, /* 31.469 */ 10, 33, 45, KdSyncNegative, /* 59.940 */ }, - + /* 800x600 modes */ { 800, 600, 85, 56250, /* VESA */ 32, 152, 248, KdSyncPositive, /* 53.674 */ @@ -102,7 +102,7 @@ const KdMonitorTiming kdMonitorTimings[] = { 24, 128, 224, KdSyncPositive, /* 35.156 */ 1, 22, 25, KdSyncPositive, /* 56.250 */ }, - + /* 1024x768 modes */ { 1024, 768, 85, 94500, /* VESA */ 48, 208, 352, KdSyncPositive, /* 68.677 */ @@ -120,13 +120,13 @@ const KdMonitorTiming kdMonitorTimings[] = { 24, 160, 320, KdSyncNegative, /* 48.363 */ 3, 29, 38, KdSyncNegative, /* 60.004 */ }, - + /* 1152x864 mode */ { 1152, 864, 75, 108000, /* VESA */ 64, 256, 448, KdSyncPositive, /* 67.500 */ 1, 32, 36, KdSyncPositive, /* 75.000 */ }, - + /* 1152x900 modes */ { 1152, 900, 85, 122500, /* ADDED */ 48, 208, 384, KdSyncPositive, /* 79.753 */ @@ -315,19 +315,17 @@ KdTuneMode (KdScreenInfo *screen, const KdMonitorTiming *)) { const KdMonitorTiming *t; - + while (!(*usable) (screen)) { /* * Fix requested depth and geometry until it works */ - if (screen->fb[1].depth) - screen->fb[1].depth = 0; - else if (screen->fb[0].depth > 16) - screen->fb[0].depth = 16; - else if (screen->fb[0].depth > 8) - screen->fb[0].depth = 8; - else + if (screen->fb.depth > 16) + screen->fb.depth = 16; + else if (screen->fb.depth > 8) + screen->fb.depth = 8; + else { t = kdFindPrevSize (KdFindMode (screen, supported)); if (!t) @@ -344,14 +342,14 @@ KdTuneMode (KdScreenInfo *screen, Bool KdRandRGetInfo (ScreenPtr pScreen, int randr, - Bool (*supported) (ScreenPtr pScreen, + Bool (*supported) (ScreenPtr pScreen, const KdMonitorTiming *)) { KdScreenPriv(pScreen); KdScreenInfo *screen = pScreenPriv->screen; int i; const KdMonitorTiming *t; - + for (i = 0, t = kdMonitorTimings; i < NUM_MONITOR_TIMINGS; i++, t++) { if ((*supported) (pScreen, t)) @@ -373,20 +371,20 @@ KdRandRGetInfo (ScreenPtr pScreen, RRSetCurrentConfig (pScreen, randr, t->rate, pSize); } } - + return TRUE; } const KdMonitorTiming * KdRandRGetTiming (ScreenPtr pScreen, - Bool (*supported) (ScreenPtr pScreen, + Bool (*supported) (ScreenPtr pScreen, const KdMonitorTiming *), int rate, RRScreenSizePtr pSize) { int i; const KdMonitorTiming *t; - + for (i = 0, t = kdMonitorTimings; i < NUM_MONITOR_TIMINGS; i++, t++) { if (t->horizontal == pSize->width && diff --git a/xorg-server/hw/kdrive/src/kshadow.c b/xorg-server/hw/kdrive/src/kshadow.c index ea44812db..cf3391dba 100644 --- a/xorg-server/hw/kdrive/src/kshadow.c +++ b/xorg-server/hw/kdrive/src/kshadow.c @@ -26,36 +26,36 @@ #include "kdrive.h" Bool -KdShadowFbAlloc (KdScreenInfo *screen, int fb, Bool rotate) +KdShadowFbAlloc (KdScreenInfo *screen, Bool rotate) { int paddedWidth; void *buf; int width = rotate ? screen->height : screen->width; int height = rotate ? screen->width : screen->height; - int bpp = screen->fb[fb].bitsPerPixel; + int bpp = screen->fb.bitsPerPixel; /* use fb computation for width */ paddedWidth = ((width * bpp + FB_MASK) >> FB_SHIFT) * sizeof (FbBits); buf = xalloc (paddedWidth * height); if (!buf) return FALSE; - if (screen->fb[fb].shadow) - xfree (screen->fb[fb].frameBuffer); - screen->fb[fb].shadow = TRUE; - screen->fb[fb].frameBuffer = buf; - screen->fb[fb].byteStride = paddedWidth; - screen->fb[fb].pixelStride = paddedWidth * 8 / bpp; + if (screen->fb.shadow) + xfree (screen->fb.frameBuffer); + screen->fb.shadow = TRUE; + screen->fb.frameBuffer = buf; + screen->fb.byteStride = paddedWidth; + screen->fb.pixelStride = paddedWidth * 8 / bpp; return TRUE; } void -KdShadowFbFree (KdScreenInfo *screen, int fb) +KdShadowFbFree (KdScreenInfo *screen) { - if (screen->fb[fb].shadow) + if (screen->fb.shadow) { - xfree (screen->fb[fb].frameBuffer); - screen->fb[fb].frameBuffer = 0; - screen->fb[fb].shadow = FALSE; + xfree (screen->fb.frameBuffer); + screen->fb.frameBuffer = 0; + screen->fb.shadow = FALSE; } } @@ -64,14 +64,12 @@ KdShadowSet (ScreenPtr pScreen, int randr, ShadowUpdateProc update, ShadowWindow { KdScreenPriv(pScreen); KdScreenInfo *screen = pScreenPriv->screen; - int fb; shadowRemove (pScreen, pScreen->GetScreenPixmap(pScreen)); - for (fb = 0; fb < KD_MAX_FB && screen->fb[fb].depth; fb++) + if(screen->fb.shadow) { - if (screen->fb[fb].shadow) - return shadowAdd (pScreen, pScreen->GetScreenPixmap(pScreen), - update, window, randr, 0); + return shadowAdd (pScreen, pScreen->GetScreenPixmap(pScreen), + update, window, randr, 0); } return TRUE; } diff --git a/xorg-server/hw/kdrive/src/kxv.h b/xorg-server/hw/kdrive/src/kxv.h index 900baefde..21a295be3 100644 --- a/xorg-server/hw/kdrive/src/kxv.h +++ b/xorg-server/hw/kdrive/src/kxv.h @@ -1,6 +1,6 @@ -/* +/* - XFree86 Xv DDX written by Mark Vojkovich (markv@valinux.com) + XFree86 Xv DDX written by Mark Vojkovich (markv@valinux.com) Adapted for KDrive by Pontus Lidman <pontus.lidman@nokia.com> Copyright (C) 2000, 2001 - Nokia Home Communications @@ -60,21 +60,21 @@ typedef struct { int id; int type; int byte_order; - unsigned char guid[16]; + unsigned char guid[16]; int bits_per_pixel; int format; int num_planes; /* for RGB formats only */ int depth; - unsigned int red_mask; - unsigned int green_mask; - unsigned int blue_mask; + unsigned int red_mask; + unsigned int green_mask; + unsigned int blue_mask; /* for YUV formats only */ unsigned int y_sample_bits; unsigned int u_sample_bits; - unsigned int v_sample_bits; + unsigned int v_sample_bits; unsigned int horz_y_period; unsigned int horz_u_period; unsigned int horz_v_period; @@ -83,7 +83,7 @@ typedef struct { unsigned int vert_v_period; char component_order[32]; int scanline_order; -} KdImageRec, *KdImagePtr; +} KdImageRec, *KdImagePtr; typedef struct { @@ -92,7 +92,7 @@ typedef struct { unsigned short width, height; int *pitches; /* bytes */ int *offsets; /* in bytes from start of framebuffer */ - DevUnion devPrivate; + DevUnion devPrivate; } KdSurfaceRec, *KdSurfacePtr; @@ -118,7 +118,7 @@ typedef int (* SetPortAttributeFuncPtr)(KdScreenInfo * screen, Atom attribute, typedef int (* GetPortAttributeFuncPtr)(KdScreenInfo * screen, Atom attribute, int *value, pointer data); typedef void (* QueryBestSizeFuncPtr)(KdScreenInfo * screen, Bool motion, - short vid_w, short vid_h, short drw_w, short drw_h, + short vid_w, short vid_h, short drw_w, short drw_h, unsigned int *p_w, unsigned int *p_h, pointer data); typedef int (* PutImageFuncPtr)( KdScreenInfo * screen, DrawablePtr pDraw, short src_x, short src_y, short drw_x, short drw_y, @@ -128,8 +128,8 @@ typedef int (* PutImageFuncPtr)( KdScreenInfo * screen, DrawablePtr pDraw, typedef int (* ReputImageFuncPtr)( KdScreenInfo * screen, DrawablePtr pDraw, short drw_x, short drw_y, RegionPtr clipBoxes, pointer data ); -typedef int (*QueryImageAttributesFuncPtr)(KdScreenInfo * screen, - int image, unsigned short *width, unsigned short *height, +typedef int (*QueryImageAttributesFuncPtr)(KdScreenInfo * screen, + int image, unsigned short *width, unsigned short *height, int *pitches, int *offsets); typedef enum { @@ -148,7 +148,7 @@ typedef struct { } KdVideoEncodingRec, *KdVideoEncodingPtr; typedef struct { - char depth; + char depth; short class; } KdVideoFormatRec, *KdVideoFormatPtr; @@ -160,13 +160,13 @@ typedef struct { } KdAttributeRec, *KdAttributePtr; typedef struct { - unsigned int type; + unsigned int type; int flags; char *name; int nEncodings; - KdVideoEncodingPtr pEncodings; + KdVideoEncodingPtr pEncodings; int nFormats; - KdVideoFormatPtr pFormats; + KdVideoFormatPtr pFormats; int nPorts; DevUnion *pPortPrivates; int nAttributes; @@ -188,7 +188,7 @@ typedef struct { Bool KdXVScreenInit( - ScreenPtr pScreen, + ScreenPtr pScreen, KdVideoAdaptorPtr *Adaptors, int num ); @@ -239,7 +239,7 @@ typedef struct { } KdXVScreenRec, *KdXVScreenPtr; typedef struct { - int flags; + int flags; PutVideoFuncPtr PutVideo; PutStillFuncPtr PutStill; GetVideoFuncPtr GetVideo; @@ -276,4 +276,4 @@ typedef struct _KdXVWindowRec{ } KdXVWindowRec, *KdXVWindowPtr; #endif /* _XVDIX_H_ */ - + |