Commit 6f7f1bff authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab

media: vivid: disable VB2_USERPTR if dma_contig was configured

It makes no sense to support the USERPTR memory model if the vivid instance was
configured as dma_contig. Disable it if this is the case.
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 8f57763e
...@@ -1094,7 +1094,9 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) ...@@ -1094,7 +1094,9 @@ static int vivid_create_instance(struct platform_device *pdev, int inst)
q = &dev->vb_vid_cap_q; q = &dev->vb_vid_cap_q;
q->type = dev->multiplanar ? V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE : q->type = dev->multiplanar ? V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE :
V4L2_BUF_TYPE_VIDEO_CAPTURE; V4L2_BUF_TYPE_VIDEO_CAPTURE;
q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF | VB2_READ; q->io_modes = VB2_MMAP | VB2_DMABUF | VB2_READ;
if (!allocator)
q->io_modes |= VB2_USERPTR;
q->drv_priv = dev; q->drv_priv = dev;
q->buf_struct_size = sizeof(struct vivid_buffer); q->buf_struct_size = sizeof(struct vivid_buffer);
q->ops = &vivid_vid_cap_qops; q->ops = &vivid_vid_cap_qops;
...@@ -1115,7 +1117,9 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) ...@@ -1115,7 +1117,9 @@ static int vivid_create_instance(struct platform_device *pdev, int inst)
q = &dev->vb_vid_out_q; q = &dev->vb_vid_out_q;
q->type = dev->multiplanar ? V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE : q->type = dev->multiplanar ? V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE :
V4L2_BUF_TYPE_VIDEO_OUTPUT; V4L2_BUF_TYPE_VIDEO_OUTPUT;
q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF | VB2_WRITE; q->io_modes = VB2_MMAP | VB2_DMABUF | VB2_WRITE;
if (!allocator)
q->io_modes |= VB2_USERPTR;
q->drv_priv = dev; q->drv_priv = dev;
q->buf_struct_size = sizeof(struct vivid_buffer); q->buf_struct_size = sizeof(struct vivid_buffer);
q->ops = &vivid_vid_out_qops; q->ops = &vivid_vid_out_qops;
...@@ -1136,7 +1140,9 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) ...@@ -1136,7 +1140,9 @@ static int vivid_create_instance(struct platform_device *pdev, int inst)
q = &dev->vb_vbi_cap_q; q = &dev->vb_vbi_cap_q;
q->type = dev->has_raw_vbi_cap ? V4L2_BUF_TYPE_VBI_CAPTURE : q->type = dev->has_raw_vbi_cap ? V4L2_BUF_TYPE_VBI_CAPTURE :
V4L2_BUF_TYPE_SLICED_VBI_CAPTURE; V4L2_BUF_TYPE_SLICED_VBI_CAPTURE;
q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF | VB2_READ; q->io_modes = VB2_MMAP | VB2_DMABUF | VB2_READ;
if (!allocator)
q->io_modes |= VB2_USERPTR;
q->drv_priv = dev; q->drv_priv = dev;
q->buf_struct_size = sizeof(struct vivid_buffer); q->buf_struct_size = sizeof(struct vivid_buffer);
q->ops = &vivid_vbi_cap_qops; q->ops = &vivid_vbi_cap_qops;
...@@ -1157,7 +1163,9 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) ...@@ -1157,7 +1163,9 @@ static int vivid_create_instance(struct platform_device *pdev, int inst)
q = &dev->vb_vbi_out_q; q = &dev->vb_vbi_out_q;
q->type = dev->has_raw_vbi_out ? V4L2_BUF_TYPE_VBI_OUTPUT : q->type = dev->has_raw_vbi_out ? V4L2_BUF_TYPE_VBI_OUTPUT :
V4L2_BUF_TYPE_SLICED_VBI_OUTPUT; V4L2_BUF_TYPE_SLICED_VBI_OUTPUT;
q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF | VB2_WRITE; q->io_modes = VB2_MMAP | VB2_DMABUF | VB2_WRITE;
if (!allocator)
q->io_modes |= VB2_USERPTR;
q->drv_priv = dev; q->drv_priv = dev;
q->buf_struct_size = sizeof(struct vivid_buffer); q->buf_struct_size = sizeof(struct vivid_buffer);
q->ops = &vivid_vbi_out_qops; q->ops = &vivid_vbi_out_qops;
...@@ -1177,7 +1185,9 @@ static int vivid_create_instance(struct platform_device *pdev, int inst) ...@@ -1177,7 +1185,9 @@ static int vivid_create_instance(struct platform_device *pdev, int inst)
/* initialize sdr_cap queue */ /* initialize sdr_cap queue */
q = &dev->vb_sdr_cap_q; q = &dev->vb_sdr_cap_q;
q->type = V4L2_BUF_TYPE_SDR_CAPTURE; q->type = V4L2_BUF_TYPE_SDR_CAPTURE;
q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF | VB2_READ; q->io_modes = VB2_MMAP | VB2_DMABUF | VB2_READ;
if (!allocator)
q->io_modes |= VB2_USERPTR;
q->drv_priv = dev; q->drv_priv = dev;
q->buf_struct_size = sizeof(struct vivid_buffer); q->buf_struct_size = sizeof(struct vivid_buffer);
q->ops = &vivid_sdr_cap_qops; q->ops = &vivid_sdr_cap_qops;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment