From: Abhinav Kumar <quic_abhin...@quicinc.com> Integrate MST framework APIs with atomic_commit_setup() and atomic_commit_tail() to support non-blocking atomic commits for DisplayPort MST.
This patch only applies to MST. For SST, non-blocking commits are already handled via commit_tail(), which internally calls drm_atomic_helper_wait_for_dependencies() in the DRM core. Signed-off-by: Abhinav Kumar <quic_abhin...@quicinc.com> Signed-off-by: Yongxing Mou <yongxing....@oss.qualcomm.com> --- drivers/gpu/drm/msm/msm_atomic.c | 3 +++ drivers/gpu/drm/msm/msm_kms.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/drivers/gpu/drm/msm/msm_atomic.c b/drivers/gpu/drm/msm/msm_atomic.c index 3aa0020dec3a90b693ad3d4171cfcffc091aad4c..b1656fb456d54af11ba8a30d4971fface114c7a1 100644 --- a/drivers/gpu/drm/msm/msm_atomic.c +++ b/drivers/gpu/drm/msm/msm_atomic.c @@ -4,6 +4,7 @@ * Author: Rob Clark <robdcl...@gmail.com> */ +#include <drm/display/drm_dp_mst_helper.h> #include <drm/drm_atomic_uapi.h> #include <drm/drm_vblank.h> #include <drm/display/drm_dp_mst_helper.h> @@ -226,6 +227,8 @@ void msm_atomic_commit_tail(struct drm_atomic_state *state) trace_msm_atomic_commit_tail_start(async, crtc_mask); + drm_dp_mst_atomic_wait_for_dependencies(state); + kms->funcs->enable_commit(kms); /* diff --git a/drivers/gpu/drm/msm/msm_kms.c b/drivers/gpu/drm/msm/msm_kms.c index 6889f1c1e72121dcc735fa460ea04cdab11c6705..09776be1d3d854f4c77d7df3afa8d56f53639411 100644 --- a/drivers/gpu/drm/msm/msm_kms.c +++ b/drivers/gpu/drm/msm/msm_kms.c @@ -10,6 +10,7 @@ #include <linux/sched/mm.h> #include <uapi/linux/sched/types.h> +#include <drm/display/drm_dp_mst_helper.h> #include <drm/drm_drv.h> #include <drm/drm_mode_config.h> #include <drm/drm_vblank.h> @@ -29,6 +30,7 @@ static const struct drm_mode_config_funcs mode_config_funcs = { static const struct drm_mode_config_helper_funcs mode_config_helper_funcs = { .atomic_commit_tail = msm_atomic_commit_tail, + .atomic_commit_setup = drm_dp_mst_atomic_setup_commit, }; static irqreturn_t msm_irq(int irq, void *arg) -- 2.34.1