mirror of https://gitee.com/openkylin/linux.git
drm/i915/vlv: save/restore the power context base reg
Some BIOSes (e.g. the one on the Minnowboard) don't save/restore this reg. If it's unlocked, we can just restore the previous value, and if it's locked (in case the BIOS re-programmed it for us) the write will be ignored and we'll still have "did it move" sanity check in the PM code to warn us if something is still amiss. References: https://bugs.freedesktop.org/show_bug.cgi?id=89611 Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Tested-by: Darren Hart <dvhart@linux.intel.com> Cc: stable@vger.kernel.org Reviewed-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Deepak S <deepak.s@linux.intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
parent
f22e6e8471
commit
9c25210fd3
|
@ -1095,6 +1095,7 @@ static void vlv_save_gunit_s0ix_state(struct drm_i915_private *dev_priv)
|
|||
/* Gunit-Display CZ domain, 0x182028-0x1821CF */
|
||||
s->gu_ctl0 = I915_READ(VLV_GU_CTL0);
|
||||
s->gu_ctl1 = I915_READ(VLV_GU_CTL1);
|
||||
s->pcbr = I915_READ(VLV_PCBR);
|
||||
s->clock_gate_dis2 = I915_READ(VLV_GUNIT_CLOCK_GATE2);
|
||||
|
||||
/*
|
||||
|
@ -1189,6 +1190,7 @@ static void vlv_restore_gunit_s0ix_state(struct drm_i915_private *dev_priv)
|
|||
/* Gunit-Display CZ domain, 0x182028-0x1821CF */
|
||||
I915_WRITE(VLV_GU_CTL0, s->gu_ctl0);
|
||||
I915_WRITE(VLV_GU_CTL1, s->gu_ctl1);
|
||||
I915_WRITE(VLV_PCBR, s->pcbr);
|
||||
I915_WRITE(VLV_GUNIT_CLOCK_GATE2, s->clock_gate_dis2);
|
||||
}
|
||||
|
||||
|
|
|
@ -1094,6 +1094,7 @@ struct vlv_s0ix_state {
|
|||
/* Display 2 CZ domain */
|
||||
u32 gu_ctl0;
|
||||
u32 gu_ctl1;
|
||||
u32 pcbr;
|
||||
u32 clock_gate_dis2;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue