drm/msm/sde: fix reading of the pingpong counters
Correct register enum and masks used for reading out the
pingpong vsync and line count values.
Change-Id: Iaa2a1034d38ad9f741c5201de2de7c5f39aeaaf5
Signed-off-by: Lloyd Atkinson <latkinso@codeaurora.org>
diff --git a/drivers/gpu/drm/msm/sde/sde_hw_pingpong.c b/drivers/gpu/drm/msm/sde/sde_hw_pingpong.c
index 49a98be..837edee 100644
--- a/drivers/gpu/drm/msm/sde/sde_hw_pingpong.c
+++ b/drivers/gpu/drm/msm/sde/sde_hw_pingpong.c
@@ -116,10 +116,14 @@
struct sde_hw_pp_vsync_info *info)
{
struct sde_hw_blk_reg_map *c = &pp->hw;
+ u32 val;
- info->init_val = SDE_REG_READ(c, PP_VSYNC_INIT_VAL) & 0xffff;
- info->vsync_count = SDE_REG_READ(c, PP_SYNC_CONFIG_HEIGHT) & 0xffff;
- info->line_count = SDE_REG_READ(c, PP_INT_COUNT_VAL) & 0xffff;
+ val = SDE_REG_READ(c, PP_VSYNC_INIT_VAL);
+ info->init_val = val & 0xffff;
+
+ val = SDE_REG_READ(c, PP_INT_COUNT_VAL);
+ info->vsync_count = (val & 0xffff0000) >> 16;
+ info->line_count = val & 0xffff;
return 0;
}
@@ -158,3 +162,7 @@
return c;
}
+void sde_hw_pingpong_destroy(struct sde_hw_pingpong *pp)
+{
+ kfree(pp);
+}