lkml.org 
[lkml]   [2021]   [Apr]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 08/79] media: marvel-ccic: fix some issues when getting pm_runtime
    Date
    Calling pm_runtime_get_sync() is bad, since even when it
    returns an error, pm_runtime_put*() should be called.
    So, use instead pm_runtime_resume_and_get().

    While here, ensure that the error condition will be checked
    during clock enable an media open() calls.

    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    ---
    drivers/media/platform/marvell-ccic/mcam-core.c | 9 +++++++--
    1 file changed, 7 insertions(+), 2 deletions(-)

    diff --git a/drivers/media/platform/marvell-ccic/mcam-core.c b/drivers/media/platform/marvell-ccic/mcam-core.c
    index 141bf5d97a04..ea87110d9073 100644
    --- a/drivers/media/platform/marvell-ccic/mcam-core.c
    +++ b/drivers/media/platform/marvell-ccic/mcam-core.c
    @@ -918,6 +918,7 @@ static int mclk_enable(struct clk_hw *hw)
    struct mcam_camera *cam = container_of(hw, struct mcam_camera, mclk_hw);
    int mclk_src;
    int mclk_div;
    + int ret;

    /*
    * Clock the sensor appropriately. Controller clock should
    @@ -931,7 +932,9 @@ static int mclk_enable(struct clk_hw *hw)
    mclk_div = 2;
    }

    - pm_runtime_get_sync(cam->dev);
    + ret = pm_runtime_resume_and_get(cam->dev);
    + if (ret < 0)
    + return ret;
    clk_enable(cam->clk[0]);
    mcam_reg_write(cam, REG_CLKCTRL, (mclk_src << 29) | mclk_div);
    mcam_ctlr_power_up(cam);
    @@ -1611,7 +1614,9 @@ static int mcam_v4l_open(struct file *filp)
    ret = sensor_call(cam, core, s_power, 1);
    if (ret)
    goto out;
    - pm_runtime_get_sync(cam->dev);
    + ret = pm_runtime_resume_and_get(cam->dev);
    + if (ret < 0)
    + goto out;
    __mcam_cam_reset(cam);
    mcam_set_config_needed(cam, 1);
    }
    --
    2.30.2
    \
     
     \ /
      Last update: 2021-04-27 12:14    [W:4.081 / U:0.316 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site