From 40229b6ad539cebad5ebe8ca373796ca2422efdb Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 4 Jun 2008 10:34:34 +1000 Subject: drm: make mode comparison more betterer. This compares the clocks after converting to fb pico timings so we get the same answer if the X and fb modes are the same. --- linux-core/drm_modes.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'linux-core/drm_modes.c') diff --git a/linux-core/drm_modes.c b/linux-core/drm_modes.c index bf0d85ee..3ed427fb 100644 --- a/linux-core/drm_modes.c +++ b/linux-core/drm_modes.c @@ -276,8 +276,15 @@ EXPORT_SYMBOL(drm_mode_duplicate); */ bool drm_mode_equal(struct drm_display_mode *mode1, struct drm_display_mode *mode2) { - if (mode1->clock == mode2->clock && - mode1->hdisplay == mode2->hdisplay && + /* do clock check convert to PICOS so fb modes get matched + * the same */ + if (mode1->clock && mode2->clock) { + if (KHZ2PICOS(mode1->clock) != KHZ2PICOS(mode2->clock)) + return false; + } else if (mode1->clock != mode2->clock) + return false; + + if (mode1->hdisplay == mode2->hdisplay && mode1->hsync_start == mode2->hsync_start && mode1->hsync_end == mode2->hsync_end && mode1->htotal == mode2->htotal && -- cgit v1.2.3