[PATCH v2,0/7] media: mediatek: vcodec: Fix power_VideoCall test fail

From: Yunfei Dong
Date: Mon Dec 19 2022 - 01:45:16 EST


Random getting below error message when test power_VideoCall/control.49_vp9:
pc : __list_del_entry_valid+0xb0/0xfc
lr : __list_del_entry_valid+0xac/0xfc

The lat_buf in core list won't be deleted when one instance decode done.
Will access invalid released lat_buf list when queue work continue to decode.
Firstly, remove all unused lat_buf to the top of core list, making sure
these buffers can be decoded in highest priority; lastly, remove all unused
lat_buf when the instance is freed.

patch 1 add params to record lat and core lat_buf count.
patch 2 using each instance lat_buf count replace core ready list.
patch 3 move lat_buf to the top of core list.
patch 4 add core decode done event.
patch 5 remove unused lat_buf.
patch 6 making sure queue_work successfully
patch 7 change lat thread decode error condition
---
changed with v1:
- remove mutex for atomic for patch 1
- add patch 6 to make sure queue_work successfully
- add patch 7 change lat thread decode error condition
---
Yunfei Dong (7):
media: mediatek: vcodec: add params to record lat and core lat_buf
count
media: mediatek: vcodec: using each instance lat_buf count replace
core ready list
media: mediatek: vcodec: move lat_buf to the top of core list
media: mediatek: vcodec: add core decode done event
media: mediatek: vcodec: remove unused lat_buf
media: mediatek: vcodec: making sure queue_work successfully
media: mediatek: vcodec: change lat thread decode error condition

.../vcodec/mtk_vcodec_dec_stateless.c | 6 +-
.../vcodec/vdec/vdec_h264_req_multi_if.c | 2 +-
.../vcodec/vdec/vdec_vp9_req_lat_if.c | 2 +-
.../platform/mediatek/vcodec/vdec_msg_queue.c | 89 ++++++++++++++++---
.../platform/mediatek/vcodec/vdec_msg_queue.h | 12 +++
5 files changed, 94 insertions(+), 17 deletions(-)

--
2.25.1