Devicetree
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Alexey Minnekhanov" <alexeymin@minlexx.ru>
Cc: conor+dt@kernel.org, dri-devel@lists.freedesktop.org,
	devicetree@vger.kernel.org, robh@kernel.org
Subject: Re: [PATCH v3 7/9] drm/panel: novatek-nt36672a: Add Tianma panel for Xiaomi Mi A2
Date: Sun, 11 Oct 2026 12:04:35 +0000	[thread overview]
Message-ID: <sashiko-outbox-167211@kernel.org> (raw)
In-Reply-To: <20261011-nt36672a-panels-v3-7-9ea238627f8a@minlexx.ru>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] drm/panel: nt36672a: regulator leak in nt36672a_panel_prepare() error path
--

commit 55c52ad322748f420246cd3fb678326e61c47140
Author: Alexey Minnekhanov <alexeymin@minlexx.ru>

    drm/panel: novatek-nt36672a: Add Tianma panel for Xiaomi Mi A2
    
    Add support for Tianma TL060FVXS16-00 video mode panel based on
    Novatek NT36672A, used in Xiaomi Mi A2 smartphone (xiaomi-jasmine).
    It shares some code with already supported panel in this driver
    for xiaomi-lavender, so we can reuse the same panel deinit function.

> diff --git a/drivers/gpu/drm/panel/panel-novatek-nt36672a.c b/drivers/gpu/drm/panel/panel-novatek-nt36672a.c
> index d356348d39608..48dff2279b0e9 100644
> --- a/drivers/gpu/drm/panel/panel-novatek-nt36672a.c
> +++ b/drivers/gpu/drm/panel/panel-novatek-nt36672a.c
[ ... ]
> @@ -552,6 +575,39 @@ static const struct nt36672a_panel_desc tianmaplus_e7t_tulip_panel_desc = {
>  	.send_deinit_cmds = lavender_tulip_deinit_cmds,
>  };
>  
> +static const struct drm_display_mode tianma_jasmine_panel_default_mode = {
[ ... ]
> +static const struct nt36672a_panel_desc tianma_jasmine_panel_desc = {
> +	.display_mode = &tianma_jasmine_panel_default_mode,
> +
> +	.width_mm = 68,
> +	.height_mm = 136,
> +
> +	.mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
> +			MIPI_DSI_CLOCK_NON_CONTINUOUS,
> +	.format = MIPI_DSI_FMT_RGB888,
> +	.lanes = 4,
> +	.send_init_cmds = tianma_jasmine_init_cmds,

[Severity: Medium]
If sending the initialization commands fails in nt36672a_panel_prepare(), does
this code leak the regulator resources?

Looking at nt36672a_panel_prepare(), it calls nt36672a_panel_power_on() which
enables the regulators, and then calls send_init_cmds():

drivers/gpu/drm/panel/panel-novatek-nt36672a.c:nt36672a_panel_prepare() {
	...
	dsi_ctx.accum_err = nt36672a_panel_power_on(pinfo);

	/* send init cmds */
	if (pinfo->desc->send_init_cmds)
		pinfo->desc->send_init_cmds(&dsi_ctx);

	if (dsi_ctx.accum_err < 0)
		gpiod_set_value(pinfo->reset_gpio, 0);

	return dsi_ctx.accum_err;
}

If send_init_cmds() fails, the error path returns early without calling
nt36672a_panel_power_off() or regulator_bulk_disable().

Furthermore, because drm_panel_prepare() sees a failure, it does not set
panel->prepared = true. Consequently, any future call to drm_panel_unprepare()
will return early and skip calling the panel's .unprepare function, leaving
the regulators (vddio, vddpos, vddneg) permanently enabled.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261011-nt36672a-panels-v3-0-9ea238627f8a@minlexx.ru?part=7

  reply	other threads:[~2026-10-11 12:04 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-11 11:54 [PATCH v3 0/9] drm/panel: novatek-nt36672a: Extend with 5 new panels Alexey Minnekhanov
2026-10-11 11:54 ` [PATCH v3 1/9] dt-bindings: vendor-prefixes: Add Shenzhen TXD Technology Co., Ltd Alexey Minnekhanov
2026-10-11 11:54 ` [PATCH v3 2/9] dt-bindings: vendor-prefixes: Add Shen Chao Optoelectronics Alexey Minnekhanov
2026-10-11 11:54 ` [PATCH v3 3/9] dt-bindings: display: novatek,nt36672a: Add 5 new panels Alexey Minnekhanov
2026-10-11 11:54 ` [PATCH v3 4/9] drm/panel: novatek-nt36672a: Set driver name to novatek for consistency Alexey Minnekhanov
2026-10-11 11:54 ` [PATCH v3 5/9] drm/panel: novatek-nt36672a: Combine two init callbacks into one Alexey Minnekhanov
2026-10-11 11:54 ` [PATCH v3 6/9] drm/panel: novatek-nt36672a: Add 3 panels used in Xiaomi phones Alexey Minnekhanov
2026-10-11 12:05   ` sashiko-bot
2026-10-11 11:54 ` [PATCH v3 7/9] drm/panel: novatek-nt36672a: Add Tianma panel for Xiaomi Mi A2 Alexey Minnekhanov
2026-10-11 12:04   ` sashiko-bot [this message]
2026-10-11 11:54 ` [PATCH v3 8/9] drm/panel: novatek-nt36672a: Add panel for Asus Zenfone Max Pro M1 Alexey Minnekhanov
2026-10-11 12:03   ` sashiko-bot
2026-10-11 11:54 ` [PATCH v3 9/9] MAINTAINERS: Add Alexey Minnekhanov as maintainer for NT36672A panel Alexey Minnekhanov

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=sashiko-outbox-167211@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=alexeymin@minlexx.ru \
    --cc=conor+dt@kernel.org \
    --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