media: renesas-ceu: Properly check for PM errors
Right now, the driver just assumes that PM runtime resume
worked, but it may fail.
Well, the pm_runtime_get_sync() internally increments the
dev->power.usage_count without decrementing it, even on errors.
So, using it is tricky. Let's replace it by the new
pm_runtime_resume_and_get(), introduced by:
commit dd8088d5a8
("PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter")
and return an error if something bad happens.
This should ensure that the PM runtime usage_count will be
properly decremented if an error happens at open time.
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Acked-by: Jacopo Mondi <jacopo@jmondi.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
45e75a8c6f
commit
220955ec3c
|
@ -1099,10 +1099,10 @@ static int ceu_open(struct file *file)
|
||||||
|
|
||||||
mutex_lock(&ceudev->mlock);
|
mutex_lock(&ceudev->mlock);
|
||||||
/* Causes soft-reset and sensor power on on first open */
|
/* Causes soft-reset and sensor power on on first open */
|
||||||
pm_runtime_get_sync(ceudev->dev);
|
ret = pm_runtime_resume_and_get(ceudev->dev);
|
||||||
mutex_unlock(&ceudev->mlock);
|
mutex_unlock(&ceudev->mlock);
|
||||||
|
|
||||||
return 0;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ceu_release(struct file *file)
|
static int ceu_release(struct file *file)
|
||||||
|
|
Loading…
Reference in New Issue