On 2/8/2016 3:25 PM, Daniel Vetter wrote:
eDP already restores PP state completely on it's own, we only need
this code for LVDS. Since it's more work to move this into the lvds
encoder properly just limit it to affected pch chips for now
(ibx&cpt/ppt).

Cc: Jani Nikula <[email protected]>
Acked-by: Jani Nikula <[email protected]>
Signed-off-by: Daniel Vetter <[email protected]>
---
  drivers/gpu/drm/i915/i915_suspend.c | 8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_suspend.c 
b/drivers/gpu/drm/i915/i915_suspend.c
index a2aa09ce3202..7f6b050266a7 100644
--- a/drivers/gpu/drm/i915/i915_suspend.c
+++ b/drivers/gpu/drm/i915/i915_suspend.c
@@ -43,8 +43,8 @@ static void i915_save_display(struct drm_device *dev)
        else if (INTEL_INFO(dev)->gen <= 4 && IS_MOBILE(dev) && !IS_I830(dev))
                dev_priv->regfile.saveLVDS = I915_READ(LVDS);
- /* Panel power sequencer */
-       if (HAS_PCH_SPLIT(dev)) {
+       /* Panel power sequencer, only needed for LVDS */
+       if (HAS_PCH_IBX(dev) || HAS_PCH_CPT(dev)) {
                dev_priv->regfile.savePP_CONTROL = I915_READ(PCH_PP_CONTROL);
                dev_priv->regfile.savePP_ON_DELAYS = 
I915_READ(PCH_PP_ON_DELAYS);
                dev_priv->regfile.savePP_OFF_DELAYS = 
I915_READ(PCH_PP_OFF_DELAYS);
won't this code execute for eDP too ? Also it seems incorrect we are saving and restoring PP_CONTROL register too when we should have followed proper sequence delays for each bit in PP_CONTROL. This will end up bring up the panel before modeset in
best case or damage the panel in the worst case.

Sivakumar

@@ -78,8 +78,8 @@ static void i915_restore_display(struct drm_device *dev)
        else if (INTEL_INFO(dev)->gen <= 4 && IS_MOBILE(dev) && !IS_I830(dev))
                I915_WRITE(LVDS, dev_priv->regfile.saveLVDS & mask);
- /* Panel power sequencer */
-       if (HAS_PCH_SPLIT(dev)) {
+       /* Panel power sequencer, only needed for LVDS */
+       if (HAS_PCH_IBX(dev) || HAS_PCH_CPT(dev)) {
                I915_WRITE(PCH_PP_ON_DELAYS, 
dev_priv->regfile.savePP_ON_DELAYS);
                I915_WRITE(PCH_PP_OFF_DELAYS, 
dev_priv->regfile.savePP_OFF_DELAYS);
                I915_WRITE(PCH_PP_DIVISOR, dev_priv->regfile.savePP_DIVISOR);

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to