On Fri, 2015-08-14 at 16:09 +0300, Ville Syrjälä wrote: > On Fri, Aug 14, 2015 at 01:03:24PM +0300, Mika Kahola wrote: > > It is possible the we request to have a mode that has > > higher pixel clock than our HW can support. This patch > > checks if requested pixel clock is lower than the one > > supported by the HW. The requested mode is discarded > > if we cannot support the requested pixel clock. > > > > This patch applies to LVDS. > > > > V2: > > - removed computation for max pixel clock > > > > V3: > > - cleanup by removing unnecessary lines > > > > V4: > > - moved supported dotclock check from mode_valid() to intel_lvds_init() > > > > Signed-off-by: Mika Kahola <mika.kahola@xxxxxxxxx> > > --- > > drivers/gpu/drm/i915/intel_lvds.c | 15 +++++++++++---- > > 1 file changed, 11 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c > > index 881b5d1..06b9d1b 100644 > > --- a/drivers/gpu/drm/i915/intel_lvds.c > > +++ b/drivers/gpu/drm/i915/intel_lvds.c > > @@ -1098,8 +1098,11 @@ void intel_lvds_init(struct drm_device *dev) > > drm_mode_debug_printmodeline(scan); > > > > fixed_mode = drm_mode_duplicate(dev, scan); > > - if (fixed_mode) > > - goto out; > > + if (fixed_mode) { > > + if (fixed_mode->clock <= dev_priv->max_dotclk_freq) > > + goto out; > > + } > > + fixed_mode = NULL; > > } > > } > > > > @@ -1111,8 +1114,10 @@ void intel_lvds_init(struct drm_device *dev) > > fixed_mode = drm_mode_duplicate(dev, dev_priv->vbt.lfp_lvds_vbt_mode); > > if (fixed_mode) { > > fixed_mode->type |= DRM_MODE_TYPE_PREFERRED; > > - goto out; > > + if (fixed_mode->clock <= dev_priv->max_dotclk_freq) > > + goto out; > > } > > + fixed_mode = NULL; > > } > > > > /* > > @@ -1135,8 +1140,10 @@ void intel_lvds_init(struct drm_device *dev) > > DRM_DEBUG_KMS("using current (BIOS) mode: "); > > drm_mode_debug_printmodeline(fixed_mode); > > fixed_mode->type |= DRM_MODE_TYPE_PREFERRED; > > - goto out; > > + if (fixed_mode->clock <= dev_priv->max_dotclk_freq) > > + goto out; > > } > > + fixed_mode = NULL; > > I don't think we want to special case just LVDS this way. Whatever we do > with fixed_mode validation should be done for all connector types that > have it. For now I think we can more or less ignore the issue. > > So in that light, your previous patch was OK except it should have just > checked fixed_mode->clock instead of mode->clock. Sorry if my ramblings > confused you too much. > No worries. I was a bit unsure if this check should have been done in init anyway. I'll take a step back and modify the previous patch. -Mika- > > } > > > > /* If we still don't have a mode after all that, give up. */ > > -- > > 1.9.1 > > > > _______________________________________________ > > Intel-gfx mailing list > > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > > http://lists.freedesktop.org/mailman/listinfo/intel-gfx > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx