| From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
| From: Icenowy Zheng <icenowy@aosc.io> |
| Date: Mon, 16 Mar 2020 21:35:02 +0800 |
| Subject: [PATCH] drm/sun4i: sun6i_mipi_dsi: fix horizontal timing calculation |
| |
| The max() function call in horizontal timing calculation shouldn't pad a |
| length already subtracted with overhead to overhead, instead it should |
| only prevent the set timing to underflow. |
| |
| Signed-off-by: Icenowy Zheng <icenowy@aosc.io> |
| |
| drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 10 +++++----- |
| 1 file changed, 5 insertions(+), 5 deletions(-) |
| |
| diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c |
| index aa67cb037e9d..52e009dc632b 100644 |
| |
| |
| @@ -556,7 +556,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, |
| */ |
| #define HSA_PACKET_OVERHEAD 10 |
| hsa = max((unsigned int)HSA_PACKET_OVERHEAD, |
| - (mode->hsync_end - mode->hsync_start) * Bpp - HSA_PACKET_OVERHEAD); |
| + (mode->hsync_end - mode->hsync_start) * Bpp) - HSA_PACKET_OVERHEAD; |
| |
| /* |
| * The backporch is set using a blanking packet (4 |
| @@ -565,7 +565,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, |
| */ |
| #define HBP_PACKET_OVERHEAD 6 |
| hbp = max((unsigned int)HBP_PACKET_OVERHEAD, |
| - (mode->htotal - mode->hsync_end) * Bpp - HBP_PACKET_OVERHEAD); |
| + (mode->htotal - mode->hsync_end) * Bpp) - HBP_PACKET_OVERHEAD; |
| |
| /* |
| * The frontporch is set using a sync event (4 bytes) |
| @@ -575,7 +575,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, |
| */ |
| #define HFP_PACKET_OVERHEAD 16 |
| hfp = max((unsigned int)HFP_PACKET_OVERHEAD, |
| - (mode->hsync_start - mode->hdisplay) * Bpp - HFP_PACKET_OVERHEAD); |
| + (mode->hsync_start - mode->hdisplay) * Bpp) - HFP_PACKET_OVERHEAD; |
| |
| /* |
| * The blanking is set using a sync event (4 bytes) |
| @@ -584,8 +584,8 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, |
| */ |
| #define HBLK_PACKET_OVERHEAD 10 |
| hblk = max((unsigned int)HBLK_PACKET_OVERHEAD, |
| - (mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp - |
| - HBLK_PACKET_OVERHEAD); |
| + (mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp) - |
| + HBLK_PACKET_OVERHEAD; |
| |
| /* |
| * And I'm not entirely sure what vblk is about. The driver in |
| -- |
| 2.28.0 |
| |