di: fix mirror buffer recycle error cause crash
authorkele bai <kele.bai@amlogic.com>
Wed, 7 Mar 2018 10:48:07 +0000 (18:48 +0800)
committerJianxin Pan <jianxin.pan@amlogic.com>
Thu, 8 Mar 2018 10:54:08 +0000 (02:54 -0800)
PD#160504: di: fix keep buffer pointer error

1) fix keep buffer pointer error for seek case

Change-Id: I9ad34b86f6cc3c9a5cd5840571346bf180e45c39
Signed-off-by: kele bai <kele.bai@amlogic.com>
drivers/amlogic/media/deinterlace/deinterlace.c
drivers/amlogic/media/deinterlace/deinterlace.h

index 5e5d8e1..2195887 100644 (file)
@@ -1844,8 +1844,10 @@ static void di_cma_release(struct di_dev_s *devp)
                                pr_err("DI CMA  release buf[%d] fail.\n", i);
                        }
                } else {
-                       pr_err("DI buf[%d] page:0x%p no release.\n",
-                               buf_p->index, buf_p->pages);
+                       if (!IS_ERR_OR_NULL(buf_p->pages)) {
+                               pr_err("DI buf[%d] page:0x%p no release.\n",
+                                       buf_p->index, buf_p->pages);
+                       }
                }
        }
        if (post_wr_en && post_wr_support) {
@@ -1978,7 +1980,7 @@ static int di_init_buf(int width, int height, unsigned char prog_flag)
                int ii = USED_LOCAL_BUF_MAX;
                if (!IS_ERR_OR_NULL(keep_buf)) {
                        for (ii = 0; ii < USED_LOCAL_BUF_MAX; ii++) {
-                               if (di_buf == di_buf->di_buf_dup_p[ii]) {
+                               if (di_buf == keep_buf->di_buf_dup_p[ii]) {
                                        di_print("%s skip %d\n", __func__, i);
                                        break;
                                }
index 269fd3f..defccd2 100644 (file)
@@ -38,7 +38,6 @@
 #define TRIGGER_PRE_BY_VFRAME_READY            'r'
 #define TRIGGER_PRE_BY_PROVERDER_UNREG 'n'
 #define TRIGGER_PRE_BY_DEBUG_DISABLE   'd'
-#define TRIGGER_PRE_BY_TIMERC                  'T'
 #define TRIGGER_PRE_BY_PROVERDER_REG   'R'
 
 #define DI_RUN_FLAG_RUN                        0