drm/i915/tgl: Fix TC-cold block/unblock sequence
authorImre Deak <imre.deak@intel.com>
Wed, 5 Aug 2020 15:00:56 +0000 (18:00 +0300)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Mon, 17 Aug 2020 20:17:03 +0000 (16:17 -0400)
commit05e31dd78e26d8c4d9d0dd68addead8d19c367c2
tree1bcd0387b7961ab5d082858e4dad2e9124980c57
parentb302a2e68807604af2a5015816c1d117747989b6
drm/i915/tgl: Fix TC-cold block/unblock sequence

The command register is the PCODE MBOX low register not the high one as
described by the spec. This left the system with the TC-cold power state
being blocked all the time. Fix things by using the correct register.

Also to make sure we retry a request for at least 600usec, when the
PCODE MBOX command itself succeeded, but the TC-cold block command
failed, sleep for 1msec unconditionally after any fail.

The change was tested with JTAG register read of the HW/FW's actual
TC-cold state, which reported the expected states after this change.

Tested-by: Nivedita Swaminathan <nivedita.swaminathan@intel.com>
Cc: José Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200805150056.24248-1-imre.deak@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/i915/display/intel_display_power.c
drivers/gpu/drm/i915/i915_reg.h