Message ID | 20220307080859.14475-1-linmq006@gmail.com |
---|---|
State | Accepted |
Commit | 94e3dba710fe0afc772172305444250023fc2d30 |
Headers | show |
Series | [v3] media: st-delta: Fix PM disable depth imbalance in delta_probe | expand |
Hi Miaoqian Lin, Thanks for the patch ! Acked-by: Hugues Fruchet <hugues.fruchet@foss.st.com> BR, Hugues. On 3/7/22 9:08 AM, Miaoqian Lin wrote: > The pm_runtime_enable will decrease power disable depth. > If the probe fails, we should use pm_runtime_disable() to balance > pm_runtime_enable(). > > Fixes: f386509 ("[media] st-delta: STiH4xx multi-format video decoder v4l2 driver") > Signed-off-by: Miaoqian Lin <linmq006@gmail.com> > --- > changes in v2: > - remove unused label. > changes in v3: > - add err_pm_disable label and update related 'goto err'. > - update commit message > --- > drivers/media/platform/sti/delta/delta-v4l2.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/media/platform/sti/delta/delta-v4l2.c b/drivers/media/platform/sti/delta/delta-v4l2.c > index c887a31ebb54..420ad4d8df5d 100644 > --- a/drivers/media/platform/sti/delta/delta-v4l2.c > +++ b/drivers/media/platform/sti/delta/delta-v4l2.c > @@ -1859,7 +1859,7 @@ static int delta_probe(struct platform_device *pdev) > if (ret) { > dev_err(delta->dev, "%s failed to initialize firmware ipc channel\n", > DELTA_PREFIX); > - goto err; > + goto err_pm_disable; > } > > /* register all available decoders */ > @@ -1873,7 +1873,7 @@ static int delta_probe(struct platform_device *pdev) > if (ret) { > dev_err(delta->dev, "%s failed to register V4L2 device\n", > DELTA_PREFIX); > - goto err; > + goto err_pm_disable; > } > > delta->work_queue = create_workqueue(DELTA_NAME); > @@ -1898,6 +1898,8 @@ static int delta_probe(struct platform_device *pdev) > destroy_workqueue(delta->work_queue); > err_v4l2: > v4l2_device_unregister(&delta->v4l2_dev); > +err_pm_disable: > + pm_runtime_disable(dev); > err: > return ret; > } >
diff --git a/drivers/media/platform/sti/delta/delta-v4l2.c b/drivers/media/platform/sti/delta/delta-v4l2.c index c887a31ebb54..420ad4d8df5d 100644 --- a/drivers/media/platform/sti/delta/delta-v4l2.c +++ b/drivers/media/platform/sti/delta/delta-v4l2.c @@ -1859,7 +1859,7 @@ static int delta_probe(struct platform_device *pdev) if (ret) { dev_err(delta->dev, "%s failed to initialize firmware ipc channel\n", DELTA_PREFIX); - goto err; + goto err_pm_disable; } /* register all available decoders */ @@ -1873,7 +1873,7 @@ static int delta_probe(struct platform_device *pdev) if (ret) { dev_err(delta->dev, "%s failed to register V4L2 device\n", DELTA_PREFIX); - goto err; + goto err_pm_disable; } delta->work_queue = create_workqueue(DELTA_NAME); @@ -1898,6 +1898,8 @@ static int delta_probe(struct platform_device *pdev) destroy_workqueue(delta->work_queue); err_v4l2: v4l2_device_unregister(&delta->v4l2_dev); +err_pm_disable: + pm_runtime_disable(dev); err: return ret; }
The pm_runtime_enable will decrease power disable depth. If the probe fails, we should use pm_runtime_disable() to balance pm_runtime_enable(). Fixes: f386509 ("[media] st-delta: STiH4xx multi-format video decoder v4l2 driver") Signed-off-by: Miaoqian Lin <linmq006@gmail.com> --- changes in v2: - remove unused label. changes in v3: - add err_pm_disable label and update related 'goto err'. - update commit message --- drivers/media/platform/sti/delta/delta-v4l2.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)