[PATCH v3 0/6] drm/mediatek: fix cursor issue and apply CMDQ in MTK DRM

Bibby Hsieh
2019-12-04T09:45:26Z

The CMDQ (Command Queue) in MT8183 is used to help update all
relevant display controller registers with critical time limation.
This patch add cmdq interface in ddp_comp interface, let all
ddp_comp interface can support cpu/cmdq function at the same time.

These patches also can fixup cursor moving is not smooth
when heavy load in webgl.

This patch depends on ptach:
add drm support for MT8183
(https://patchwork.kernel.org/cover/11121519/)
support gce on mt8183 platform
(https://patchwork.kernel.org/cover/11255147)
drm/mediatek: Refactor plane init/check and support rotation
(https://pw-emeril.freedesktop.org/series/69015/)
drm/mediatek: Check return value of mtk_drm_ddp_comp_for_plane
(https://lore.kernel.org/patchwork/patch/1154517/)

Changes since v2:
- move some changes to another patch
- disable layer in atomic_disable()

Changes since v1:
- remove redundant code
- merge the duplicate code
- use async instead of cursor

Changes since v0:
- remove redundant code
- remove patch
"drm/mediatek: fix atomic_state reference counting"
After remove this patch, the issue we met before is gone.
So I do not add any extra code to do something.

Bibby Hsieh (6):
drm/mediatek: use DRM core's atomic commit helper
drm/mediatek: handle events when enabling/disabling crtc
drm/mediatek: update cursors by using async atomic update
drm/mediatek: remove unused external function
drm/mediatek: support CMDQ interface in ddp component
drm/mediatek: apply CMDQ control flow

drivers/gpu/drm/mediatek/mtk_disp_color.c | 7 +-
drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 67 ++++----
drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 43 ++---
drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 169 ++++++++++++++++----
drivers/gpu/drm/mediatek/mtk_drm_crtc.h | 2 +
drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 136 ++++++++++++----
drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h | 47 +++---
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 86 +---------
drivers/gpu/drm/mediatek/mtk_drm_drv.h | 7 -
drivers/gpu/drm/mediatek/mtk_drm_plane.c | 50 ++++++
drivers/gpu/drm/mediatek/mtk_drm_plane.h | 2 +
11 files changed, 394 insertions(+), 222 deletions(-)