 08bff03ed6
			
		
	
	
	08bff03ed6
	
	
	
		
			
			Add an ext_lock argument to the videobuf init functions. This allows drivers to pass the vdev->lock pointer (or any other externally held lock) to videobuf. For now all drivers just pass NULL. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
		
			
				
	
	
		
			46 lines
		
	
	
	
		
			1.3 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			1.3 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * helper functions for vmalloc capture buffers
 | |
|  *
 | |
|  * The functions expect the hardware being able to scatter gather
 | |
|  * (i.e. the buffers are not linear in physical memory, but fragmented
 | |
|  * into PAGE_SIZE chunks).  They also assume the driver does not need
 | |
|  * to touch the video data.
 | |
|  *
 | |
|  * (c) 2007 Mauro Carvalho Chehab, <mchehab@infradead.org>
 | |
|  *
 | |
|  * 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; either version 2
 | |
|  */
 | |
| #ifndef _VIDEOBUF_VMALLOC_H
 | |
| #define _VIDEOBUF_VMALLOC_H
 | |
| 
 | |
| #include <media/videobuf-core.h>
 | |
| 
 | |
| /* --------------------------------------------------------------------- */
 | |
| 
 | |
| struct videobuf_vmalloc_memory {
 | |
| 	u32                 magic;
 | |
| 
 | |
| 	void                *vaddr;
 | |
| 
 | |
| 	/* remap_vmalloc_range seems to need to run
 | |
| 	 * after mmap() on some cases */
 | |
| 	struct vm_area_struct *vma;
 | |
| };
 | |
| 
 | |
| void videobuf_queue_vmalloc_init(struct videobuf_queue *q,
 | |
| 			 const struct videobuf_queue_ops *ops,
 | |
| 			 struct device *dev,
 | |
| 			 spinlock_t *irqlock,
 | |
| 			 enum v4l2_buf_type type,
 | |
| 			 enum v4l2_field field,
 | |
| 			 unsigned int msize,
 | |
| 			 void *priv,
 | |
| 			 struct mutex *ext_lock);
 | |
| 
 | |
| void *videobuf_to_vmalloc(struct videobuf_buffer *buf);
 | |
| 
 | |
| void videobuf_vmalloc_free(struct videobuf_buffer *buf);
 | |
| 
 | |
| #endif
 |