drm/i915/gen9+: Don't remove secondary power well requests
authorImre Deak <imre.deak@intel.com>
Thu, 29 Jun 2017 15:37:01 +0000 (18:37 +0300)
committerImre Deak <imre.deak@intel.com>
Thu, 6 Jul 2017 13:41:45 +0000 (16:41 +0300)
commit42d9366d41a992631abaa15f5a881ae1235a8203
tree3adf19b6cd3cdb27fff47cebc499be70e1c7d438
parente8a3a2a3d7f7a194e0f0ad92c5dd636f908e7601
drm/i915/gen9+: Don't remove secondary power well requests

So far in an attempt to make sure all power wells get disabled during
display uninitialization the driver removed any secondary request bits
(BIOS, KVMR, DEBUG) that were set for a given power well. The known
source for these requests was DMC's request on power well 1 and the misc
IO power well. Since DMC is inactive (DC states are disabled) at the
point we disable these power wells, there shouldn't be any reason to
leave them on. However there are two problems with the above
assumption: Bspec requires that the misc IO power well stays enabled
(without providing a reason) and there can be KVMR requests that we
can't remove anyway (the KVMR request register is R/O). Atm, a KVMR
request can trigger a timeout WARN when trying to disable power wells.

To make the code aligned to Bspec and to get rid of the KVMR WARN, don't
try to remove the secondary requests, only detect them and stop polling
for the power well disabled state when any one is set.

Also add a comment about the timeout values required by Bspec when
enabling power wells and the fact that waiting for them to get disabled
is not required by Bspec.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98564
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1498750622-14023-5-git-send-email-imre.deak@intel.com
drivers/gpu/drm/i915/intel_runtime_pm.c