Re: [PATCH] drm/panel: chipwealth-ch13726a: Fix washed out colors on 120hz mode
From: Neil Armstrong
Date: Tue Jul 28 2026 - 12:08:47 EST
On 7/28/26 03:38, Aaron Kling wrote:
On Mon, Jul 27, 2026 at 7:44 PM Aaron Kling via B4 Relay
<devnull+webgeek1234.gmail.com@xxxxxxxxxx> wrote:
The sashiko report that the timings in this change are inconsistent is
From: Aaron Kling <webgeek1234@xxxxxxxxx>
The issue was determined to be two-fold:
1. The non-continuous clock dropping into LPM during blanks causes
voltage drift at 120hz enough to affect the gamma curve.
2. The agressive horizontal blanking width did not allow enough settle
time, further compounding the voltage drift.
In addition to switching to continuous clock, burst mode is also enabled
to further stabilize the blank intervals.
Assisted-by: Gemini:2.5-Pro
Signed-off-by: Aaron Kling <webgeek1234@xxxxxxxxx>
---
For the initial submission, the washed out colors were expected to need
to be fixed by a color profile. However, further investigation showed
there was a problem with the timings.
---
drivers/gpu/drm/panel/panel-chipwealth-ch13726a.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-chipwealth-ch13726a.c b/drivers/gpu/drm/panel/panel-chipwealth-ch13726a.c
index 562dc573528dd..92f0c4f1587cb 100644
--- a/drivers/gpu/drm/panel/panel-chipwealth-ch13726a.c
+++ b/drivers/gpu/drm/panel/panel-chipwealth-ch13726a.c
@@ -128,11 +128,11 @@ static int ch13726a_unprepare(struct drm_panel *panel)
static const struct drm_display_mode thor_bottom_modes[] = {
{
/* 120Hz */
- .clock = (1080 + 28 + 4 + 36) * (1240 + 16 + 4 + 8) * 120 / 1000,
+ .clock = (1080 + 60 + 8 + 60) * (1240 + 16 + 4 + 8) * 120 / 1000,
.hdisplay = 1080,
- .hsync_start = 1080 + 28,
- .hsync_end = 1080 + 28 + 4,
- .htotal = 1080 + 28 + 4 + 36,
+ .hsync_start = 1080 + 60,
+ .hsync_end = 1080 + 28 + 8,
+ .htotal = 1080 + 28 + 4 + 60,
.vdisplay = 1240,
.vsync_start = 1240 + 16,
.vsync_end = 1240 + 16 + 4,
@@ -281,7 +281,7 @@ static int ch13726a_probe(struct mipi_dsi_device *dsi)
dsi->lanes = 4;
dsi->format = MIPI_DSI_FMT_RGB888;
dsi->mode_flags = MIPI_DSI_MODE_VIDEO |
- MIPI_DSI_CLOCK_NON_CONTINUOUS;
+ MIPI_DSI_MODE_VIDEO_BURST;
ctx->panel.prepare_prev_first = true;
---
base-commit: 0d33d21e47d9dc66f91e44da3fc9220c74d93df7
change-id: 20260727-ch13726a-washout-54ef8fa65be6
Best regards,
--
Aaron Kling <webgeek1234@xxxxxxxxx>
correct. Which caused the 120hz mode to be discarded entirely, so the
60hz mode was being used which has correct colors. Fixing the timings
to be consistent restores the 120hz mode, but still with incorrect
colors. So this patch should be abandoned while further investigations
continue. Sorry for the churn.
OK, please add a Fixes tag when you find a proper fix.
Thanks,
Neil
Aaron