diff options
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_mixer.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c index 2f6727a4e76..3bc01a6b5e9 100644 --- a/drivers/gpu/drm/exynos/exynos_mixer.c +++ b/drivers/gpu/drm/exynos/exynos_mixer.c | |||
@@ -886,7 +886,7 @@ static irqreturn_t mixer_irq_handler(int irq, void *arg) | |||
886 | struct exynos_drm_hdmi_context *drm_hdmi_ctx = arg; | 886 | struct exynos_drm_hdmi_context *drm_hdmi_ctx = arg; |
887 | struct mixer_context *ctx = drm_hdmi_ctx->ctx; | 887 | struct mixer_context *ctx = drm_hdmi_ctx->ctx; |
888 | struct mixer_resources *res = &ctx->mixer_res; | 888 | struct mixer_resources *res = &ctx->mixer_res; |
889 | u32 val, val_base; | 889 | u32 val, base, shadow; |
890 | 890 | ||
891 | spin_lock(&res->reg_slock); | 891 | spin_lock(&res->reg_slock); |
892 | 892 | ||
@@ -897,12 +897,14 @@ static irqreturn_t mixer_irq_handler(int irq, void *arg) | |||
897 | if (val & MXR_INT_STATUS_VSYNC) { | 897 | if (val & MXR_INT_STATUS_VSYNC) { |
898 | /* interlace scan need to check shadow register */ | 898 | /* interlace scan need to check shadow register */ |
899 | if (ctx->interlace) { | 899 | if (ctx->interlace) { |
900 | val_base = mixer_reg_read(res, MXR_GRAPHIC_BASE_S(0)); | 900 | base = mixer_reg_read(res, MXR_GRAPHIC_BASE(0)); |
901 | if (ctx->win_data[0].dma_addr != val_base) | 901 | shadow = mixer_reg_read(res, MXR_GRAPHIC_BASE_S(0)); |
902 | if (base != shadow) | ||
902 | goto out; | 903 | goto out; |
903 | 904 | ||
904 | val_base = mixer_reg_read(res, MXR_GRAPHIC_BASE_S(1)); | 905 | base = mixer_reg_read(res, MXR_GRAPHIC_BASE(1)); |
905 | if (ctx->win_data[1].dma_addr != val_base) | 906 | shadow = mixer_reg_read(res, MXR_GRAPHIC_BASE_S(1)); |
907 | if (base != shadow) | ||
906 | goto out; | 908 | goto out; |
907 | } | 909 | } |
908 | 910 | ||