drm/sun4i: sun6i_mipi_dsi: Fix hsync_porch overflow
authorJagan Teki <jagan@amarulasolutions.com>
Sun, 12 May 2019 18:41:26 +0000 (00:11 +0530)
committerMaxime Ripard <maxime.ripard@bootlin.com>
Thu, 16 May 2019 08:59:19 +0000 (10:59 +0200)
commit51a0d1a90bff5d90a1a1c58e165928a0dd92268a
treefe84c113cece4fd808bbaa9301b524691aabcca5
parent831adffb3b7b8df4c8e20b7b00843129fb87a166
drm/sun4i: sun6i_mipi_dsi: Fix hsync_porch overflow

Loop N1 instruction delay for burst mode devices are computed
based on horizontal sync and porch timing values.

The current driver is using u16 type for computing this hsync_porch
value, which would failed to fit within the u16 type for large sync
and porch timings devices. This would result in hsync_porch overflow
and eventually computed wrong instruction delay value.

Example, timings, where it produces the overflow
{
.hdisplay       = 1080,
.hsync_start    = 1080 + 408,
        .hsync_end      = 1080 + 408 + 4,
        .htotal         = 1080 + 408 + 4 + 38,
}

It reproduces the desired delay value 65487 but the correct working
value should be 7.

So, Fix it by computing hsync_porch value separately with u32 type.

Fixes: 1c1a7aa3663c ("drm/sun4i: dsi: Add burst support")
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190512184128.13720-2-jagan@amarulasolutions.com
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c