From 97a997d366c6f117c626fad6b7397761d7e5c145 Mon Sep 17 00:00:00 2001 From: Hui Zhang Date: Wed, 3 Apr 2019 10:12:56 +0800 Subject: [PATCH] vh264: fix channel switching system hangup issue in vh264 remove [1/1] PD#SWPL-6377 Problem: hw bus dead lock in h264 remove. Solution: wait for decoder hw stopped completely before h264 remove Verify: X301 Change-Id: Ia3555e687ecfe452948922d3e221c0fae0ad499d Signed-off-by: Hui Zhang --- .../media_modules/frame_provider/decoder/h264/vh264.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/amlogic/media_modules/frame_provider/decoder/h264/vh264.c b/drivers/amlogic/media_modules/frame_provider/decoder/h264/vh264.c index 1781bb7e11dd..f5be8edf1328 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/h264/vh264.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/h264/vh264.c @@ -3712,11 +3712,10 @@ static int amvdec_h264_remove(struct platform_device *pdev) cancel_work_sync(¬ify_work); cancel_work_sync(&set_clk_work); cancel_work_sync(&userdata_push_work); - - mutex_lock(&vh264_mutex); vh264_stop(MODE_FULL); + wait_vh264_search_done(); + mutex_lock(&vh264_mutex); vdec_source_changed(VFORMAT_H264, 0, 0, 0); - #ifdef DUMP_USER_DATA vh264_dump_userdata(); #endif