From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: Kahola@freedesktop.org, Paulo Zanoni <paulo.r.zanoni@intel.com>,
Rodrigo Vivi <rodrigo.vivi@intel.com>
Subject: [PATCH 4/5] drm/i915/cnl: DVFS for PLL disabling
Date: Tue, 26 Sep 2017 12:17:17 -0700 [thread overview]
Message-ID: <20170926191718.1502-5-rodrigo.vivi@intel.com> (raw)
In-Reply-To: <20170926191718.1502-1-rodrigo.vivi@intel.com>
From: "Kahola, Mika" <mika.kahola@intel.com>
Display Voltage and Frequency Switching (DVFS) is used to adjust the
display voltage to match the display clock frequencies. To save power the
voltage is set to minimum when disabling PLL.
The sequence before frequency change is the following and it requests
the power controller to raise voltage to maximum
- Ensure any previous GT Driver Mailbox transaction is complete.
- Write GT Driver Mailbox Data Low = 0x3.
- Write GT Driver Mailbox Data High = 0x0.
- Write GT Driver Mailbox Interface = 0x80000007.
- Poll GT Driver Mailbox Interface for Run/Busy indication cleared (bit 31 = 0).
- Read GT Driver Mailbox Data Low, if bit 0 is 0x1, continue, else restart the sequence.
Timeout after 3ms
The sequence after frequency change is the following and it requests
the port controller to lower voltage to the minimum.
- Write GT Driver Mailbox Data Low = 0x0
- Write GT Driver Mailbox Data High = 0x0.
- Write GT Driver Mailbox Interface = 0x80000007.
v2: reuse Paulo's work on cdclk. This patch depends on Paulo's patch
[PATCH 02/12] drm/i915/cnl: extract cnl_dvfs_{pre,post}_change
v3: (By Rodrigo): Fix typo on Paulo's name.
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Kahola, Mika <mika.kahola@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
drivers/gpu/drm/i915/intel_dpll_mgr.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dpll_mgr.c b/drivers/gpu/drm/i915/intel_dpll_mgr.c
index 9927df6294da..cc288534dcc6 100644
--- a/drivers/gpu/drm/i915/intel_dpll_mgr.c
+++ b/drivers/gpu/drm/i915/intel_dpll_mgr.c
@@ -2085,6 +2085,7 @@ static void cnl_ddi_pll_disable(struct drm_i915_private *dev_priv,
struct intel_shared_dpll *pll)
{
uint32_t val;
+ int ret;
/*
* 1. Configure DPCLKA_CFGCR0 to turn off the clock for the DDI.
@@ -2094,11 +2095,9 @@ static void cnl_ddi_pll_disable(struct drm_i915_private *dev_priv,
/*
* 2. If the frequency will result in a change to the voltage
* requirement, follow the Display Voltage Frequency Switching
- * Sequence Before Frequency Change
- *
- * FIXME: (DVFS) is used to adjust the display voltage to match the
- * display clock frequencies
+ * (DVFS) Sequence Before Frequency Change
*/
+ ret = cnl_dvfs_pre_change(dev_priv);
/* 3. Disable DPLL through DPLL_ENABLE. */
val = I915_READ(CNL_DPLL_ENABLE(pll->id));
@@ -2116,11 +2115,10 @@ static void cnl_ddi_pll_disable(struct drm_i915_private *dev_priv,
/*
* 5. If the frequency will result in a change to the voltage
* requirement, follow the Display Voltage Frequency Switching
- * Sequence After Frequency Change
- *
- * FIXME: (DVFS) is used to adjust the display voltage to match the
- * display clock frequencies
+ * (DVFS) Sequence After Frequency Change
*/
+ if (ret == 0)
+ cnl_dvfs_post_change(dev_priv, 0);
/* 6. Disable DPLL power in DPLL_ENABLE. */
val = I915_READ(CNL_DPLL_ENABLE(pll->id));
--
2.13.5
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2017-09-26 19:17 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-26 19:17 [PATCH 0/5] Introduce DVFS Rodrigo Vivi
2017-09-26 19:17 ` [PATCH 1/5] drm/i915/cnl: extract cnl_dvfs_{pre, post}_change Rodrigo Vivi
2017-09-26 19:17 ` [PATCH 2/5] drm/i915/cnl: Expose DVFS change functions Rodrigo Vivi
2017-09-26 19:17 ` [PATCH 3/5] drm/i915/cnl: DVFS for PLL enabling Rodrigo Vivi
2017-09-26 19:17 ` Rodrigo Vivi [this message]
2017-09-26 19:17 ` [PATCH 5/5] drm/i915: Extend DVFS function back to Skylake Rodrigo Vivi
2017-09-26 19:40 ` ✓ Fi.CI.BAT: success for Introduce DVFS Patchwork
2017-09-27 4:38 ` ✓ Fi.CI.IGT: " Patchwork
2017-09-28 21:46 ` ✓ Fi.CI.BAT: " Patchwork
2017-09-29 0:06 ` ✗ Fi.CI.IGT: failure " Patchwork
2017-09-29 10:35 ` ✓ Fi.CI.BAT: success " Patchwork
2017-09-29 11:39 ` ✗ Fi.CI.BAT: failure " Patchwork
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=20170926191718.1502-5-rodrigo.vivi@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=Kahola@freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=paulo.r.zanoni@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.