drm/i915: vlv: fix cdclk setting during modeset while suspended
authorImre Deak <imre.deak@intel.com>
Wed, 19 Nov 2014 14:25:37 +0000 (16:25 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 20 Nov 2014 15:58:11 +0000 (16:58 +0100)
commit738c05c07d74769a1c5704636969b9b21cc96835
tree66d95dfa80853e4bc23012cdca22d9ea64726e5b
parent55072d194ca1bee7dcbf2e24d30728c0141085f6
drm/i915: vlv: fix cdclk setting during modeset while suspended

Currently after doing DPMS-OFF on all outputs CDCLK won't be set to its
minimum value as it should. A subsequent modeset to turn off all outputs
will thus run with all power domains disabled, and notice that it needs
to change CDCLK to its minimum value. Since the power domains are
disabled this will emit a register-access-while-suspended WARN and fail
to set the minimum freq.

The proper solution for this is to set the minimum frequency during
DPMS-OFF. That needs a bigger rework that would take into account the
user DPMS setting too during the calculation of the new modesetting
configuration. Until that's done this stop-gap solution gets the PIPE-A
power domain during setting the CDCLK; this domain covers the HW blocks
needed for this.

Idea to use PIPE-A domain from Ville.

Testcase: igt/pm_rpm
Reference: https://bugs.freedesktop.org/show_bug.cgi?id=82939
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c