Conditionally compile old-server compatibility code in.

This also replaces calls to compat code with the real names of the functions,
and slips #defines to an i830-namespaced version in when doing compat.
The current server version (7.1.99.2) is still left as requiring compat code,
since the version hasn't been bumped yet.

This also fixes some failures to call the compat code, and some failures to
actually compile the compat code.  Oops.
This commit is contained in:
Eric Anholt 2006-11-28 16:36:09 -08:00
parent 8d9ba2405d
commit 9e4e7d4fa2
10 changed files with 81 additions and 102 deletions

View File

@ -62,6 +62,7 @@ i810_drv_la_SOURCES = \
i830_display.h \
i830_driver.c \
i830_dvo.c \
i830_edid_modes.c \
i830.h \
i830_i2c.c \
i830_io.c \
@ -79,6 +80,7 @@ i810_drv_la_SOURCES = \
i830_tv.c \
i830_xf86Modes.h \
i830_xf86Modes.c \
i830_xf86cvt.c \
i915_3d.c \
i915_3d.h \
i915_reg.h \

View File

@ -316,7 +316,7 @@ i830_crt_get_modes(ScrnInfoPtr pScrn, I830OutputPtr output)
fixed_mon.vrefresh[0].lo = 50.0;
fixed_mon.vrefresh[0].hi = 70.0;
modes = i830xf86DuplicateModes(pScrn, pScrn->monitor->Modes);
modes = xf86DuplicateModes(pScrn, pScrn->monitor->Modes);
i830xf86ValidateModesSync(pScrn, modes, &fixed_mon);
i830xf86PruneInvalidModes(pScrn, &modes, TRUE);

View File

