blob: 8197f87d6c617ccfec71b4113b01e11064e3b529 [file] [log] [blame]
Pawel Osciak1a758d42010-10-11 10:59:36 -03001/*
Albert Wang86b09052012-06-07 05:42:24 -03002 * videobuf2-dma-contig.h - DMA contig memory allocator for videobuf2
Pawel Osciak1a758d42010-10-11 10:59:36 -03003 *
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
Albert Wang86b09052012-06-07 05:42:24 -030013#ifndef _MEDIA_VIDEOBUF2_DMA_CONTIG_H
14#define _MEDIA_VIDEOBUF2_DMA_CONTIG_H
Pawel Osciak1a758d42010-10-11 10:59:36 -030015
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