summaryrefslogtreecommitdiff
path: root/hw/kdrive/via/via.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/kdrive/via/via.c')
-rw-r--r--hw/kdrive/via/via.c436
1 files changed, 0 insertions, 436 deletions
diff --git a/hw/kdrive/via/via.c b/hw/kdrive/via/via.c
deleted file mode 100644
index c2e9e067d..000000000
--- a/hw/kdrive/via/via.c
+++ /dev/null
@@ -1,436 +0,0 @@
-/*
- * Copyright © 2004 Ralph Thomas
- *
- * 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 Ralph Thomas not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission. Ralph Thomas makes no
- * representations about the suitability of this software for any purpose. It
- * is provided "as is" without express or implied warranty.
- *
- * RALPH THOMAS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL RALPH THOMAS 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.
- */
-/*
-** VIA CLE266 driver
-** Copyright 2004 (C) Ralph Thomas <ralpht@gmail.com>
-**
-** http://www.viatech.com.tw/
-*/
-
-#include "via.h"
-#include "viadraw.h"
-
-/*
-** viaCardInit( KdCardInfo* card )
-**
-** Description:
-** Create card specific structures, map chip registers and initialize the
-** VESA driver. We make the VESA driver do boring stuff for us, like set
-** up a framebuffer and program a mode.
-**
-** Parameters:
-** card Information stucture for the card we want to bring up.
-** It should be a VIA card.
-**
-** Return:
-** TRUE Initialization went ok.
-** FALSE Initialization failed.
-*/
-static Bool
-viaCardInit( KdCardInfo* card ) {
- ViaCardInfo* viac;
-
- viac = (ViaCardInfo*) xalloc( sizeof( ViaCardInfo ) );
- if( !viac ) return FALSE;
- memset( viac, '\0', sizeof( ViaCardInfo ) );
-
-
- viaMapReg( card, viac );
-
- if( !vesaInitialize( card, &viac->vesa ) ) {
- xfree( viac );
- return FALSE;
- }
-
- card->driver = viac;
-
- return TRUE;
-}
-
-/*
-** Bool viaScreenInit( KdScreenInfo* screen )
-**
-** Description:
-** Initialize a single screen, described by the screen parameter.
-** This is where fairly low-level screen related things get setup,
-** such as video mode and resolution. Currently that all gets
-** handed off to the VESA driver.
-**
-** Parameters:
-** screen Information structure for the screen to enable.
-**
-** Return:
-** TRUE Screen was initialized successfully
-** FALSE Screen initialization failed
-*/
-static Bool
-viaScreenInit( KdScreenInfo* screen ) {
- ViaCardInfo* viac = screen->card->driver;
- ViaScreenInfo* vias;
-
- vias = (ViaScreenInfo*) xalloc( sizeof( ViaScreenInfo ) );
- if( !vias ) return FALSE;
- memset( vias, '\0', sizeof( ViaScreenInfo ) );
-
- if( !vesaScreenInitialize( screen, &vias->vesa ) ) {
- xfree( vias );
- return FALSE;
- }
-
- /*
- ** XXX: What does this do?
- */
- if( !viac->mapBase )
- screen->dumb = TRUE;
- if( vias->vesa.mapping != VESA_LINEAR )
- screen->dumb = TRUE;
-
- screen->driver = vias;
- return TRUE;
-}
-
-/*
-** Bool viaInitScreen( ScreenPtr pScreen )
-**
-** Description:
-** High level screen initialization occurs here. We could register XV
-** adaptors, etc, here.
-**
-** Arguments:
-** pScreen X screen information
-**
-** Return:
-** TRUE Initialization was successful,
-** FALSE Initialization failed.
-*/
-static Bool
-viaInitScreen( ScreenPtr pScreen ) {
- return vesaInitScreen( pScreen );
-}
-
-/*
-** Bool viaFinishInitScreen
-**
-** Description:
-** Finish up any high-level screen initialization. Per-Screen extension
-** initialization can be done here.
-**
-** Arguments:
-** pScreen X screen information
-**
-** Return:
-** TRUE Initialization was successful.
-** FALSE Initialization failed.
-*/
-static Bool
-viaFinishInitScreen( ScreenPtr pScreen ) {
- return vesaFinishInitScreen( pScreen );
-}
-
-/*
-** Bool viaCreateResources( ScreenPtr pScreen )
-**
-** Description:
-** Do any screen specific configuration.
-**
-** Arguments:
-** pScreen X screen information
-**
-** Return:
-** TRUE configuration was successful.
-** FALSE configuration failed.
-*/
-static Bool
-viaCreateResources( ScreenPtr pScreen ) {
- return vesaCreateResources( pScreen );
-}
-
-/*
-** void viaPreserve( KdCardInfo* card )
-**
-** Description:
-** Save the current state of the chip, so that it can be restored by
-** viaRestore at a later time.
-**
-** Arguments:
-** card Information structure for the chip we want to preserve the
-** state of.
-**
-** Return:
-** None.
-**
-** See Also:
-** viaRestore
-*/
-static void
-viaPreserve( KdCardInfo* card ) {
- vesaPreserve( card );
-}
-
-/*
-** void viaRestore( KdCardInfo* card )
-**
-** Description:
-** Restore the previous state of the chip, as saved by viaPreserve
-** earlier.
-**
-** Arguments:
-** card Information structure for the chip we want to restore the
-** state of.
-**
-** Return:
-** None.
-**
-** See Also:
-** viaPreserve
-*/
-static void viaRestore( KdCardInfo* card ) {
- ViaCardInfo* viac = card->driver;
-
- viaResetMMIO( card, viac );
- vesaRestore( card );
-}
-
-/*
-** Bool viaEnable( ScreenPtr pScreen )
-**
-** Description:
-** This is where we set the card up for drawing the specified screen, e.g.:
-** set the mode and mmap the framebuffer.
-**
-** Arguments:
-** pScreen X screen information
-**
-** Return:
-** TRUE the screen was enabled
-** FALSE the screen could not be enabled
-*/
-static Bool
-viaEnable( ScreenPtr pScreen ) {
- KdScreenPriv( pScreen );
- ViaCardInfo* viac = pScreenPriv->card->driver;
-
- if( !vesaEnable( pScreen ) ) return FALSE;
-
- viaSetMMIO( pScreenPriv->card, viac );
-
- if( !viac->mapBase ) {
- ErrorF( "Could not map CLE266 graphics registers" );
- return FALSE;
- }
-
- return TRUE;
-}
-
-/*
-** void viaDisable( ScreenPtr pScreen )
-**
-** Description:
-** Shut down drawing: save some state and unmap the framebuffer.
-**
-** Arguments:
-** pScreen X screen information
-**
-** Return:
-** None.
-*/
-static void
-viaDisable( ScreenPtr pScreen ) {
- KdScreenPriv( pScreen );
- ViaCardInfo* viac = pScreenPriv->card->driver;
-
- viaResetMMIO( pScreenPriv->card, viac );
- vesaDisable( pScreen );
-}
-
-/*
-** void viaScreenFini( KdScreenInfo* screen )
-**
-** Description:
-** Release memory and resources allocated by viaScreenInit.
-**
-** Arguments:
-** screen Information structure for the screen to release.
-**
-** Return:
-** None.
-**
-** See Also:
-** viaScreenInit
-*/
-static void
-viaScreenFini( KdScreenInfo* screen ) {
- ViaScreenInfo* vias = screen->driver;
-
- vesaScreenFini( screen );
- xfree( vias );
- screen->driver = 0;
-}
-
-/*
-** void viaCardFini( KdCardInfo* card )
-**
-** Description:
-** Release memory and resources allocated by viaCardInit.
-**
-** Arguments:
-** card Information structure for the chip to release.
-**
-** Return:
-** None.
-**
-** See Also:
-** viaCardInit
-*/
-static void
-viaCardFini( KdCardInfo* card ) {
- ViaCardInfo* viac = card->driver;
-
- viaUnmapReg( card, viac );
- vesaCardFini( card );
- xfree( viac );
-}
-
-/*
-** void viaSetMMIO( KdCardInfo* card, ViaCardInfo* viac )
-**
-** Description:
-** Map the card's registers, if they're not already
-** mapped.
-**
-** Arguments:
-** card generic chip information
-** viac VIA-driver specific chip information
-**
-** Return:
-** None.
-*/
-void viaSetMMIO( KdCardInfo* card, ViaCardInfo* viac ) {
- if( !viac->mapBase ) viaMapReg( card, viac );
-}
-
-/*
-** void viaResetMMIO( KdCardInfo* card, ViaCardInfo* viac )
-**
-** Description:
-** Unmap chip's registers.
-**
-** Arguments:
-** card generic chip information
-** viac VIA-driver specific chip information
-**
-** Return:
-** None.
-*/
-void viaResetMMIO( KdCardInfo* card, ViaCardInfo* viac ) {
- viaUnmapReg( card, viac );
-}
-
-/*
-** Bool viaMapReg( KdCardInfo* card, ViaCardInfo* viac )
-**
-** Description:
-** Map the chip's registers into our address space.
-**
-** Arguments:
-** card the card information
-** viac the VIA-driver specific card information
-**
-** Return:
-** TRUE the registers were succesfully mapped
-** FALSE the registers could not be mapped
-*/
-Bool
-viaMapReg( KdCardInfo* card, ViaCardInfo* viac ) {
- viac->mapBase = (VOL8*) KdMapDevice( VIA_REG_BASE( card ),
- VIA_REG_SIZE( card ) );
-
- if( !viac->mapBase ) {
- ErrorF( "Couldn't allocate viac->mapBase\n" );
- return FALSE;
- }
-
- KdSetMappedMode( VIA_REG_BASE( card ), VIA_REG_SIZE( card ),
- KD_MAPPED_MODE_REGISTERS );
-
- /*
- ** Enable extended IO space
- */
- VGAOUT8( 0x3C4, 0x10 );
- VGAOUT8( 0x3C5, 0x01 );
-
- return TRUE;
-}
-
-/*
-** void viaUnmapReg( KdCardInfo* card, ViaCardInfo* viac )
-**
-** Description:
-** Unmap the the chip's registers.
-**
-** Arguments:
-** card the card information
-** viac the VIA-driver specific card information
-**
-** Return:
-** None.
-*/
-void
-viaUnmapReg( KdCardInfo* card, ViaCardInfo* viac ) {
- if( !viac->mapBase ) return;
-
- KdResetMappedMode( VIA_REG_BASE( card ), VIA_REG_SIZE( card ),
- KD_MAPPED_MODE_REGISTERS );
- KdUnmapDevice( (void*) viac->mapBase, VIA_REG_SIZE( card ) );
- viac->mapBase = 0;
-}
-
-KdCardFuncs viaFuncs = {
- viaCardInit, /* cardinit */
- viaScreenInit, /* scrinit */
- viaInitScreen, /* initScreen */
- viaFinishInitScreen, /* finishInitScreen */
- viaCreateResources, /* createRes */
- viaPreserve, /* preserve */
- viaEnable, /* enable */
- vesaDPMS, /* dpms */
- viaDisable, /* disable */
- viaRestore, /* restore */
- viaScreenFini, /* scrfini */
- viaCardFini, /* cardfini */
-
- 0, /* initCursor */
- 0, /* enableCursor */
- 0, /* disableCursor */
- 0, /* finiCursor */
- 0, /* recolorCursor */
-
- viaDrawInit, /* initAccel */
- viaDrawEnable, /* enableAccel */
- viaDrawSync, /* syncAccel */
- viaDrawDisable, /* disableAccel */
- viaDrawFini, /* finiAccel */
-
- vesaGetColors, /* getColors */
- vesaPutColors, /* putColors */
-};
-