media_module: Hevc core cannot schedule issue [1/1]
authorPeng Yixin <yixin.peng@amlogic.com>
Fri, 21 Aug 2020 02:03:07 +0000 (10:03 +0800)
committerHui Zhang <hui.zhang@amlogic.com>
Mon, 24 Aug 2020 06:24:07 +0000 (23:24 -0700)
PD#SWPL-32068

Problem:
When the decoder released incorrectly,
the corresponding scheduling bit was not
cleared, after that, cause video can not
playback.

Solution:
This problem is solved by clean the
corresponding scheduling token bit.

Verify:
T962X3

Change-Id: Ie1dd610f679ec6beba5a352a320778a5ad003a87
Signed-off-by: Peng Yixin <yixin.peng@amlogic.com>
drivers/frame_provider/decoder/utils/vdec.c

index 6a60ab1002799244e549868f0a0819d7dafbcb3a..a35b657146a292f367afc3ca41638b457bc23c98 100644 (file)
@@ -2604,8 +2604,12 @@ static void vdec_connect_list_force_clear(struct vdec_core_s *core, struct vdec_
                    (vdec == v_ref)) {
                    pr_err("%s, vdec = %p, active vdec = %p\n",
                                __func__, vdec, core->active_vdec);
+                       if (v_ref->active_mask)
+                               core->sched_mask &= ~v_ref->active_mask;
                        if (core->active_vdec == v_ref)
                                core->active_vdec = NULL;
+                       if (core->active_hevc == v_ref)
+                               core->active_hevc = NULL;
                        if (core->last_vdec == v_ref)
                                core->last_vdec = NULL;
                        list_del(&vdec->list);