modes: De-duplicate a clock range check.
Signed-off-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
25236d19e6
commit
ba2d39dd54
|
@ -249,6 +249,15 @@ xf86ShowClockRanges(ScrnInfoPtr scrp, ClockRangePtr clockRanges)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Bool
|
||||||
|
modeInClockRange(ClockRangePtr cp, DisplayModePtr p)
|
||||||
|
{
|
||||||
|
return ((p->Clock >= cp->minClock) &&
|
||||||
|
(p->Clock <= cp->maxClock) &&
|
||||||
|
(cp->interlaceAllowed || !(p->Flags & V_INTERLACE)) &&
|
||||||
|
(cp->doubleScanAllowed ||
|
||||||
|
((p->VScan <= 1) && !(p->Flags & V_DBLSCAN))));
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* xf86FindClockRangeForMode() [... like the name says ...]
|
* xf86FindClockRangeForMode() [... like the name says ...]
|
||||||
|
@ -259,12 +268,7 @@ xf86FindClockRangeForMode(ClockRangePtr clockRanges, DisplayModePtr p)
|
||||||
ClockRangePtr cp;
|
ClockRangePtr cp;
|
||||||
|
|
||||||
for (cp = clockRanges; ; cp = cp->next)
|
for (cp = clockRanges; ; cp = cp->next)
|
||||||
if (!cp ||
|
if (!cp || modeInClockRange(cp, p))
|
||||||
((p->Clock >= cp->minClock) &&
|
|
||||||
(p->Clock <= cp->maxClock) &&
|
|
||||||
(cp->interlaceAllowed || !(p->Flags & V_INTERLACE)) &&
|
|
||||||
(cp->doubleScanAllowed ||
|
|
||||||
((p->VScan <= 1) && !(p->Flags & V_DBLSCAN)))))
|
|
||||||
return cp;
|
return cp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -979,11 +983,7 @@ xf86CheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode, int flags)
|
||||||
if (scrp->progClock) {
|
if (scrp->progClock) {
|
||||||
/* Check clock is in range */
|
/* Check clock is in range */
|
||||||
for (cp = scrp->clockRanges; cp != NULL; cp = cp->next) {
|
for (cp = scrp->clockRanges; cp != NULL; cp = cp->next) {
|
||||||
if ((cp->minClock <= mode->Clock) &&
|
if (modeInClockRange(cp, mode))
|
||||||
(cp->maxClock >= mode->Clock) &&
|
|
||||||
(cp->interlaceAllowed || !(mode->Flags & V_INTERLACE)) &&
|
|
||||||
(cp->doubleScanAllowed ||
|
|
||||||
((!(mode->Flags & V_DBLSCAN)) && (mode->VScan <= 1))))
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (cp == NULL) {
|
if (cp == NULL) {
|
||||||
|
@ -999,12 +999,7 @@ xf86CheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode, int flags)
|
||||||
status = MODE_CLOCK_RANGE;
|
status = MODE_CLOCK_RANGE;
|
||||||
/* Check clock is in range */
|
/* Check clock is in range */
|
||||||
for (cp = scrp->clockRanges; cp != NULL; cp = cp->next) {
|
for (cp = scrp->clockRanges; cp != NULL; cp = cp->next) {
|
||||||
if ((cp->minClock <= mode->Clock) &&
|
if (modeInClockRange(cp, mode)) {
|
||||||
(cp->maxClock >= mode->Clock) &&
|
|
||||||
(cp->interlaceAllowed || !(mode->Flags & V_INTERLACE)) &&
|
|
||||||
(cp->doubleScanAllowed ||
|
|
||||||
((!(mode->Flags & V_DBLSCAN)) && (mode->VScan <= 1)))) {
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Clock is in range, so if it is not a programmable clock,
|
* Clock is in range, so if it is not a programmable clock,
|
||||||
* find a matching clock.
|
* find a matching clock.
|
||||||
|
|
Loading…
Reference in New Issue