Thread (19 messages) flat view 19 messages, 3 authors, 2d ago

Re: [PATCH v7 7/7] drm/verisilicon: fix DC8200 primary plane disable clearing FB_EN

From: Icenowy Zheng <zhengxingda@iscas.ac.cn>
Date: 2026-09-21 07:30:41
Also in: dri-devel, linux-arm-kernel, lkml

在 2026-09-21一的 10:43 +0800,Joey Lu写道:
Icenowy Zheng 於 2026/9/18 下午 01:52 寫道:
quoted
在 2026-09-18五的 11:01 +0800,Joey Lu写道:
quoted
vs_dc8200_primary_plane_disable_ex() calls regmap_set_bits() on
VSDC_FB_CONFIG_EX_FB_EN instead of regmap_clear_bits(), so
disabling
the primary plane on DC8200-family hardware actually leaves the
framebuffer enable bit instead of clearing it.

This bug predates this series: it was carried over unchanged from
vs_primary_plane_atomic_disable() when patch "drm/verisilicon:
introduce per-variant hardware ops table" split the DC8200-
specific
implementation out into vs_dc8200.c.

Fixes: dbf21777caa8 ("drm: verisilicon: add a driver for
Verisilicon
display controllers")
Maybe it'd be better to fix this before adding DC variant
abstraction,
for easier backporting.

Thanks,
Icenowy
Makes sense. Should I send it as a standalone patch targeting
drm-misc-fixes (separate from this series), or do you have a
different preference for how to split it?
Maybe it's better to just make it the 2nd patch in this patchset, just
after the binding change.

Waiting for something into drm-misc-fixes again will need another fixes
pull and another RC back merge, which can consume weeks and miss the
current merging window.

In addition, it's possible that `drm/verisilicon: introduce per-variant
hardware ops table` also gets backported for a more clean primary plane
atomic_update disabling fix.

Thanks,
Icenowy
quoted
quoted
Signed-off-by: Joey Lu <redacted>
---
  drivers/gpu/drm/verisilicon/vs_dc8200.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/verisilicon/vs_dc8200.c
b/drivers/gpu/drm/verisilicon/vs_dc8200.c
index f72da10295e1b..25b5906a1c5fc 100644
--- a/drivers/gpu/drm/verisilicon/vs_dc8200.c
+++ b/drivers/gpu/drm/verisilicon/vs_dc8200.c
@@ -70,8 +70,8 @@ static void
vs_dc8200_primary_plane_enable_ex(struct vs_dc *dc, unsigned int
out
  
  static void vs_dc8200_primary_plane_disable_ex(struct vs_dc
*dc,
unsigned int output)
  {
-	regmap_set_bits(dc->regs, VSDC_FB_CONFIG_EX(output),
-			VSDC_FB_CONFIG_EX_FB_EN);
+	regmap_clear_bits(dc->regs, VSDC_FB_CONFIG_EX(output),
+			  VSDC_FB_CONFIG_EX_FB_EN);
  
  	vs_dc8200_plane_commit(dc, output);
  }
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help