xfree86: Hide some pre-randr mode validation details
Acked-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Aaron Plattner <aplattner@nvidia.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
70b402be26
commit
b5fbe9c632
|
@ -368,22 +368,11 @@ xf86GetBppFromDepth(ScrnInfoPtr pScrn, int depth);
|
||||||
|
|
||||||
/* xf86Mode.c */
|
/* xf86Mode.c */
|
||||||
|
|
||||||
extern _X_EXPORT int
|
|
||||||
xf86GetNearestClock(ScrnInfoPtr scrp, int freq, Bool allowDiv2,
|
|
||||||
int DivFactor, int MulFactor, int *divider);
|
|
||||||
extern _X_EXPORT const char *
|
extern _X_EXPORT const char *
|
||||||
xf86ModeStatusToString(ModeStatus status);
|
xf86ModeStatusToString(ModeStatus status);
|
||||||
extern _X_EXPORT ModeStatus
|
extern _X_EXPORT ModeStatus
|
||||||
xf86LookupMode(ScrnInfoPtr scrp, DisplayModePtr modep,
|
|
||||||
ClockRangePtr clockRanges, LookupModeFlags strategy);
|
|
||||||
extern _X_EXPORT ModeStatus
|
|
||||||
xf86CheckModeForMonitor(DisplayModePtr mode, MonPtr monitor);
|
xf86CheckModeForMonitor(DisplayModePtr mode, MonPtr monitor);
|
||||||
extern _X_EXPORT ModeStatus
|
extern _X_EXPORT ModeStatus
|
||||||
xf86InitialCheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode,
|
|
||||||
ClockRangePtr clockRanges,
|
|
||||||
LookupModeFlags strategy,
|
|
||||||
int maxPitch, int virtualX, int virtualY);
|
|
||||||
extern _X_EXPORT ModeStatus
|
|
||||||
xf86CheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode, int flags);
|
xf86CheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode, int flags);
|
||||||
extern _X_EXPORT int
|
extern _X_EXPORT int
|
||||||
xf86ValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes,
|
xf86ValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes,
|
||||||
|
|
|
@ -112,11 +112,10 @@ printModeRejectMessage(int index, DisplayModePtr p, int status)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* xf86GetNearestClock --
|
* Find closest clock to given frequency (in kHz). This assumes the
|
||||||
* Find closest clock to given frequency (in kHz). This assumes the
|
* number of clocks is greater than zero.
|
||||||
* number of clocks is greater than zero.
|
|
||||||
*/
|
*/
|
||||||
int
|
static int
|
||||||
xf86GetNearestClock(ScrnInfoPtr scrp, int freq, Bool allowDiv2,
|
xf86GetNearestClock(ScrnInfoPtr scrp, int freq, Bool allowDiv2,
|
||||||
int DivFactor, int MulFactor, int *divider)
|
int DivFactor, int MulFactor, int *divider)
|
||||||
{
|
{
|
||||||
|
@ -451,7 +450,7 @@ xf86HandleBuiltinMode(ScrnInfoPtr scrp,
|
||||||
* reason.
|
* reason.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ModeStatus
|
static ModeStatus
|
||||||
xf86LookupMode(ScrnInfoPtr scrp, DisplayModePtr modep,
|
xf86LookupMode(ScrnInfoPtr scrp, DisplayModePtr modep,
|
||||||
ClockRangePtr clockRanges, LookupModeFlags strategy)
|
ClockRangePtr clockRanges, LookupModeFlags strategy)
|
||||||
{
|
{
|
||||||
|
@ -845,7 +844,7 @@ xf86CheckModeSize(ScrnInfoPtr scrp, int w, int x, int y)
|
||||||
* maxVValue maximum vertical timing value
|
* maxVValue maximum vertical timing value
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ModeStatus
|
static ModeStatus
|
||||||
xf86InitialCheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode,
|
xf86InitialCheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode,
|
||||||
ClockRangePtr clockRanges,
|
ClockRangePtr clockRanges,
|
||||||
LookupModeFlags strategy,
|
LookupModeFlags strategy,
|
||||||
|
|
|
@ -6955,28 +6955,6 @@ and needs to do its own mode validation, it might be able to make
|
||||||
use of some of these secondary mode helper functions.
|
use of some of these secondary mode helper functions.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<blockquote><para>
|
|
||||||
<programlisting>
|
|
||||||
int xf86GetNearestClock(ScrnInfoPtr scrp, int freq, Bool allowDiv2,
|
|
||||||
int *divider);
|
|
||||||
</programlisting>
|
|
||||||
<blockquote><para>
|
|
||||||
This function returns the index of the closest clock to the
|
|
||||||
frequency <parameter>freq</parameter> given (in kHz). It assumes that
|
|
||||||
the number of clocks is greater than zero. It requires that the
|
|
||||||
<structfield>numClocks</structfield> and <structfield>clock</structfield> fields of the
|
|
||||||
<structname>ScrnInfoRec</structname> are initialised. The
|
|
||||||
<structfield>allowDiv2</structfield> field determines if the clocks can be
|
|
||||||
halved. The <parameter>*divider</parameter> return value indicates
|
|
||||||
whether clock division is used when determining the clock returned.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
This function is only for non-programmable clocks.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
</blockquote></para></blockquote>
|
|
||||||
|
|
||||||
<blockquote><para>
|
<blockquote><para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
const char *xf86ModeStatusToString(ModeStatus status);
|
const char *xf86ModeStatusToString(ModeStatus status);
|
||||||
|
@ -6988,59 +6966,6 @@ use of some of these secondary mode helper functions.
|
||||||
|
|
||||||
</blockquote></para></blockquote>
|
</blockquote></para></blockquote>
|
||||||
|
|
||||||
<blockquote><para>
|
|
||||||
<programlisting>
|
|
||||||
ModeStatus xf86LookupMode(ScrnInfoPtr scrp, DisplayModePtr modep,
|
|
||||||
ClockRangePtr clockRanges, LookupModeFlags strategy);
|
|
||||||
</programlisting>
|
|
||||||
<blockquote><para>
|
|
||||||
This function takes a pointer to a mode with the name filled in,
|
|
||||||
and looks for a mode in the <structfield>modePool</structfield> list which
|
|
||||||
matches. The parameters of the matching mode are filled in to
|
|
||||||
<parameter>*modep</parameter>. The <parameter>clockRanges</parameter> and
|
|
||||||
<parameter>strategy</parameter> parameters are as for the
|
|
||||||
<function>xf86ValidateModes()</function> function above.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
This function requires the <structfield>modePool</structfield>,
|
|
||||||
<structfield>clock[]</structfield>, <structfield>numClocks</structfield> and
|
|
||||||
<structfield>progClock</structfield> fields of the <structname>ScrnInfoRec</structname>
|
|
||||||
to be initialised before being called.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The return value is <constant>MODE_OK</constant> if a mode was found.
|
|
||||||
Otherwise it indicates why a matching mode could not be found.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
</blockquote></para></blockquote>
|
|
||||||
|
|
||||||
<blockquote><para>
|
|
||||||
<programlisting>
|
|
||||||
ModeStatus xf86InitialCheckModeForDriver(ScrnInfoPtr scrp,
|
|
||||||
DisplayModePtr mode, ClockRangePtr clockRanges,
|
|
||||||
LookupModeFlags strategy, int maxPitch,
|
|
||||||
int virtualX, int virtualY);
|
|
||||||
</programlisting>
|
|
||||||
<blockquote><para>
|
|
||||||
This function checks the passed mode against some basic driver
|
|
||||||
constraints. Apart from the ones passed explicitly, the
|
|
||||||
<structfield>maxHValue</structfield> and <structfield>maxVValue</structfield> fields of
|
|
||||||
the <structname>ScrnInfoRec</structname> are also used. If the
|
|
||||||
<structfield>ValidMode</structfield> field of the <structname>ScrnInfoRec</structname>
|
|
||||||
is set, that function is also called to check the mode. Next, the
|
|
||||||
mode is checked against the monitor's constraints.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
If the mode is consistent with all constraints, the return value
|
|
||||||
is <constant>MODE_OK</constant>. Otherwise the return value indicates
|
|
||||||
which constraint wasn't met.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
</blockquote></para></blockquote>
|
|
||||||
|
|
||||||
<blockquote><para>
|
<blockquote><para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
void xf86DeleteMode(DisplayModePtr *modeList, DisplayModePtr mode);
|
void xf86DeleteMode(DisplayModePtr *modeList, DisplayModePtr mode);
|
||||||
|
|
Loading…
Reference in New Issue