From: sashiko-bot@kernel.org
To: "Yongxing Mou" <yongxing.mou@oss.qualcomm.com>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v7 06/15] drm/msm/dp: split link setup from source params
Date: Tue, 09 Jun 2026 10:05:18 +0000 [thread overview]
Message-ID: <20260609100519.2FADB1F00893@smtp.kernel.org> (raw)
In-Reply-To: <20260609-dp_mstclean-v7-6-ea04113e8233@oss.qualcomm.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
Pre-existing issues:
- [High] Link retraining erases active stream configurations due to overwriting shared register
--
commit c62d46d098f37a3918af36fbf87cf140b8d49f60
Author: Yongxing Mou <yongxing.mou@oss.qualcomm.com>
drm/msm/dp: split link setup from source params
msm_dp_ctrl_configure_source_params() should only handle stream-related
configuration. Move the link setup out of it so MST can program link and
stream settings separately.
> diff --git a/drivers/gpu/drm/msm/dp/dp_ctrl.c b/drivers/gpu/drm/msm/dp/dp_ctrl.c
> index 71d45b2c4daf8..1c2eccec6ec6d 100644
> --- a/drivers/gpu/drm/msm/dp/dp_ctrl.c
> +++ b/drivers/gpu/drm/msm/dp/dp_ctrl.c
[ ... ]
> @@ -2551,6 +2547,10 @@ int msm_dp_ctrl_on_stream(struct msm_dp_ctrl *msm_dp_ctrl, bool force_link_train
> */
> reinit_completion(&ctrl->video_comp);
>
> + msm_dp_ctrl_lane_mapping(ctrl);
> + msm_dp_setup_peripheral_flush(ctrl);
> + msm_dp_ctrl_config_ctrl_link(ctrl);
[Severity: High]
This isn't a bug introduced by this patch, but looking at how link setup
and stream setup share registers, can msm_dp_ctrl_config_ctrl_link() wipe
out active stream configurations?
In msm_dp_ctrl_config_ctrl_link(), the REG_DP_CONFIGURATION_CTRL register
state is built from 0 rather than reading the existing state:
u32 config = 0;
const u8 *dpcd = panel->dpcd;
/* Default-> LSCLK DIV: 1/4 LCLK */
config |= (2 << DP_CONFIGURATION_CTRL_LSCLK_DIV_SHIFT);
...
msm_dp_write_link(ctrl, REG_DP_CONFIGURATION_CTRL, config);
When msm_dp_ctrl_link_maintenance() triggers link retraining due to a sink
request, it eventually calls msm_dp_ctrl_config_ctrl_link(). Because this
function overwrites the shared REG_DP_CONFIGURATION_CTRL register without
a read-modify-write, does it erase all stream configurations (like
DP_CONFIGURATION_CTRL_RGB_YUV or DP_CONFIGURATION_CTRL_SEND_VSC)
previously set by msm_dp_ctrl_config_ctrl_streams()?
If the maintenance routine then resumes sending video, this might leave the
hardware outputting an incorrect stream format. Would it be safer to use
msm_dp_read_link() to preserve the existing register state?
> +
> msm_dp_ctrl_configure_source_params(ctrl);
>
> msm_dp_ctrl_config_msa(ctrl,
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260609-dp_mstclean-v7-0-ea04113e8233@oss.qualcomm.com?part=6
next prev parent reply other threads:[~2026-06-09 10:05 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-09 9:46 [PATCH v7 00/15] drm/msm/dp: Prerequisite cleanup for upcoming MST support Yongxing Mou
2026-06-09 9:46 ` [PATCH v7 01/15] drm/msm/dp: remove cached drm_edid from panel Yongxing Mou
2026-06-09 10:04 ` sashiko-bot
2026-06-09 9:46 ` [PATCH v7 02/15] drm/msm/dp: drop deprecated .mode_set() and use .atomic_enable Yongxing Mou
2026-06-09 10:06 ` sashiko-bot
2026-06-09 9:46 ` [PATCH v7 03/15] drm/msm/dp: move mode setup into msm_dp_panel_init_panel_info() Yongxing Mou
2026-06-09 9:46 ` [PATCH v7 04/15] drm/msm/dp: split msm_dp_ctrl_config_ctrl() into link parts and stream parts Yongxing Mou
2026-06-09 10:04 ` sashiko-bot
2026-06-09 9:46 ` [PATCH v7 05/15] drm/msm/dp: extract MISC1_MISC0 configuration into a separate function Yongxing Mou
2026-06-09 9:46 ` [PATCH v7 06/15] drm/msm/dp: split link setup from source params Yongxing Mou
2026-06-09 10:05 ` sashiko-bot [this message]
2026-06-09 9:46 ` [PATCH v7 07/15] drm/msm/dp: move the pixel clock control to its own API Yongxing Mou
2026-06-09 10:04 ` sashiko-bot
2026-06-09 9:46 ` [PATCH v7 08/15] drm/msm/dp: break up dp_display_enable into two parts Yongxing Mou
2026-06-09 9:59 ` sashiko-bot
2026-06-09 9:46 ` [PATCH v7 09/15] drm/msm/dp: re-arrange dp_display_disable() into functional parts Yongxing Mou
2026-06-09 10:17 ` sashiko-bot
2026-06-09 9:46 ` [PATCH v7 10/15] drm/msm/dp: allow dp_ctrl stream APIs to use any panel passed to it Yongxing Mou
2026-06-09 9:46 ` [PATCH v7 11/15] drm/msm/dp: split dp_ctrl_off() into stream and link parts Yongxing Mou
2026-06-09 10:04 ` sashiko-bot
2026-06-09 9:46 ` [PATCH v7 12/15] drm/msm/dp: simplify link and clock disable sequence Yongxing Mou
2026-06-09 10:02 ` sashiko-bot
2026-06-09 9:46 ` [PATCH v7 13/15] drm/msm/dp: make bridge helpers use dp_display to allow re-use Yongxing Mou
2026-06-09 10:09 ` sashiko-bot
2026-06-09 9:46 ` [PATCH v7 14/15] drm/msm/dp: separate dp_display_prepare() into its own API Yongxing Mou
2026-06-09 10:10 ` sashiko-bot
2026-06-09 9:46 ` [PATCH v7 15/15] drm/msm/dp: pass panel to display enable/disable helpers Yongxing Mou
2026-06-09 10:13 ` sashiko-bot
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=20260609100519.2FADB1F00893@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=yongxing.mou@oss.qualcomm.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.