• Benoit Parrot's avatar
    media: ti-vpe: cal: Fix ths_term/ths_settle parameters · 5f9f2fb7
    Benoit Parrot authored
    The current method to calculate the ddr clk period is wrong.
    Therefore the ths_term calculation is incorrect.
    Also it was wrongly assumed that the ths_settle parameter
    was based on the control clock instead of the pixel clock.
    
    Since the DPHY can tolerate quite a bit a of variation,
    capture was still mostly working with the 2 tested modes
    when the pixel clock was close to the control clock
    (i.e. 96 Mhz). But it would quickly stops working when
    using different modes or when customers used different
    sensors altogether.
    
    Calculating the DDRClk period needs to take into account
    the pixel bit width and the number of active data lanes.
    
    Based on the latest technical reference manual these
    parameters should now be calculated as follows:
    
    THS_TERM: Programmed value = floor(20 ns/DDRClk period)
    THS_SETTLE: Programmed value = floor(105 ns/DDRClk period) + 4
    
    Also originally 'depth' was used to represent the number of
    bits a pixel would use once stored in memory (i.e. the
    container size). To accurately calculate the THS_* parameters
    we need to use the actual number of bits per pixels coming
    in from the sensor. So we are renaming 'depth' to 'bpp' (bits
    per pixels) and update the format table to show the actual
    number of bits per pixel being received.
    
    The "container" size will be derived from the "bpp" value.
    Signed-off-by: default avatarBenoit Parrot <bparrot@ti.com>
    Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
    5f9f2fb7
cal.c 53.5 KB