• Jacopo Mondi's avatar
    media: i2c: rdacm21: Power up OV10640 before OV490 · 2b821698
    Jacopo Mondi authored
    The current RDACM21 initialization routine powers up the OV10640 image
    sensor after the OV490 ISP. The ISP is programmed with a firmware loaded
    from an embedded serial flash that (most probably) tries to interact and
    program also the image sensor connected to the ISP.
    
    As described in commit "media: i2c: rdacm21: Fix OV10640 powerup" the
    image sensor powerdown signal is kept high by an internal pull up
    resistor and occasionally fails to startup correctly if the powerdown
    line is not asserted explicitly. Failures in the OV10640 startup causes
    the OV490 firmware to fail to boot correctly resulting in the camera
    module initialization to fail consequentially.
    
    Fix this by powering up the OV10640 image sensor before testing the
    OV490 firmware boot completion, by splitting the ov10640_initialize()
    function in an ov10640_power_up() one and an ov10640_check_id() one.
    
    Also make sure the OV10640 identification procedure gives enough time to
    the image sensor to resume after the programming phase performed by the
    OV490 firmware by repeating the ID read procedure.
    
    This commit fixes a sporadic start-up error triggered by a failure to
    detect the OV490 firmware boot completion:
    rdacm21 8-0054: Timeout waiting for firmware boot
    
    [hverkuil: fixed two typos in commit log]
    
    Fixes: a59f853b ("media: i2c: Add driver for RDACM21 camera module")
    Signed-off-by: default avatarJacopo Mondi <jacopo+renesas@jmondi.org>
    Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
    Reviewed-by: default avatarKieran Bingham <kieran.bingham+renesas@ideasonboard.com>
    Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
    2b821698
rdacm21.c 15 KB