@ -321,7 +321,7 @@ i830PipeFindClosestMode(ScrnInfoPtr pScrn, int pipe, DisplayModePtr pMode)
assert(pScan->VRefresh != 0.0);
/* If there's an exact match, we're done. */
if (I830ModesEqual(pScan, pMode)) {
if (xf86ModesEqual(pScan, pMode)) {
pBest = pMode;
break;
}
@ -366,7 +366,7 @@ i830PipeFindClosestMode(ScrnInfoPtr pScrn, int pipe, DisplayModePtr pMode)
"No suitable mode found to program for the pipe.\n"
" continuing with desired mode %dx%d@%.1f\n",
pMode->HDisplay, pMode->VDisplay, pMode->VRefresh);
} else if (!I830ModesEqual(pBest, pMode)) {
} else if (!xf86ModesEqual(pBest, pMode)) {
xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
"Choosing pipe %d's mode %dx%d@%.1f instead of xf86 "
"mode %dx%d@%.1f\n", pipe,
@ -434,7 +434,7 @@ i830PipeSetMode(ScrnInfoPtr pScrn, DisplayModePtr pMode, int pipe,
Bool didLock = FALSE;
#endif
if (I830ModesEqual(&pI830Pipe->curMode, pMode))
if (xf86ModesEqual(&pI830Pipe->curMode, pMode))
return TRUE;
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Requested pix clock: %d\n",
@ -957,7 +957,7 @@ i830GetLoadDetectPipe(ScrnInfoPtr pScrn, I830OutputPtr output)
output->pipe = i;
output->enabled = TRUE;
I830xf86SetModeCrtc(&mode, INTERLACE_HALVE_V);
xf86SetModeCrtc(&mode, INTERLACE_HALVE_V);
i830PipeSetMode(pScrn, &mode, i, FALSE);

View File

@ -25,6 +25,8 @@
*
*/
#include "xorgVersion.h"
/* i830_display.c */
DisplayModePtr
i830PipeFindClosestMode(ScrnInfoPtr pScrn, int pipe, DisplayModePtr pMode);
@ -41,8 +43,12 @@ Bool i830PipeInUse(ScrnInfoPtr pScrn, int pipe);
/** @{
*/
DisplayModePtr i830xf86DDCGetModes(int scrnIndex, xf86MonPtr DDC);
DisplayModePtr i830xf86CVTMode(int HDisplay, int VDisplay, float VRefresh,
Bool Reduced, Bool Interlaced);
#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,1,99,2,0)
DisplayModePtr i830_xf86DDCGetModes(int scrnIndex, xf86MonPtr DDC);
DisplayModePtr i830_xf86CVTMode(int HDisplay, int VDisplay, float VRefresh,
Bool Reduced, Bool Interlaced);
#define xf86DDCGetModes i830_xf86DDCGetModes
#define xf86CVTMode i830_xf86CVTMode
#endif /* XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,1,99,2) */
/** @} */

View File

@ -25,8 +25,8 @@
* @file This is a copy of edid_modes.c from the X Server, for compatibility
* with old X Servers.
*/
#ifdef HAVE_XORG_CONFIG_H
#include <xorg-config.h>
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "xf86.h"
@ -35,6 +35,10 @@
#include "property.h"
#include "propertyst.h"
#include "xf86DDC.h"
#include "i830.h"
#include "i830_display.h"
#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,1,99,2,0)
/*
* TODO:
@ -92,7 +96,7 @@ DDCModesFromStandardTiming(int scrnIndex, struct std_timings *timing)
for (i = 0; i < STD_TIMINGS; i++) {
if (timing[i].hsize && timing[i].vsize && timing[i].refresh) {
Mode = i830xf86CVTMode(timing[i].hsize, timing[i].vsize,
Mode = xf86CVTMode(timing[i].hsize, timing[i].vsize,
timing[i].refresh, FALSE, FALSE);
Mode->type = M_T_DRIVER;
Modes = xf86ModesAdd(Modes, Mode);
@ -164,52 +168,8 @@ DDCModeFromDetailedTiming(int scrnIndex, struct detailed_timings *timing,
return Mode;
}
/*
*
*/
static void
DDCGuessRangesFromModes(int scrnIndex, MonPtr Monitor, DisplayModePtr Modes)
{
DisplayModePtr Mode = Modes;
if (!Monitor || !Modes)
return;
/* set up the ranges for scanning through the modes */
Monitor->nHsync = 1;
Monitor->hsync[0].lo = 1024.0;
Monitor->hsync[0].hi = 0.0;
Monitor->nVrefresh = 1;
Monitor->vrefresh[0].lo = 1024.0;
Monitor->vrefresh[0].hi = 0.0;
while (Mode) {
if (!Mode->HSync)
Mode->HSync = ((float) Mode->Clock ) / ((float) Mode->HTotal);
if (!Mode->VRefresh)
Mode->VRefresh = (1000.0 * ((float) Mode->Clock)) /
((float) (Mode->HTotal * Mode->VTotal));
if (Mode->HSync < Monitor->hsync[0].lo)
Monitor->hsync[0].lo = Mode->HSync;
if (Mode->HSync > Monitor->hsync[0].hi)
Monitor->hsync[0].hi = Mode->HSync;
if (Mode->VRefresh < Monitor->vrefresh[0].lo)
Monitor->vrefresh[0].lo = Mode->VRefresh;
if (Mode->VRefresh > Monitor->vrefresh[0].hi)
Monitor->vrefresh[0].hi = Mode->VRefresh;
Mode = Mode->next;
}
}
DisplayModePtr
i830xf86DDCGetModes(int scrnIndex, xf86MonPtr DDC)
xf86DDCGetModes(int scrnIndex, xf86MonPtr DDC)
{
int preferred, i;
DisplayModePtr Modes = NULL, Mode;
@ -247,3 +207,5 @@ i830xf86DDCGetModes(int scrnIndex, xf86MonPtr DDC)
return Modes;
}
#endif /* XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,1,99,2,0) */

View File

@ -158,11 +158,11 @@ i830_reprobe_output_modes(ScrnInfoPtr pScrn)
/* The code to choose the best mode per pipe later on will require
* VRefresh to be set.
*/
mode->VRefresh = i830xf86ModeVRefresh(mode);
I830xf86SetModeCrtc(mode, INTERLACE_HALVE_V);
mode->VRefresh = xf86ModeVRefresh(mode);
xf86SetModeCrtc(mode, INTERLACE_HALVE_V);
#ifdef DEBUG_REPROBE
PrintModeline(pScrn->scrnIndex, mode);
xf86PrintModeline(pScrn->scrnIndex, mode);
#endif
}
}
@ -203,7 +203,7 @@ i830_set_xf86_modes_from_outputs(ScrnInfoPtr pScrn)
for (i = 0; i < pI830->num_outputs; i++) {
if (pI830->output[i].probed_modes != NULL) {
pScrn->modes =
i830xf86DuplicateModes(pScrn, pI830->output[i].probed_modes);
xf86DuplicateModes(pScrn, pI830->output[i].probed_modes);
break;
}
}

View File

