[Intel-gfx] [PATCH v4 04/11] drm/i915: LVDS pixel clock check
Mika Kahola
mika.kahola at intel.com
Fri Aug 14 06:24:02 PDT 2015
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 at 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 at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
More information about the Intel-gfx
mailing list