vdec: improve timeout handling for vmmpeg12/vmmh264/vmmh265 [1/1]
authorapollo.ling <apollo.ling@amlogic.com>
Tue, 29 Oct 2019 09:33:17 +0000 (17:33 +0800)
committerapollo.ling <apollo.ling@amlogic.com>
Tue, 29 Oct 2019 09:34:27 +0000 (17:34 +0800)
supplementary commit.

PD#SWPL-14196

Problem:
{stress test} trunk crash and watchdog reboot happen when
do DTV h264 2s channel switch and 15s suspend.(1/5,none)

Solution:
improve the timout handling mechanism

Verify:
X301

Change-Id: I7989ad2b015855d6cacec1c54e8e05d585c8934e
Signed-off-by: apollo.ling <apollo.ling@amlogic.com>
drivers/frame_provider/decoder/h264_multi/h264_dpb.c
drivers/frame_provider/decoder/h264_multi/vmh264.c

index 2b9a920c0f4e4fb4cb6aa5f5e42206310f37b085..2258f75d909daf69da36c945f9286138350a4589 100644 (file)
@@ -202,7 +202,7 @@ void ref_pic_list_reordering(struct h264_dpb_stru *p_H264_Dpb,
  */
                                        i >= REORDERING_COMMAND_MAX_SIZE) {
                                        dpb_print(p_H264_Dpb->decoder_index,
-                                               PRINT_FLAG_ERROR,
+                                               PRINT_FLAG_DPB_DETAIL,
                                                "%s error %d %d\n",
                                                __func__, i,
                                                currSlice->
@@ -300,7 +300,7 @@ void ref_pic_list_reordering(struct h264_dpb_stru *p_H264_Dpb,
                                /*i>currSlice->num_ref_idx_active[LIST_1] || */
                                        i >= REORDERING_COMMAND_MAX_SIZE) {
                                        dpb_print(p_H264_Dpb->decoder_index,
-                                               PRINT_FLAG_ERROR,
+                                               PRINT_FLAG_DPB_DETAIL,
                                                "%s error %d %d\n",
                                                __func__, i,
                                                currSlice->
index 5c9089880a5563d04bed6692024235cd6161455a..f34097c022e562213eb5bbe31fbce8e89ca82f1c 100644 (file)
@@ -5355,11 +5355,8 @@ static irqreturn_t vh264_isr_thread_fn(struct vdec_s *vdec, int irq)
                debug_tag = tenth_ns - hw->tfn_ns;
                hw->tfn_cnt = 1;
                hw->tfn_cnt = tenth_ns;
-               if (debug_tag <= 10000000) {
-                       pr_err("Within 10ms 10 vh264_isr_thread_fn. Abnormal!\n");
-                       timeout_process(hw);
-                       return IRQ_HANDLED;
-               }
+               if (debug_tag <= 10000000)
+                       pr_err("Within 10ms 10 vh264_isr_thread_fn!\n");
        }
 
        if (dec_dpb_status == H264_CONFIG_REQUEST) {