[Intel-gfx] [PATCH 1/2] drm/i915: Allow pixel clock up to 95% of cdclk on CHV
Purushothaman, Vijay A
vijay.a.purushothaman at linux.intel.com
Mon Mar 9 01:58:56 PDT 2015
On 3/2/2015 11:37 PM, ville.syrjala at linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Supposedly CHV can sustain a pixel clock of up to 95% of
> cdclk, as opposed to the 90% limit that was used old older
> platforms. Update the cdclk selection code to allow for this.
>
> This will allow eg. HDMI 4k modes with their 297MHz pixel clock
> while still respecting the 320 MHz cdclk limit on CHV.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
Thanks for forwarding the post si team confirmation. We were in the dark
about this as usual.
Reviewed-by: Vijay Purushothaman <vijay.a.purushothaman at linux.intel.com>
Thanks,
Vijay
> ---
> drivers/gpu/drm/i915/intel_display.c | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 3fe9598..94ff310 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -4926,6 +4926,7 @@ static int valleyview_calc_cdclk(struct drm_i915_private *dev_priv,
> int max_pixclk)
> {
> int freq_320 = (dev_priv->hpll_freq << 1) % 320000 != 0 ? 333333 : 320000;
> + int limit = IS_CHERRYVIEW(dev_priv) ? 95 : 90;
>
> /* FIXME: Punit isn't quite ready yet */
> if (IS_CHERRYVIEW(dev_priv->dev))
> @@ -4936,17 +4937,18 @@ static int valleyview_calc_cdclk(struct drm_i915_private *dev_priv,
> * 200MHz
> * 267MHz
> * 320/333MHz (depends on HPLL freq)
> - * 400MHz
> - * So we check to see whether we're above 90% of the lower bin and
> - * adjust if needed.
> + * 400MHz (VLV only)
> + * So we check to see whether we're above 90% (VLV) or 95% (CHV)
> + * of the lower bin and adjust if needed.
> *
> * We seem to get an unstable or solid color picture at 200MHz.
> * Not sure what's wrong. For now use 200MHz only when all pipes
> * are off.
> */
> - if (max_pixclk > freq_320*9/10)
> + if (!IS_CHERRYVIEW(dev_priv) &&
> + max_pixclk > freq_320*limit/100)
> return 400000;
> - else if (max_pixclk > 266667*9/10)
> + else if (max_pixclk > 266667*limit/100)
> return freq_320;
> else if (max_pixclk > 0)
> return 266667;
More information about the Intel-gfx
mailing list