vdin: perfecting vdin_shutdown() interface

PD#173740: vdin: perfecting vdin_shutdown() interface

Free vdin resource when the system shutdown but the application program
was not close vdin at some fortuitous event.

Change-Id: I343e1b93c6e2166a247592d8faa39b3f737f91d0
Signed-off-by: xuhua zhang <xuhua.zhang@amlogic.com>
This commit is contained in:
xuhua zhang
2018-09-14 15:36:46 +08:00
committed by Jianxin Pan
parent 7af62acb38
commit f4ea99506d

View File

@@ -2691,6 +2691,20 @@ static void vdin_drv_shutdown(struct platform_device *pdev)
struct vdin_dev_s *vdevp;
vdevp = platform_get_drvdata(pdev);
mutex_lock(&vdevp->fe_lock);
if (vdevp->flags & VDIN_FLAG_DEC_STARTED) {
vdevp->flags |= VDIN_FLAG_DEC_STOP_ISR;
vdin_stop_dec(vdevp);
vdevp->flags &= (~VDIN_FLAG_DEC_STARTED);
pr_info("VDIN(%d) decode stop ok at vdin_drv_shutdown.\n",
vdevp->index);
} else {
pr_info("VDIN(%d) decode has stopped.\n",
vdevp->index);
}
mutex_unlock(&vdevp->fe_lock);
vdevp->flags |= VDIN_FLAG_SM_DISABLE;
vdin_enable_module(vdevp->addr_offset, false);
pr_info("%s ok.\n", __func__);