• J
    media: ov6650: Fix stored crop rectangle not in sync with hardware · df571368
    Janusz Krzysztofik 提交于
    [ Upstream commit 1463b371aff0682c70141f7521db13cc4bbf3016 ]
    
    The driver stores crop rectangle settings supposed to be in line with
    hardware state in a device private structure.  Since the driver initial
    submission, crop rectangle width and height settings are not updated
    correctly when rectangle offset settings are applied on hardware.  If
    an error occurs while the device is updated, the stored settings my no
    longer reflect hardware state and consecutive calls to .get_selection()
    as well as .get/set_fmt() may return incorrect information.  That in
    turn may affect ability of a bridge device to use correct DMA transfer
    settings if such incorrect informamtion on active frame format returned
    by .get/set_fmt() is used.
    
    Assuming a failed update of the device means its actual settings haven't
    changed, update crop rectangle width and height settings stored in the
    device private structure correctly while the rectangle offset is
    successfully applied on hardware so the stored values always reflect
    actual hardware state to the extent possible.
    
    Fixes: 2f6e2404 ("[media] SoC Camera: add driver for OV6650 sensor")
    Signed-off-by: NJanusz Krzysztofik <jmkrzyszt@gmail.com>
    Signed-off-by: NSakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: NMauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: NSasha Levin <sashal@kernel.org>
    Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
    df571368
ov6650.c 26.5 KB