Devicetree
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "David Heidelberg" <david@ixit.cz>
Cc: conor+dt@kernel.org, dri-devel@lists.freedesktop.org,
	robh@kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH 08/11] drm/panel: s6e3ha8: add Samsung AMB630QY01 (Google Pixel 3 XL) panel
Date: Sun, 20 Sep 2026 11:15:39 +0000	[thread overview]
Message-ID: <20260920111540.3D72C1F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260920-crosshatch-panel-v1-8-de6e9512da96@ixit.cz>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] drm/panel: s6e3ha8: Unsynchronized sysfs backlight triggers DSI DCS writes
--

commit d9884a7abde10a9a4310803bddeebe9758abe410
Author: David Heidelberg <david@ixit.cz>

drm/panel: s6e3ha8: add Samsung AMB630QY01 (Google Pixel 3 XL) panel

This commit adds support for the Samsung AMB630QY01 panel used in the
Google Pixel 3 XL, driven by the S6E3HA8 DDIC. It introduces the panel
initialization sequence, standard DCS brightness control via a backlight
device, and corresponding DSC settings.

> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c b/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c
> index 2591b8c1a7753..e02f1d9f0dcd0 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c
[ ... ]
> @@ -271,6 +294,136 @@ static const struct s6e3ha8_desc s6e3ha8_amb577px01_wqhd_desc = {
>  	.num_supplies = ARRAY_SIZE(s6e3ha8_vddr_supplies),
>  };
>  
> +static int s6e3ha8_amb630qy01_prepare(struct drm_panel *panel)
> +{
[ ... ]
> +	drm_dsc_pps_payload_pack(&pps, &priv->dsc);
> +	mipi_dsi_picture_parameter_set_multi(&ctx, &pps);

[Severity: High]
This is a pre-existing issue, but does this result in sending an uninitialized
DSC PPS payload to the panel?

In s6e3ha8_amb630qy01_prepare(), the PPS payload is created using priv->dsc
and transmitted to the hardware. However, the DRM DSI host typically
populates the display timings and rate control parameters into priv->dsc
later in the encoder enable sequence.

If the panel relies on this PPS for decompression, could DSC decoding fail
and result in a corrupted display since pic_width, pic_height, and rate
control parameters are initialized to 0 at this point?

[ ... ]
> +static int s6e3ha8_bl_update_status(struct backlight_device *bl)
> +{
> +	struct mipi_dsi_device *dsi = bl_get_data(bl);
> +	u16 brightness = backlight_get_brightness(bl);
> +
> +	return mipi_dsi_dcs_set_display_brightness_large(dsi, brightness);
> +}
[ ... ]
> @@ -313,6 +466,13 @@ static int s6e3ha8_probe(struct mipi_dsi_device *dsi)
>  
>  	priv->panel.prepare_prev_first = true;
>  
> +	if (priv->desc->has_backlight) {
> +		priv->panel.backlight = s6e3ha8_create_backlight(dsi);
> +		if (IS_ERR(priv->panel.backlight))

[Severity: High]
Does registering the backlight device here create a race condition where
sysfs writes can trigger DSI DCS writes while the panel is unpowered?

The backlight device is exposed to userspace before the DSI device is
attached or the panel is powered. If a local user or process writes to the
sysfs backlight brightness file, s6e3ha8_bl_update_status() unconditionally
invokes mipi_dsi_dcs_set_display_brightness_large() without verifying the
panel's power state (for example, by checking priv->prepared).

Can this attempt to drive unpowered DSI lanes, wedging the command engine or
causing DSI host timeouts?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260920-crosshatch-panel-v1-0-de6e9512da96@ixit.cz?part=8

  reply	other threads:[~2026-09-20 11:15 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-20 11:05 [PATCH 00/11] Pixel 3 XL display panel support David Heidelberg via B4 Relay
2026-09-20 11:05 ` [PATCH 01/11] dt-bindings: display: panel: s6e3ha8: Adjust to reflect the DDIC and panel used David Heidelberg via B4 Relay
2026-09-20 11:05 ` [PATCH 02/11] dt-bindings: display: panel: samsung,s6e3ha8: Add AMB630QY01 panel David Heidelberg via B4 Relay
2026-09-20 11:12   ` sashiko-bot
2026-09-20 11:05 ` [PATCH 03/11] drm/panel: s6e3ha8: Really assert reset on the failure David Heidelberg via B4 Relay
2026-09-24 13:24   ` Neil Armstrong
2026-09-20 11:05 ` [PATCH 04/11] drm/panel: s6e3ha8: Introduce AMB577PX01 panel compatible David Heidelberg via B4 Relay
2026-09-23 22:51   ` [PATCH 04/11] drm/panel: s6e3ha8: Introduce AMB577PX01 panel Petr Vorel
2026-09-24 13:25   ` [PATCH 04/11] drm/panel: s6e3ha8: Introduce AMB577PX01 panel compatible Neil Armstrong
2026-09-20 11:05 ` [PATCH 05/11] drm/panel: s6e3ha8: Prepare for supporting multiple panels David Heidelberg via B4 Relay
2026-09-24 13:26   ` Neil Armstrong
2026-09-20 11:05 ` [PATCH 06/11] drm/panel: s6e3ha8: Correct the polarity logic within David Heidelberg via B4 Relay
2026-09-24 13:26   ` Neil Armstrong
2026-09-20 11:05 ` [PATCH 07/11] drm/panel: s6e3ha8: Assert reset GPIO in unprepare David Heidelberg via B4 Relay
2026-09-24 13:27   ` Neil Armstrong
2026-09-20 11:05 ` [PATCH 08/11] drm/panel: s6e3ha8: add Samsung AMB630QY01 (Google Pixel 3 XL) panel David Heidelberg via B4 Relay
2026-09-20 11:15   ` sashiko-bot [this message]
2026-09-24 13:28   ` Neil Armstrong
2026-09-20 11:05 ` [PATCH 09/11] arm64: dts: qcom: sdm845-samsung-starqltechn: Update panel compatible David Heidelberg via B4 Relay
2026-09-23 22:25   ` [PATCH 09/11] arm64: dts: qcom: sdm845-samsung-starqltechn: Update Petr Vorel
2026-09-23 22:38     ` [PATCH 10/11] arm64: dts: qcom: sdm845-google: Move panel pins Petr Vorel
2026-09-23 22:48     ` [PATCH 09/11] arm64: dts: qcom: sdm845-samsung-starqltechn: Update Petr Vorel
2026-09-20 11:05 ` [PATCH 10/11] arm64: dts: qcom: sdm845-google: Move panel pins into common David Heidelberg via B4 Relay
2026-09-23 22:44   ` [PATCH 10/11] arm64: dts: qcom: sdm845-google: Move panel pins Petr Vorel
2026-09-20 11:05 ` [PATCH 11/11] arm64: dts: qcom: sdm845-google-crosshatch: Add display panel David Heidelberg via B4 Relay

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=20260920111540.3D72C1F000FF@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=david@ixit.cz \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=robh@kernel.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