summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2009-10-26 15:10:30 -0400
committerPeter Hutterer <peter.hutterer@who-t.net>2009-11-03 13:26:37 +1000
commitf61376b1365b558cf4d05e370cbea807ae168b27 (patch)
treeaa1891ade8d0ec776e54d6da892f3da8acdd1910
parent263d2b05d6d8be15737a8d6c18071eb94d667b42 (diff)
modes: De-duplicate a clock range check.
Signed-off-by: Adam Jackson <ajax@redhat.com> (cherry picked from commit ba2d39dd5428cb5922b797a1d4ea45b859412b40)
-rw-r--r--hw/xfree86/common/xf86Mode.c29
1 files changed, 12 insertions, 17 deletions
diff --git a/hw/xfree86/common/xf86Mode.c b/hw/xfree86/common/xf86Mode.c
index 0e43946c5..4a948d752 100644
--- a/hw/xfree86/common/xf86Mode.c
+++ b/hw/xfree86/common/xf86Mode.c
@@ -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 ...]
@@ -259,12 +268,7 @@ xf86FindClockRangeForMode(ClockRangePtr clockRanges, DisplayModePtr p)
ClockRangePtr cp;
for (cp = clockRanges; ; cp = cp->next)
- if (!cp ||
- ((p->Clock >= cp->minClock) &&
- (p->Clock <= cp->maxClock) &&
- (cp->interlaceAllowed || !(p->Flags & V_INTERLACE)) &&
- (cp->doubleScanAllowed ||
- ((p->VScan <= 1) && !(p->Flags & V_DBLSCAN)))))
+ if (!cp || modeInClockRange(cp, p))
return cp;
}
@@ -979,11 +983,7 @@ xf86CheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode, int flags)
if (scrp->progClock) {
/* Check clock is in range */
for (cp = scrp->clockRanges; cp != NULL; cp = cp->next) {
- if ((cp->minClock <= mode->Clock) &&
- (cp->maxClock >= mode->Clock) &&
- (cp->interlaceAllowed || !(mode->Flags & V_INTERLACE)) &&
- (cp->doubleScanAllowed ||
- ((!(mode->Flags & V_DBLSCAN)) && (mode->VScan <= 1))))
+ if (modeInClockRange(cp, mode))
break;
}
if (cp == NULL) {
@@ -999,12 +999,7 @@ xf86CheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode, int flags)
status = MODE_CLOCK_RANGE;
/* Check clock is in range */
for (cp = scrp->clockRanges; cp != NULL; cp = cp->next) {
- if ((cp->minClock <= mode->Clock) &&
- (cp->maxClock >= mode->Clock) &&
- (cp->interlaceAllowed || !(mode->Flags & V_INTERLACE)) &&
- (cp->doubleScanAllowed ||
- ((!(mode->Flags & V_DBLSCAN)) && (mode->VScan <= 1)))) {
-
+ if (modeInClockRange(cp, mode)) {
/*
* Clock is in range, so if it is not a programmable clock,
* find a matching clock.