All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Deepak S <deepak.s@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v4] drm/i915/chv: Set min freq to efficient frequency on chv
Date: Thu, 30 Apr 2015 17:05:26 +0300	[thread overview]
Message-ID: <20150430140526.GX18908@intel.com> (raw)
In-Reply-To: <20150430111907.GW18908@intel.com>

On Thu, Apr 30, 2015 at 02:19:07PM +0300, Ville Syrjälä wrote:
> On Thu, Apr 30, 2015 at 03:42:42PM +0530, Deepak S wrote:
> > As you suggested it would be better to extend the VLV WA to
> > CHV also to make sure we drop the voltage when idle.
> > 
> > Below is the sequence I think we should follow (based  on your comments).
> > 1. forcewake power wells
> > 2. do gfx force clock on
> > 3. request freq to punit
> > 4. release gfx force clock on
> > 5. release forcewake of power wells.
> > 
> > Please share your thoughts?
> 
> I'm thinking we shouldn't need the gfx clock force since forcewake
> should already cause the clock to be enabled.
> 
> I've also not verified what happens if we drop the forcewake before
> Punit has actually finished the frequency change. I'll try to hack
> up some kind of test to see if I can make that happen.

OK, after some hacking I see that the forcewake is enough, and also
we don't seem to need to wait for the Punit to finish the frequency
change before dropping forcewake. It seems to finish the change even
after forcewake has been dropped.

Also for a bit of extra micro optimization we should perhaps wake up
the media well only, as that takes a lot less power than the render
well.