@ -117,7 +117,7 @@ I830RandRGetInfo (ScreenPtr pScreen, Rotation *rotations)
return FALSE;
RRRegisterRate (pScreen, pSize, refresh);
if (I830ModesEqual(mode, scrp->currentMode) &&
if (xf86ModesEqual(mode, scrp->currentMode) &&
mode->HDisplay == scrp->virtualX &&
mode->VDisplay == scrp->virtualY)
{
@ -509,7 +509,7 @@ I830RandRCrtcNotify (RRCrtcPtr crtc)
for (j = 0; j < rrout->numModes; j++)
{
DisplayModePtr outMode = rrout->modes[j]->devPrivate;
if (I830ModesEqual(pipeMode, outMode))
if (xf86ModesEqual(pipeMode, outMode))
{
mode = rrout->modes[j];
break;

View File

@ -45,13 +45,14 @@
* there but we still want to use. We need to come up with better API here.
*/
#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,1,99,2,0)
/**
* Calculates the horizontal sync rate of a mode.
*
* Exact copy of xf86Mode.c's.
*/
double
i830xf86ModeHSync(DisplayModePtr mode)
xf86ModeHSync(DisplayModePtr mode)
{
double hsync = 0.0;
@ -69,7 +70,7 @@ i830xf86ModeHSync(DisplayModePtr mode)
* Exact copy of xf86Mode.c's.
*/
double
i830xf86ModeVRefresh(DisplayModePtr mode)
xf86ModeVRefresh(DisplayModePtr mode)
{
double refresh = 0.0;
@ -89,7 +90,7 @@ i830xf86ModeVRefresh(DisplayModePtr mode)
/** Sets a default mode name of <width>x<height> on a mode. */
void
i830xf86SetModeDefaultName(DisplayModePtr mode)
xf86SetModeDefaultName(DisplayModePtr mode)
{
if (mode->name != NULL)
xfree(mode->name);
@ -98,7 +99,7 @@ i830xf86SetModeDefaultName(DisplayModePtr mode)
}
/*
* I830xf86SetModeCrtc
* xf86SetModeCrtc
*
* Initialises the Crtc parameters for a mode. The initialisation includes
* adjustments for interlaced and double scan modes.
@ -106,7 +107,7 @@ i830xf86SetModeDefaultName(DisplayModePtr mode)
* Exact copy of xf86Mode.c's.
*/
void
I830xf86SetModeCrtc(DisplayModePtr p, int adjustFlags)
xf86SetModeCrtc(DisplayModePtr p, int adjustFlags)
{
if ((p == NULL) || ((p->type & M_T_CRTC_C) == M_T_BUILTIN))
return;
@ -191,7 +192,7 @@ I830xf86SetModeCrtc(DisplayModePtr p, int adjustFlags)
* Allocates and returns a copy of pMode, including pointers within pMode.
*/
DisplayModePtr
i830xf86DuplicateMode(DisplayModePtr pMode)
xf86DuplicateMode(DisplayModePtr pMode)
{
DisplayModePtr pNew;
@ -200,7 +201,7 @@ i830xf86DuplicateMode(DisplayModePtr pMode)
pNew->next = NULL;
pNew->prev = NULL;
if (pNew->name == NULL) {
i830xf86SetModeDefaultName(pMode);
xf86SetModeDefaultName(pMode);
} else {
pNew->name = xnfstrdup(pMode->name);
}
@ -215,7 +216,7 @@ i830xf86DuplicateMode(DisplayModePtr pMode)
* \param modeList doubly-linked mode list
*/
DisplayModePtr
i830xf86DuplicateModes(ScrnInfoPtr pScrn, DisplayModePtr modeList)
xf86DuplicateModes(ScrnInfoPtr pScrn, DisplayModePtr modeList)
{
DisplayModePtr first = NULL, last = NULL;
DisplayModePtr mode;
@ -223,7 +224,7 @@ i830xf86DuplicateModes(ScrnInfoPtr pScrn, DisplayModePtr modeList)
for (mode = modeList; mode != NULL; mode = mode->next) {
DisplayModePtr new;
new = i830xf86DuplicateMode(mode);
new = xf86DuplicateMode(mode);
/* Insert pNew into modeList */
if (last) {
@ -249,7 +250,7 @@ i830xf86DuplicateModes(ScrnInfoPtr pScrn, DisplayModePtr modeList)
* This isn't in xf86Modes.c, but it might deserve to be there.
*/
Bool
I830ModesEqual(DisplayModePtr pMode1, DisplayModePtr pMode2)
xf86ModesEqual(DisplayModePtr pMode1, DisplayModePtr pMode2)
{
if (pMode1->Clock == pMode2->Clock &&
pMode1->HDisplay == pMode2->HDisplay &&
@ -285,7 +286,7 @@ add(char **p, char *new)
* Convenient VRefresh printing was added, though, compared to xf86Mode.c
*/
void
PrintModeline(int scrnIndex,DisplayModePtr mode)
xf86PrintModeline(int scrnIndex,DisplayModePtr mode)
{
char tmp[256];
char *flags = xnfcalloc(1, 1);
@ -317,9 +318,10 @@ PrintModeline(int scrnIndex,DisplayModePtr mode)
mode->name, mode->VRefresh, mode->Clock/1000., mode->HDisplay,
mode->HSyncStart, mode->HSyncEnd, mode->HTotal,
mode->VDisplay, mode->VSyncStart, mode->VSyncEnd,
mode->VTotal, flags, i830xf86ModeHSync(mode));
mode->VTotal, flags, xf86ModeHSync(mode));
xfree(flags);
}
#endif /* XORG_VERSION_CURRENT <= 7.1.99.2 */
/**
* Marks as bad any modes with unsupported flags.
@ -393,8 +395,8 @@ i830xf86ValidateModesSync(ScrnInfoPtr pScrn, DisplayModePtr modeList,
bad = TRUE;
for (i = 0; i < mon->nHsync; i++) {
if (i830xf86ModeHSync(mode) >= mon->hsync[i].lo &&
i830xf86ModeHSync(mode) <= mon->hsync[i].hi)
if (xf86ModeHSync(mode) >= mon->hsync[i].lo &&
xf86ModeHSync(mode) <= mon->hsync[i].hi)
{
bad = FALSE;
}
@ -404,8 +406,8 @@ i830xf86ValidateModesSync(ScrnInfoPtr pScrn, DisplayModePtr modeList,
bad = TRUE;
for (i = 0; i < mon->nVrefresh; i++) {
if (i830xf86ModeVRefresh(mode) >= mon->vrefresh[i].lo &&
i830xf86ModeVRefresh(mode) <= mon->vrefresh[i].hi)
if (xf86ModeVRefresh(mode) >= mon->vrefresh[i].lo &&
xf86ModeVRefresh(mode) <= mon->vrefresh[i].hi)
{
bad = FALSE;
}

View File

@ -25,26 +25,27 @@
*
*/
double
i830xf86ModeHSync(DisplayModePtr mode);
#include "xorgVersion.h"
double
i830xf86ModeVRefresh(DisplayModePtr mode);
DisplayModePtr
i830xf86DuplicateMode(DisplayModePtr pMode);
DisplayModePtr
i830xf86DuplicateModes(ScrnInfoPtr pScrn, DisplayModePtr modeList);
void
i830xf86SetModeDefaultName(DisplayModePtr mode);
void
I830xf86SetModeCrtc(DisplayModePtr p, int adjustFlags);
Bool
I830ModesEqual(DisplayModePtr pMode1, DisplayModePtr pMode2);
#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,1,99,2,0)
double i830_xf86ModeHSync(DisplayModePtr mode);
double i830_xf86ModeVRefresh(DisplayModePtr mode);
DisplayModePtr i830_xf86DuplicateMode(DisplayModePtr pMode);
DisplayModePtr i830_xf86DuplicateModes(ScrnInfoPtr pScrn,
DisplayModePtr modeList);
void i830_xf86SetModeDefaultName(DisplayModePtr mode);
void i830_xf86SetModeCrtc(DisplayModePtr p, int adjustFlags);
Bool i830_xf86ModesEqual(DisplayModePtr pMode1, DisplayModePtr pMode2);
void i830_xf86PrintModeline(int scrnIndex,DisplayModePtr mode);
#define xf86ModeHSync i830_xf86ModeHSync
#define xf86ModeVRefresh i830_xf86ModeVRefresh
#define xf86DuplicateMode i830_xf86DuplicateMode
#define xf86DuplicateModes i830_xf86DuplicateModes
#define xf86SetModeDefaultName i830_xf86SetModeDefaultName
#define xf86SetModeCrtc i830_xf86SetModeCrtc
#define xf86ModesEqual i830_xf86ModesEqual
#define xf86PrintModeline i830_xf86PrintModeline
#endif /* XORG_VERSION_CURRENT <= 7.1.99.2 */
void
i830xf86ValidateModesFlags(ScrnInfoPtr pScrn, DisplayModePtr modeList,
@ -72,6 +73,3 @@ i830xf86ValidateModesFlags(ScrnInfoPtr pScrn, DisplayModePtr modeList,
void
i830xf86ValidateModesUserConfig(ScrnInfoPtr pScrn, DisplayModePtr modeList);
void
PrintModeline(int scrnIndex,DisplayModePtr mode);

View File

@ -31,8 +31,16 @@
* code is shared directly.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "xf86.h"
#include "i830.h"
#include "i830_display.h"
#if XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,1,99,2,0)
/*
* Generate a CVT standard mode from HDisplay, VDisplay and VRefresh.
*
@ -58,8 +66,8 @@
*
*/
_X_EXPORT DisplayModePtr
i830xf86CVTMode(int HDisplay, int VDisplay, float VRefresh, Bool Reduced,
Bool Interlaced)
xf86CVTMode(int HDisplay, int VDisplay, float VRefresh, Bool Reduced,
Bool Interlaced)
{
DisplayModeRec *Mode = xnfalloc(sizeof(DisplayModeRec));
@ -295,3 +303,4 @@ i830xf86CVTMode(int HDisplay, int VDisplay, float VRefresh, Bool Reduced,
return Mode;
}
#endif /* XORG_VERSION_CURRENT <= XORG_VERSION_NUMERIC(7,1,99,2,0) */