blob: 5604818d137ef6cc699611b6dd4ebe61fa7b1b20 [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
Junghak Sungc1399902015-09-22 10:30:29 -030016#include <media/videobuf2-v4l2.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
Marek Szyprowski3f033962016-05-24 09:16:06 +020027int vb2_dma_contig_set_max_seg_size(struct device *dev, unsigned int size);
28void vb2_dma_contig_clear_max_seg_size(struct device *dev);
Pawel Osciak1a758d42010-10-11 10:59:36 -030029
30extern const struct vb2_mem_ops vb2_dma_contig_memops;
31
32#endif