From f3a40652c52ef8358ef428d341fd1e7b5ee30ed9 Mon Sep 17 00:00:00 2001 From: Nanxin Qin Date: Thu, 8 Mar 2018 10:19:44 +0800 Subject: [PATCH] decoder: fixes some iusses PD#161606: 1. fixes an issue that the mutex lock could sleeping on isr context. 2. update the video_ucode.bin Change-Id: I14d73e210d64de46d20396cf8edc33c397bbc1ec Signed-off-by: Nanxin Qin --- .../frame_provider/decoder/vp9/vvp9.c | 14 ++++---------- firmware/video/video_ucode.bin | Bin 637184 -> 637184 bytes 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/drivers/amlogic/media_modules/frame_provider/decoder/vp9/vvp9.c b/drivers/amlogic/media_modules/frame_provider/decoder/vp9/vvp9.c index 38a98ee61c52..ef990d9daf0a 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/vp9/vvp9.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/vp9/vvp9.c @@ -7033,9 +7033,6 @@ static void dec_again_process(struct VP9Decoder_s *pbi) PROC_STATE_DECODESLICE) { pbi->process_state = PROC_STATE_SENDAGAIN; -#ifdef VP9_10B_MMU - vp9_recycle_mmu_buf(pbi); -#endif } reset_process_time(pbi); vdec_schedule_work(&pbi->work); @@ -7679,9 +7676,6 @@ static void vvp9_put_timer_func(unsigned long arg) pbi->dec_result = DEC_RESULT_AGAIN; if (pbi->process_state == PROC_STATE_DECODESLICE) { -#ifdef VP9_10B_MMU - vp9_recycle_mmu_buf(pbi); -#endif pbi->process_state = PROC_STATE_SENDAGAIN; } @@ -8290,8 +8284,6 @@ static int amvdec_vp9_probe(struct platform_device *pdev) #endif pr_debug("%s\n", __func__); - WRITE_VREG(DOS_SCRATCH31,4); - mutex_lock(&vvp9_mutex); memcpy(&BUF[0], &pbi->m_BUF[0], sizeof(struct BUF_s) * MAX_BUF_NUM); @@ -8603,6 +8595,10 @@ static void vp9_work(struct work_struct *work) stream base: stream buf empty or timeout frame base: vdec_prepare_input fail */ +#ifdef VP9_10B_MMU + if (pbi->process_state == PROC_STATE_SENDAGAIN) + vp9_recycle_mmu_buf(pbi); +#endif if (!vdec_has_more_input(vdec)) { pbi->dec_result = DEC_RESULT_EOS; vdec_schedule_work(&pbi->work); @@ -9187,8 +9183,6 @@ static int ammvdec_vp9_probe(struct platform_device *pdev) struct VP9Decoder_s *pbi = NULL; pr_debug("%s\n", __func__); - //WRITE_VREG(DOS_SCRATCH31,4); - if (pdata == NULL) { pr_info("\nammvdec_vp9 memory resource undefined.\n"); return -EFAULT; diff --git a/firmware/video/video_ucode.bin b/firmware/video/video_ucode.bin index 9261727463c068e5e1a8eb42214e23c21f804a60..4028d1e2fd8e78db1e51d1a18963c1e94888a50a 100755 GIT binary patch delta 3662 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 kwn=4bUWz%v4;i#^Cq4>C)Ai*z5GwVx