summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/hisilicon/kirin/kirin_ade_reg.h
diff options
context:
space:
mode:
authorDa Lv <lvda3@hisilicon.com>2019-08-20 23:06:02 +0000
committerSam Ravnborg <sam@ravnborg.org>2019-08-21 19:15:32 +0200
commitff57c6513820efe945b61863cf4a51b79f18b592 (patch)
treeab250db2b1680e7c3fcf1401a005404251c32e0f /drivers/gpu/drm/hisilicon/kirin/kirin_ade_reg.h
parent019cbd4a4feb3aa3a917d78e7110e3011bbff6d5 (diff)
drm: kirin: Fix for hikey620 display offset problem
The original HiKey (620) board has had a long running issue where when using a 1080p montior, the display would occasionally blink and come come back with a horizontal offset (usually also shifting the colors, depending on the value of the offset%4). After lots of analysis by HiSi developers, they found the issue was due to when running at 1080p, it was possible to hit the device memory bandwidth limits, which could cause the DSI signal to get out of sync. Unfortunately the DSI logic doesn't have the ability to automatically recover from this situation, but we can get a an LDI underflow interrupt when it happens. To then correct the issue, when we get an LDI underflow irq, we we can simply suspend and resume the display, which resets the hardware. Thus, this patch enables the ldi underflow interrupt, and initializes a workqueue that is used to suspend/resume the display to recover. Then when the irq occurs we clear it and schedule the workqueue to reset display engine. Cc: Rongrong Zou <zourongrong@gmail.com> Cc: Xinliang Liu <z.liuxinliang@hisilicon.com> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: dri-devel <dri-devel@lists.freedesktop.org> Cc: Sam Ravnborg <sam@ravnborg.org> Acked-by: Xinliang Liu <z.liuxinliang@hisilicon.com> Reviewed-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Da Lv <lvda3@hisilicon.com> Signed-off-by: Yidong Lin <linyidong@huawei.com> [jstultz: Reworded the commit message, checkpatch cleanups] Signed-off-by: John Stultz <john.stultz@linaro.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Link: https://patchwork.freedesktop.org/patch/msgid/20190820230626.23253-2-john.stultz@linaro.org
Diffstat (limited to 'drivers/gpu/drm/hisilicon/kirin/kirin_ade_reg.h')
-rw-r--r--drivers/gpu/drm/hisilicon/kirin/kirin_ade_reg.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_ade_reg.h b/drivers/gpu/drm/hisilicon/kirin/kirin_ade_reg.h
index e2ac09894a6d..0da860200410 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_ade_reg.h
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_ade_reg.h
@@ -83,6 +83,7 @@
#define VSIZE_OFST 20
#define LDI_INT_EN 0x741C
#define FRAME_END_INT_EN_OFST 1
+#define UNDERFLOW_INT_EN_OFST 2
#define LDI_CTRL 0x7420
#define BPP_OFST 3
#define DATA_GATE_EN BIT(2)