mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-01 08:04:22 +08:00
media: amphion: support for reloading module
As there is no interface to power off vpu core. So it need to boot from cold on first load. but on the second load, driver need to restore the status instead of booting. Signed-off-by: Ming Qian <ming.qian@nxp.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
This commit is contained in:
parent
f4334c51b1
commit
9059ca921b
@ -257,14 +257,8 @@ static int vpu_core_register(struct device *dev, struct vpu_core *core)
|
|||||||
}
|
}
|
||||||
|
|
||||||
list_add_tail(&core->list, &vpu->cores);
|
list_add_tail(&core->list, &vpu->cores);
|
||||||
|
|
||||||
vpu_core_get_vpu(core);
|
vpu_core_get_vpu(core);
|
||||||
|
|
||||||
if (vpu_iface_get_power_state(core))
|
|
||||||
ret = vpu_core_restore(core);
|
|
||||||
if (ret)
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
error:
|
error:
|
||||||
if (core->msg_buffer) {
|
if (core->msg_buffer) {
|
||||||
@ -362,7 +356,10 @@ struct vpu_core *vpu_request_core(struct vpu_dev *vpu, enum vpu_core_type type)
|
|||||||
pm_runtime_resume_and_get(core->dev);
|
pm_runtime_resume_and_get(core->dev);
|
||||||
|
|
||||||
if (core->state == VPU_CORE_DEINIT) {
|
if (core->state == VPU_CORE_DEINIT) {
|
||||||
ret = vpu_core_boot(core, true);
|
if (vpu_iface_get_power_state(core))
|
||||||
|
ret = vpu_core_restore(core);
|
||||||
|
else
|
||||||
|
ret = vpu_core_boot(core, true);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
pm_runtime_put_sync(core->dev);
|
pm_runtime_put_sync(core->dev);
|
||||||
mutex_unlock(&core->lock);
|
mutex_unlock(&core->lock);
|
||||||
|
Loading…
Reference in New Issue
Block a user