]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/glk, cnl: Implement WaDisableScalarClockGating
authorImre Deak <imre.deak@intel.com>
Mon, 2 Oct 2017 07:55:57 +0000 (10:55 +0300)
committerImre Deak <imre.deak@intel.com>
Tue, 3 Oct 2017 09:09:16 +0000 (12:09 +0300)
commit36041f7c8e9f91db3d818afe3bc91254a6966fbb
tree72c71dcd4167579b4af494756a948dbe0aee2436
parent97e7f23caf1e006e89e34a3a29fc1812f7d0ef90
drm/i915/glk, cnl: Implement WaDisableScalarClockGating

On GLK and CNL enabling a pipe with its pipe scaler enabled will result
in a FIFO underrun. This happens only once after driver loading or
system/runtime resume, more specifically after power well 1 gets
enabled; subsequent modesets seem to be free of underruns. The BSpec
workaround for this is to disable the pipe scaler clock gating for the
duration of modeset. Based on my tests disabling clock gating must be
done before enabling pipe scaling and we can re-enable it after the pipe
is enabled and one vblank has passed.

For consistency I also checked if plane scaling would cause the same
problem, but that doesn't seem to trigger this problem.

The patch is based on an earlier version from Ander.

v2 (Rodrigo):
- Set also CLKGATE_DIS_PSL bits 8 and 9.
- Add also the BSpec workaround ID.

Cc: Ander Conselvan de Oliveira <conselvan2@gmail.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100302
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171002075557.32615-1-imre.deak@intel.com
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_display.c