dc_mode.pclk = (dc_mode.pclk / 5) * 8;
}
+ if (dc_mode.vmode & FB_VMODE_1000DIV1001) {
+ dc_mode.pclk = DIV_ROUND_UP((u64)dc_mode.pclk * 1001, 1000);
+ dc_mode.vmode &= ~FB_VMODE_1000DIV1001;
+ }
+
tegra_dc_to_fb_videomode(m, &dc_mode);
/* only interlaced required for VIC identification */
for (i = 1; i < modedb_size; i++) {
const struct fb_videomode *curr = &cea_modes[i];
- if (!fb_mode_is_equal(&m, curr))
+ if (!((m.refresh == curr->refresh ||
+ m.refresh + 1 == curr->refresh ||
+ m.refresh == curr->refresh + 1) &&
+ m.xres == curr->xres &&
+ m.yres == curr->yres &&
+ m.pixclock == curr->pixclock &&
+ m.hsync_len == curr->hsync_len &&
+ m.vsync_len == curr->vsync_len &&
+ m.left_margin == curr->left_margin &&
+ m.right_margin == curr->right_margin &&
+ m.upper_margin == curr->upper_margin &&
+ m.lower_margin == curr->lower_margin &&
+ m.sync == curr->sync &&
+ m.vmode == curr->vmode))
continue;
if (!best)