[PATCHv10 23/26] v4l: vb2-dma-contig: align buffer size to PAGE_SIZE
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Thu Oct 11 14:31:39 PDT 2012
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 at 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);
--
Regards,
Laurent Pinchart
More information about the dri-devel
mailing list