mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 14:13:01 -04:00
[media] v4l: videobuf2: add generic memory handling routines
Add generic memory handling routines for userspace pointer handling, contiguous memory verification and mapping. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Pawel Osciak <p.osciak@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> CC: Pawel Osciak <pawel@osciak.com> Reviewed-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
e23ccc0ad9
commit
004cc3781c
4 changed files with 281 additions and 0 deletions
45
include/media/videobuf2-memops.h
Normal file
45
include/media/videobuf2-memops.h
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* videobuf2-memops.h - generic memory handling routines for videobuf2
|
||||
*
|
||||
* Copyright (C) 2010 Samsung Electronics
|
||||
*
|
||||
* Author: Pawel Osciak <p.osciak@samsung.com>
|
||||
* Marek Szyprowski <m.szyprowski@samsung.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef _MEDIA_VIDEOBUF2_MEMOPS_H
|
||||
#define _MEDIA_VIDEOBUF2_MEMOPS_H
|
||||
|
||||
#include <media/videobuf2-core.h>
|
||||
|
||||
/**
|
||||
* vb2_vmarea_handler - common vma refcount tracking handler
|
||||
* @refcount: pointer to refcount entry in the buffer
|
||||
* @put: callback to function that decreases buffer refcount
|
||||
* @arg: argument for @put callback
|
||||
*/
|
||||
struct vb2_vmarea_handler {
|
||||
atomic_t *refcount;
|
||||
void (*put)(void *arg);
|
||||
void *arg;
|
||||
};
|
||||
|
||||
extern const struct vm_operations_struct vb2_common_vm_ops;
|
||||
|
||||
int vb2_get_contig_userptr(unsigned long vaddr, unsigned long size,
|
||||
struct vm_area_struct **res_vma, dma_addr_t *res_pa);
|
||||
|
||||
int vb2_mmap_pfn_range(struct vm_area_struct *vma, unsigned long paddr,
|
||||
unsigned long size,
|
||||
const struct vm_operations_struct *vm_ops,
|
||||
void *priv);
|
||||
|
||||
struct vm_area_struct *vb2_get_vma(struct vm_area_struct *vma);
|
||||
void vb2_put_vma(struct vm_area_struct *vma);
|
||||
|
||||
|
||||
#endif
|
||||
Loading…
Reference in a new issue