From: sashiko-bot@kernel.org
To: "Joey Lu" <a0987203069@gmail.com>
Cc: robh@kernel.org, dri-devel@lists.freedesktop.org,
devicetree@vger.kernel.org, conor+dt@kernel.org
Subject: Re: [PATCH v7 4/7] drm/verisilicon: add DC8000 (DCUltraLite) display controller support
Date: Fri, 18 Sep 2026 03:13:13 +0000 [thread overview]
Message-ID: <20260918031313.B15211F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260918030125.315978-5-a0987203069@gmail.com>
Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [High] drm/verisilicon: missing IRQ acknowledgment causes interrupt storm
- [High] drm/verisilicon: wrong register configured in vs_dc8000_panel_enable_ex
- [High] drm/verisilicon: reversed VALID bit logic causes incomplete state latching
--
commit 091826cd38f41f7f76fdaab38a3712b19c6f3f16
Author: Joey Lu <a0987203069@gmail.com>
drm/verisilicon: add DC8000 (DCUltraLite) display controller support
This patch adds support for the DC8000 display controller to the
verisilicon DRM driver. It introduces a new vs_dc_funcs implementation
for the DC8000 generation.
> diff --git a/drivers/gpu/drm/verisilicon/vs_dc8000.c b/drivers/gpu/drm/verisilicon/vs_dc8000.c
> new file mode 100644
> index 0000000000000..df7bd5bdd7f2a
> --- /dev/null
> +++ b/drivers/gpu/drm/verisilicon/vs_dc8000.c
> @@ -0,0 +1,92 @@
[ ... ]
> +static void vs_dc8000_panel_enable_ex(struct vs_dc *dc, unsigned int output)
> +{
> + regmap_set_bits(dc->regs, VSDC_FB_CONFIG(output),
> + VSDC_FB_CONFIG_RESET);
> +}
> +
> +static void vs_dc8000_panel_disable_ex(struct vs_dc *dc, unsigned int output)
> +{
> + regmap_clear_bits(dc->regs, VSDC_FB_CONFIG(output),
> + VSDC_FB_CONFIG_RESET);
> +}
[Severity: High]
The commit message mentions that panel output starts as soon as
PANEL_CONFIG.RUNNING is set. However, does this code configure the wrong
register?
It sets and clears the VSDC_FB_CONFIG_RESET bit in the framebuffer
configuration register instead of the panel configuration register, which might
leave the panel hardware unstarted and the framebuffer held in reset.
> +static void vs_dc8000_crtc_begin(struct vs_dc *dc, unsigned int output)
> +{
> + regmap_set_bits(dc->regs, VSDC_FB_CONFIG(output),
> + VSDC_FB_CONFIG_VALID);
> +}
> +
> +static void vs_dc8000_crtc_flush(struct vs_dc *dc, unsigned int output)
> +{
> + regmap_clear_bits(dc->regs, VSDC_FB_CONFIG(output),
> + VSDC_FB_CONFIG_VALID);
> +}
[Severity: High]
Is the VALID bit logic reversed here?
Setting VSDC_FB_CONFIG_VALID in vs_dc8000_crtc_begin() asserts to hardware
that the configuration is ready before new plane updates are written, and
clearing it in vs_dc8000_crtc_flush() marks the completed configuration as
invalid.
Can this reversed signaling cause the hardware to latch an incomplete state
during atomic updates?
[ ... ]
> +static u32 vs_dc8000_irq_ack(struct vs_dc *dc)
> +{
> + u32 hw_irqs, unified = 0, known = 0;
> + unsigned int i;
> +
> + regmap_read(dc->regs, VSDC_DISP_IRQ_STA, &hw_irqs);
> +
> + for (i = 0; i < VSDC_MAX_OUTPUTS; i++) {
> + known |= VSDC_DISP_IRQ_VSYNC(i);
> + if (hw_irqs & VSDC_DISP_IRQ_VSYNC(i))
> + unified |= VSDC_IRQ_VSYNC(i);
> + }
> +
> + drm_WARN_ONCE(&dc->drm_dev->base, hw_irqs & ~known,
> + "Unknown hardware IRQ bits: %#x\n", hw_irqs & ~known);
> +
> + return unified;
> +}
[Severity: High]
Does this function fail to clear the pending hardware interrupts?
It reads VSDC_DISP_IRQ_STA to check pending interrupts but does not write back
to clear them. For hardware without a dedicated ACK register, the status
register usually acts as a write-1-to-clear mechanism.
Can failing to write back leave the interrupt asserted in the hardware and
cause an infinite interrupt storm when the VBLANK interrupt fires?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260918030125.315978-1-a0987203069@gmail.com?part=4
next prev parent reply other threads:[~2026-09-18 3:13 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-18 3:01 [PATCH v7 0/7] drm/verisilicon: add Nuvoton MA35D1 DCU Lite support Joey Lu
2026-09-18 3:01 ` [PATCH v7 1/7] dt-bindings: display: verisilicon,dc: add support for nuvoton,ma35d1-dcu Joey Lu
2026-09-18 3:01 ` [PATCH v7 1/7] dt-bindings: display: verisilicon, dc: add support for nuvoton, ma35d1-dcu Joey Lu
2026-09-18 5:57 ` [PATCH v7 1/7] dt-bindings: display: verisilicon,dc: add support for nuvoton,ma35d1-dcu Icenowy Zheng
2026-09-18 10:50 ` Icenowy Zheng
2026-09-21 2:47 ` Joey Lu
2026-09-21 2:47 ` [PATCH v7 1/7] dt-bindings: display: verisilicon, dc: " Joey Lu
2026-09-18 3:01 ` [PATCH v7 2/7] drm/verisilicon: add register-level macros for DC8000 Joey Lu
2026-09-18 3:01 ` [PATCH v7 3/7] drm/verisilicon: introduce per-variant hardware ops table Joey Lu
2026-09-18 3:12 ` sashiko-bot
2026-09-25 15:05 ` Icenowy Zheng
2026-09-18 3:01 ` [PATCH v7 4/7] drm/verisilicon: add DC8000 (DCUltraLite) display controller support Joey Lu
2026-09-18 3:13 ` sashiko-bot [this message]
2026-09-18 3:01 ` [PATCH v7 5/7] drm/verisilicon: add DCUltraLite chip identity to HWDB Joey Lu
2026-09-18 3:01 ` [PATCH v7 6/7] drm/verisilicon: extend Kconfig to support ARCH_MA35 platforms Joey Lu
2026-09-18 3:01 ` [PATCH v7 7/7] drm/verisilicon: fix DC8200 primary plane disable clearing FB_EN Joey Lu
2026-09-18 5:52 ` Icenowy Zheng
2026-09-21 2:43 ` Joey Lu
2026-09-21 4:18 ` Icenowy Zheng
2026-09-21 7:30 ` Icenowy Zheng
2026-09-21 7:49 ` Joey Lu
2026-09-21 8:48 ` Icenowy Zheng
2026-09-25 14:55 ` Icenowy Zheng
2026-09-26 4:48 ` Icenowy Zheng
2026-09-29 1:45 ` Joey Lu
2026-09-29 7:59 ` Icenowy Zheng
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=20260918031313.B15211F000FF@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=a0987203069@gmail.com \
--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 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.