Hi Tomasz,
On Wednesday 10 October 2012 16:46:42 Tomasz Stanislawski wrote:
Most operations on DMA and DMABUF framework need page aligned buffers.
The comment is a bit misleading, the buffer is already page-aligned (unless I'm mistaken dma_alloc_coherent() returns a page-aligned buffer) but its size isn't a multiple of the page size.
Do we really need a page size multiple ? Isn't it enough to make the size a multiple of the cache line size ?
This fix guarantees this requirement for vb2-dma-contig buffers.
Signed-off-by: Tomasz Stanislawski t.stanislaws@samsung.com
drivers/media/v4l2-core/videobuf2-dma-contig.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/media/v4l2-core/videobuf2-dma-contig.c b/drivers/media/v4l2-core/videobuf2-dma-contig.c index 571a919..002ee50 100644 --- a/drivers/media/v4l2-core/videobuf2-dma-contig.c +++ b/drivers/media/v4l2-core/videobuf2-dma-contig.c @@ -162,6 +162,9 @@ static void *vb2_dc_alloc(void *alloc_ctx, unsigned long size) if (!buf) return ERR_PTR(-ENOMEM);
- /* align image size to PAGE_SIZE */
- size = PAGE_ALIGN(size);
- buf->vaddr = dma_alloc_coherent(dev, size, &buf->dma_addr, GFP_KERNEL); if (!buf->vaddr) { dev_err(dev, "dma_alloc_coherent of size %ld failed\n", size);