vdin: Fix coverity error [1/1]

PD#SWPL-13987

Problem:
Fix coverity error.

Solution:
Fix coverity error.

Verify:
TL1

Change-Id: I5fec89f8980a4ea9b93e96e56dd857817695ad71
Signed-off-by: Yong Qin <yong.qin@amlogic.com>
This commit is contained in:
Yong Qin
2019-10-11 16:20:58 +08:00
committed by Tao Zeng
parent 2bb30f3496
commit e06e33ce2f
4 changed files with 50 additions and 39 deletions

View File

@@ -50,41 +50,41 @@ enum vdin_output_mif_e {
*/
enum vdin_matrix_csc_e {
VDIN_MATRIX_NULL = 0,
VDIN_MATRIX_XXX_YUV601_BLACK,
VDIN_MATRIX_XXX_YUV601_BLACK,/*1*/
VDIN_MATRIX_RGB_YUV601,
VDIN_MATRIX_GBR_YUV601,
VDIN_MATRIX_BRG_YUV601,
VDIN_MATRIX_YUV601_RGB,
VDIN_MATRIX_YUV601_RGB,/*5*/
VDIN_MATRIX_YUV601_GBR,
VDIN_MATRIX_YUV601_BRG,
VDIN_MATRIX_RGB_YUV601F,
VDIN_MATRIX_YUV601F_RGB,
VDIN_MATRIX_RGBS_YUV601,
VDIN_MATRIX_YUV601F_RGB,/*9*/
VDIN_MATRIX_RGBS_YUV601,/*10*/
VDIN_MATRIX_YUV601_RGBS,
VDIN_MATRIX_RGBS_YUV601F,
VDIN_MATRIX_YUV601F_RGBS,
VDIN_MATRIX_YUV601F_YUV601,
VDIN_MATRIX_YUV601_YUV601F,
VDIN_MATRIX_YUV601_YUV601F,/*15*/
VDIN_MATRIX_RGB_YUV709,
VDIN_MATRIX_YUV709_RGB,
VDIN_MATRIX_YUV709_GBR,
VDIN_MATRIX_YUV709_BRG,
VDIN_MATRIX_RGB_YUV709F,
VDIN_MATRIX_RGB_YUV709F,/*20*/
VDIN_MATRIX_YUV709F_RGB,
VDIN_MATRIX_RGBS_YUV709,
VDIN_MATRIX_YUV709_RGBS,
VDIN_MATRIX_RGBS_YUV709F,
VDIN_MATRIX_YUV709F_RGBS,
VDIN_MATRIX_YUV709F_RGBS,/*25*/
VDIN_MATRIX_YUV709F_YUV709,
VDIN_MATRIX_YUV709_YUV709F,
VDIN_MATRIX_YUV601_YUV709,
VDIN_MATRIX_YUV709_YUV601,
VDIN_MATRIX_YUV601_YUV709F,
VDIN_MATRIX_YUV601_YUV709F,/*30*/
VDIN_MATRIX_YUV709F_YUV601,
VDIN_MATRIX_YUV601F_YUV709,
VDIN_MATRIX_YUV709_YUV601F,
VDIN_MATRIX_YUV601F_YUV709F,
VDIN_MATRIX_YUV709F_YUV601F,
VDIN_MATRIX_YUV709F_YUV601F,/*35*/
VDIN_MATRIX_RGBS_RGB,
VDIN_MATRIX_RGB_RGBS,
};

View File

@@ -436,6 +436,7 @@ static void vdin_dump_mem(char *path, struct vdin_dev_s *devp)
static void vdin_dump_one_afbce_mem(char *path, struct vdin_dev_s *devp,
unsigned int buf_num)
{
#define K_PATH_BUFF_LENGTH 150
struct file *filp = NULL;
loff_t pos = 0;
void *buf_head = NULL;
@@ -449,7 +450,7 @@ static void vdin_dump_one_afbce_mem(char *path, struct vdin_dev_s *devp,
unsigned int count = 0;
unsigned int j = 0;
void *vbuf = NULL;
unsigned char buff[100];
unsigned char buff[K_PATH_BUFF_LENGTH];
mm_segment_t old_fs = get_fs();
if (buf_num >= devp->canvas_max_num) {
@@ -512,9 +513,14 @@ static void vdin_dump_one_afbce_mem(char *path, struct vdin_dev_s *devp,
}
set_fs(KERNEL_DS);
/*write header bin*/
strcpy(buff, path);
if (strlen(path) < K_PATH_BUFF_LENGTH) {
strcpy(buff, path);
} else {
pr_info("err path len\n");
return;
}
strcat(buff, "_1header.bin");
filp = filp_open(buff, O_RDWR|O_CREAT, 0666);
if (IS_ERR(filp)) {

View File

@@ -2167,15 +2167,16 @@ static void vdin_vlock_dwork(struct work_struct *work)
struct vdin_dev_s *devp =
container_of(dwork, struct vdin_dev_s, vlock_dwork);
if (!devp || !devp->frontend || !devp->curr_wr_vfe) {
pr_info("%s, dwork error !!!\n", __func__);
return;
}
if (!(devp->flags & VDIN_FLAG_DEC_OPENED)) {
cancel_delayed_work(&devp->vlock_dwork);
return;
}
if (!devp || !devp->frontend || !devp->curr_wr_vfe) {
pr_info("%s, dwork error !!!\n", __func__);
return;
}
vdin_vlock_input_sel(devp->curr_field_type,
devp->curr_wr_vfe->vf.source_type);
@@ -2912,30 +2913,33 @@ static long vdin_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
}
idx = vdinsetcanvas[i].index;
if (idx < VDIN_CANVAS_MAX_CNT) {
vdin_set_canvas_addr[idx].dmabuff =
dma_buf_get(vdinsetcanvas[i].fd);
vdin_set_canvas_addr[idx].dmabuff =
dma_buf_get(vdinsetcanvas[i].fd);
vdin_set_canvas_addr[idx].dmabufattach =
dma_buf_attach(
vdin_set_canvas_addr[idx].dmabuff,
devp->dev);
vdin_set_canvas_addr[idx].sgtable =
dma_buf_map_attachment(
vdin_set_canvas_addr[idx].dmabufattach,
DMA_BIDIRECTIONAL);
vdin_set_canvas_addr[idx].dmabufattach =
dma_buf_attach(
vdin_set_canvas_addr[idx].dmabuff,
devp->dev);
vdin_set_canvas_addr[idx].sgtable =
dma_buf_map_attachment(
vdin_set_canvas_addr[idx].dmabufattach,
DMA_BIDIRECTIONAL);
page = sg_page(vdin_set_canvas_addr[idx].sgtable->sgl);
vdin_set_canvas_addr[idx].paddr =
PFN_PHYS(page_to_pfn(page));
vdin_set_canvas_addr[idx].size =
vdin_set_canvas_addr[idx].dmabuff->size;
pr_info("TVIN_IOC_S_CANVAS_ADDR[%d] addr=0x%lx, len=0x%x.\n",
i,
vdin_set_canvas_addr[idx].paddr,
vdin_set_canvas_addr[idx].size);
page =
sg_page(vdin_set_canvas_addr[idx].sgtable->sgl);
vdin_set_canvas_addr[idx].paddr =
PFN_PHYS(page_to_pfn(page));
vdin_set_canvas_addr[idx].size =
vdin_set_canvas_addr[idx].dmabuff->size;
pr_info("TVIN_IOC_S_CANVAS_ADDR[%d] addr=0x%lx, len=0x%x.\n",
i,
vdin_set_canvas_addr[idx].paddr,
vdin_set_canvas_addr[idx].size);
} else {
pr_info("VDIN err canvas idx:%d\n", idx);
}
__close_fd(current->files, vdinsetcanvas[i].fd);
}
break;
@@ -2951,7 +2955,8 @@ static long vdin_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
return -EFAULT;
}
if (devp->keystone_entry[recov_idx]) {
if ((recov_idx < VDIN_CANVAS_MAX_CNT) &&
(devp->keystone_entry[recov_idx])) {
receiver_vf_put(&devp->keystone_entry[recov_idx]->vf,
devp->vfp);
devp->keystone_entry[recov_idx] = NULL;

View File

@@ -48,7 +48,7 @@
/* Ref.2019/04/25: tl1 vdin0 afbce dynamically switch support,
* vpp also should support this function
*/
#define VDIN_VER "Ref.2019/09/30:afbce,optimize mem alloc & enable 1080p"
#define VDIN_VER "Ref.2019/10/11:Fix coverify error"
/*the counter of vdin*/
#define VDIN_MAX_DEVS 2