Hi Wens, On Tue, Oct 1, 2019 at 1:34 PM Icenowy Zheng <icenowy@xxxxxxx> 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@xxxxxxx> > --- > 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/drivers/video/sunxi/disp2/disp/de/lowlevel_sun50iw1/de_dsi.c#L919 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel