drm/panel: simple: Convert Innolux G121X1-L03 to display_timing
authorMarek Vasut <marex@denx.de>
Thu, 28 Mar 2024 10:27:37 +0000 (11:27 +0100)
committerMarek Vasut <marex@denx.de>
Wed, 17 Apr 2024 16:58:36 +0000 (18:58 +0200)
Use display_timing instead of drm_display_mode to define a range of
possible display timings supported by this panel. This makes the panel
support more flexible and improves compatibility. No functional change
is expected.

The settings are picked from documentation [1] section 6.1 INPUT SIGNAL
TIMING SPECIFICATIONS.

[1] https://www.distec.de/fileadmin/pdf/produkte/TFT-Displays/Innolux/G121X1-L03_Datasheet.pdf

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Jessica Zhang <quic_jesszhan@quicinc.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240328102746.17868-3-marex@denx.de
drivers/gpu/drm/panel/panel-simple.c

index dce798a3f291cac62bde062dc3bc86a748c32b94..366d81932882335bf4f83fafa902754125c43569 100644 (file)
@@ -2591,22 +2591,22 @@ static const struct panel_desc innolux_g121i1_l01 = {
        .connector_type = DRM_MODE_CONNECTOR_LVDS,
 };
 
-static const struct drm_display_mode innolux_g121x1_l03_mode = {
-       .clock = 65000,
-       .hdisplay = 1024,
-       .hsync_start = 1024 + 0,
-       .hsync_end = 1024 + 1,
-       .htotal = 1024 + 0 + 1 + 320,
-       .vdisplay = 768,
-       .vsync_start = 768 + 38,
-       .vsync_end = 768 + 38 + 1,
-       .vtotal = 768 + 38 + 1 + 0,
-       .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
+static const struct display_timing innolux_g121x1_l03_timings = {
+       .pixelclock = { 57500000, 64900000, 74400000 },
+       .hactive = { 1024, 1024, 1024 },
+       .hfront_porch = { 90, 140, 190 },
+       .hback_porch = { 90, 140, 190 },
+       .hsync_len = { 36, 40, 60 },
+       .vactive = { 768, 768, 768 },
+       .vfront_porch = { 2, 15, 30 },
+       .vback_porch = { 2, 15, 30 },
+       .vsync_len = { 2, 8, 20 },
+       .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW,
 };
 
 static const struct panel_desc innolux_g121x1_l03 = {
-       .modes = &innolux_g121x1_l03_mode,
-       .num_modes = 1,
+       .timings = &innolux_g121x1_l03_timings,
+       .num_timings = 1,
        .bpc = 6,
        .size = {
                .width = 246,