Using current settings causes panel flickering on APQ8074 dragonboard.
Adjust panel settings to follow the vendor-provided mode. This also
enables MIPI_DSI_MODE_VIDEO_SYNC_PULSE, which is also specified by the
vendor dtsi for the mentioned dragonboard.

Fixes: ee0172383190 ("drm/panel: Add Sharp LS043T1LE01 MIPI DSI panel")
Signed-off-by: Dmitry Baryshkov <[email protected]>
---
 drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c 
b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
index d1ec80a3e3c7..ef148504cf24 100644
--- a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
+++ b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
@@ -192,15 +192,15 @@ static int sharp_nt_panel_enable(struct drm_panel *panel)
 }
 
 static const struct drm_display_mode default_mode = {
-       .clock = 41118,
+       .clock = (540 + 48 + 32 + 80) * (960 + 3 + 10 + 15) * 60 / 1000,
        .hdisplay = 540,
        .hsync_start = 540 + 48,
-       .hsync_end = 540 + 48 + 80,
-       .htotal = 540 + 48 + 80 + 32,
+       .hsync_end = 540 + 48 + 32,
+       .htotal = 540 + 48 + 32 + 80,
        .vdisplay = 960,
        .vsync_start = 960 + 3,
-       .vsync_end = 960 + 3 + 15,
-       .vtotal = 960 + 3 + 15 + 1,
+       .vsync_end = 960 + 3 + 10,
+       .vtotal = 960 + 3 + 10 + 15,
 };
 
 static int sharp_nt_panel_get_modes(struct drm_panel *panel,
@@ -280,6 +280,7 @@ static int sharp_nt_panel_probe(struct mipi_dsi_device *dsi)
        dsi->lanes = 2;
        dsi->format = MIPI_DSI_FMT_RGB888;
        dsi->mode_flags = MIPI_DSI_MODE_VIDEO |
+                       MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
                        MIPI_DSI_MODE_VIDEO_HSE |
                        MIPI_DSI_CLOCK_NON_CONTINUOUS |
                        MIPI_DSI_MODE_NO_EOT_PACKET;
-- 
2.39.2

Reply via email to