summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2012-11-26 15:41:09 +0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-11-26 15:41:09 +0400
commit93049b9368a2e257ace66252ab2cc066f3399cad (patch)
tree9094bff69fc035fa65e3918843a36b98b7759028
parent6fa9dd069e62864d990ff9c7726f16b34018e718 (diff)
downloadlinux-93049b9368a2e257ace66252ab2cc066f3399cad.tar.xz
videobuf2-dma-contig: Only support if HAVE_GENERIC_DMA_COHERENT
As reported by Stephen: > After merging the v4l-dvb tree, today's linux-next build (x86_64 > allmodconfig) failed like this: > > ERROR: "dma_common_get_sgtable" [drivers/media/v4l2-core/videobuf2-dma-contig.ko] undefined! > > Caused by commit 9ef2cbeb8192 ("[media] v4l: vb2-dma-contig: add support > for DMABUF exporting"). dma_common_get_sgtable() is called from the > inline dma_get_sgtable_attrs() and dma_get_sgtable_attrs() is "called > from" dma_get_sgtable(). dma_common_get_sgtable() is only defined if > ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY is set which depends on > CONFIG_HAVE_GENERIC_DMA_COHERENT being set which it isn't for this build. The simplest fix is to just not support DMABUF with vb2-contig, on archs where this symbol doesn't exist. Some latter patch can rewrite it to support this outside -arm. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/v4l2-core/videobuf2-dma-contig.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/media/v4l2-core/videobuf2-dma-contig.c b/drivers/media/v4l2-core/videobuf2-dma-contig.c
index 10beaee7f0ae..572945048f79 100644
--- a/drivers/media/v4l2-core/videobuf2-dma-contig.c
+++ b/drivers/media/v4l2-core/videobuf2-dma-contig.c
@@ -226,6 +226,8 @@ static int vb2_dc_mmap(void *buf_priv, struct vm_area_struct *vma)
/* DMABUF ops for exporters */
/*********************************************/
+#ifdef HAVE_GENERIC_DMA_COHERENT
+
struct vb2_dc_attachment {
struct sg_table sgt;
enum dma_data_direction dir;
@@ -416,6 +418,8 @@ static struct dma_buf *vb2_dc_get_dmabuf(void *buf_priv)
return dbuf;
}
+#endif
+
/*********************************************/
/* callbacks for USERPTR buffers */
/*********************************************/
@@ -735,7 +739,9 @@ static void *vb2_dc_attach_dmabuf(void *alloc_ctx, struct dma_buf *dbuf,
const struct vb2_mem_ops vb2_dma_contig_memops = {
.alloc = vb2_dc_alloc,
.put = vb2_dc_put,
+#ifdef CONFIG_HAVE_GENERIC_DMA_COHERENT
.get_dmabuf = vb2_dc_get_dmabuf,
+#endif
.cookie = vb2_dc_cookie,
.vaddr = vb2_dc_vaddr,
.mmap = vb2_dc_mmap,