> 
> > 
> > Thanks
> > Deepak
> > 
> > >> So based on my tests this patch feels a bit wrong.
> > >>
> > >>> Since Punit validates the rps range [RPe, RP0]. This patch
> > >>> removes unused cherryview_rps_min_freq function.
> > >>>
> > >>> v2: Change commit message
> > >>>
> > >>> v3: set min_freq before idle_freq (chris)
> > >>>
> > >>> v4: Squash 'Remove unused rps min function' patch
> > >>>
> > >>> Signed-off-by: Deepak S <deepak.s@linux.intel.com>
> > >>> Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
> > >>> ---
> > >>>   drivers/gpu/drm/i915/intel_pm.c | 21 ++-------------------
> > >>>   1 file changed, 2 insertions(+), 19 deletions(-)
> > >>>
> > >>> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> > >>> index a7516ed..78c89ff 100644
> > >>> --- a/drivers/gpu/drm/i915/intel_pm.c
> > >>> +++ b/drivers/gpu/drm/i915/intel_pm.c
> > >>> @@ -4715,24 +4715,6 @@ static int cherryview_rps_guar_freq(struct drm_i915_private *dev_priv)
> > >>>   	return rp1;
> > >>>   }
> > >>>   
> > >>> -static int cherryview_rps_min_freq(struct drm_i915_private *dev_priv)
> > >>> -{
> > >>> -	struct drm_device *dev = dev_priv->dev;
> > >>> -	u32 val, rpn;
> > >>> -
> > >>> -	if (dev->pdev->revision >= 0x20) {
> > >>> -		val = vlv_punit_read(dev_priv, FB_GFX_FMIN_AT_VMIN_FUSE);
> > >>> -		rpn = ((val >> FB_GFX_FMIN_AT_VMIN_FUSE_SHIFT) &
> > >>> -		       FB_GFX_FREQ_FUSE_MASK);
> > >>> -	} else { /* For pre-production hardware */
> > >>> -		val = vlv_punit_read(dev_priv, PUNIT_GPU_STATUS_REG);
> > >>> -		rpn = ((val >> PUNIT_GPU_STATIS_GFX_MIN_FREQ_SHIFT) &
> > >>> -		       PUNIT_GPU_STATUS_GFX_MIN_FREQ_MASK);
> > >>> -	}
> > >>> -
> > >>> -	return rpn;
> > >>> -}
> > >>> -
> > >>>   static int valleyview_rps_guar_freq(struct drm_i915_private *dev_priv)
> > >>>   {
> > >>>   	u32 val, rp1;
> > >>> @@ -4984,7 +4966,8 @@ static void cherryview_init_gt_powersave(struct drm_device *dev)
> > >>>   			 intel_gpu_freq(dev_priv, dev_priv->rps.rp1_freq),
> > >>>   			 dev_priv->rps.rp1_freq);
> > >>>   
> > >>> -	dev_priv->rps.min_freq = cherryview_rps_min_freq(dev_priv);
> > >>> +	/* PUnit validated range is only [RPe, RP0] */
> > >>> +	dev_priv->rps.min_freq = dev_priv->rps.efficient_freq;
> > >>>   	DRM_DEBUG_DRIVER("min GPU freq: %d MHz (%u)\n",
> > >>>   			 intel_gpu_freq(dev_priv, dev_priv->rps.min_freq),
> > >>>   			 dev_priv->rps.min_freq);
> > >>> -- 
> > >>> 1.9.1
> > >> -- 
> > >> Ville Syrjälä
> > >> Intel OTC
> > >> _______________________________________________
> > >> Intel-gfx mailing list
> > >> Intel-gfx@lists.freedesktop.org
> > >> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> -- 
> Ville Syrjälä
> Intel OTC

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2015-04-30 14:06 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-28  9:53 [PATCH v3 0/5] CHV PM fix & Improvements deepak.s
2015-03-28  9:53 ` [PATCH v3 1/5] drm/i915/chv: Remove Wait for a previous gfx force-off deepak.s
2015-03-30 10:07   ` Ville Syrjälä
2015-03-30 14:32     ` Deepak S
2015-03-30 15:41     ` Daniel Vetter
2015-03-28  9:53 ` [PATCH v3 2/5] drm/i915: Re-adjusting rc6 promotional timer for chv deepak.s
2015-04-16 15:26   ` Daniel Vetter
2015-03-28  9:53 ` [PATCH v3 3/5] drm/i915/chv: Set min freq to efficient frequency on chv deepak.s
2015-04-29  2:53   ` [PATCH v4] " deepak.s
2015-04-29 15:31     ` Ville Syrjälä
2015-04-29 19:53       ` Ville Syrjälä
2015-04-30 10:12         ` Deepak S
2015-04-30 11:19           ` Ville Syrjälä
2015-04-30 14:05             ` Ville Syrjälä [this message]
2015-05-02  7:26               ` Deepak S
2015-04-30  2:42     ` shuang.he
2015-05-04  8:04     ` Daniel Vetter
2015-03-28  9:53 ` [PATCH v3 4/5] drm/i915/chv: Remove unused rps min function deepak.s
2015-03-28  9:53 ` [PATCH v3 5/5] drm/i915: Setup static bias for GPU deepak.s
2015-03-28 12:20   ` shuang.he
2015-03-30  9:56   ` Ville Syrjälä
2015-04-29  2:51     ` [PATCH v2] " deepak.s
2015-04-29  3:06       ` [PATCH v3] " deepak.s
2015-04-29  9:29         ` Ville Syrjälä
2015-05-04  5:28           ` Deepak S
2015-05-04  8:12             ` Daniel Vetter
2015-05-04 15:28               ` Ville Syrjälä
2015-05-05  7:42                 ` Deepak S
2015-05-06  9:02                   ` Daniel Vetter
2015-05-08 15:06                     ` Deepak S
2015-04-30  6:56         ` shuang.he
2015-04-29 23:00       ` [PATCH v2] " shuang.he
2015-05-08 15:13 [PATCH v2 1/2] drm/i915/vlv: Remove wait for for punit to updates freq deepak.s
2015-05-08 15:13 ` [PATCH v4] drm/i915/chv: Set min freq to efficient frequency on chv deepak.s
2015-05-08 15:24   ` shuang.he
2015-05-08 16:39   ` Ville Syrjälä
2015-05-09  5:34     ` Deepak S
2015-05-09 12:45       ` deepak.s
2015-05-11 10:23         ` Daniel Vetter
2015-05-11 11:06       ` Ville Syrjälä

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=20150430140526.GX18908@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=deepak.s@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /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.