Re: [PATCH v7 08/35] drm/msm/dp: add support to send ACT packets for MST
From: Yongxing Mou
Date: Mon Oct 12 2026 - 04:47:38 EST
On 10/1/2026 6:32 PM, Dmitry Baryshkov wrote:
On Tue, Sep 29, 2026 at 12:25:32PM +0800, Yongxing Mou wrote:These two fields are intended to represent different states with different lifetimes.
From: Abhinav Kumar <quic_abhinavk@xxxxxxxxxxx>
Whenever virtual channel slot allocation changes, the DP
source must send the action control trigger sequence to notify
the sink about the same. This would be applicable during the
start and stop of the pixel stream. Add the infrastructure
to be able to send ACT packets for the DP controller when
operating in MST mode.
Add REG_DP_MST_ACT, the ACT trigger register used by this sequence.
Signed-off-by: Abhinav Kumar <quic_abhinavk@xxxxxxxxxxx>
Signed-off-by: Yongxing Mou <yongxing.mou@xxxxxxxxxxxxxxxx>
---
drivers/gpu/drm/msm/dp/dp_ctrl.c | 44 ++++++++++++++++++++++++++++++++++++-
drivers/gpu/drm/msm/dp/dp_ctrl.h | 5 ++++-
drivers/gpu/drm/msm/dp/dp_display.c | 3 ++-
drivers/gpu/drm/msm/dp/dp_display.h | 1 +
drivers/gpu/drm/msm/dp/dp_reg.h | 1 +
5 files changed, 51 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/msm/dp/dp_ctrl.c b/drivers/gpu/drm/msm/dp/dp_ctrl.c
index e1614bc49a7c..65d22505c2b6 100644
--- a/drivers/gpu/drm/msm/dp/dp_ctrl.c
+++ b/drivers/gpu/drm/msm/dp/dp_ctrl.c
@@ -142,6 +142,7 @@ struct msm_dp_ctrl_private {
bool core_clks_on;
bool link_clks_on;
bool stream_clks_on[DP_STREAM_MAX];
+ bool mst_active;
I really don't like the idea of having this flag in two locations. Here
and in the msm_dp_display_private. Can we have it in one place only?
msm_dp::mst_active tracks whether the DP connection has an active MST session. The controller field records whether the current controller/link is operating in MST mode and remains valid until the link is shut down.
I agree that using mst_active for both fields makes them look like duplicated state. I propose renaming the controller field to mst_mode while keeping the display-side field as mst_active.
Would you agree with this change?
};
[...]
static void msm_dp_display_unprepare(struct msm_dp_display_private *dp)
diff --git a/drivers/gpu/drm/msm/dp/dp_display.h b/drivers/gpu/drm/msm/dp/dp_display.h
index 83117e7619f3..472429d09200 100644
--- a/drivers/gpu/drm/msm/dp/dp_display.h
+++ b/drivers/gpu/drm/msm/dp/dp_display.h
@@ -19,6 +19,7 @@ struct msm_dp {
struct drm_bridge *bridge;
bool audio_enabled;
bool power_on;
+ bool mst_active;
unsigned int connector_type;
bool is_edp;