From 1a758d4e847f7743ac1b5aa79fde3ba2d8b5132b Mon Sep 17 00:00:00 2001
From: Pawel Osciak
Date: Mon, 11 Oct 2010 10:59:36 -0300
Subject: [media] v4l: videobuf2: add DMA coherent allocator
Add an implementation of DMA coherent memory allocator and handling
routines for videobuf2, implemented on top of dma_alloc_coherent() call.
Signed-off-by: Pawel Osciak
Signed-off-by: Kyungmin Park
Signed-off-by: Marek Szyprowski
CC: Pawel Osciak
Reviewed-by: Hans Verkuil
Signed-off-by: Mauro Carvalho Chehab
---
include/media/videobuf2-dma-contig.h | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
create mode 100644 include/media/videobuf2-dma-contig.h
(limited to 'include/media/videobuf2-dma-contig.h')
diff --git a/include/media/videobuf2-dma-contig.h b/include/media/videobuf2-dma-contig.h
new file mode 100644
index 000000000000..fb7ca849d993
--- /dev/null
+++ b/include/media/videobuf2-dma-contig.h
@@ -0,0 +1,29 @@
+/*
+ * videobuf2-dma-coherent.h - DMA coherent memory allocator for videobuf2
+ *
+ * Copyright (C) 2010 Samsung Electronics
+ *
+ * Author: Pawel Osciak
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation.
+ */
+
+#ifndef _MEDIA_VIDEOBUF2_DMA_COHERENT_H
+#define _MEDIA_VIDEOBUF2_DMA_COHERENT_H
+
+#include
+
+static inline unsigned long vb2_dma_contig_plane_paddr(
+ struct vb2_buffer *vb, unsigned int plane_no)
+{
+ return (unsigned long)vb2_plane_cookie(vb, plane_no);
+}
+
+void *vb2_dma_contig_init_ctx(struct device *dev);
+void vb2_dma_contig_cleanup_ctx(void *alloc_ctx);
+
+extern const struct vb2_mem_ops vb2_dma_contig_memops;
+
+#endif
--
cgit v1.2.3
From 950720840f392075b19d902e5ca7806a17a562cb Mon Sep 17 00:00:00 2001
From: Pawel Osciak
Date: Sun, 13 Mar 2011 15:23:32 -0300
Subject: [media] Update Pawel Osciak's e-mail address
Signed-off-by: Pawel Osciak
Signed-off-by: Mauro Carvalho Chehab
---
drivers/media/video/mem2mem_testdev.c | 4 ++--
drivers/media/video/v4l2-mem2mem.c | 4 ++--
drivers/media/video/videobuf2-core.c | 4 ++--
drivers/media/video/videobuf2-dma-contig.c | 4 ++--
drivers/media/video/videobuf2-memops.c | 4 ++--
drivers/media/video/videobuf2-vmalloc.c | 4 ++--
include/media/v4l2-mem2mem.h | 2 +-
include/media/videobuf2-core.h | 2 +-
include/media/videobuf2-dma-contig.h | 2 +-
include/media/videobuf2-memops.h | 2 +-
include/media/videobuf2-vmalloc.h | 2 +-
11 files changed, 17 insertions(+), 17 deletions(-)
(limited to 'include/media/videobuf2-dma-contig.h')
diff --git a/drivers/media/video/mem2mem_testdev.c b/drivers/media/video/mem2mem_testdev.c
index e1f96ea45bcb..b03d74e09a3c 100644
--- a/drivers/media/video/mem2mem_testdev.c
+++ b/drivers/media/video/mem2mem_testdev.c
@@ -8,7 +8,7 @@
* operation (via the mem2mem framework).
*
* Copyright (c) 2009-2010 Samsung Electronics Co., Ltd.
- * Pawel Osciak,
+ * Pawel Osciak,
* Marek Szyprowski,
*
* This program is free software; you can redistribute it and/or modify
@@ -33,7 +33,7 @@
#define MEM2MEM_TEST_MODULE_NAME "mem2mem-testdev"
MODULE_DESCRIPTION("Virtual device for mem2mem framework testing");
-MODULE_AUTHOR("Pawel Osciak, ");
+MODULE_AUTHOR("Pawel Osciak, ");
MODULE_LICENSE("GPL");
diff --git a/drivers/media/video/v4l2-mem2mem.c b/drivers/media/video/v4l2-mem2mem.c
index a78e5c9be1a2..3b15bf5892a8 100644
--- a/drivers/media/video/v4l2-mem2mem.c
+++ b/drivers/media/video/v4l2-mem2mem.c
@@ -5,7 +5,7 @@
* source and destination.
*
* Copyright (c) 2009-2010 Samsung Electronics Co., Ltd.
- * Pawel Osciak,
+ * Pawel Osciak,
* Marek Szyprowski,
*
* This program is free software; you can redistribute it and/or modify
@@ -21,7 +21,7 @@
#include
MODULE_DESCRIPTION("Mem to mem device framework for videobuf");
-MODULE_AUTHOR("Pawel Osciak, ");
+MODULE_AUTHOR("Pawel Osciak, ");
MODULE_LICENSE("GPL");
static bool debug;
diff --git a/drivers/media/video/videobuf2-core.c b/drivers/media/video/videobuf2-core.c
index 3e9b67bd55b9..ce032255f3ee 100644
--- a/drivers/media/video/videobuf2-core.c
+++ b/drivers/media/video/videobuf2-core.c
@@ -3,7 +3,7 @@
*
* Copyright (C) 2010 Samsung Electronics
*
- * Author: Pawel Osciak
+ * Author: Pawel Osciak
* Marek Szyprowski
*
* This program is free software; you can redistribute it and/or modify
@@ -1810,5 +1810,5 @@ size_t vb2_write(struct vb2_queue *q, char __user *data, size_t count,
EXPORT_SYMBOL_GPL(vb2_write);
MODULE_DESCRIPTION("Driver helper framework for Video for Linux 2");
-MODULE_AUTHOR("Pawel Osciak, Marek Szyprowski");
+MODULE_AUTHOR("Pawel Osciak , Marek Szyprowski");
MODULE_LICENSE("GPL");
diff --git a/drivers/media/video/videobuf2-dma-contig.c b/drivers/media/video/videobuf2-dma-contig.c
index bb6a5602cf94..90495b7b4ddf 100644
--- a/drivers/media/video/videobuf2-dma-contig.c
+++ b/drivers/media/video/videobuf2-dma-contig.c
@@ -3,7 +3,7 @@
*
* Copyright (C) 2010 Samsung Electronics
*
- * Author: Pawel Osciak
+ * Author: Pawel Osciak
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -181,5 +181,5 @@ void vb2_dma_contig_cleanup_ctx(void *alloc_ctx)
EXPORT_SYMBOL_GPL(vb2_dma_contig_cleanup_ctx);
MODULE_DESCRIPTION("DMA-contig memory handling routines for videobuf2");
-MODULE_AUTHOR("Pawel Osciak");
+MODULE_AUTHOR("Pawel Osciak ");
MODULE_LICENSE("GPL");
diff --git a/drivers/media/video/videobuf2-memops.c b/drivers/media/video/videobuf2-memops.c
index a3eb6567dea5..5370a3a7ee25 100644
--- a/drivers/media/video/videobuf2-memops.c
+++ b/drivers/media/video/videobuf2-memops.c
@@ -3,7 +3,7 @@
*
* Copyright (C) 2010 Samsung Electronics
*
- * Author: Pawel Osciak
+ * Author: Pawel Osciak
* Marek Szyprowski
*
* This program is free software; you can redistribute it and/or modify
@@ -231,5 +231,5 @@ const struct vm_operations_struct vb2_common_vm_ops = {
EXPORT_SYMBOL_GPL(vb2_common_vm_ops);
MODULE_DESCRIPTION("common memory handling routines for videobuf2");
-MODULE_AUTHOR("Pawel Osciak");
+MODULE_AUTHOR("Pawel Osciak ");
MODULE_LICENSE("GPL");
diff --git a/drivers/media/video/videobuf2-vmalloc.c b/drivers/media/video/videobuf2-vmalloc.c
index b5e6936fb628..a3a884234059 100644
--- a/drivers/media/video/videobuf2-vmalloc.c
+++ b/drivers/media/video/videobuf2-vmalloc.c
@@ -3,7 +3,7 @@
*
* Copyright (C) 2010 Samsung Electronics
*
- * Author: Pawel Osciak
+ * Author: Pawel Osciak
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -128,5 +128,5 @@ const struct vb2_mem_ops vb2_vmalloc_memops = {
EXPORT_SYMBOL_GPL(vb2_vmalloc_memops);
MODULE_DESCRIPTION("vmalloc memory handling routines for videobuf2");
-MODULE_AUTHOR("Pawel Osciak");
+MODULE_AUTHOR("Pawel Osciak ");
MODULE_LICENSE("GPL");
diff --git a/include/media/v4l2-mem2mem.h b/include/media/v4l2-mem2mem.h
index bf5eaaf3bd97..16ac4733e80d 100644
--- a/include/media/v4l2-mem2mem.h
+++ b/include/media/v4l2-mem2mem.h
@@ -5,7 +5,7 @@
* and destination.
*
* Copyright (c) 2009 Samsung Electronics Co., Ltd.
- * Pawel Osciak,
+ * Pawel Osciak,
* Marek Szyprowski,
*
* This program is free software; you can redistribute it and/or modify
diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h
index 597efe61a345..f87472acbc51 100644
--- a/include/media/videobuf2-core.h
+++ b/include/media/videobuf2-core.h
@@ -3,7 +3,7 @@
*
* Copyright (C) 2010 Samsung Electronics
*
- * Author: Pawel Osciak
+ * Author: Pawel Osciak
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/include/media/videobuf2-dma-contig.h b/include/media/videobuf2-dma-contig.h
index fb7ca849d993..1d6188d00efd 100644
--- a/include/media/videobuf2-dma-contig.h
+++ b/include/media/videobuf2-dma-contig.h
@@ -3,7 +3,7 @@
*
* Copyright (C) 2010 Samsung Electronics
*
- * Author: Pawel Osciak
+ * Author: Pawel Osciak
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/include/media/videobuf2-memops.h b/include/media/videobuf2-memops.h
index fee17033a728..84e1f6c031c5 100644
--- a/include/media/videobuf2-memops.h
+++ b/include/media/videobuf2-memops.h
@@ -3,7 +3,7 @@
*
* Copyright (C) 2010 Samsung Electronics
*
- * Author: Pawel Osciak
+ * Author: Pawel Osciak
* Marek Szyprowski
*
* This program is free software; you can redistribute it and/or modify
diff --git a/include/media/videobuf2-vmalloc.h b/include/media/videobuf2-vmalloc.h
index a76b8afaa31e..93a76b43038d 100644
--- a/include/media/videobuf2-vmalloc.h
+++ b/include/media/videobuf2-vmalloc.h
@@ -3,7 +3,7 @@
*
* Copyright (C) 2010 Samsung Electronics
*
- * Author: Pawel Osciak
+ * Author: Pawel Osciak
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
--
cgit v1.2.3
From 472af2b05bdefcaee7e754e22cbf131110017ad6 Mon Sep 17 00:00:00 2001
From: Pawel Osciak
Date: Mon, 14 Mar 2011 10:38:24 -0300
Subject: [media] videobuf2-dma-contig: make cookie() return a pointer to
dma_addr_t
dma_addr_t may not fit into void* on some architectures. To be safe, make
vb2_dma_contig_cookie() return a pointer to dma_addr_t and dereference it
in vb2_dma_contig_plane_paddr() back to dma_addr_t.
Signed-off-by: Pawel Osciak
Reported-by: Hans Verkuil
Signed-off-by: Guennadi Liakhovetski
Signed-off-by: Mauro Carvalho Chehab
---
drivers/media/video/videobuf2-dma-contig.c | 2 +-
include/media/videobuf2-dma-contig.h | 9 ++++++---
2 files changed, 7 insertions(+), 4 deletions(-)
(limited to 'include/media/videobuf2-dma-contig.h')
diff --git a/drivers/media/video/videobuf2-dma-contig.c b/drivers/media/video/videobuf2-dma-contig.c
index 90495b7b4ddf..58205d596138 100644
--- a/drivers/media/video/videobuf2-dma-contig.c
+++ b/drivers/media/video/videobuf2-dma-contig.c
@@ -78,7 +78,7 @@ static void *vb2_dma_contig_cookie(void *buf_priv)
{
struct vb2_dc_buf *buf = buf_priv;
- return (void *)buf->paddr;
+ return &buf->paddr;
}
static void *vb2_dma_contig_vaddr(void *buf_priv)
diff --git a/include/media/videobuf2-dma-contig.h b/include/media/videobuf2-dma-contig.h
index 1d6188d00efd..7e6c68b23773 100644
--- a/include/media/videobuf2-dma-contig.h
+++ b/include/media/videobuf2-dma-contig.h
@@ -14,11 +14,14 @@
#define _MEDIA_VIDEOBUF2_DMA_COHERENT_H
#include
+#include
-static inline unsigned long vb2_dma_contig_plane_paddr(
- struct vb2_buffer *vb, unsigned int plane_no)
+static inline dma_addr_t
+vb2_dma_contig_plane_paddr(struct vb2_buffer *vb, unsigned int plane_no)
{
- return (unsigned long)vb2_plane_cookie(vb, plane_no);
+ dma_addr_t *paddr = vb2_plane_cookie(vb, plane_no);
+
+ return *paddr;
}
void *vb2_dma_contig_init_ctx(struct device *dev);
--
cgit v1.2.3