drm/msm: Change dpu_crtc_get_vblank_counter to use vsync count.
authorMark Yacoub <markyacoub@google.com>
Mon, 30 Aug 2021 18:13:59 +0000 (14:13 -0400)
committerRob Clark <robdclark@chromium.org>
Fri, 15 Oct 2021 19:59:20 +0000 (12:59 -0700)
commit885455d6bf829e71a9cfe51fca06ade509c088d6
tree1d8f4f04582b093f4c31c0dd0a6856ffcbeb0a3c
parentf25f656608e3a54ac3e0747be415cf3d4a69cef8
drm/msm: Change dpu_crtc_get_vblank_counter to use vsync count.

[why]
vsync_cnt atomic counter increments for every hw vsync. On the other
hand, frame count is a register that increments when the frame gets
actually pushed out. We cannnot read this register whenever the timing
engine is off, but vblank counter should still return a valid number.
This behavior also matches the downstream driver.

[How]
Read the encoder vsync count instead of the dpu_encoder_phys frame
count.

Suggested-by: Abhinav Kumar <abhinavk@codeaurora.org>
CC: Rob Clark <robdclark@chromium.org>
Signed-off-by: Mark Yacoub <markyacoub@chromium.org>
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org>
Link: https://lore.kernel.org/r/20210830181359.124267-1-markyacoub@chromium.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h