Message ID | 1439897822-4004-5-git-send-email-mika.kahola@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Aug 18, 2015 at 02:37:02PM +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 DVO. > > V2: > - removed computation for max pixel clock > > V3: > - cleanup by removing unnecessary lines > > V4: > - clock check against max dotclock moved inside 'if (fixed_mode)' > > V5: > - dot clock check against fixed_mode clock when available > > Signed-off-by: Mika Kahola <mika.kahola@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/i915/intel_dvo.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c > index dc532bb..c80fe1f 100644 > --- a/drivers/gpu/drm/i915/intel_dvo.c > +++ b/drivers/gpu/drm/i915/intel_dvo.c > @@ -201,6 +201,8 @@ intel_dvo_mode_valid(struct drm_connector *connector, > struct drm_display_mode *mode) > { > struct intel_dvo *intel_dvo = intel_attached_dvo(connector); > + int max_dotclk = to_i915(connector->dev)->max_dotclk_freq; > + int target_clock = mode->clock; > > if (mode->flags & DRM_MODE_FLAG_DBLSCAN) > return MODE_NO_DBLESCAN; > @@ -212,8 +214,13 @@ intel_dvo_mode_valid(struct drm_connector *connector, > return MODE_PANEL; > if (mode->vdisplay > intel_dvo->panel_fixed_mode->vdisplay) > return MODE_PANEL; > + > + target_clock = intel_dvo->panel_fixed_mode->clock; > } > > + if (target_clock > max_dotclk) > + return MODE_CLOCK_HIGH; > + > return intel_dvo->dev.dev_ops->mode_valid(&intel_dvo->dev, mode); > } > > -- > 1.9.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
On Fri, 2015-08-21 at 13:58 +0300, Ville Syrjälä wrote: > On Tue, Aug 18, 2015 at 02:37:02PM +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 DVO. > > > > V2: > > - removed computation for max pixel clock > > > > V3: > > - cleanup by removing unnecessary lines > > > > V4: > > - clock check against max dotclock moved inside 'if (fixed_mode)' > > > > V5: > > - dot clock check against fixed_mode clock when available > > > > Signed-off-by: Mika Kahola <mika.kahola@intel.com> > > Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > Thanks Ville for the reviews! -Mika- > > --- > > drivers/gpu/drm/i915/intel_dvo.c | 7 +++++++ > > 1 file changed, 7 insertions(+) > > > > diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c > > index dc532bb..c80fe1f 100644 > > --- a/drivers/gpu/drm/i915/intel_dvo.c > > +++ b/drivers/gpu/drm/i915/intel_dvo.c > > @@ -201,6 +201,8 @@ intel_dvo_mode_valid(struct drm_connector *connector, > > struct drm_display_mode *mode) > > { > > struct intel_dvo *intel_dvo = intel_attached_dvo(connector); > > + int max_dotclk = to_i915(connector->dev)->max_dotclk_freq; > > + int target_clock = mode->clock; > > > > if (mode->flags & DRM_MODE_FLAG_DBLSCAN) > > return MODE_NO_DBLESCAN; > > @@ -212,8 +214,13 @@ intel_dvo_mode_valid(struct drm_connector *connector, > > return MODE_PANEL; > > if (mode->vdisplay > intel_dvo->panel_fixed_mode->vdisplay) > > return MODE_PANEL; > > + > > + target_clock = intel_dvo->panel_fixed_mode->clock; > > } > > > > + if (target_clock > max_dotclk) > > + return MODE_CLOCK_HIGH; > > + > > return intel_dvo->dev.dev_ops->mode_valid(&intel_dvo->dev, mode); > > } > > > > -- > > 1.9.1 > > > > _______________________________________________ > > Intel-gfx mailing list > > Intel-gfx@lists.freedesktop.org > > http://lists.freedesktop.org/mailman/listinfo/intel-gfx >
On Fri, Aug 21, 2015 at 02:52:54PM +0300, Mika Kahola wrote: > On Fri, 2015-08-21 at 13:58 +0300, Ville Syrjälä wrote: > > On Tue, Aug 18, 2015 at 02:37:02PM +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 DVO. > > > > > > V2: > > > - removed computation for max pixel clock > > > > > > V3: > > > - cleanup by removing unnecessary lines > > > > > > V4: > > > - clock check against max dotclock moved inside 'if (fixed_mode)' > > > > > > V5: > > > - dot clock check against fixed_mode clock when available > > > > > > Signed-off-by: Mika Kahola <mika.kahola@intel.com> > > > > Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > Thanks Ville for the reviews! Merged entire series, thanks. -Daniel > > -Mika- > > > > --- > > > drivers/gpu/drm/i915/intel_dvo.c | 7 +++++++ > > > 1 file changed, 7 insertions(+) > > > > > > diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c > > > index dc532bb..c80fe1f 100644 > > > --- a/drivers/gpu/drm/i915/intel_dvo.c > > > +++ b/drivers/gpu/drm/i915/intel_dvo.c > > > @@ -201,6 +201,8 @@ intel_dvo_mode_valid(struct drm_connector *connector, > > > struct drm_display_mode *mode) > > > { > > > struct intel_dvo *intel_dvo = intel_attached_dvo(connector); > > > + int max_dotclk = to_i915(connector->dev)->max_dotclk_freq; > > > + int target_clock = mode->clock; > > > > > > if (mode->flags & DRM_MODE_FLAG_DBLSCAN) > > > return MODE_NO_DBLESCAN; > > > @@ -212,8 +214,13 @@ intel_dvo_mode_valid(struct drm_connector *connector, > > > return MODE_PANEL; > > > if (mode->vdisplay > intel_dvo->panel_fixed_mode->vdisplay) > > > return MODE_PANEL; > > > + > > > + target_clock = intel_dvo->panel_fixed_mode->clock; > > > } > > > > > > + if (target_clock > max_dotclk) > > > + return MODE_CLOCK_HIGH; > > > + > > > return intel_dvo->dev.dev_ops->mode_valid(&intel_dvo->dev, mode); > > > } > > > > > > -- > > > 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
Tested-By: Intel Graphics QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com)
Task id: 7228
-------------------------------------Summary-------------------------------------
Platform Delta drm-intel-nightly Series Applied
ILK -1 302/302 301/302
SNB 315/315 315/315
IVB 336/336 336/336
BYT 283/283 283/283
HSW 378/378 378/378
-------------------------------------Detailed-------------------------------------
Platform Test drm-intel-nightly Series Applied
*ILK igt@kms_flip@wf_vblank-vs-modeset-interruptible PASS(1) DMESG_WARN(1)
Note: You need to pay more attention to line start with '*'
diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c index dc532bb..c80fe1f 100644 --- a/drivers/gpu/drm/i915/intel_dvo.c +++ b/drivers/gpu/drm/i915/intel_dvo.c @@ -201,6 +201,8 @@ intel_dvo_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode) { struct intel_dvo *intel_dvo = intel_attached_dvo(connector); + int max_dotclk = to_i915(connector->dev)->max_dotclk_freq; + int target_clock = mode->clock; if (mode->flags & DRM_MODE_FLAG_DBLSCAN) return MODE_NO_DBLESCAN; @@ -212,8 +214,13 @@ intel_dvo_mode_valid(struct drm_connector *connector, return MODE_PANEL; if (mode->vdisplay > intel_dvo->panel_fixed_mode->vdisplay) return MODE_PANEL; + + target_clock = intel_dvo->panel_fixed_mode->clock; } + if (target_clock > max_dotclk) + return MODE_CLOCK_HIGH; + return intel_dvo->dev.dev_ops->mode_valid(&intel_dvo->dev, mode); }
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 DVO. V2: - removed computation for max pixel clock V3: - cleanup by removing unnecessary lines V4: - clock check against max dotclock moved inside 'if (fixed_mode)' V5: - dot clock check against fixed_mode clock when available Signed-off-by: Mika Kahola <mika.kahola@intel.com> --- drivers/gpu/drm/i915/intel_dvo.c | 7 +++++++ 1 file changed, 7 insertions(+)