mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 12:57:06 +09:00
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:
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user