]> git.baikalelectronics.ru Git - kernel.git/commit
drm/amd/display: Enable vblank interrupt during CRC capture
authorNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Mon, 14 Jan 2019 21:04:10 +0000 (16:04 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 28 Jan 2019 16:43:55 +0000 (11:43 -0500)
commit55ad95c4a1698cf8cb9f54d2a0eb6c9e0cf7b876
treedc926fbb3d738618a7fa081946460d5ebf29724c
parent63ecbf21ca5d14043a9f3333131b4b5117815ad3
drm/amd/display: Enable vblank interrupt during CRC capture

[Why]
In order to read CRC events when CRC capture is enabled the vblank
interrput handler needs to be running for the CRTC. The handler is
enabled while there is an active vblank reference.

When running IGT tests there will often be no active vblank reference
but the test expects to read a CRC value. This is valid usage (and
works on i915 since they have a CRC interrupt handler) so the reference
to the vblank should be grabbed while capture is active.

This issue was found running:

igt@kms_plane_multiple@atomic-pipe-b-tiling-none

The pipe-b is the only one in the initial commit and was not previously
active so no vblank reference is grabbed. The vblank interrupt is
not enabled and the test times out.

[How]
Keep a reference to the vblank as long as CRC capture is enabled.
If userspace never explicitly disables it then the reference is
also dropped when removing the CRTC from the context (stream = NULL).

Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: Harry Wentland <Harry.Wentland@amd.com>
Reviewed-by: Sun peng Li <Sunpeng.Li@amd.com>
Acked-by: Leo Li <sunpeng.li@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c