diff options
Diffstat (limited to 'xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c')
-rw-r--r-- | xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c | 489 |
1 files changed, 129 insertions, 360 deletions
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c index 618abb408..a15f4f1b4 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c,v 1.46 2000/09/20 00:09:26 keithp Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c,v 1.53 2000/10/18 17:20:00 alanh Exp $ */ /************************************************************************** Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., @@ -70,7 +70,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "mipointer.h" #include "micmap.h" -#define USE_FB /* not until overlays and 24->32 code added */ +#define USE_FB /* not until overlays */ #ifdef USE_FB #include "fb.h" #else @@ -83,48 +83,10 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "cfb32.h" #include "cfb24_32.h" #endif - /* Xv support */ -#include "xf86xv.h" -#include "Xv.h" - - /* vgahw module (for VC save/restore only) */ -#include "vgaHW.h" - -#include "fbdevhw.h" - - /* XAA and Cursor Support */ -#include "xaa.h" -#include "xf86Cursor.h" - - - /* PCI support */ -#include "xf86PciInfo.h" -#include "xf86Pci.h" - - /* DDC support */ -#include "xf86DDC.h" - - /* VESA support */ -#include "vbe.h" - - /* DRI support */ -#ifdef XF86DRI -#include "GL/glxint.h" -#include "xf86drm.h" -#include "sarea.h" -#define _XF86DRI_SERVER_ -#include "xf86dri.h" -#include "dri.h" -#include "r128_dri.h" -#include "r128_dripriv.h" -#include "r128_sarea.h" -#endif - -#ifdef RENDER -#include "picturestr.h" -#endif /* Driver data structures */ +#include "ati2.h" #include "r128.h" +#include "r128_probe.h" #include "r128_reg.h" #ifndef MAX @@ -133,9 +95,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* Forward definitions for driver functions */ -static OptionInfoPtr R128AvailableOptions(int chipid, int busid); -static Bool R128Probe(DriverPtr drv, int flags); -static void R128Identify(int flags); static Bool R128PreInit(ScrnInfoPtr pScrn, int flags); static Bool R128ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv); @@ -155,16 +114,6 @@ static void R128DisplayPowerManagementSet(ScrnInfoPtr pScrn, static Bool R128EnterVTFBDev(int scrnIndex, int flags); static void R128LeaveVTFBDev(int scrnIndex, int flags); - /* Define driver */ -DriverRec R128 = { - R128_VERSION, - "ATI Rage 128", - R128Identify, - R128Probe, - R128AvailableOptions, - NULL -}; - /* Chipsets */ static SymTabRec R128Chipsets[] = { { PCI_CHIP_RAGE128RE, "ATI Rage 128 RE (PCI)" }, @@ -195,7 +144,6 @@ static PciChipsets R128PciChipsets[] = { typedef enum { OPTION_NOACCEL, OPTION_SW_CURSOR, - OPTION_HW_CURSOR, OPTION_DAC_6BIT, OPTION_DAC_8BIT, #ifdef XF86DRI @@ -216,13 +164,13 @@ typedef enum { #endif OPTION_PANEL_WIDTH, OPTION_PANEL_HEIGHT, + OPTION_PROG_FP_REGS, OPTION_FBDEV } R128Opts; static OptionInfoRec R128Options[] = { { OPTION_NOACCEL, "NoAccel", OPTV_BOOLEAN, {0}, FALSE }, { OPTION_SW_CURSOR, "SWcursor", OPTV_BOOLEAN, {0}, FALSE }, - { OPTION_HW_CURSOR, "HWcursor", OPTV_BOOLEAN, {0}, TRUE }, { OPTION_DAC_6BIT, "Dac6Bit", OPTV_BOOLEAN, {0}, FALSE }, { OPTION_DAC_8BIT, "Dac8Bit", OPTV_BOOLEAN, {0}, TRUE }, #ifdef XF86DRI @@ -243,6 +191,7 @@ static OptionInfoRec R128Options[] = { #endif { OPTION_PANEL_WIDTH, "PanelWidth", OPTV_INTEGER, {0}, FALSE }, { OPTION_PANEL_HEIGHT, "PanelHeight", OPTV_INTEGER, {0}, FALSE }, + { OPTION_PROG_FP_REGS, "ProgramFPRegs", OPTV_BOOLEAN, {0}, FALSE }, { OPTION_FBDEV, "UseFBDev", OPTV_BOOLEAN, {0}, FALSE }, { -1, NULL, OPTV_NONE, {0}, FALSE } }; @@ -257,216 +206,9 @@ R128RAMRec R128RAM[] = { /* Memory Specifications { 4, 4, 3, 3, 2, 3, 1, 16, 12, "64-bit DDR SGRAM" }, }; -static const char *vgahwSymbols[] = { - "vgaHWGetHWRec", - "vgaHWFreeHWRec", - "vgaHWLock", - "vgaHWUnlock", - "vgaHWSave", - "vgaHWRestore", - NULL -}; - -static const char *fbdevHWSymbols[] = { - "fbdevHWInit", - "fbdevHWUseBuildinMode", - - "fbdevHWGetDepth", - "fbdevHWGetVidmem", - - /* colormap */ - "fbdevHWLoadPalette", - - /* ScrnInfo hooks */ - "fbdevHWSwitchMode", - "fbdevHWAdjustFrame", - "fbdevHWEnterVT", - "fbdevHWLeaveVT", - "fbdevHWValidMode", - "fbdevHWRestore", - "fbdevHWModeInit", - "fbdevHWSave", - - "fbdevHWUnmapMMIO", - "fbdevHWUnmapVidmem", - "fbdevHWMapMMIO", - "fbdevHWMapVidmem", - - NULL -}; - -static const char *ddcSymbols[] = { - "xf86PrintEDID", - "xf86DoEDID_DDC1", - "xf86DoEDID_DDC2", - NULL -}; - -#if 0 -static const char *i2cSymbols[] = { - "xf86CreateI2CBusRec", - "xf86I2CBusInit", - NULL -}; -#endif - -#ifdef XFree86LOADER -static const char *vbeSymbols[] = { - "VBEInit", - "vbeDoEDID", - NULL -}; - -#ifdef USE_FB -static const char *fbSymbols[] = { - "fbScreenInit", -#ifdef RENDER - "fbPictureInit", -#endif - NULL -}; -#else -static const char *cfbSymbols[] = { - "cfbScreenInit", - "cfb16ScreenInit", - "cfb24ScreenInit", - "cfb32ScreenInit", - "cfb24_32ScreenInit", - NULL -}; -#endif - -static const char *xf8_32bppSymbols[] = { - "xf86Overlay8Plus32Init", - NULL -}; - -static const char *xaaSymbols[] = { - "XAADestroyInfoRec", - "XAACreateInfoRec", - "XAAInit", - "XAAStippleScanlineFuncLSBFirst", - "XAAOverlayFBfuncs", - "XAACachePlanarMonoStipple", - "XAAScreenIndex", - NULL -}; - -static const char *ramdacSymbols[] = { - "xf86InitCursor", - "xf86CreateCursorInfoRec", - "xf86DestroyCursorInfoRec", - NULL -}; - -#ifdef XF86DRI -static const char *drmSymbols[] = { - "drmAddBufs", - "drmAddMap", - "drmAvailable", - "drmCtlAddCommand", - "drmCtlInstHandler", - "drmGetInterruptFromBusID", - "drmMapBufs", - "drmMarkBufs", - "drmUnmapBufs", - "drmFreeVersion", - "drmGetVersion", - NULL -}; - -static const char *driSymbols[] = { - "DRIGetDrawableIndex", - "DRIFinishScreenInit", - "DRIDestroyInfoRec", - "DRICloseScreen", - "DRIDestroyInfoRec", - "DRIScreenInit", - "DRIDestroyInfoRec", - "DRICreateInfoRec", - "DRILock", - "DRIUnlock", - "DRIGetSAREAPrivate", - "DRIGetContext", - "DRIQueryVersion", - "GlxSetVisualConfigs", - NULL -}; -#endif - -static MODULESETUPPROTO(R128Setup); - -static XF86ModuleVersionInfo R128VersRec = -{ - R128_NAME, - MODULEVENDORSTRING, - MODINFOSTRING1, - MODINFOSTRING2, - XF86_VERSION_CURRENT, - R128_VERSION_MAJOR, R128_VERSION_MINOR, R128_VERSION_PATCH, - ABI_CLASS_VIDEODRV, - ABI_VIDEODRV_VERSION, - MOD_CLASS_VIDEODRV, - { 0, 0, 0, 0 } -}; - -XF86ModuleData r128ModuleData = { &R128VersRec, R128Setup, 0 }; - -static pointer R128Setup(pointer module, pointer opts, int *errmaj, - int *errmin) -{ - static Bool setupDone = FALSE; - - /* This module should be loaded only once, but check to be sure. */ - - if (!setupDone) { - setupDone = TRUE; - xf86AddDriver(&R128, module, 0); - - /* - * Modules that this driver always requires may be loaded here - * by calling LoadSubModule(). - */ - /* FIXME: add DRI support here */ - - /* - * Tell the loader about symbols from other modules that this module - * might refer to. - */ - LoaderRefSymLists(vgahwSymbols, -#ifdef USE_FB - fbSymbols, -#else - cfbSymbols, -#endif - xaaSymbols, - xf8_32bppSymbols, - ramdacSymbols, -#ifdef XF86DRI - drmSymbols, - driSymbols, -#endif - fbdevHWSymbols, - vbeSymbols, -#if 0 - NULL /* ddcsymbols */, - NULL /* i2csymbols */, - NULL /* shadowSymbols */, -#endif - NULL); - - /* - * The return value must be non-NULL on success even though there - * is no TearDownProc. - */ - return (pointer)1; - } else { - if (errmaj) *errmaj = LDR_ONCEONLY; - return NULL; - } -} - -#endif +extern const char *vgahwSymbols[]; +extern const char *fbdevHWSymbols[]; +extern const char *ddcSymbols[]; /* Allocate our private R128InfoRec. */ static Bool R128GetRec(ScrnInfoPtr pScrn) @@ -571,9 +313,10 @@ static Bool R128UnmapMem(ScrnInfoPtr pScrn) } /* Read PLL information */ -int INPLL(ScrnInfoPtr pScrn, int addr) +int R128INPLL(ScrnInfoPtr pScrn, int addr) { - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; OUTREG8(R128_CLOCK_CNTL_INDEX, addr & 0x1f); return INREG(R128_CLOCK_CNTL_DATA); @@ -581,9 +324,10 @@ int INPLL(ScrnInfoPtr pScrn, int addr) #if 0 /* Read PAL information (only used for debugging). */ -static int INPAL(int idx) +static int R128INPAL(int idx) { - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; OUTREG(R128_PALETTE_INDEX, idx << 16); return INREG(R128_PALETTE_DATA); @@ -593,21 +337,21 @@ static int INPAL(int idx) /* Wait for vertical sync. */ void R128WaitForVerticalSync(ScrnInfoPtr pScrn) { - int i; - R128MMIO_VARS(); - unsigned int j; + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; + int i; OUTREG(R128_GEN_INT_STATUS, R128_VSYNC_INT_AK); for (i = 0; i < R128_TIMEOUT; i++) { - j = INREG(R128_GEN_INT_STATUS); - if (j & R128_VSYNC_INT) break; + if (INREG(R128_GEN_INT_STATUS) & R128_VSYNC_INT) break; } } /* Blank screen. */ static void R128Blank(ScrnInfoPtr pScrn) { - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; OUTREGP(R128_CRTC_EXT_CNTL, R128_CRTC_DISPLAY_DIS, ~R128_CRTC_DISPLAY_DIS); } @@ -615,7 +359,8 @@ static void R128Blank(ScrnInfoPtr pScrn) /* Unblank screen. */ static void R128Unblank(ScrnInfoPtr pScrn) { - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; OUTREGP(R128_CRTC_EXT_CNTL, 0, ~R128_CRTC_DISPLAY_DIS); } @@ -643,9 +388,9 @@ static Bool R128GetBIOSParameters(ScrnInfoPtr pScrn) int i; int FPHeader = 0; -#define R128ReadBIOS(offset, buffer, length) \ - (info->BIOSFromPCI ? \ - xf86ReadPciBIOS(offset, info->PciTag, 0, buffer, length) : \ +#define R128ReadBIOS(offset, buffer, length) \ + (info->BIOSFromPCI ? \ + xf86ReadPciBIOS(offset, info->PciTag, 0, buffer, length) : \ xf86ReadBIOS(info->BIOSAddr, offset, buffer, length)) #define R128_BIOS8(v) (*((CARD8 *)(info->VBIOS + (v)))) @@ -757,6 +502,7 @@ static Bool R128GetPLLParameters(ScrnInfoPtr pScrn) CARD16 bios_header; CARD16 pll_info_block; + if (!info->VBIOS) { xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Video BIOS not detected, using default PLL parameters!\n"); @@ -793,15 +539,22 @@ static Bool R128GetPLLParameters(ScrnInfoPtr pScrn) return TRUE; } -static -OptionInfoPtr -R128AvailableOptions(int chipid, int busid) +/* Return the options for supported chipset 'n'; NULL otherwise. */ +OptionInfoPtr R128AvailableOptions(int chipid, int busid) { - return R128Options; + int i; + + /* Check to make sure that chip 'chipid' is supported by the Rage + 128 driver */ + for (i = 0; R128PciChipsets[i].PCIid > 0; i++) { + if (chipid == R128PciChipsets[i].PCIid) + return R128Options; + } + return NULL; } /* Return the string name for supported chipset 'n'; NULL otherwise. */ -static void R128Identify(int flags) +void R128Identify(int flags) { xf86PrintChipsets(R128_NAME, "Driver for ATI Rage 128 chipset", @@ -809,7 +562,7 @@ static void R128Identify(int flags) } /* Return TRUE if chipset is present; FALSE otherwise. */ -static Bool R128Probe(DriverPtr drv, int flags) +Bool R128Probe(DriverPtr drv, int flags) { int numUsed; int numDevSections; @@ -819,8 +572,11 @@ static Bool R128Probe(DriverPtr drv, int flags) Bool foundScreen = FALSE; int i; + /* Check to make sure that the R128_NAME or the ATI2_NAME is listed + as the Driver in the "Device" section of the XF86Config file */ if ((numDevSections = xf86MatchDevice(R128_NAME, &devSections)) <= 0) - return FALSE; + if ((numDevSections = xf86MatchDevice(ATI2_NAME, &devSections)) <= 0) + return FALSE; if (!xf86GetPciVideoInfo()) return FALSE; @@ -843,7 +599,7 @@ static Bool R128Probe(DriverPtr drv, int flags) if (pEnt->active) { ScrnInfoPtr pScrn = xf86AllocateScreen(drv, 0); - pScrn->driverVersion = R128_VERSION; + pScrn->driverVersion = ATI2_VERSION; pScrn->driverName = R128_NAME; pScrn->name = R128_NAME; pScrn->Probe = R128Probe; @@ -877,9 +633,7 @@ static Bool R128PreInitVisual(ScrnInfoPtr pScrn) if (!xf86SetDepthBpp(pScrn, 8, 8, 8, (Support24bppFb | Support32bppFb -#ifndef USE_FB | SupportConvert32to24 -#endif ))) return FALSE; @@ -961,12 +715,12 @@ static Bool R128PreInitWeight(ScrnInfoPtr pScrn) If memory type ever needs an override, put it in this routine. */ static Bool R128PreInitConfig(ScrnInfoPtr pScrn) { - R128InfoPtr info = R128PTR(pScrn); - EntityInfoPtr pEnt = info->pEnt; - GDevPtr dev = pEnt->device; - int offset = 0; /* RAM Type */ + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; + EntityInfoPtr pEnt = info->pEnt; + GDevPtr dev = pEnt->device; + int offset = 0; /* RAM Type */ MessageType from; - unsigned char *R128MMIO; /* Chipset */ from = X_PROBED; @@ -1051,18 +805,26 @@ static Bool R128PreInitConfig(ScrnInfoPtr pScrn) } /* Flat panel (part 1) */ - /* FIXME: Make this an option */ - switch (info->Chipset) { - case PCI_CHIP_RAGE128LE: - case PCI_CHIP_RAGE128LF: - case PCI_CHIP_RAGE128MF: - case PCI_CHIP_RAGE128ML: info->HasPanelRegs = TRUE; break; - case PCI_CHIP_RAGE128RE: - case PCI_CHIP_RAGE128RF: - case PCI_CHIP_RAGE128RK: - case PCI_CHIP_RAGE128RL: - case PCI_CHIP_RAGE128PF: - default: info->HasPanelRegs = FALSE; break; + if (xf86GetOptValBool(R128Options, OPTION_PROG_FP_REGS, + &info->HasPanelRegs)) { + xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, + "Turned flat panel register programming %s\n", + info->HasPanelRegs ? "on" : "off"); + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "\n\nWARNING: Forcing the driver to use/not use the flat panel registers\nmight damage your flat panel. Use at your *OWN* *RISK*.\n\n"); + } else { + switch (info->Chipset) { + case PCI_CHIP_RAGE128LE: + case PCI_CHIP_RAGE128LF: + case PCI_CHIP_RAGE128MF: + case PCI_CHIP_RAGE128ML: info->HasPanelRegs = TRUE; break; + case PCI_CHIP_RAGE128RE: + case PCI_CHIP_RAGE128RF: + case PCI_CHIP_RAGE128RK: + case PCI_CHIP_RAGE128RL: + case PCI_CHIP_RAGE128PF: + default: info->HasPanelRegs = FALSE; break; + } } /* Read registers used to determine options */ @@ -1074,6 +836,7 @@ static Bool R128PreInitConfig(ScrnInfoPtr pScrn) else pScrn->videoRam = INREG(R128_CONFIG_MEMSIZE) / 1024; info->MemCntl = INREG(R128_MEM_CNTL); + info->BusCntl = INREG(R128_BUS_CNTL); R128MMIO = NULL; R128UnmapMMIO(pScrn); @@ -1119,6 +882,7 @@ static Bool R128PreInitConfig(ScrnInfoPtr pScrn) xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Using flat panel for display\n"); #else + /* Panel CRT mode override */ if ((info->CRTOnly = xf86ReturnOptValBool(R128Options, OPTION_CRT, FALSE))) { xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, @@ -1129,11 +893,8 @@ static Bool R128PreInitConfig(ScrnInfoPtr pScrn) "Using flat panel for display\n"); } #endif - } else { - info->CRTOnly = FALSE; - } - if (info->HasPanelRegs) { + /* Panel width/height overrides */ info->PanelXRes = 0; info->PanelYRes = 0; if (xf86GetOptValInteger(R128Options, @@ -1146,6 +907,8 @@ static Bool R128PreInitConfig(ScrnInfoPtr pScrn) xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Flat panel height: %d\n", info->PanelYRes); } + } else { + info->CRTOnly = FALSE; } #ifdef XF86DRI @@ -1181,7 +944,7 @@ static Bool R128PreInitDDC(ScrnInfoPtr pScrn) xf86LoaderReqSymLists(ddcSymbols, NULL); if (xf86LoadSubModule(pScrn, "vbe")) { pVbe = VBEInit(NULL,info->pEnt->index); - if (!pVbe) return NULL; + if (!pVbe) return FALSE; xf86SetDDCproperties(pScrn,xf86PrintEDID(vbeDoEDID(pVbe,NULL))); return TRUE; @@ -1572,11 +1335,11 @@ static Bool R128PreInit(ScrnInfoPtr pScrn, int flags) static void R128LoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors, VisualPtr pVisual) { - R128InfoPtr info = R128PTR(pScrn); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; int i; int idx; unsigned char r, g, b; - R128MMIO_VARS(); /* Select palette 0 (main CRTC) if using FP-enabled chip */ if (info->HasPanelRegs) PAL_SELECT(0); @@ -1677,7 +1440,7 @@ static Bool R128ScreenInit(int scrnIndex, ScreenPtr pScreen, if (!xf86ReturnOptValBool(R128Options, OPTION_NOACCEL, FALSE) && (maxy > pScrn->virtualY * 3) -#if 1 +#if 0 /* FIXME: Disable 3D support for FPs until it is tested */ && !info->HasPanelRegs #endif @@ -1769,7 +1532,8 @@ static Bool R128ScreenInit(int scrnIndex, ScreenPtr pScreen, MemBox.x1 = 0; MemBox.y1 = 0; MemBox.x2 = pScrn->displayWidth; - y2 = info->FbMapSize / (pScrn->displayWidth * info->CurrentLayout.pixel_bytes); + y2 = (info->FbMapSize + / (pScrn->displayWidth * info->CurrentLayout.pixel_bytes)); if (y2 >= 32768) y2 = 32767; /* because MemBox.y2 is signed short */ MemBox.y2 = y2; @@ -1932,6 +1696,9 @@ static Bool R128ScreenInit(int scrnIndex, ScreenPtr pScreen, miInitializeBackingStore(pScreen); xf86SetBackingStore(pScreen); + /* Set Silken Mouse */ + xf86SetSilkenMouse(pScreen); + /* Acceleration setup */ if (!xf86ReturnOptValBool(R128Options, OPTION_NOACCEL, FALSE)) { if (R128AccelInit(pScreen)) { @@ -1992,16 +1759,7 @@ static Bool R128ScreenInit(int scrnIndex, ScreenPtr pScreen, xf86DPMSInit(pScreen, R128DisplayPowerManagementSet, 0); #endif - /* Xv setup */ -#ifdef XvExtension - { - XF86VideoAdaptorPtr *ptr; - int n; - - if ((n = xf86XVListGenericAdaptors(pScrn, &ptr))) - xf86XVScreenInit(pScreen, ptr, n); - } -#endif + R128InitVideo(pScreen); /* Provide SaveScreen */ pScreen->SaveScreen = R128SaveScreen; @@ -2035,7 +1793,8 @@ static Bool R128ScreenInit(int scrnIndex, ScreenPtr pScreen, /* Write common registers (initialized to 0). */ static void R128RestoreCommonRegisters(ScrnInfoPtr pScrn, R128SavePtr restore) { - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; OUTREG(R128_OVR_CLR, restore->ovr_clr); OUTREG(R128_OVR_WID_LEFT_RIGHT, restore->ovr_wid_left_right); @@ -2055,7 +1814,8 @@ static void R128RestoreCommonRegisters(ScrnInfoPtr pScrn, R128SavePtr restore) /* Write CRTC registers. */ static void R128RestoreCrtcRegisters(ScrnInfoPtr pScrn, R128SavePtr restore) { - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; OUTREG(R128_CRTC_GEN_CNTL, restore->crtc_gen_cntl); @@ -2077,8 +1837,9 @@ static void R128RestoreCrtcRegisters(ScrnInfoPtr pScrn, R128SavePtr restore) /* Write flat panel registers */ static void R128RestoreFPRegisters(ScrnInfoPtr pScrn, R128SavePtr restore) { - CARD32 tmp; - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; + CARD32 tmp; OUTREG(R128_CRTC2_GEN_CNTL, restore->crtc2_gen_cntl); OUTREG(R128_FP_CRTC_H_TOTAL_DISP, restore->fp_crtc_h_total_disp); @@ -2115,7 +1876,8 @@ static void R128PLLWaitForReadUpdateComplete(ScrnInfoPtr pScrn) static void R128PLLWriteUpdate(ScrnInfoPtr pScrn) { - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; OUTPLLP(pScrn, R128_PPLL_REF_DIV, R128_PPLL_ATOMIC_UPDATE_W, 0xffff); } @@ -2123,7 +1885,8 @@ static void R128PLLWriteUpdate(ScrnInfoPtr pScrn) /* Write PLL registers. */ static void R128RestorePLLRegisters(ScrnInfoPtr pScrn, R128SavePtr restore) { - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; OUTREGP(R128_CLOCK_CNTL_INDEX, R128_PLL_DIV_SEL, 0xffff); @@ -2167,7 +1930,8 @@ static void R128RestorePLLRegisters(ScrnInfoPtr pScrn, R128SavePtr restore) /* Write DDA registers. */ static void R128RestoreDDARegisters(ScrnInfoPtr pScrn, R128SavePtr restore) { - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; OUTREG(R128_DDA_CONFIG, restore->dda_config); OUTREG(R128_DDA_ON_OFF, restore->dda_on_off); @@ -2176,9 +1940,9 @@ static void R128RestoreDDARegisters(ScrnInfoPtr pScrn, R128SavePtr restore) /* Write palette data. */ static void R128RestorePalette(ScrnInfoPtr pScrn, R128SavePtr restore) { - R128InfoPtr info = R128PTR(pScrn); - int i; - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; + int i; if (!restore->palette_valid) return; @@ -2208,7 +1972,8 @@ static void R128RestoreMode(ScrnInfoPtr pScrn, R128SavePtr restore) /* Read common registers. */ static void R128SaveCommonRegisters(ScrnInfoPtr pScrn, R128SavePtr save) { - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; save->ovr_clr = INREG(R128_OVR_CLR); save->ovr_wid_left_right = INREG(R128_OVR_WID_LEFT_RIGHT); @@ -2228,7 +1993,8 @@ static void R128SaveCommonRegisters(ScrnInfoPtr pScrn, R128SavePtr save) /* Read CRTC registers. */ static void R128SaveCrtcRegisters(ScrnInfoPtr pScrn, R128SavePtr save) { - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; save->crtc_gen_cntl = INREG(R128_CRTC_GEN_CNTL); save->crtc_ext_cntl = INREG(R128_CRTC_EXT_CNTL); @@ -2245,7 +2011,8 @@ static void R128SaveCrtcRegisters(ScrnInfoPtr pScrn, R128SavePtr save) /* Read flat panel registers */ static void R128SaveFPRegisters(ScrnInfoPtr pScrn, R128SavePtr save) { - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; save->crtc2_gen_cntl = INREG(R128_CRTC2_GEN_CNTL); save->fp_crtc_h_total_disp = INREG(R128_FP_CRTC_H_TOTAL_DISP); @@ -2280,7 +2047,8 @@ static void R128SavePLLRegisters(ScrnInfoPtr pScrn, R128SavePtr save) /* Read DDA registers. */ static void R128SaveDDARegisters(ScrnInfoPtr pScrn, R128SavePtr save) { - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; save->dda_config = INREG(R128_DDA_CONFIG); save->dda_on_off = INREG(R128_DDA_ON_OFF); @@ -2289,9 +2057,9 @@ static void R128SaveDDARegisters(ScrnInfoPtr pScrn, R128SavePtr save) /* Read palette data. */ static void R128SavePalette(ScrnInfoPtr pScrn, R128SavePtr save) { - R128InfoPtr info = R128PTR(pScrn); - int i; - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; + int i; /* Select palette 0 (main CRTC) if using FP-enabled chip */ if (info->HasPanelRegs) PAL_SELECT(0); @@ -2320,10 +2088,10 @@ static void R128SaveMode(ScrnInfoPtr pScrn, R128SavePtr save) /* Save everything needed to restore the original VC state. */ static void R128Save(ScrnInfoPtr pScrn) { - R128InfoPtr info = R128PTR(pScrn); - R128SavePtr save = &info->SavedReg; - vgaHWPtr hwp = VGAHWPTR(pScrn); - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; + R128SavePtr save = &info->SavedReg; + vgaHWPtr hwp = VGAHWPTR(pScrn); R128TRACE(("R128Save\n")); if (info->FBDev) { @@ -2346,10 +2114,10 @@ static void R128Save(ScrnInfoPtr pScrn) /* Restore the original (text) mode. */ static void R128Restore(ScrnInfoPtr pScrn) { - R128InfoPtr info = R128PTR(pScrn); - R128SavePtr restore = &info->SavedReg; - vgaHWPtr hwp = VGAHWPTR(pScrn); - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; + R128SavePtr restore = &info->SavedReg; + vgaHWPtr hwp = VGAHWPTR(pScrn); R128TRACE(("R128Restore\n")); if (info->FBDev) { @@ -2872,10 +2640,10 @@ static int R128ValidMode(int scrnIndex, DisplayModePtr mode, is (x,y) in virtual space. */ void R128AdjustFrame(int scrnIndex, int x, int y, int flags) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; - R128InfoPtr info = R128PTR(pScrn); + ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; int Base; - R128MMIO_VARS(); Base = y * info->CurrentLayout.displayWidth + x; @@ -2898,7 +2666,7 @@ void R128AdjustFrame(int scrnIndex, int x, int y, int flags) mode. */ static Bool R128EnterVT(int scrnIndex, int flags) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; R128InfoPtr info = R128PTR(pScrn); R128TRACE(("R128EnterVT\n")); @@ -3015,10 +2783,11 @@ static void R128FreeScreen(int scrnIndex, int flags) static void R128DisplayPowerManagementSet(ScrnInfoPtr pScrn, int PowerManagementMode, int flags) { - int mask = (R128_CRTC_DISPLAY_DIS - | R128_CRTC_HSYNC_DIS - | R128_CRTC_VSYNC_DIS); - R128MMIO_VARS(); + R128InfoPtr info = R128PTR(pScrn); + unsigned char *R128MMIO = info->MMIO; + int mask = (R128_CRTC_DISPLAY_DIS + | R128_CRTC_HSYNC_DIS + | R128_CRTC_VSYNC_DIS); switch (PowerManagementMode) { case DPMSModeOn: |