All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Souza, Jose" <jose.souza@intel.com>
To: "ville.syrjala@linux.intel.com" <ville.syrjala@linux.intel.com>
Cc: "intel-gfx@lists.freedesktop.org" <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH 3/3] drm/i915/ehl: Add voltage level requirement table
Date: Thu, 20 Jun 2019 00:36:03 +0000	[thread overview]
Message-ID: <24e239b79bc519e80d95ee0f78cea75fd95193c7.camel@intel.com> (raw)
In-Reply-To: <20190619114340.GW5942@intel.com>

On Wed, 2019-06-19 at 14:43 +0300, Ville Syrjälä wrote:
> On Tue, Jun 18, 2019 at 03:50:35PM -0700, José Roberto de Souza
> wrote:
> > EHL has it own voltage level requirement depending on cd clock.
> > 
> > BSpec: 21809
> > Cc: Clint Taylor <Clinton.A.Taylor@intel.com>
> > Cc: Matt Roper <matthew.d.roper@intel.com>
> > Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_cdclk.c | 23 ++++++++++++++++
> > ------
> >  1 file changed, 17 insertions(+), 6 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c
> > b/drivers/gpu/drm/i915/display/intel_cdclk.c
> > index 26c17ecf2083..575ab1a96bbc 100644
> > --- a/drivers/gpu/drm/i915/display/intel_cdclk.c
> > +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
> > @@ -1872,8 +1872,17 @@ static void icl_set_cdclk(struct
> > drm_i915_private *dev_priv,
> >  	dev_priv->cdclk.hw.voltage_level = cdclk_state->voltage_level;
> >  }
> >  
> > -static u8 icl_calc_voltage_level(int cdclk)
> > +static u8 icl_calc_voltage_level(struct drm_i915_private
> > *dev_priv, int cdclk)
> >  {
> > +	if (IS_ELKHARTLAKE(dev_priv)) {
> > +		if (cdclk > 312000)
> > +			return 2;
> > +		else if (cdclk > 180000)
> > +			return 1;
> > +		else
> > +			return 0;
> > +	}
> > +
> >  	if (cdclk > 556800)
> >  		return 2;
> >  	else if (cdclk > 312000)
> 
> I would move the rest into and else branch to make it clear the
> two are just the two sides of the same coin.

You mean like this?

static u8 icl_calc_voltage_level(struct drm_i915_private *dev_priv, int
cdclk)
{
	if (IS_ELKHARTLAKE(dev_priv)) {
		if (cdclk > 312000)
			return 2;
		else if (cdclk > 180000)
			return 1;
		else
			return 0;
	} else {
		if (cdclk > 556800)
			return 2;
		else if (cdclk > 312000)
			return 1;
		else
			return 0;
	}
}


> 
> > @@ -1930,7 +1939,7 @@ static void icl_get_cdclk(struct
> > drm_i915_private *dev_priv,
> >  	 * at least what the CDCLK frequency requires.
> >  	 */
> >  	cdclk_state->voltage_level =
> > -		icl_calc_voltage_level(cdclk_state->cdclk);
> > +		icl_calc_voltage_level(dev_priv, cdclk_state->cdclk);
> >  }
> >  
> >  static void icl_init_cdclk(struct drm_i915_private *dev_priv)
> > @@ -1966,7 +1975,8 @@ static void icl_init_cdclk(struct
> > drm_i915_private *dev_priv)
> >  	sanitized_state.vco = icl_calc_cdclk_pll_vco(dev_priv,
> >  						     sanitized_state.cd
> > clk);
> >  	sanitized_state.voltage_level =
> > -				icl_calc_voltage_level(sanitized_state.
> > cdclk);
> > +				icl_calc_voltage_level(dev_priv,
> > +						       sanitized_state.
> > cdclk);
> >  
> >  	icl_set_cdclk(dev_priv, &sanitized_state, INVALID_PIPE);
> >  }
> > @@ -1977,7 +1987,8 @@ static void icl_uninit_cdclk(struct
> > drm_i915_private *dev_priv)
> >  
> >  	cdclk_state.cdclk = cdclk_state.bypass;
> >  	cdclk_state.vco = 0;
> > -	cdclk_state.voltage_level =
> > icl_calc_voltage_level(cdclk_state.cdclk);
> > +	cdclk_state.voltage_level = icl_calc_voltage_level(dev_priv,
> > +							   cdclk_state.
> > cdclk);
> >  
> >  	icl_set_cdclk(dev_priv, &cdclk_state, INVALID_PIPE);
> >  }
> > @@ -2568,7 +2579,7 @@ static int icl_modeset_calc_cdclk(struct
> > intel_atomic_state *state)
> >  	state->cdclk.logical.vco = vco;
> >  	state->cdclk.logical.cdclk = cdclk;
> >  	state->cdclk.logical.voltage_level =
> > -		max(icl_calc_voltage_level(cdclk),
> > +		max(icl_calc_voltage_level(dev_priv, cdclk),
> >  		    cnl_compute_min_voltage_level(state));
> >  
> >  	if (!state->active_crtcs) {
> > @@ -2579,7 +2590,7 @@ static int icl_modeset_calc_cdclk(struct
> > intel_atomic_state *state)
> >  		state->cdclk.actual.vco = vco;
> >  		state->cdclk.actual.cdclk = cdclk;
> >  		state->cdclk.actual.voltage_level =
> > -			icl_calc_voltage_level(cdclk);
> > +			icl_calc_voltage_level(dev_priv, cdclk);
> >  	} else {
> >  		state->cdclk.actual = state->cdclk.logical;
> >  	}
> > -- 
> > 2.22.0
> > 
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2019-06-20  0:36 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-18 22:50 [PATCH 1/3] drm/i915/icl: Add new supported CD clocks José Roberto de Souza
2019-06-18 22:50 ` [PATCH 2/3] drm/i915/ehl: Remove unsupported cd clocks José Roberto de Souza
2019-06-19 11:40   ` Ville Syrjälä
2019-06-19 15:21     ` Jani Nikula
2019-06-20  0:37     ` Souza, Jose
2019-06-18 22:50 ` [PATCH 3/3] drm/i915/ehl: Add voltage level requirement table José Roberto de Souza
2019-06-19 11:43   ` Ville Syrjälä
2019-06-20  0:36     ` Souza, Jose [this message]
2019-06-20 10:01       ` Ville Syrjälä
2019-06-18 23:25 ` ✗ Fi.CI.SPARSE: warning for series starting with [1/3] drm/i915/icl: Add new supported CD clocks Patchwork
2019-06-18 23:44 ` ✗ Fi.CI.BAT: failure " Patchwork
2019-06-19  7:43 ` ✗ Fi.CI.SPARSE: warning for series starting with [1/3] drm/i915/icl: Add new supported CD clocks (rev2) Patchwork
2019-06-19  8:09 ` ✗ Fi.CI.BAT: failure " Patchwork
2019-06-19 11:48 ` [PATCH 1/3] drm/i915/icl: Add new supported CD clocks Ville Syrjälä
2019-06-20  0:36   ` Souza, Jose
2019-06-20 10:03     ` Ville Syrjälä
2019-06-19 17:47 ` Ville Syrjälä
2019-06-20 23:33   ` Souza, Jose
2019-06-24 12:39     ` Ville Syrjälä
2019-06-24 21:05       ` Souza, Jose

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=24e239b79bc519e80d95ee0f78cea75fd95193c7.camel@intel.com \
    --to=jose.souza@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=ville.syrjala@linux.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.