blob: 19ae1e3505678bb32aa810823d619b06b88993d4 [file] [log] [blame]
Pawel Osciak1a758d42010-10-11 10:59:36 -03001/*
2 * videobuf2-dma-coherent.h - DMA coherent memory allocator for videobuf2
3 *
4 * Copyright (C) 2010 Samsung Electronics
5 *
Pawel Osciak95072082011-03-13 15:23:32 -03006 * Author: Pawel Osciak <pawel@osciak.com>
Pawel Osciak1a758d42010-10-11 10:59:36 -03007 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation.
11 */
12
13#ifndef _MEDIA_VIDEOBUF2_DMA_COHERENT_H
14#define _MEDIA_VIDEOBUF2_DMA_COHERENT_H
15
16#include <media/videobuf2-core.h>
Pawel Osciak472af2b2011-03-14 10:38:24 -030017#include <linux/dma-mapping.h>
Pawel Osciak1a758d42010-10-11 10:59:36 -030018
Pawel Osciak472af2b2011-03-14 10:38:24 -030019static inline dma_addr_t
Marek Szyprowskiba7fcb02011-08-29 03:20:56 -030020vb2_dma_contig_plane_dma_addr(struct vb2_buffer *vb, unsigned int plane_no)
Pawel Osciak1a758d42010-10-11 10:59:36 -030021{
Marek Szyprowskiba7fcb02011-08-29 03:20:56 -030022 dma_addr_t *addr = vb2_plane_cookie(vb, plane_no);
Pawel Osciak472af2b2011-03-14 10:38:24 -030023
Marek Szyprowskiba7fcb02011-08-29 03:20:56 -030024 return *addr;
Pawel Osciak1a758d42010-10-11 10:59:36 -030025}
26
27void *vb2_dma_contig_init_ctx(struct device *dev);
28void vb2_dma_contig_cleanup_ctx(void *alloc_ctx);
29
30extern const struct vb2_mem_ops vb2_dma_contig_memops;
31
32#endif