mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-11 05:17:10 +09:00
vreal: uninit when init fail
PD#163348: fix for hang up when playing video after play vreal format Change-Id: I13fc45d6092351d86db4dfdbfd6f837d7deca605
This commit is contained in:
committed by
Dongjin Kim
parent
7613cd2882
commit
13fd1902f3
@@ -811,13 +811,16 @@ s32 vreal_init(struct vdec_s *vdec)
|
||||
ret = rmparser_init(vdec);
|
||||
if (ret) {
|
||||
amvdec_disable();
|
||||
|
||||
vfree(buf);
|
||||
pr_info("rm parser init failed\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (vreal_amstream_dec_info.format == VIDEO_DEC_FORMAT_REAL_8) {
|
||||
if (vreal_amstream_dec_info.param == NULL) {
|
||||
rmparser_release();
|
||||
amvdec_disable();
|
||||
vfree(buf);
|
||||
return -1;
|
||||
}
|
||||
load_block_data((void *)pic_sz_tbl, 12);
|
||||
@@ -839,6 +842,7 @@ s32 vreal_init(struct vdec_s *vdec)
|
||||
pr_info("unsurpported real format\n");
|
||||
|
||||
if (size < 0) {
|
||||
rmparser_release();
|
||||
amvdec_disable();
|
||||
pr_err("get firmware fail.");
|
||||
vfree(buf);
|
||||
@@ -847,6 +851,7 @@ s32 vreal_init(struct vdec_s *vdec)
|
||||
if (size == 1)
|
||||
pr_info ("tee load ok");
|
||||
else if (amvdec_loadmc_ex(VFORMAT_REAL, NULL, buf) < 0) {
|
||||
rmparser_release();
|
||||
amvdec_disable();
|
||||
vfree(buf);
|
||||
return -EBUSY;
|
||||
@@ -858,10 +863,14 @@ s32 vreal_init(struct vdec_s *vdec)
|
||||
|
||||
/* enable AMRISC side protocol */
|
||||
ret = vreal_prot_init();
|
||||
if (ret < 0)
|
||||
if (ret < 0) {
|
||||
rmparser_release();
|
||||
amvdec_disable();
|
||||
return ret;
|
||||
}
|
||||
if (vdec_request_irq(VDEC_IRQ_1, vreal_isr,
|
||||
"vreal-irq", (void *)vreal_dec_id)) {
|
||||
rmparser_release();
|
||||
amvdec_disable();
|
||||
|
||||
pr_info("vreal irq register error.\n");
|
||||
|
||||
Reference in New Issue
Block a user