<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEEDINFO "
   title="NEEDINFO - Backlight does not change when adjust it higher than 50% after S3"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=97486#c14">Comment # 14</a>
              on <a class="bz_bug_link 
          bz_status_NEEDINFO "
   title="NEEDINFO - Backlight does not change when adjust it higher than 50% after S3"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=97486">bug 97486</a>
              from <span class="vcard"><a class="email" href="mailto:shawn.c.lee@intel.com" title="Shawn Lee <shawn.c.lee@intel.com>"> <span class="fn">Shawn Lee</span></a>
</span></b>
        <pre>Hi AceLan Kao,

Could you help to apply the change in below to monitor this symptom still be
replicated? Thanks!

---
 drivers/gpu/drm/i915/i915_drv.h     |    1 +
 drivers/gpu/drm/i915/i915_suspend.c |    6 ++++++
 2 files changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index c413587..003cbf2 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1086,6 +1086,7 @@ struct i915_suspend_saved_registers {
        uint64_t saveFENCE[I915_MAX_NUM_FENCES];
        u32 savePCH_PORT_HOTPLUG;
        u16 saveGCDGMBUS;
+       u32 savePWM_GRANULARITY;
 };

 struct vlv_s0ix_state {
diff --git a/drivers/gpu/drm/i915/i915_suspend.c
b/drivers/gpu/drm/i915/i915_suspend.c
index a0af170..5bf8b88 100644
--- a/drivers/gpu/drm/i915/i915_suspend.c
+++ b/drivers/gpu/drm/i915/i915_suspend.c
@@ -40,6 +40,9 @@ static void i915_save_display(struct drm_device *dev)
        /* save FBC interval */
        if (HAS_FBC(dev) && INTEL_INFO(dev)->gen <= 4 && !IS_G4X(dev))
                dev_priv->regfile.saveFBC_CONTROL = I915_READ(FBC_CONTROL);
+
+       if (HAS_PCH_SPT(dev_priv))
+               dev_priv->regfile.savePWM_GRANULARITY =
I915_READ(SOUTH_CHICKEN1);
 }

 static void i915_restore_display(struct drm_device *dev)
@@ -58,6 +61,9 @@ static void i915_restore_display(struct drm_device *dev)
                I915_WRITE(FBC_CONTROL, dev_priv->regfile.saveFBC_CONTROL);

        i915_redisable_vga(dev);
+
+       if (HAS_PCH_SPT(dev_priv))
+               I915_WRITE(SOUTH_CHICKEN1,
dev_priv->regfile.savePWM_GRANULARITY);
 }

 int i915_save_state(struct drm_device *dev)
--</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
          <li>You are on the CC list for the bug.</li>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>