[PATCH] drm/panel: chipwealth-ch13726a: Fix dark grays rendering green at 120 Hz
From: Matthew Schwartz
Date: Tue Oct 27 2026 - 22:02:29 EST
The init sequence writes 0xf0 0x50 followed by 0xb9 0x00. The panel
configuration in the Thor's stock Android firmware (decompiled from its
devicetree overlay, dtbo.img) has two runtime command sequences that
differ only in the 0xb9 value, both "display off; f0 50; b9 xx; display
on":
qcom,mdss-dsi-ram-command: b9 11
qcom,mdss-dsi-bypass-ram-command: b9 00
With 0x00, in the 120 Hz mode, a full-screen gray ramp from black to
white, shown with identity color management, renders black as green and
the darkest grays as bright green, both at maximum and at reduced
brightness, and the tint is more noticeable at lower brightness. The
60 Hz mode renders it correctly. With 0x11 the ramp renders correctly in
both modes and the panel dims without a color shift.
Use 0x11, the value from the vendor's ram-command sequence, instead.
Fixes: 3ee01b8647b5 ("drm/panel: Add panel driver for ChipWealth CH13726A based panels")
Reported-by: Aaron Kling <webgeek1234@xxxxxxxxx>
Link: https://lore.kernel.org/all/20260727-ch13726a-washout-v1-1-bf869ddfc5cf@xxxxxxxxx/
Signed-off-by: Matthew Schwartz <matthew.schwartz@xxxxxxxxx>
---
Aaron, this should be the 120 Hz issue from your washout patch; could
you give it a try on your Thor? I found the issue here separately and
saw your patch as I was prepping for submission, and I bet I was seeing
the same bug you originally saw.
drivers/gpu/drm/panel/panel-chipwealth-ch13726a.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/panel/panel-chipwealth-ch13726a.c b/drivers/gpu/drm/panel/panel-chipwealth-ch13726a.c
index 562dc573528d..0832e49b77a9 100644
--- a/drivers/gpu/drm/panel/panel-chipwealth-ch13726a.c
+++ b/drivers/gpu/drm/panel/panel-chipwealth-ch13726a.c
@@ -65,7 +65,8 @@ static int ch13726a_on(struct ch13726a_panel *ctx)
ctx->dsi->mode_flags |= MIPI_DSI_MODE_LPM;
mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xf0, 0x50);
- mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb9, 0x00);
+ /* 0x00 (the vendor "bypass ram" sequence) renders near-black as green */
+ mipi_dsi_generic_write_seq_multi(&dsi_ctx, 0xb9, 0x11);
mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
base-commit: 8ef66514d7b993c9fb96a5886f001e3556610c1c
--
2.56.0