From: sashiko-bot@kernel.org
To: "Dmitry Baryshkov" <dmitry.baryshkov@oss.qualcomm.com>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 23/24] drm/msm: create the bridge connectors from common code
Date: Wed, 22 Jul 2026 07:04:40 +0000 [thread overview]
Message-ID: <20260722070441.422D81F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260722-drm-msm-display-interface-v1-23-368c10fe62fd@oss.qualcomm.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Centralized `msm_kms_init_connectors` loop unconditionally calls `drm_bridge_connector_init` for all non-virtual encoders, failing the driver probe with `-EINVAL` if any encoder lacks an attached bridge.
--
--- Patch [23]: [PATCH 23/24] drm/msm: create the bridge connectors from common code ---
commit 04453784aafc591b434b0736383d9d31623d416b
Author: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
drm/msm: create the bridge connectors from common code
This patch centralizes bridge connector creation in the msm backend by
having each sub-block only set up its bridge chain. A new function,
msm_kms_init_connectors(), then walks through all encoders to create the
connectors using common code.
> diff --git a/drivers/gpu/drm/msm/msm_kms.c b/drivers/gpu/drm/msm/msm_kms.c
> index 1a081e15a0a89..71af3780b7b13 100644
> --- a/drivers/gpu/drm/msm/msm_kms.c
> +++ b/drivers/gpu/drm/msm/msm_kms.c
[ ... ]
> @@ -310,6 +313,35 @@ static int msm_kms_init_connectors(struct drm_device *ddev)
> return ret;
> }
>
> +/* Build a bridge connector for each encoder. */
> +static int msm_kms_init_connectors(struct drm_device *ddev)
> +{
> + struct drm_encoder *encoder;
> +
> + drm_for_each_encoder(encoder, ddev) {
> + struct drm_connector *connector;
> + int ret;
> +
> + /* the virtual writeback encoder brings its own connector */
> + if (encoder->encoder_type == DRM_MODE_ENCODER_VIRTUAL)
> + continue;
> +
> + connector = drm_bridge_connector_init(ddev, encoder);
> + if (IS_ERR(connector)) {
> + DRM_DEV_ERROR(ddev->dev,
> + "failed to init connector for %s: %ld\n",
> + encoder->name, PTR_ERR(connector));
> + return PTR_ERR(connector);
> + }
[Severity: High]
Will this fail the entire driver probe on hardware where some encoders are
left without an attached bridge?
For example, on MDP4 hardware, a TMDS encoder is registered unconditionally
in mdp4_modeset_init_intf(), but it will have an empty bridge chain if HDMI
is not present. Similarly, for bonded DSI, msm_dsi_modeset_init() skips
bridge creation for the slave DSI, leaving its encoder without a bridge.
When drm_bridge_connector_init() processes an encoder with an empty bridge
chain, it returns ERR_PTR(-EINVAL) because it cannot determine the connector
type. Since this loop treats any error as fatal, won't this break
display initialization on these configurations?
> +
> + /* The DP subconnector property applies to DisplayPort only. */
> + if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort)
> + drm_connector_attach_dp_subconnector_property(connector);
> + }
> +
> + return 0;
> +}
> +
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260722-drm-msm-display-interface-v1-0-368c10fe62fd@oss.qualcomm.com?part=23
next prev parent reply other threads:[~2026-07-22 7:04 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-22 6:36 [PATCH 00/24] drm/msm: introduce the struct msm_display interface Dmitry Baryshkov
2026-07-22 6:36 ` [PATCH 01/24] drm/msm/dp: reject YUV420-only modes without VSC SDP support Dmitry Baryshkov
2026-07-22 7:03 ` sashiko-bot
2026-07-22 6:36 ` [PATCH 02/24] drm/msm/dp: drop the always-true yuv_supported argument Dmitry Baryshkov
2026-07-22 6:36 ` [PATCH 03/24] drm/msm: create the display connectors from common code Dmitry Baryshkov
2026-07-22 7:04 ` sashiko-bot
2026-07-22 6:36 ` [PATCH 04/24] drm/msm: introduce the struct msm_display interface Dmitry Baryshkov
2026-07-22 6:36 ` [PATCH 05/24] drm/msm: route the display snapshot through the " Dmitry Baryshkov
2026-07-22 6:56 ` sashiko-bot
2026-07-22 6:36 ` [PATCH 06/24] drm/msm/hdmi: capture the HDMI registers in the display snapshot Dmitry Baryshkov
2026-07-22 6:59 ` sashiko-bot
2026-07-22 6:36 ` [PATCH 07/24] drm/msm: add the wide_bus_enabled callback to msm_display Dmitry Baryshkov
2026-07-22 6:36 ` [PATCH 08/24] drm/msm: add the needs_periph_flush " Dmitry Baryshkov
2026-07-22 6:36 ` [PATCH 09/24] drm/msm: add the is_cmd_mode " Dmitry Baryshkov
2026-07-22 6:36 ` [PATCH 10/24] drm/msm: add the get_dsc_config " Dmitry Baryshkov
2026-07-22 6:36 ` [PATCH 11/24] drm/msm: add the get_te_source " Dmitry Baryshkov
2026-07-22 6:36 ` [PATCH 12/24] drm/msm: add is_bonded and needs_encoder callbacks " Dmitry Baryshkov
2026-07-22 6:36 ` [PATCH 13/24] drm/msm/hdmi: use dev_get_drvdata() in msm_hdmi_unbind() Dmitry Baryshkov
2026-07-22 7:03 ` sashiko-bot
2026-07-22 6:36 ` [PATCH 14/24] drm/msm: store the display sub-blocks as struct msm_display Dmitry Baryshkov
2026-07-22 6:36 ` [PATCH 15/24] drm/msm/dp: do not reject wide-bus modes while a YUV420 mode is active Dmitry Baryshkov
2026-07-22 7:03 ` sashiko-bot
2026-07-22 6:36 ` [PATCH 16/24] drm/msm/dp: remove cached drm_edid from panel Dmitry Baryshkov
2026-07-22 7:08 ` sashiko-bot
2026-07-22 6:36 ` [PATCH 17/24] drm/msm/dp: drop deprecated .mode_set() and use .atomic_pre_enable Dmitry Baryshkov
2026-07-22 6:36 ` [PATCH 18/24] drm/msm/hdmi: cache is_hdmi instead of storing the connector Dmitry Baryshkov
2026-07-22 7:06 ` sashiko-bot
2026-07-22 6:36 ` [PATCH 19/24] drm/msm/dp: drop redundant panel->connector Dmitry Baryshkov
2026-07-22 6:36 ` [PATCH 20/24] drm/msm/dp: use drm_display_info in mode_valid callbacks Dmitry Baryshkov
2026-07-22 6:36 ` [PATCH 21/24] drm/msm/dp: guard subconnector setup on the connector type Dmitry Baryshkov
2026-07-22 6:36 ` [PATCH 22/24] drm/msm/dp: stop storing the connector in struct msm_dp Dmitry Baryshkov
2026-07-22 7:12 ` sashiko-bot
2026-07-22 6:36 ` [PATCH 23/24] drm/msm: create the bridge connectors from common code Dmitry Baryshkov
2026-07-22 7:04 ` sashiko-bot [this message]
2026-07-22 6:36 ` [PATCH 24/24] drm/bridge-connector: attach the DP subconnector property Dmitry Baryshkov
2026-07-22 7:05 ` 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=20260722070441.422D81F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=sashiko-reviews@lists.linux.dev \
/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