I was going to apply this and fix it up, but got stuck at git-am ;-) On Tue, 14 Dec 2010 11:38:34 -0800, bfr...@chromium.org wrote: > + /* Only tested on pineview, should work on IS_9XX */ Yes, according to the docs I've checked so far, this is true for all chipsets (and sharing the same bits).
> + if (IS_PINEVIEW(dev)) { > + /* Set sync polarity for case when vbios did not */ > + char curhs, curvs, newhs, newvs; > + curhs = (lvds & LVDS_HSYNC_POLARITY) ? '-' : '+'; > + curvs = (lvds & LVDS_VSYNC_POLARITY) ? '-' : '+'; > + newhs = (adjusted_mode->flags & DRM_MODE_FLAG_NHSYNC) ? > + '-' : '+'; > + newvs = (adjusted_mode->flags & DRM_MODE_FLAG_NVSYNC) ? > + '-' : '+'; This unusual block of code sticks out like a sore thumb. (Admittedly, the whole of intel_display.c is ugly, but we want to try and improve it over time ;-) int lvds_sync = 0; if (adjusted_mode->flags & DRM_MODE_FLAG_NHSYNC) lvds_sync |= LVDS_HSYNC_POLARITY; if (adjusted_mode->flags & DRM_MODE_FLAG_NVSYNC) lvds_sync |= LVDS_VSYNC_POLARITY; if (lvds & (LVDS_HSYNC_POLARITY | LVDS_VSYNC_POLARITY) != lvds_sync) { char flags[2] = "-+"; DRM_INFO("Changing LVDS panel from (%chsync, %cvsync) to " "(%chsync, %cvsync)\n", flags[!(lvds & LVDS_HSYNC_POLARITY)], flags[!(lvds & LVDS_VSYNC_POLARITY)], flags[!(lvds_sync & LVDS_HSYNC_POLARITY)], flags[!(lvds_sync & LVDS_VSYNC_POLARITY)]); lvds &= ~(LVDS_HSYNC_POLARITY | LVDS_VSYNC_POLARITY); lvds |= lvds_sync; } -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx