]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
drm/sun4i: dsi: Fix front vs back porch calculation
[mirror_ubuntu-jammy-kernel.git] / drivers / gpu / drm / sun4i / sun6i_mipi_dsi.c
index 869e0aedf3434363e995789f746a68e69ef34c63..9357266961315091109f00a53526434de5595b54 100644 (file)
@@ -478,7 +478,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi,
         */
 #define HBP_PACKET_OVERHEAD    6
        hbp = max((unsigned int)HBP_PACKET_OVERHEAD,
-                 (mode->hsync_start - mode->hdisplay) * Bpp - HBP_PACKET_OVERHEAD);
+                 (mode->htotal - mode->hsync_end) * Bpp - HBP_PACKET_OVERHEAD);
 
        /*
         * The frontporch is set using a blanking packet (4 bytes +
@@ -486,7 +486,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi,
         */
 #define HFP_PACKET_OVERHEAD    6
        hfp = max((unsigned int)HFP_PACKET_OVERHEAD,
-                 (mode->htotal - mode->hsync_end) * Bpp - HFP_PACKET_OVERHEAD);
+                 (mode->hsync_start - mode->hdisplay) * Bpp - HFP_PACKET_OVERHEAD);
 
        /*
         * hblk seems to be the line + porches length.
@@ -532,8 +532,8 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi,
        regmap_write(dsi->regs, SUN6I_DSI_BASIC_SIZE0_REG,
                     SUN6I_DSI_BASIC_SIZE0_VSA(mode->vsync_end -
                                               mode->vsync_start) |
-                    SUN6I_DSI_BASIC_SIZE0_VBP(mode->vsync_start -
-                                              mode->vdisplay));
+                    SUN6I_DSI_BASIC_SIZE0_VBP(mode->vtotal -
+                                              mode->vsync_end));
 
        regmap_write(dsi->regs, SUN6I_DSI_BASIC_SIZE1_REG,
                     SUN6I_DSI_BASIC_SIZE1_VACT(mode->vdisplay) |