From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Chon Ming Lee <chon.ming.lee@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915/vlv: Turn off power gate for BIOS-less system.
Date: Thu, 3 Oct 2013 19:34:48 +0300 [thread overview]
Message-ID: <20131003163447.GY9395@intel.com> (raw)
In-Reply-To: <1380813377-5992-1-git-send-email-chon.ming.lee@intel.com>
On Thu, Oct 03, 2013 at 11:16:17PM +0800, Chon Ming Lee wrote:
> During system boot up, by default, the power gate for render, media and
> display well still power gated. Normally, BIOS will turn off the power
> gate. In the BIOS-less system, the driver need to turn off the power
> gate very early during driver load.
>
> v2: Move this to intel_uncore_sanitize to allow it to get call during
> resume path. (Daniel)
> v3: Remove redundant write 0 to DPIO_CTL, and use DPIO_RESET instead of
> just 0x1 (Ville)
> Add turn of power gate for display 2d/render well/media well.
> v4: Remove toggle cmnreset in intel_uncore_sanitize. Cmnreset should
> toggle after CRI clock source has been selected. Jesse DPIO reset patch
> which toggle the cmnreset in intel_modeset_init_hw() should handle it.
> (Ville)
>
> Signed-off-by: Chon Ming Lee <chon.ming.lee@intel.com>
Looks OK as a short term solution.
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/i915_reg.h | 9 +++++++++
> drivers/gpu/drm/i915/intel_uncore.c | 16 ++++++++++++++++
> 2 files changed, 25 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 3432de4..f14310b 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -361,6 +361,15 @@
> #define PUNIT_OPCODE_REG_READ 6
> #define PUNIT_OPCODE_REG_WRITE 7
>
> +#define PUNIT_REG_PWRGT_CTRL 0x60
> +#define PUNIT_REG_PWRGT_STATUS 0x61
> +#define PUNIT_CLK_GATE 1
> +#define PUNIT_PWR_RESET 2
> +#define PUNIT_PWR_GATE 3
> +#define RENDER_PWRGT (PUNIT_PWR_GATE << 0)
> +#define MEDIA_PWRGT (PUNIT_PWR_GATE << 2)
> +#define DISP2D_PWRGT (PUNIT_PWR_GATE << 6)
> +
> #define PUNIT_REG_GPU_LFM 0xd3
> #define PUNIT_REG_GPU_FREQ_REQ 0xd4
> #define PUNIT_REG_GPU_FREQ_STS 0xd8
> diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
> index f2753d9..288a3a6 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.c
> +++ b/drivers/gpu/drm/i915/intel_uncore.c
> @@ -301,10 +301,26 @@ static void intel_uncore_forcewake_reset(struct drm_device *dev)
>
> void intel_uncore_sanitize(struct drm_device *dev)
> {
> + struct drm_i915_private *dev_priv = dev->dev_private;
> + u32 reg_val;
> +
> intel_uncore_forcewake_reset(dev);
>
> /* BIOS often leaves RC6 enabled, but disable it for hw init */
> intel_disable_gt_powersave(dev);
> +
> + /* Turn off power gate, require especially for the BIOS less system */
> + if (IS_VALLEYVIEW(dev)) {
> +
> + mutex_lock(&dev_priv->rps.hw_lock);
> + reg_val = vlv_punit_read(dev_priv, PUNIT_REG_PWRGT_STATUS);
> +
> + if (reg_val & (RENDER_PWRGT | MEDIA_PWRGT | DISP2D_PWRGT))
> + vlv_punit_write(dev_priv, PUNIT_REG_PWRGT_CTRL, 0x0);
> +
> + mutex_unlock(&dev_priv->rps.hw_lock);
> +
> + }
> }
>
> /*
> --
> 1.7.7.6
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Ville Syrjälä
Intel OTC
next prev parent reply other threads:[~2013-10-03 16:34 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <[PATCH 1/2] drm/i915: Send a DPIO cmnreset during driver load or system resume.>
2013-09-24 7:14 ` [PATCH 1/2] drm/i915: Send a DPIO cmnreset during driver load or system resume Chon Ming Lee
2013-09-24 15:18 ` Ville Syrjälä
2013-09-24 23:14 ` Lee, Chon Ming
2013-09-25 7:25 ` Ville Syrjälä
2013-10-03 15:16 ` [PATCH] drm/i915/vlv: Turn off power gate for BIOS-less system Chon Ming Lee
2013-10-03 16:34 ` Ville Syrjälä [this message]
2013-10-04 8:26 ` Daniel Vetter
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=20131003163447.GY9395@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=chon.ming.lee@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox