Hi Maxime,
On Tue, Dec 11, 2018 at 10:30 PM Jagan Teki jagan@amarulasolutions.com wrote:
On Tue, Dec 11, 2018 at 10:19 PM Maxime Ripard maxime.ripard@bootlin.com wrote:
On Mon, Dec 10, 2018 at 09:47:19PM +0530, Jagan Teki wrote:
Video start delay can be computed by subtracting total vertical timing with front porch timing and with adding 1 delay line for TCON.
BSP code form BPI-M64-bsp is computing video start delay as (from linux-sunxi/ drivers/video/sunxi/disp2/disp/de/lowlevel_sun50iw1/de_dsi.c)
u32 vfp = panel->lcd_vt - panel->lcd_y - panel->lcd_vbp; => (panel->lcd_vt) - panel->lcd_y - (panel->lcd_vbp) => (timmings->ver_front_porch + panel->lcd_vbp + panel->lcd_y)
- panel->lcd_y - (panel->lcd_vbp)
=> timmings->ver_front_porch + panel->lcd_vbp + panel->lcd_y - panel->lcd_y - panel->lcd_vbp => timmings->ver_front_porch
So, update the start delay computation accordingly.
Signed-off-by: Jagan Teki jagan@amarulasolutions.com
Even though it's a bit better now on my A33 board and I don't have the white stripes on the bottom of the display, there's still some flickering with your patches applied.
Bisecting it seems to point at that patch, but reverting it doesn't make the issue go away, so it's not really clear which one exactly is at fault.
So, just like I asked in your v4, twice,
http://lists.infradead.org/pipermail/linux-arm-kernel/2018-November/615339.h...
I don't know how can I comment here. Not quite clearly understand your setup, because I have verified 3 different panels from different vendors one with 2-lane, another with 4-lane and one with video format and another one is burstmode format. I even verified with the clock rate and register details.
Please suggest me, what can look further on this.
From the BSP point-of-view I couldn't find have any difference in
start_delay computation between A64, and A33[1]. In fact the driver initialization code is same, here is A64 dsi driver[2].
1) The only difference that I observe is dsi_gen_wr in BSP [3], the A33 is right shifting message tx length to 0, 8 for first and next packet where as A64 did the same by adding +1 before. Please try to check that If your panel is using long write. and 2) Also every dsi transaction in A33 occupy some delay code in dsi_gen_wr[4], please check the same. and 3) Also If possible please check your panel timings or initialization sequence, because I don't have any panel with A33. 4) other than these I have didn't notice any differences atleast from my knowledge, Please suggest me where can I look further.
[1] https://github.com/BPI-SINOVOIP/BPI-M2M-bsp/blob/master/linux-sunxi/drivers/... [2] https://github.com/BPI-SINOVOIP/BPI-M64-bsp/blob/master/linux-sunxi/drivers/... [3] https://github.com/BPI-SINOVOIP/BPI-M2M-bsp/blob/master/linux-sunxi/drivers/... [4] https://github.com/BPI-SINOVOIP/BPI-M2M-bsp/blob/master/linux-sunxi/drivers/...