Use either vesa or fbdev, selectable at compile time
This commit is contained in:
parent
adc5b8068d
commit
346aff7ef6
|
@ -2,6 +2,7 @@ INCLUDES = \
|
||||||
-I$(top_srcdir)/fb \
|
-I$(top_srcdir)/fb \
|
||||||
-I$(top_srcdir)/hw/kdrive/src \
|
-I$(top_srcdir)/hw/kdrive/src \
|
||||||
-I$(top_srcdir)/hw/kdrive/fbdev \
|
-I$(top_srcdir)/hw/kdrive/fbdev \
|
||||||
|
-I$(top_srcdir)/hw/kdrive/vesa \
|
||||||
-I$(top_srcdir)/mi \
|
-I$(top_srcdir)/mi \
|
||||||
-I$(top_srcdir)/miext/layer \
|
-I$(top_srcdir)/miext/layer \
|
||||||
-I$(top_srcdir)/miext/shadow \
|
-I$(top_srcdir)/miext/shadow \
|
||||||
|
@ -25,6 +26,7 @@ Xsmi_SOURCES = \
|
||||||
Xsmi_LDADD = \
|
Xsmi_LDADD = \
|
||||||
$(top_builddir)/hw/kdrive/smi/libsmi.a \
|
$(top_builddir)/hw/kdrive/smi/libsmi.a \
|
||||||
$(top_builddir)/hw/kdrive/fbdev/libfbdev.a \
|
$(top_builddir)/hw/kdrive/fbdev/libfbdev.a \
|
||||||
|
$(top_builddir)/hw/kdrive/vesa/libvesa.a \
|
||||||
$(top_builddir)/dix/libdix.a \
|
$(top_builddir)/dix/libdix.a \
|
||||||
$(top_builddir)/os/libos.a \
|
$(top_builddir)/os/libos.a \
|
||||||
$(top_builddir)/miext/layer/liblayer.a \
|
$(top_builddir)/miext/layer/liblayer.a \
|
||||||
|
@ -33,11 +35,13 @@ Xsmi_LDADD = \
|
||||||
$(top_builddir)/miext/shadow/libshadow.a \
|
$(top_builddir)/miext/shadow/libshadow.a \
|
||||||
$(top_builddir)/randr/librandr.a \
|
$(top_builddir)/randr/librandr.a \
|
||||||
$(top_builddir)/render/librender.a \
|
$(top_builddir)/render/librender.a \
|
||||||
|
$(top_builddir)/xfixes/libxfixes.a \
|
||||||
$(top_builddir)/fb/libfb.a \
|
$(top_builddir)/fb/libfb.a \
|
||||||
$(top_builddir)/mi/libmi.a \
|
$(top_builddir)/mi/libmi.a \
|
||||||
$(top_builddir)/Xext/libXext.a \
|
$(top_builddir)/Xext/libXext.a \
|
||||||
$(top_builddir)/randr/librandr.a \
|
$(top_builddir)/randr/librandr.a \
|
||||||
$(top_builddir)/render/librender.a \
|
$(top_builddir)/render/librender.a \
|
||||||
|
$(top_builddir)/xfixes/libxfixes.a \
|
||||||
$(top_builddir)/dix/libxpstubs.a \
|
$(top_builddir)/dix/libxpstubs.a \
|
||||||
$(XSERVER_LIBS) \
|
$(XSERVER_LIBS) \
|
||||||
-lm -lz
|
-lm -lz
|
||||||
|
|
|
@ -40,7 +40,7 @@ smiCardInit (KdCardInfo *card)
|
||||||
|
|
||||||
(void) smiMapReg (card, smic);
|
(void) smiMapReg (card, smic);
|
||||||
|
|
||||||
if (!fbdevInitialize (card, &smic->fbdev))
|
if (!subInitialize (card, &smic->sub))
|
||||||
{
|
{
|
||||||
xfree (smic);
|
xfree (smic);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -62,7 +62,7 @@ smiScreenInit (KdScreenInfo *screen)
|
||||||
if (!smis)
|
if (!smis)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
memset (smis, '\0', sizeof (SmiScreenInfo));
|
memset (smis, '\0', sizeof (SmiScreenInfo));
|
||||||
if (!fbdevScreenInitialize (screen, &smis->fbdev))
|
if (!subScreenInitialize (screen, &smis->sub))
|
||||||
{
|
{
|
||||||
xfree (smis);
|
xfree (smis);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -70,7 +70,11 @@ smiScreenInit (KdScreenInfo *screen)
|
||||||
if (!smic->reg_base)
|
if (!smic->reg_base)
|
||||||
screen->dumb = TRUE;
|
screen->dumb = TRUE;
|
||||||
screen->softCursor = TRUE;
|
screen->softCursor = TRUE;
|
||||||
smis->screen = smic->fbdev.fb;
|
#ifdef SMI_VESA
|
||||||
|
smis->screen = smis->sub.fb;
|
||||||
|
#else
|
||||||
|
smis->screen = smic->sub.fb;
|
||||||
|
#endif
|
||||||
screen->driver = smis;
|
screen->driver = smis;
|
||||||
LEAVE();
|
LEAVE();
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -89,7 +93,7 @@ smiInitScreen (ScreenPtr pScreen)
|
||||||
smiInitVideo(pScreen);
|
smiInitVideo(pScreen);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
ret = fbdevInitScreen (pScreen);
|
ret = subInitScreen (pScreen);
|
||||||
LEAVE();
|
LEAVE();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -106,7 +110,7 @@ smiRandRSetConfig (ScreenPtr pScreen,
|
||||||
ENTER ();
|
ENTER ();
|
||||||
KdCheckSync (pScreen);
|
KdCheckSync (pScreen);
|
||||||
|
|
||||||
ret = fbdevRandRSetConfig (pScreen, randr, rate, pSize);
|
ret = subRandRSetConfig (pScreen, randr, rate, pSize);
|
||||||
LEAVE();
|
LEAVE();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -127,7 +131,7 @@ Bool
|
||||||
smiFinishInitScreen (ScreenPtr pScreen)
|
smiFinishInitScreen (ScreenPtr pScreen)
|
||||||
{
|
{
|
||||||
Bool ret;
|
Bool ret;
|
||||||
ret = fbdevFinishInitScreen (pScreen);
|
ret = subFinishInitScreen (pScreen);
|
||||||
#ifdef RANDR
|
#ifdef RANDR
|
||||||
smiRandRInit (pScreen);
|
smiRandRInit (pScreen);
|
||||||
#endif
|
#endif
|
||||||
|
@ -140,7 +144,7 @@ smiPreserve (KdCardInfo *card)
|
||||||
SmiCardInfo *smic = card->driver;
|
SmiCardInfo *smic = card->driver;
|
||||||
|
|
||||||
ENTER ();
|
ENTER ();
|
||||||
fbdevPreserve(card);
|
subPreserve(card);
|
||||||
LEAVE();
|
LEAVE();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -232,7 +236,7 @@ smiEnable (ScreenPtr pScreen)
|
||||||
SmiCardInfo *smic = pScreenPriv->card->driver;
|
SmiCardInfo *smic = pScreenPriv->card->driver;
|
||||||
|
|
||||||
ENTER ();
|
ENTER ();
|
||||||
if (!fbdevEnable (pScreen))
|
if (!subEnable (pScreen))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
smiSetMMIO (pScreenPriv->card, smic);
|
smiSetMMIO (pScreenPriv->card, smic);
|
||||||
|
@ -257,7 +261,7 @@ smiDisable (ScreenPtr pScreen)
|
||||||
KdXVDisable (pScreen);
|
KdXVDisable (pScreen);
|
||||||
#endif
|
#endif
|
||||||
smiResetMMIO (pScreenPriv->card, smic);
|
smiResetMMIO (pScreenPriv->card, smic);
|
||||||
fbdevDisable (pScreen);
|
subDisable (pScreen);
|
||||||
LEAVE ();
|
LEAVE ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -266,7 +270,7 @@ smiDPMS (ScreenPtr pScreen, int mode)
|
||||||
{
|
{
|
||||||
Bool ret;
|
Bool ret;
|
||||||
ENTER ();
|
ENTER ();
|
||||||
ret = fbdevDPMS (pScreen, mode);
|
ret = subDPMS (pScreen, mode);
|
||||||
LEAVE ();
|
LEAVE ();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -277,7 +281,7 @@ smiRestore (KdCardInfo *card)
|
||||||
SmiCardInfo *smic = card->driver;
|
SmiCardInfo *smic = card->driver;
|
||||||
|
|
||||||
ENTER ();
|
ENTER ();
|
||||||
fbdevRestore (card);
|
subRestore (card);
|
||||||
LEAVE();
|
LEAVE();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -287,7 +291,7 @@ smiScreenFini (KdScreenInfo *screen)
|
||||||
SmiScreenInfo *smis = (SmiScreenInfo *) screen->driver;
|
SmiScreenInfo *smis = (SmiScreenInfo *) screen->driver;
|
||||||
|
|
||||||
ENTER ();
|
ENTER ();
|
||||||
fbdevScreenFini (screen);
|
subScreenFini (screen);
|
||||||
xfree (smis);
|
xfree (smis);
|
||||||
screen->driver = 0;
|
screen->driver = 0;
|
||||||
LEAVE ();
|
LEAVE ();
|
||||||
|
@ -300,7 +304,7 @@ smiCardFini (KdCardInfo *card)
|
||||||
|
|
||||||
ENTER ();
|
ENTER ();
|
||||||
smiUnmapReg (card, smic);
|
smiUnmapReg (card, smic);
|
||||||
fbdevCardFini (card);
|
subCardFini (card);
|
||||||
LEAVE ();
|
LEAVE ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -334,8 +338,8 @@ KdCardFuncs smiFuncs = {
|
||||||
smiDrawDisable, /* disableAccel */
|
smiDrawDisable, /* disableAccel */
|
||||||
smiDrawFini, /* finiAccel */
|
smiDrawFini, /* finiAccel */
|
||||||
|
|
||||||
fbdevGetColors, /* getColors */
|
subGetColors, /* getColors */
|
||||||
fbdevPutColors, /* putColors */
|
subPutColors, /* putColors */
|
||||||
|
|
||||||
smiFinishInitScreen, /* finishInitScreen */
|
smiFinishInitScreen, /* finishInitScreen */
|
||||||
};
|
};
|
||||||
|
|
|
@ -25,7 +25,49 @@
|
||||||
|
|
||||||
#ifndef _SMI_H_
|
#ifndef _SMI_H_
|
||||||
#define _SMI_H_
|
#define _SMI_H_
|
||||||
|
|
||||||
|
#define SMI_VESA 1
|
||||||
|
|
||||||
|
#ifdef SMI_VESA
|
||||||
|
#include <vesa.h>
|
||||||
|
#define subGetColors vesaGetColors
|
||||||
|
#define subPutColors vesaPutColors
|
||||||
|
#define subInitialize vesaInitialize
|
||||||
|
#define subScreenInitialize vesaScreenInitialize
|
||||||
|
#define subInitScreen vesaInitScreen
|
||||||
|
#define subRandRSetConfig vesaRandRSetConfig
|
||||||
|
#define subFinishInitScreen vesaFinishInitScreen
|
||||||
|
#define subPreserve vesaPreserve
|
||||||
|
#define subEnable vesaEnable
|
||||||
|
#define subDPMS vesaDPMS
|
||||||
|
#define subRestore vesaRestore
|
||||||
|
#define subScreenFini vesaScreenFini
|
||||||
|
#define subCardFini vesaCardFini
|
||||||
|
#define subDisable vesaDisable
|
||||||
|
#define SubCardPrivRec VesaCardPrivRec
|
||||||
|
#define SubScreenPrivRec VesaScreenPrivRec
|
||||||
|
#define subProcessArgument(c,v,i) vesaProcessArgument(c,v,i)
|
||||||
|
#else
|
||||||
#include <fbdev.h>
|
#include <fbdev.h>
|
||||||
|
#define subGetColors fbdevGetColors
|
||||||
|
#define subPutColors fbdevPutColors
|
||||||
|
#define subInitialize fbdevInitialize
|
||||||
|
#define subScreenInitialize fbdevScreenInitialize
|
||||||
|
#define subInitScreen fbdevInitScreen
|
||||||
|
#define subRandRSetConfig fbdevRandRSetConfig
|
||||||
|
#define subFinishInitScreen fbdevFinishInitScreen
|
||||||
|
#define subPreserve fbdevPreserve
|
||||||
|
#define subEnable fbdevEnable
|
||||||
|
#define subDPMS fbdevDPMS
|
||||||
|
#define subRestore fbdevRestore
|
||||||
|
#define subScreenFini fbdevScreenFini
|
||||||
|
#define subCardFini fbdevCardFini
|
||||||
|
#define subDisable fbdevDisable
|
||||||
|
#define SubCardPrivRec FbdevPriv
|
||||||
|
#define SubScreenPrivRec FbdevScrPriv
|
||||||
|
#define subProcessArgument(c,v,i) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "kxv.h"
|
#include "kxv.h"
|
||||||
|
|
||||||
#define DEBUG
|
#define DEBUG
|
||||||
|
@ -124,7 +166,7 @@ typedef struct _DPR {
|
||||||
#define VGA_SEQ_DATA 0x3C5
|
#define VGA_SEQ_DATA 0x3C5
|
||||||
|
|
||||||
typedef struct _smiCardInfo {
|
typedef struct _smiCardInfo {
|
||||||
FbdevPriv fbdev;
|
SubCardPrivRec sub;
|
||||||
CARD16 io_base;
|
CARD16 io_base;
|
||||||
CARD8 *reg_base;
|
CARD8 *reg_base;
|
||||||
DPR *dpr;
|
DPR *dpr;
|
||||||
|
@ -135,7 +177,7 @@ typedef struct _smiCardInfo {
|
||||||
#define smiCardInfo(kd) SmiCardInfo *smic = getSmiCardInfo(kd)
|
#define smiCardInfo(kd) SmiCardInfo *smic = getSmiCardInfo(kd)
|
||||||
|
|
||||||
typedef struct _smiScreenInfo {
|
typedef struct _smiScreenInfo {
|
||||||
FbdevScrPriv fbdev;
|
SubScreenPrivRec sub;
|
||||||
CARD8 *screen;
|
CARD8 *screen;
|
||||||
CARD32 stride;
|
CARD32 stride;
|
||||||
CARD32 data_format;
|
CARD32 data_format;
|
||||||
|
|
|
@ -55,7 +55,7 @@ ddxProcessArgument (int argc, char **argv, int i)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
/* if (!(ret = vesaProcessArgument (argc, argv, i))) */
|
if (!(ret = subProcessArgument (argc, argv, i)))
|
||||||
ret = KdProcessArgument(argc, argv, i);
|
ret = KdProcessArgument(argc, argv, i);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user