summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux-core/drm_modes.c11
1 files changed, 9 insertions, 2 deletions
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 &&