From: Abhinav Kumar <quic_abhinavk@quicinc.com>
To: Rob Clark <robdclark@gmail.com>,
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
Sean Paul <sean@poorly.run>,
Marijn Suijten <marijn.suijten@somainline.org>,
David Airlie <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
Stephen Boyd <swboyd@chromium.org>,
"Chandan Uddaraju" <chandanu@codeaurora.org>,
Guenter Roeck <groeck@chromium.org>,
Kuogee Hsieh <quic_khsieh@quicinc.com>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>
Cc: Vara Reddy <quic_varar@quicinc.com>,
Rob Clark <robdclark@chromium.org>,
Tanmay Shah <tanmay@codeaurora.org>,
<linux-arm-msm@vger.kernel.org>,
<dri-devel@lists.freedesktop.org>,
<freedreno@lists.freedesktop.org>, <linux-kernel@vger.kernel.org>,
<devicetree@vger.kernel.org>,
Jessica Zhang <quic_jesszhan@quicinc.com>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Abhinav Kumar <quic_abhinavk@quicinc.com>
Subject: [PATCH 18/45] drm/msm/dp: add support to send ACT packets for MST
Date: Thu, 5 Dec 2024 20:31:49 -0800 [thread overview]
Message-ID: <20241205-dp_mst-v1-18-f8618d42a99a@quicinc.com> (raw)
In-Reply-To: <20241205-dp_mst-v1-0-f8618d42a99a@quicinc.com>
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.
Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
---
drivers/gpu/drm/msm/dp/dp_catalog.c | 21 +++++++++++++++++++++
drivers/gpu/drm/msm/dp/dp_catalog.h | 4 ++++
drivers/gpu/drm/msm/dp/dp_ctrl.c | 36 ++++++++++++++++++++++++++++++++++--
drivers/gpu/drm/msm/dp/dp_ctrl.h | 3 ++-
drivers/gpu/drm/msm/dp/dp_display.c | 6 +++++-
drivers/gpu/drm/msm/dp/dp_display.h | 1 +
drivers/gpu/drm/msm/dp/dp_reg.h | 3 +++
7 files changed, 70 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/msm/dp/dp_catalog.c b/drivers/gpu/drm/msm/dp/dp_catalog.c
index e6f6edf617898241c74580eb0ae6bc58f06a154f..88d6262a972ef2d30c467ef5ff5c58ef3299ae7d 100644
--- a/drivers/gpu/drm/msm/dp/dp_catalog.c
+++ b/drivers/gpu/drm/msm/dp/dp_catalog.c
@@ -1078,6 +1078,27 @@ void msm_dp_catalog_panel_disable_vsc_sdp(struct msm_dp_catalog *msm_dp_catalog)
msm_dp_catalog_panel_update_sdp(msm_dp_catalog);
}
+void msm_dp_catalog_trigger_act(struct msm_dp_catalog *msm_dp_catalog)
+{
+ struct msm_dp_catalog_private *catalog;
+
+ catalog = container_of(msm_dp_catalog, struct msm_dp_catalog_private, msm_dp_catalog);
+
+ msm_dp_write_link(catalog, REG_DP_MST_ACT, 0x1);
+
+ /* make sure ACT signal is performed */
+ wmb();
+}
+
+bool msm_dp_catalog_read_act_complete_sts(struct msm_dp_catalog *msm_dp_catalog)
+{
+ struct msm_dp_catalog_private *catalog;
+
+ catalog = container_of(msm_dp_catalog, struct msm_dp_catalog_private, msm_dp_catalog);
+
+ return msm_dp_read_link(catalog, REG_DP_MST_ACT);
+}
+
void msm_dp_catalog_panel_tpg_enable(struct msm_dp_catalog *msm_dp_catalog,
struct drm_display_mode *drm_mode)
{
diff --git a/drivers/gpu/drm/msm/dp/dp_catalog.h b/drivers/gpu/drm/msm/dp/dp_catalog.h
index c020b7cfa008241e937f6a53764b136431f1dbd9..c91c52d40209b8bcb63db9c0256f6ef721dace8a 100644
--- a/drivers/gpu/drm/msm/dp/dp_catalog.h
+++ b/drivers/gpu/drm/msm/dp/dp_catalog.h
@@ -135,4 +135,8 @@ void msm_dp_catalog_audio_config_sdp(struct msm_dp_catalog *catalog);
void msm_dp_catalog_audio_init(struct msm_dp_catalog *catalog);
void msm_dp_catalog_audio_sfe_level(struct msm_dp_catalog *catalog, u32 safe_to_exit_level);
+/* DP MST APIs */
+void msm_dp_catalog_trigger_act(struct msm_dp_catalog *dp_catalog);
+bool msm_dp_catalog_read_act_complete_sts(struct msm_dp_catalog *dp_catalog);
+
#endif /* _DP_CATALOG_H_ */
diff --git a/drivers/gpu/drm/msm/dp/dp_ctrl.c b/drivers/gpu/drm/msm/dp/dp_ctrl.c
index ba39b009032dd6f5cb708988963cd6acb6838e4a..2bfe2aac3c02b02b12713dbd98e79ed4a75b85d0 100644
--- a/drivers/gpu/drm/msm/dp/dp_ctrl.c
+++ b/drivers/gpu/drm/msm/dp/dp_ctrl.c
@@ -97,6 +97,8 @@ struct msm_dp_ctrl_private {
bool core_clks_on;
bool link_clks_on;
+
+ bool mst_active;
bool stream_clks_on[DP_STREAM_MAX];
};
@@ -1625,6 +1627,26 @@ static int msm_dp_ctrl_deinitialize_mainlink(struct msm_dp_ctrl_private *ctrl)
return 0;
}
+int msm_dp_ctrl_mst_send_act(struct msm_dp_ctrl *msm_dp_ctrl)
+{
+ struct msm_dp_ctrl_private *ctrl;
+ bool act_complete;
+
+ ctrl = container_of(msm_dp_ctrl, struct msm_dp_ctrl_private, msm_dp_ctrl);
+
+ msm_dp_catalog_trigger_act(ctrl->catalog);
+ msleep(20); /* needs 1 frame time */
+
+ act_complete = msm_dp_catalog_read_act_complete_sts(ctrl->catalog);
+
+ if (!act_complete)
+ DRM_ERROR("mst ACT trigger complete SUCCESS\n");
+ else
+ drm_dbg_dp(ctrl->drm_dev, "mst ACT trigger complete failed\n");
+
+ return 0;
+}
+
static int msm_dp_ctrl_link_maintenance(struct msm_dp_ctrl_private *ctrl)
{
int ret = 0;
@@ -1643,6 +1665,9 @@ static int msm_dp_ctrl_link_maintenance(struct msm_dp_ctrl_private *ctrl)
msm_dp_catalog_ctrl_state_ctrl(ctrl->catalog, DP_STATE_CTRL_SEND_VIDEO);
+ if (ctrl->mst_active)
+ msm_dp_ctrl_mst_send_act(&ctrl->msm_dp_ctrl);
+
ret = msm_dp_ctrl_wait4video_ready(ctrl);
end:
return ret;
@@ -1745,7 +1770,7 @@ static int msm_dp_ctrl_process_phy_test_request(struct msm_dp_ctrl_private *ctrl
msm_dp_ctrl_stream_clk_off(&ctrl->msm_dp_ctrl, msm_dp_panel);
msm_dp_ctrl_off_link(&ctrl->msm_dp_ctrl);
- ret = msm_dp_ctrl_on_link(&ctrl->msm_dp_ctrl);
+ ret = msm_dp_ctrl_on_link(&ctrl->msm_dp_ctrl, ctrl->mst_active);
if (ret) {
DRM_ERROR("failed to enable DP link controller\n");
return ret;
@@ -1825,7 +1850,7 @@ static bool msm_dp_ctrl_channel_eq_ok(struct msm_dp_ctrl_private *ctrl)
return drm_dp_channel_eq_ok(link_status, num_lanes);
}
-int msm_dp_ctrl_on_link(struct msm_dp_ctrl *msm_dp_ctrl)
+int msm_dp_ctrl_on_link(struct msm_dp_ctrl *msm_dp_ctrl, bool mst_active)
{
int rc = 0;
struct msm_dp_ctrl_private *ctrl;
@@ -1844,6 +1869,7 @@ int msm_dp_ctrl_on_link(struct msm_dp_ctrl *msm_dp_ctrl)
rate = ctrl->panel->link_info.rate;
pixel_rate = ctrl->panel->msm_dp_mode.drm_mode.clock;
+ ctrl->mst_active = mst_active;
msm_dp_ctrl_core_clk_enable(&ctrl->msm_dp_ctrl);
if (ctrl->link->sink_request & DP_TEST_LINK_PHY_TEST_PATTERN) {
@@ -2035,6 +2061,9 @@ int msm_dp_ctrl_on_stream(struct msm_dp_ctrl *msm_dp_ctrl, struct msm_dp_panel *
msm_dp_catalog_ctrl_state_ctrl(ctrl->catalog, DP_STATE_CTRL_SEND_VIDEO);
+ if (ctrl->mst_active)
+ msm_dp_ctrl_mst_send_act(msm_dp_ctrl);
+
ret = msm_dp_ctrl_wait4video_ready(ctrl);
if (ret)
return ret;
@@ -2104,6 +2133,8 @@ void msm_dp_ctrl_off_link(struct msm_dp_ctrl *msm_dp_ctrl)
msm_dp_catalog_ctrl_mainlink_ctrl(ctrl->catalog, false);
+ ctrl->mst_active = false;
+
dev_pm_opp_set_rate(ctrl->dev, 0);
msm_dp_ctrl_link_clk_disable(&ctrl->msm_dp_ctrl);
@@ -2264,6 +2295,7 @@ struct msm_dp_ctrl *msm_dp_ctrl_get(struct device *dev, struct msm_dp_link *link
ctrl->catalog = catalog;
ctrl->dev = dev;
ctrl->phy = phy;
+ ctrl->mst_active = false;
ret = msm_dp_ctrl_clk_init(&ctrl->msm_dp_ctrl);
if (ret) {
diff --git a/drivers/gpu/drm/msm/dp/dp_ctrl.h b/drivers/gpu/drm/msm/dp/dp_ctrl.h
index d422fd683b65d6f5e459710d0327e472a12c30b0..81c05b1b2baac63e1f1888f3f517e62a98e230a7 100644
--- a/drivers/gpu/drm/msm/dp/dp_ctrl.h
+++ b/drivers/gpu/drm/msm/dp/dp_ctrl.h
@@ -17,7 +17,7 @@ struct msm_dp_ctrl {
struct phy;
-int msm_dp_ctrl_on_link(struct msm_dp_ctrl *msm_dp_ctrl);
+int msm_dp_ctrl_on_link(struct msm_dp_ctrl *msm_dp_ctrl, bool mst_active);
int msm_dp_ctrl_on_stream(struct msm_dp_ctrl *msm_dp_ctrl, struct msm_dp_panel *msm_dp_panel);
int msm_dp_ctrl_prepare_stream_on(struct msm_dp_ctrl *dp_ctrl, bool force_link_train);
void msm_dp_ctrl_off_link_stream(struct msm_dp_ctrl *msm_dp_ctrl);
@@ -46,5 +46,6 @@ void msm_dp_ctrl_clear_vsc_sdp_pkt(struct msm_dp_ctrl *msm_dp_ctrl,
struct msm_dp_panel *msm_dp_panel);
void msm_dp_ctrl_psm_config(struct msm_dp_ctrl *msm_dp_ctrl);
void msm_dp_ctrl_reinit_phy(struct msm_dp_ctrl *msm_dp_ctrl);
+int msm_dp_ctrl_mst_send_act(struct msm_dp_ctrl *ctrl);
#endif /* _DP_CTRL_H_ */
diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
index 5fa6c003cf6c51eae77573549a555a00dc33f476..e19860ef3493fb100afbf04b09d14a136fd6b887 100644
--- a/drivers/gpu/drm/msm/dp/dp_display.c
+++ b/drivers/gpu/drm/msm/dp/dp_display.c
@@ -370,6 +370,7 @@ static int msm_dp_display_process_hpd_high(struct msm_dp_display_private *dp)
struct drm_connector *connector = dp->msm_dp_display.connector;
const struct drm_display_info *info = &connector->display_info;
int rc = 0;
+ struct msm_dp *dp_display = &dp->msm_dp_display;
rc = msm_dp_panel_read_link_caps(dp->panel, connector);
if (rc)
@@ -399,7 +400,7 @@ static int msm_dp_display_process_hpd_high(struct msm_dp_display_private *dp)
msm_dp_link_psm_config(dp->link, &dp->panel->link_info, false);
msm_dp_link_reset_phy_params_vx_px(dp->link);
- rc = msm_dp_ctrl_on_link(dp->ctrl);
+ rc = msm_dp_ctrl_on_link(dp->ctrl, dp_display->mst_active);
if (rc) {
DRM_ERROR("failed to complete DP link training\n");
goto end;
@@ -1628,6 +1629,9 @@ void msm_dp_display_atomic_disable(struct msm_dp *dp)
msm_dp_display = container_of(dp, struct msm_dp_display_private, msm_dp_display);
msm_dp_ctrl_push_idle(msm_dp_display->ctrl);
+
+ if (dp->mst_active)
+ msm_dp_ctrl_mst_send_act(msm_dp_display->ctrl);
}
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 8ce8ba254b1bfe5b4c000df83eceef5823772780..38ca25491b1ccfd95e027a9c8f659abb3cd576d3 100644
--- a/drivers/gpu/drm/msm/dp/dp_display.h
+++ b/drivers/gpu/drm/msm/dp/dp_display.h
@@ -22,6 +22,7 @@ struct msm_dp {
bool audio_enabled;
bool power_on;
bool prepared;
+ bool mst_active;
unsigned int connector_type;
bool is_edp;
bool internal_hpd;
diff --git a/drivers/gpu/drm/msm/dp/dp_reg.h b/drivers/gpu/drm/msm/dp/dp_reg.h
index 6c534fde6034fced2cb428e9a29de31ed5c5fcc4..46400973eb499066e9e805b16df759b1db34cf22 100644
--- a/drivers/gpu/drm/msm/dp/dp_reg.h
+++ b/drivers/gpu/drm/msm/dp/dp_reg.h
@@ -330,6 +330,9 @@
#define REG_DP_PHY_AUX_BIST_CFG (0x00000050)
#define REG_DP_PHY_AUX_INTERRUPT_STATUS (0x000000BC)
+/* DP MST related registers */
+#define REG_DP_MST_ACT (0x00000500)
+
/* DP HDCP 1.3 registers */
#define DP_HDCP_CTRL (0x0A0)
#define DP_HDCP_STATUS (0x0A4)
--
2.34.1
next prev parent reply other threads:[~2024-12-06 4:33 UTC|newest]
Thread overview: 111+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-06 4:31 [PATCH 00/45] drm/msm/dp: Add MST support for MSM chipsets Abhinav Kumar
2024-12-06 4:31 ` [PATCH 01/45] drm/msm/dp: dont call dp_catalog_ctrl_mainlink_ctrl in dp_ctrl_configure_source_params() Abhinav Kumar
2024-12-08 17:50 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 02/45] drm/msm/dp: disable the opp table request even for dp_ctrl_off_link() Abhinav Kumar
2024-12-06 8:38 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 03/45] drm/msm/dp: fix the intf_type of MST interfaces Abhinav Kumar
2024-12-06 8:41 ` Dmitry Baryshkov
2025-01-07 0:55 ` Bjorn Andersson
2025-05-29 10:06 ` Yongxing Mou
2024-12-06 4:31 ` [PATCH 04/45] drm/msm/dp: split msm_dp_panel_read_sink_caps() into two parts Abhinav Kumar
2024-12-06 8:51 ` Dmitry Baryshkov
2025-05-22 9:51 ` Yongxing Mou
2025-05-22 12:38 ` Dmitry Baryshkov
2025-05-26 12:21 ` Yongxing Mou
2024-12-06 4:31 ` [PATCH 05/45] drm/msm/dp: add a helper to read mst caps for dp_panel Abhinav Kumar
2024-12-06 8:52 ` Dmitry Baryshkov
2025-05-26 12:26 ` Yongxing Mou
2025-05-28 16:13 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 06/45] drm/msm/dp: remove dp_display's dp_mode and use dp_panel's instead Abhinav Kumar
2024-12-06 9:01 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 07/45] drm/msm/dp: break up dp_display_enable into two parts Abhinav Kumar
2024-12-06 9:04 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 08/45] drm/msm/dp: re-arrange dp_display_disable() into functional parts Abhinav Kumar
2024-12-08 12:03 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 09/45] drm/msm/dp: allow dp_ctrl stream APIs to use any panel passed to it Abhinav Kumar
2024-12-06 9:09 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 10/45] drm/msm/dp: move the pixel clock control to its own API Abhinav Kumar
2024-12-06 9:11 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 11/45] drm/msm/dp: split dp_ctrl_off() into stream and link parts Abhinav Kumar
2024-12-06 9:14 ` Dmitry Baryshkov
2025-05-26 12:47 ` Yongxing Mou
2025-05-28 16:15 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 12/45] drm/msm/dp: make bridge helpers use dp_display to allow re-use Abhinav Kumar
2024-12-08 11:07 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 13/45] drm/msm/dp: separate dp_display_prepare() into its own API Abhinav Kumar
2024-12-06 12:12 ` Stephan Gerhold
2024-12-06 4:31 ` [PATCH 14/45] drm/msm/dp: introduce stream_id for each DP panel Abhinav Kumar
2024-12-08 11:22 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 15/45] drm/msm/dp: convert dp_display_set_mode() to use dp_panel argument Abhinav Kumar
2024-12-08 11:39 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 16/45] drm/msm/dp: add support for programming p1 register block Abhinav Kumar
2024-12-06 9:39 ` Dmitry Baryshkov
2024-12-06 9:42 ` Dmitry Baryshkov
2024-12-08 6:22 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 17/45] drm/msm/dp: use stream_id to change offsets in dp_catalog Abhinav Kumar
2024-12-08 5:42 ` Dmitry Baryshkov
2025-05-26 12:57 ` Yongxing Mou
2025-05-28 16:17 ` Dmitry Baryshkov
2024-12-06 4:31 ` Abhinav Kumar [this message]
2024-12-08 5:45 ` [PATCH 18/45] drm/msm/dp: add support to send ACT packets for MST Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 19/45] drm/msm/dp: add support to program mst support in mainlink Abhinav Kumar
2024-12-08 11:42 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 20/45] drm/msm/dp: no need to update tu calculation for mst Abhinav Kumar
2024-12-08 5:45 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 21/45] drm/msm/dp: add support for mst channel slot allocation Abhinav Kumar
2024-12-08 6:13 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 22/45] drm/msm/dp: add support to send vcpf packets in dp controller Abhinav Kumar
2024-12-08 6:20 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 23/45] drm/msm/dp: always program MST_FIFO_CONSTANT_FILL for MST Abhinav Kumar
2024-12-08 11:44 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 24/45] drm/msm/dp: abstract out the dp_display stream helpers to accept a panel Abhinav Kumar
2024-12-08 11:46 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 25/45] drm/msm/dp: move link related operations to dp_display_unprepare() Abhinav Kumar
2024-12-08 11:48 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 26/45] drm/msm/dp: replace power_on with active_stream_cnt for dp_display Abhinav Kumar
2024-12-08 11:50 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 27/45] drm/msm/dp: make the SST bridge disconnected when mst is active Abhinav Kumar
2024-12-08 11:51 ` Dmitry Baryshkov
2024-12-06 4:31 ` [PATCH 28/45] drm/msm/dp: add an API to initialize MST on sink side Abhinav Kumar
2024-12-08 11:56 ` Dmitry Baryshkov
2024-12-06 4:32 ` [PATCH 29/45] drm/msm/dp: skip reading the EDID for MST cases Abhinav Kumar
2024-12-06 9:32 ` Dmitry Baryshkov
2024-12-06 4:32 ` [PATCH 30/45] drm/msm/dp: add dp_display_get_panel() to initialize DP panel Abhinav Kumar
2024-12-08 8:51 ` Dmitry Baryshkov
2024-12-06 4:32 ` [PATCH 31/45] drm/msm/dp: add dp_mst_drm to manage DP MST bridge operations Abhinav Kumar
2024-12-06 10:12 ` Dmitry Baryshkov
2025-05-27 10:29 ` Yongxing Mou
2025-05-28 18:02 ` Dmitry Baryshkov
2024-12-08 7:19 ` Dmitry Baryshkov
2024-12-06 4:32 ` [PATCH 32/45] drm/msm/dp: add connector abstraction for DP MST Abhinav Kumar
2024-12-08 7:24 ` Dmitry Baryshkov
2024-12-06 4:32 ` [PATCH 33/45] drm/msm/dp: add irq hpd callback for dp mst Abhinav Kumar
2024-12-08 6:44 ` Dmitry Baryshkov
2024-12-06 4:32 ` [PATCH 34/45] drm/msm/dp: add support to re-use and clear the panel edid Abhinav Kumar
2024-12-08 8:53 ` Dmitry Baryshkov
2024-12-06 4:32 ` [PATCH 35/45] drm/msm/dp: add a mst session mutex to protect bridge ops Abhinav Kumar
2024-12-08 8:54 ` Dmitry Baryshkov
2024-12-06 4:32 ` [PATCH 36/45] drm/msm/dp: propagate hpd state changes to dp mst module Abhinav Kumar
2024-12-08 8:58 ` Dmitry Baryshkov
2024-12-06 4:32 ` [PATCH 37/45] drm/msm: add support for non-blocking commits Abhinav Kumar
2024-12-06 9:27 ` Dmitry Baryshkov
2024-12-06 4:32 ` [PATCH 38/45] drm/msm: initialize DRM MST encoders for DP controllers Abhinav Kumar
2024-12-08 6:25 ` Dmitry Baryshkov
2024-12-06 4:32 ` [PATCH 39/45] drm/msm/dp: initialize dp_mst module for each DP MST controller Abhinav Kumar
2024-12-08 6:31 ` Dmitry Baryshkov
2024-12-06 4:32 ` [PATCH 40/45] drm/msm: add a stream to intf map for DP controller Abhinav Kumar
2024-12-06 9:20 ` Dmitry Baryshkov
2024-12-06 4:32 ` [PATCH 41/45] drm/msm/dpu: use msm_dp_get_mst_intf_id() to get the intf id Abhinav Kumar
2024-12-06 9:25 ` Dmitry Baryshkov
2024-12-06 4:32 ` [PATCH 42/45] drm/msm/dp: mark ST_DISCONNECTED only if all streams are disabled Abhinav Kumar
2024-12-08 11:58 ` Dmitry Baryshkov
2024-12-06 4:32 ` [PATCH 43/45] drm/msm/dp: populate the max_streams for sa8775 mst controller Abhinav Kumar
2024-12-08 12:00 ` Dmitry Baryshkov
2024-12-06 4:32 ` [PATCH 44/45] arm64: dts: qcom: add mst support for pixel stream clk for DP0 Abhinav Kumar
2024-12-06 12:20 ` Konrad Dybcio
2025-01-07 0:52 ` Bjorn Andersson
2024-12-06 4:32 ` [PATCH 45/45] arm64: dts: qcom: add mst support for pixel 1 stream clk for DP1 Abhinav Kumar
2025-01-07 1:06 ` [PATCH 00/45] drm/msm/dp: Add MST support for MSM chipsets Bjorn Andersson
2025-01-07 1:10 ` Abhinav Kumar
2025-05-10 12:12 ` Jens Glathe
2025-05-22 18:19 ` Abhinav Kumar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241205-dp_mst-v1-18-f8618d42a99a@quicinc.com \
--to=quic_abhinavk@quicinc.com \
--cc=airlied@gmail.com \
--cc=andersson@kernel.org \
--cc=chandanu@codeaurora.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.baryshkov@linaro.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=freedreno@lists.freedesktop.org \
--cc=groeck@chromium.org \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marijn.suijten@somainline.org \
--cc=quic_jesszhan@quicinc.com \
--cc=quic_khsieh@quicinc.com \
--cc=quic_varar@quicinc.com \
--cc=robdclark@chromium.org \
--cc=robdclark@gmail.com \
--cc=robh@kernel.org \
--cc=sean@poorly.run \
--cc=simona@ffwll.ch \
--cc=swboyd@chromium.org \
--cc=tanmay@codeaurora.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).