lkml.org 
[lkml]   [2021]   [Apr]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v3 06/79] media: exynos-gsc: don't resume at remove time
    From
    Date
    On 27.04.2021 12:25, Mauro Carvalho Chehab wrote:
    > Calling pm_runtime_get_sync() at driver's removal time is not
    > needed, as this will resume PM runtime. Also, the PM runtime
    > code at pm_runtime_disable() already calls it, if it detects
    > the need.
    >
    > So, simplify the code by getting rid of that.
    >
    > Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    > ---
    > drivers/media/platform/exynos-gsc/gsc-core.c | 3 ---
    > 1 file changed, 3 deletions(-)
    >
    > diff --git a/drivers/media/platform/exynos-gsc/gsc-core.c b/drivers/media/platform/exynos-gsc/gsc-core.c
    > index 9f41c2e7097a..70e86cdc1012 100644
    > --- a/drivers/media/platform/exynos-gsc/gsc-core.c
    > +++ b/drivers/media/platform/exynos-gsc/gsc-core.c
    > @@ -1210,8 +1210,6 @@ static int gsc_remove(struct platform_device *pdev)
    > struct gsc_dev *gsc = platform_get_drvdata(pdev);
    > int i;
    >
    > - pm_runtime_get_sync(&pdev->dev);
    > -
    > gsc_unregister_m2m_device(gsc);
    > v4l2_device_unregister(&gsc->v4l2_dev);
    >
    > @@ -1219,7 +1217,6 @@ static int gsc_remove(struct platform_device *pdev)
    > for (i = 0; i < gsc->num_clocks; i++)
    > clk_disable_unprepare(gsc->clock[i]);
    >
    > - pm_runtime_put_noidle(&pdev->dev);
    > pm_runtime_disable(&pdev->dev);

    This will result in unbalanced clk_disable_unprepare() calls when
    the device is not runtime PM active at the time of gsc_remove() call.
    I think we need to first disable runtime PM for the device and then
    disable the clocks only when pm_runtime_status_suspended(&pdev->dev)
    returns false.


    Thanks,
    Sylwester

    \
     
     \ /
      Last update: 2021-04-27 13:23    [W:4.024 / U:0.492 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site