<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div name="messageBodySection">Patches merged to dinq.<br />
Thanks for the reviews!</div>
<div name="messageReplySection"><br />
On Jun 2, 2017, 1:07 PM -0700, Rodrigo Vivi <rodrigo.vivi@intel.com>, wrote:<br />
<blockquote type="cite">Panel Power sequences for CNP is similar to Broxton,<br />
but with only one sequencer.<br />
<br />
Main difference from SPT is that PP_DIVISOR was removed<br />
and power cycle delay has been moved to PP_CONTROL.<br />
<br />
v2: Add missed pp_div write, that is now part of PP_CONTROL[8:4]<br />
as on Broxton. (Found by DK)<br />
<br />
v3: Improve commit message. (By DK)<br />
<br />
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com<br />
Cc: Jani Nikula <jani.nikula@intel.com<br />
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com<br />
Reviewed-by: Clinton Taylor <clinton.a.taylor@intel.com<br />
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com<br />
---<br />
drivers/gpu/drm/i915/intel_dp.c | 12 ++++++------<br />
1 file changed, 6 insertions(+), 6 deletions(-)<br />
<br />
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c<br />
index 58dca87..db51338 100644<br />
--- a/drivers/gpu/drm/i915/intel_dp.c<br />
+++ b/drivers/gpu/drm/i915/intel_dp.c<br />
@@ -798,7 +798,7 @@ static void intel_pps_get_registers(struct drm_i915_private *dev_priv,<br />
regs->pp_stat = PP_STATUS(pps_idx);<br />
regs->pp_on = PP_ON_DELAYS(pps_idx);<br />
regs->pp_off = PP_OFF_DELAYS(pps_idx);<br />
- if (!IS_GEN9_LP(dev_priv))<br />
+ if (!IS_GEN9_LP(dev_priv) && !HAS_PCH_CNP(dev_priv))<br />
regs->pp_div = PP_DIVISOR(pps_idx);<br />
}<br />
<br />
@@ -5099,7 +5099,7 @@ static void intel_dp_init_panel_power_timestamps(struct intel_dp *intel_dp)<br />
<br />
pp_on = I915_READ(regs.pp_on);<br />
pp_off = I915_READ(regs.pp_off);<br />
- if (!IS_GEN9_LP(dev_priv)) {<br />
+ if (!IS_GEN9_LP(dev_priv) && !HAS_PCH_CNP(dev_priv)) {<br />
I915_WRITE(regs.pp_ctrl, pp_ctl);<br />
pp_div = I915_READ(regs.pp_div);<br />
}<br />
@@ -5117,7 +5117,7 @@ static void intel_dp_init_panel_power_timestamps(struct intel_dp *intel_dp)<br />
seq->t10 = (pp_off & PANEL_POWER_DOWN_DELAY_MASK)<br />
PANEL_POWER_DOWN_DELAY_SHIFT;<br />
<br />
- if (IS_GEN9_LP(dev_priv)) {<br />
+ if (IS_GEN9_LP(dev_priv) || HAS_PCH_CNP(dev_priv)) {<br />
u16 tmp = (pp_ctl & BXT_POWER_CYCLE_DELAY_MASK)<br />
BXT_POWER_CYCLE_DELAY_SHIFT;<br />
if (tmp > 0)<br />
@@ -5274,7 +5274,7 @@ static void intel_dp_init_panel_power_timestamps(struct intel_dp *intel_dp)<br />
(seq->t10 << PANEL_POWER_DOWN_DELAY_SHIFT);<br />
/* Compute the divisor for the pp clock, simply match the Bspec<br />
* formula. */<br />
- if (IS_GEN9_LP(dev_priv)) {<br />
+ if (IS_GEN9_LP(dev_priv) || HAS_PCH_CNP(dev_priv)) {<br />
pp_div = I915_READ(regs.pp_ctrl);<br />
pp_div &= ~BXT_POWER_CYCLE_DELAY_MASK;<br />
pp_div |= (DIV_ROUND_UP((seq->t11_t12 + 1), 1000)<br />
@@ -5300,7 +5300,7 @@ static void intel_dp_init_panel_power_timestamps(struct intel_dp *intel_dp)<br />
<br />
I915_WRITE(regs.pp_on, pp_on);<br />
I915_WRITE(regs.pp_off, pp_off);<br />
- if (IS_GEN9_LP(dev_priv))<br />
+ if (IS_GEN9_LP(dev_priv) || HAS_PCH_CNP(dev_priv))<br />
I915_WRITE(regs.pp_ctrl, pp_div);<br />
else<br />
I915_WRITE(regs.pp_div, pp_div);<br />
@@ -5308,7 +5308,7 @@ static void intel_dp_init_panel_power_timestamps(struct intel_dp *intel_dp)<br />
DRM_DEBUG_KMS("panel power sequencer register settings: PP_ON %#x, PP_OFF %#x, PP_DIV %#x\n",<br />
I915_READ(regs.pp_on),<br />
I915_READ(regs.pp_off),<br />
- IS_GEN9_LP(dev_priv) ?<br />
+ (IS_GEN9_LP(dev_priv) || HAS_PCH_CNP(dev_priv)) ?<br />
(I915_READ(regs.pp_ctrl) & BXT_POWER_CYCLE_DELAY_MASK) :<br />
I915_READ(regs.pp_div));<br />
}<br />
--<br />
1.9.1<br />
<br />
_______________________________________________<br />
Intel-gfx mailing list<br />
Intel-gfx@lists.freedesktop.org<br />
https://lists.freedesktop.org/mailman/listinfo/intel-gfx<br /></blockquote>
</div>
</body>
</html>