All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@intel.com>
To: Uma Shankar <uma.shankar@intel.com>, intel-gfx@lists.freedesktop.org
Cc: shobhit.kumar@intel.com
Subject: Re: [BXT MIPI PATCH v3 10/14] drm/i915/bxt: get DSI pixelclock
Date: Fri, 18 Sep 2015 16:30:48 +0300	[thread overview]
Message-ID: <87fv2brh13.fsf@intel.com> (raw)
In-Reply-To: <1441116710-14118-11-git-send-email-uma.shankar@intel.com>

On Tue, 01 Sep 2015, Uma Shankar <uma.shankar@intel.com> wrote:
> From: Shashank Sharma <shashank.sharma@intel.com>
>
> BXT's DSI PLL is different from that of VLV. So this patch
> adds a new function to get the current DSI pixel clock based
> on the PLL divider ratio and lane count.
>
> This function is required for intel_dsi_get_config() function.
>
> v2: Fixed Jani's review comments.
>
> Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
> Signed-off-by: Uma Shankar <uma.shankar@intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>


> ---
>  drivers/gpu/drm/i915/intel_dsi.c     |    8 ++++++--
>  drivers/gpu/drm/i915/intel_dsi.h     |    1 +
>  drivers/gpu/drm/i915/intel_dsi_pll.c |   35 ++++++++++++++++++++++++++++++++++
>  3 files changed, 42 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
> index 001569b..6a0071f 100644
> --- a/drivers/gpu/drm/i915/intel_dsi.c
> +++ b/drivers/gpu/drm/i915/intel_dsi.c
> @@ -687,7 +687,7 @@ static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
>  static void intel_dsi_get_config(struct intel_encoder *encoder,
>  				 struct intel_crtc_state *pipe_config)
>  {
> -	u32 pclk;
> +	u32 pclk = 0;
>  	DRM_DEBUG_KMS("\n");
>  
>  	/*
> @@ -696,7 +696,11 @@ static void intel_dsi_get_config(struct intel_encoder *encoder,
>  	 */
>  	pipe_config->dpll_hw_state.dpll_md = 0;
>  
> -	pclk = vlv_get_dsi_pclk(encoder, pipe_config->pipe_bpp);
> +	if (IS_BROXTON(encoder->base.dev))
> +		pclk = bxt_get_dsi_pclk(encoder, pipe_config->pipe_bpp);
> +	else if (IS_VALLEYVIEW(encoder->base.dev))
> +		pclk = vlv_get_dsi_pclk(encoder, pipe_config->pipe_bpp);
> +
>  	if (!pclk)
>  		return;
>  
> diff --git a/drivers/gpu/drm/i915/intel_dsi.h b/drivers/gpu/drm/i915/intel_dsi.h
> index 078ea1b..24fc550 100644
> --- a/drivers/gpu/drm/i915/intel_dsi.h
> +++ b/drivers/gpu/drm/i915/intel_dsi.h
> @@ -124,6 +124,7 @@ static inline struct intel_dsi *enc_to_intel_dsi(struct drm_encoder *encoder)
>  extern void intel_enable_dsi_pll(struct intel_encoder *encoder);
>  extern void intel_disable_dsi_pll(struct intel_encoder *encoder);
>  extern u32 vlv_get_dsi_pclk(struct intel_encoder *encoder, int pipe_bpp);
> +extern u32 bxt_get_dsi_pclk(struct intel_encoder *encoder, int pipe_bpp);
>  extern void intel_dsi_reset_clocks(struct intel_encoder *encoder,
>  							enum port port);
>  
> diff --git a/drivers/gpu/drm/i915/intel_dsi_pll.c b/drivers/gpu/drm/i915/intel_dsi_pll.c
> index 918bc5f..9860bb5 100644
> --- a/drivers/gpu/drm/i915/intel_dsi_pll.c
> +++ b/drivers/gpu/drm/i915/intel_dsi_pll.c
> @@ -389,6 +389,41 @@ u32 vlv_get_dsi_pclk(struct intel_encoder *encoder, int pipe_bpp)
>  	return pclk;
>  }
>  
> +u32 bxt_get_dsi_pclk(struct intel_encoder *encoder, int pipe_bpp)
> +{
> +	u32 pclk;
> +	u32 dsi_clk;
> +	u32 dsi_ratio;
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct drm_i915_private *dev_priv = encoder->base.dev->dev_private;
> +
> +	/* Divide by zero */
> +	if (!pipe_bpp) {
> +		DRM_ERROR("Invalid BPP(0)\n");
> +		return 0;
> +	}
> +
> +	dsi_ratio = I915_READ(BXT_DSI_PLL_CTL) &
> +				BXT_DSI_PLL_RATIO_MASK;
> +
> +	/* Invalid DSI ratio ? */
> +	if (dsi_ratio < BXT_DSI_PLL_RATIO_MIN ||
> +			dsi_ratio > BXT_DSI_PLL_RATIO_MAX) {
> +		DRM_ERROR("Invalid DSI pll ratio(%u) programmed\n", dsi_ratio);
> +		return 0;
> +	}
> +
> +	dsi_clk = (dsi_ratio * BXT_REF_CLOCK_KHZ) / 2;
> +
> +	/* pixel_format and pipe_bpp should agree */
> +	assert_bpp_mismatch(intel_dsi->pixel_format, pipe_bpp);
> +
> +	pclk = DIV_ROUND_CLOSEST(dsi_clk * intel_dsi->lane_count, pipe_bpp);
> +
> +	DRM_DEBUG_DRIVER("Calculated pclk=%u\n", pclk);
> +	return pclk;
> +}
> +
>  void vlv_dsi_reset_clocks(struct intel_encoder *encoder, enum port port)
>  {
>  	u32 temp;
> -- 
> 1.7.9.5
>

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2015-09-18 13:28 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-01 14:11 [BXT MIPI PATCH v3 00/14] MIPI DSI Support for BXT Uma Shankar
2015-09-01 14:11 ` [BXT MIPI PATCH v3 01/14] drm/i915/bxt: Initialize MIPI " Uma Shankar
2015-09-18 12:17   ` Jani Nikula
2015-09-23  8:08     ` Daniel Vetter
2015-09-01 14:11 ` [BXT MIPI PATCH v3 02/14] drm/i915/bxt: Enable BXT DSI PLL Uma Shankar
2015-09-18 12:32   ` Jani Nikula
2015-09-01 14:11 ` [BXT MIPI PATCH v3 03/14] drm/i915/bxt: Disable DSI PLL for BXT Uma Shankar
2015-09-18 12:57   ` Jani Nikula
2015-09-01 14:11 ` [BXT MIPI PATCH v3 04/14] drm/i915/bxt: DSI prepare changes " Uma Shankar
2015-09-18 13:05   ` Jani Nikula
2015-09-23  8:16     ` Daniel Vetter
2015-09-01 14:11 ` [BXT MIPI PATCH v3 05/14] drm/i915/bxt: DSI encoder support in CRTC modeset Uma Shankar
2015-09-18 14:18   ` Jani Nikula
2015-09-21 10:41     ` Shankar, Uma
2015-09-23  8:15       ` Daniel Vetter
2015-09-23 12:43         ` Jani Nikula
2015-09-23 13:11           ` Daniel Vetter
2015-09-23 14:44             ` Shankar, Uma
2015-09-23 12:53   ` Jani Nikula
2015-09-23 14:49     ` Shankar, Uma
2015-09-23 17:03       ` Shankar, Uma
2015-09-23 17:53         ` [BXT MIPI PATCH v4 " Uma Shankar
2015-09-28 13:28           ` Jani Nikula
2015-09-28 16:57             ` Shankar, Uma
2015-09-29  7:29               ` Jani Nikula
2015-09-30 16:33                 ` Shankar, Uma
2015-10-01  9:56                   ` Jani Nikula
2015-09-30 17:03                 ` [BXT MIPI PATCH v5 " Uma Shankar
2015-10-01  9:54                   ` Jani Nikula
2015-10-01 16:22                     ` Shankar, Uma
2015-10-01 16:53                     ` Uma Shankar
2015-10-02 11:05                       ` Jani Nikula
2015-10-02 12:34                       ` Daniel Vetter
2015-10-05 16:06                         ` Shankar, Uma
2015-10-06  6:05                           ` Jani Nikula
2015-09-01 14:11 ` [BXT MIPI PATCH v3 06/14] drm/i915/bxt: DSI enable for BXT Uma Shankar
2015-09-18 13:17   ` Jani Nikula
2015-09-21  9:33     ` Shankar, Uma
2015-09-01 14:11 ` [BXT MIPI PATCH v3 07/14] drm/i915/bxt: Program Tx Rx and Dphy clocks Uma Shankar
2015-09-18 13:27   ` Jani Nikula
2015-09-21 10:11     ` Shankar, Uma
2015-09-23 17:57     ` [BXT MIPI PATCH v4 " Uma Shankar
2015-09-28 13:04       ` Jani Nikula
2015-09-01 14:11 ` [BXT MIPI PATCH v3 08/14] drm/i915/bxt: DSI disable and post-disable Uma Shankar
2015-09-18 13:29   ` Jani Nikula
2015-09-01 14:11 ` [BXT MIPI PATCH v3 09/14] drm/i915/bxt: get_hw_state for BXT Uma Shankar
2015-09-18 13:30   ` Jani Nikula
2015-09-01 14:11 ` [BXT MIPI PATCH v3 10/14] drm/i915/bxt: get DSI pixelclock Uma Shankar
2015-09-18 13:30   ` Jani Nikula [this message]
2015-09-01 14:11 ` [BXT MIPI PATCH v3 11/14] drm/i915/bxt: Modify BXT BLC according to VBT changes Uma Shankar
2015-09-18 13:51   ` Jani Nikula
2015-09-21 10:26     ` Shankar, Uma
2015-09-23 17:59     ` [BXT MIPI PATCH v4 " Uma Shankar
2015-09-28 13:13       ` Jani Nikula
2015-09-30 17:04         ` [BXT MIPI PATCH v5 " Uma Shankar
2015-10-01 10:16           ` Jani Nikula
2015-10-02 12:58           ` Daniel Vetter
2015-09-01 14:11 ` [BXT MIPI PATCH v3 12/14] drm/i915/bxt: Program Backlight PWM frequency Uma Shankar
2015-09-18 13:33   ` Jani Nikula
2015-09-21 10:18     ` Shankar, Uma
2015-09-01 14:11 ` [BXT MIPI PATCH v3 13/14] drm/i915/bxt: Remove DSP CLK_GATE programming for BXT Uma Shankar
2015-09-18 13:38   ` Jani Nikula
2015-10-02 13:02     ` Daniel Vetter
2015-09-01 14:11 ` [BXT MIPI PATCH v3 14/14] drm/i915: Added BXT DSI backlight support Uma Shankar
2015-09-18 13:37   ` Jani Nikula
2015-09-21 10:22     ` Shankar, Uma
2015-09-23 18:00     ` [BXT MIPI PATCH v4 " Uma Shankar
2015-09-24 16:58       ` Ville Syrjälä
2015-09-25 10:15         ` Shankar, Uma

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87fv2brh13.fsf@intel.com \
    --to=jani.nikula@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=shobhit.kumar@intel.com \
    --cc=uma.shankar@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.