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.kah...@intel.com>
> > ---
> >  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@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 


_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to