• Janusz Krzysztofik's avatar
    media: ov6650: Fix stored frame interval not in sync with hardware · 57822068
    Janusz Krzysztofik authored
    The driver stores a frame interval value supposed to be in line with
    hardware state in a device private structure.  Since the driver initial
    submission, the respective field of the structure has never been
    initialised on device probe.  Moreover, if updated from
    .s_frame_interval(), a new value is stored before it is applied on
    hardware.  If an error occurs during device update, the stored value
    may no longer reflect hardware state and consecutive calls to
    .g_frame_interval() may return incorrect information.
    
    Assuming a failed update of the device means its actual state hasn't
    changed, update the frame interval field of the device private
    structure with a new value only after it is successfully applied on
    hardware so it always reflects actual hardware state to the extent
    possible.  Also, initialise the field with hardware default frame
    interval on device probe.
    Signed-off-by: default avatarJanusz Krzysztofik <jmkrzyszt@gmail.com>
    Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
    57822068
ov6650.c 27.4 KB