From 433997e5d2da78ee66d8083334976f98219b3f93 Mon Sep 17 00:00:00 2001 From: kele bai Date: Wed, 7 Mar 2018 18:48:07 +0800 Subject: [PATCH] di: fix mirror buffer recycle error cause crash 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 --- drivers/amlogic/media/deinterlace/deinterlace.c | 8 +++++--- drivers/amlogic/media/deinterlace/deinterlace.h | 1 - 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/amlogic/media/deinterlace/deinterlace.c b/drivers/amlogic/media/deinterlace/deinterlace.c index 5e5d8e19f604..21958876fee6 100644 --- a/drivers/amlogic/media/deinterlace/deinterlace.c +++ b/drivers/amlogic/media/deinterlace/deinterlace.c @@ -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; } diff --git a/drivers/amlogic/media/deinterlace/deinterlace.h b/drivers/amlogic/media/deinterlace/deinterlace.h index 269fd3f1847c..defccd2889c5 100644 --- a/drivers/amlogic/media/deinterlace/deinterlace.h +++ b/drivers/amlogic/media/deinterlace/deinterlace.h @@ -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