Hi Wens,
On Tue, Oct 1, 2019 at 1:34 PM Icenowy Zheng icenowy@aosc.io wrote:
This reverts commit 62e7511a4f4dcf07f753893d3424decd9466c98b.
This commit, although claimed as a refactor, in fact changed the formula.
By expanding the original formula, we can find that the const 10 is not substracted, instead it's added to the value (because 10 is negative when calculating hsa, and hsa itself is negative when calculating hblk). This breaks the similar pattern to other formulas, so restoring the original formula is more proper.
Signed-off-by: Icenowy Zheng icenowy@aosc.io
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c index 2d3e822a7739..cb5fd19c0d0d 100644 --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c @@ -577,14 +577,9 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, (mode->hsync_start - mode->hdisplay) * Bpp - HFP_PACKET_OVERHEAD);
/*
* The blanking is set using a sync event (4 bytes)
* and a blanking packet (4 bytes + payload + 2
* bytes). Its minimal size is therefore 10 bytes.
* hblk seems to be the line + porches length. */
-#define HBLK_PACKET_OVERHEAD 10
hblk = max((unsigned int)HBLK_PACKET_OVERHEAD,
(mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp -
HBLK_PACKET_OVERHEAD);
hblk = mode->htotal * Bpp - hsa;
The original formula is correct according to BSP [1] and work with my panels which I have tested before. May be the horizontal timings on panels you have leads to negative value.
[1] https://github.com/ayufan-pine64/linux-pine64/blob/my-hacks-1.2-with-drm/dri...