Commit 7a02264c authored by Pawel Osciak's avatar Pawel Osciak Committed by Mauro Carvalho Chehab

V4L/DVB: v4l: videobuf: code cleanup

Make videobuf pass checkpatch; minor code cleanups.
Signed-off-by: default avatarPawel Osciak <p.osciak@samsung.com>
Reviewed-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 85e09219
This diff is collapsed.
This diff is collapsed.
...@@ -30,8 +30,12 @@ ...@@ -30,8 +30,12 @@
#define MAGIC_DMABUF 0x17760309 #define MAGIC_DMABUF 0x17760309
#define MAGIC_VMAL_MEM 0x18221223 #define MAGIC_VMAL_MEM 0x18221223
#define MAGIC_CHECK(is,should) if (unlikely((is) != (should))) \ #define MAGIC_CHECK(is, should) \
{ printk(KERN_ERR "magic mismatch: %x (expected %x)\n",is,should); BUG(); } if (unlikely((is) != (should))) { \
printk(KERN_ERR "magic mismatch: %x (expected %x)\n", \
is, should); \
BUG(); \
}
static int debug; static int debug;
module_param(debug, int, 0644); module_param(debug, int, 0644);
...@@ -40,19 +44,19 @@ MODULE_DESCRIPTION("helper module to manage video4linux vmalloc buffers"); ...@@ -40,19 +44,19 @@ MODULE_DESCRIPTION("helper module to manage video4linux vmalloc buffers");
MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@infradead.org>"); MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@infradead.org>");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
#define dprintk(level, fmt, arg...) if (debug >= level) \ #define dprintk(level, fmt, arg...) \
if (debug >= level) \
printk(KERN_DEBUG "vbuf-vmalloc: " fmt , ## arg) printk(KERN_DEBUG "vbuf-vmalloc: " fmt , ## arg)
/***************************************************************************/ /***************************************************************************/
static void static void videobuf_vm_open(struct vm_area_struct *vma)
videobuf_vm_open(struct vm_area_struct *vma)
{ {
struct videobuf_mapping *map = vma->vm_private_data; struct videobuf_mapping *map = vma->vm_private_data;
dprintk(2,"vm_open %p [count=%u,vma=%08lx-%08lx]\n",map, dprintk(2, "vm_open %p [count=%u,vma=%08lx-%08lx]\n", map,
map->count,vma->vm_start,vma->vm_end); map->count, vma->vm_start, vma->vm_end);
map->count++; map->count++;
} }
...@@ -63,7 +67,7 @@ static void videobuf_vm_close(struct vm_area_struct *vma) ...@@ -63,7 +67,7 @@ static void videobuf_vm_close(struct vm_area_struct *vma)
struct videobuf_queue *q = map->q; struct videobuf_queue *q = map->q;
int i; int i;
dprintk(2,"vm_close %p [count=%u,vma=%08lx-%08lx]\n", map, dprintk(2, "vm_close %p [count=%u,vma=%08lx-%08lx]\n", map,
map->count, vma->vm_start, vma->vm_end); map->count, vma->vm_start, vma->vm_end);
map->count--; map->count--;
...@@ -116,8 +120,7 @@ static void videobuf_vm_close(struct vm_area_struct *vma) ...@@ -116,8 +120,7 @@ static void videobuf_vm_close(struct vm_area_struct *vma)
return; return;
} }
static const struct vm_operations_struct videobuf_vm_ops = static const struct vm_operations_struct videobuf_vm_ops = {
{
.open = videobuf_vm_open, .open = videobuf_vm_open,
.close = videobuf_vm_close, .close = videobuf_vm_close,
}; };
...@@ -137,21 +140,21 @@ static void *__videobuf_alloc(size_t size) ...@@ -137,21 +140,21 @@ static void *__videobuf_alloc(size_t size)
struct videobuf_vmalloc_memory *mem; struct videobuf_vmalloc_memory *mem;
struct videobuf_buffer *vb; struct videobuf_buffer *vb;
vb = kzalloc(size+sizeof(*mem),GFP_KERNEL); vb = kzalloc(size + sizeof(*mem), GFP_KERNEL);
if (!vb) if (!vb)
return vb; return vb;
mem = vb->priv = ((char *)vb)+size; mem = vb->priv = ((char *)vb) + size;
mem->magic=MAGIC_VMAL_MEM; mem->magic = MAGIC_VMAL_MEM;
dprintk(1,"%s: allocated at %p(%ld+%ld) & %p(%ld)\n", dprintk(1, "%s: allocated at %p(%ld+%ld) & %p(%ld)\n",
__func__,vb,(long)sizeof(*vb),(long)size-sizeof(*vb), __func__, vb, (long)sizeof(*vb), (long)size - sizeof(*vb),
mem,(long)sizeof(*mem)); mem, (long)sizeof(*mem));
return vb; return vb;
} }
static int __videobuf_iolock (struct videobuf_queue* q, static int __videobuf_iolock(struct videobuf_queue *q,
struct videobuf_buffer *vb, struct videobuf_buffer *vb,
struct v4l2_framebuffer *fbuf) struct v4l2_framebuffer *fbuf)
{ {
...@@ -177,15 +180,13 @@ static int __videobuf_iolock (struct videobuf_queue* q, ...@@ -177,15 +180,13 @@ static int __videobuf_iolock (struct videobuf_queue* q,
dprintk(1, "%s memory method USERPTR\n", __func__); dprintk(1, "%s memory method USERPTR\n", __func__);
#if 1
if (vb->baddr) { if (vb->baddr) {
printk(KERN_ERR "USERPTR is currently not supported\n"); printk(KERN_ERR "USERPTR is currently not supported\n");
return -EINVAL; return -EINVAL;
} }
#endif
/* The only USERPTR currently supported is the one needed for /* The only USERPTR currently supported is the one needed for
read() method. * read() method.
*/ */
mem->vmalloc = vmalloc_user(pages); mem->vmalloc = vmalloc_user(pages);
...@@ -210,7 +211,7 @@ static int __videobuf_iolock (struct videobuf_queue* q, ...@@ -210,7 +211,7 @@ static int __videobuf_iolock (struct videobuf_queue* q,
/* Try to remap memory */ /* Try to remap memory */
rc = remap_vmalloc_range(mem->vma, (void *)vb->baddr, 0); rc = remap_vmalloc_range(mem->vma, (void *)vb->baddr, 0);
if (rc < 0) { if (rc < 0) {
printk(KERN_ERR "mmap: remap failed with error %d. ", rc); printk(KERN_ERR "mmap: remap failed with error %d", rc);
return -ENOMEM; return -ENOMEM;
} }
#endif #endif
...@@ -273,7 +274,7 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q, ...@@ -273,7 +274,7 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q,
break; break;
} }
if (VIDEO_MAX_FRAME == first) { if (VIDEO_MAX_FRAME == first) {
dprintk(1,"mmap app bug: offset invalid [offset=0x%lx]\n", dprintk(1, "mmap app bug: offset invalid [offset=0x%lx]\n",
(vma->vm_pgoff << PAGE_SHIFT)); (vma->vm_pgoff << PAGE_SHIFT));
return -EINVAL; return -EINVAL;
} }
...@@ -300,8 +301,7 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q, ...@@ -300,8 +301,7 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q,
printk(KERN_ERR "vmalloc (%d pages) failed\n", pages); printk(KERN_ERR "vmalloc (%d pages) failed\n", pages);
goto error; goto error;
} }
dprintk(1, "vmalloc is at addr %p (%d pages)\n", dprintk(1, "vmalloc is at addr %p (%d pages)\n", mem->vmalloc, pages);
mem->vmalloc, pages);
/* Try to remap memory */ /* Try to remap memory */
retval = remap_vmalloc_range(vma, mem->vmalloc, 0); retval = remap_vmalloc_range(vma, mem->vmalloc, 0);
...@@ -315,7 +315,7 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q, ...@@ -315,7 +315,7 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q,
vma->vm_flags |= VM_DONTEXPAND | VM_RESERVED; vma->vm_flags |= VM_DONTEXPAND | VM_RESERVED;
vma->vm_private_data = map; vma->vm_private_data = map;
dprintk(1,"mmap %p: q=%p %08lx-%08lx (%lx) pgoff %08lx buf %d\n", dprintk(1, "mmap %p: q=%p %08lx-%08lx (%lx) pgoff %08lx buf %d\n",
map, q, vma->vm_start, vma->vm_end, map, q, vma->vm_start, vma->vm_end,
(long int) q->bufs[first]->bsize, (long int) q->bufs[first]->bsize,
vma->vm_pgoff, first); vma->vm_pgoff, first);
...@@ -330,15 +330,15 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q, ...@@ -330,15 +330,15 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q,
return -ENOMEM; return -ENOMEM;
} }
static int __videobuf_copy_to_user ( struct videobuf_queue *q, static int __videobuf_copy_to_user(struct videobuf_queue *q,
char __user *data, size_t count, char __user *data, size_t count,
int nonblocking ) int nonblocking)
{ {
struct videobuf_vmalloc_memory *mem=q->read_buf->priv; struct videobuf_vmalloc_memory *mem = q->read_buf->priv;
BUG_ON (!mem); BUG_ON(!mem);
MAGIC_CHECK(mem->magic,MAGIC_VMAL_MEM); MAGIC_CHECK(mem->magic, MAGIC_VMAL_MEM);
BUG_ON (!mem->vmalloc); BUG_ON(!mem->vmalloc);
/* copy to userspace */ /* copy to userspace */
if (count > q->read_buf->size - q->read_off) if (count > q->read_buf->size - q->read_off)
...@@ -350,30 +350,30 @@ static int __videobuf_copy_to_user ( struct videobuf_queue *q, ...@@ -350,30 +350,30 @@ static int __videobuf_copy_to_user ( struct videobuf_queue *q,
return count; return count;
} }
static int __videobuf_copy_stream ( struct videobuf_queue *q, static int __videobuf_copy_stream(struct videobuf_queue *q,
char __user *data, size_t count, size_t pos, char __user *data, size_t count, size_t pos,
int vbihack, int nonblocking ) int vbihack, int nonblocking)
{ {
unsigned int *fc; unsigned int *fc;
struct videobuf_vmalloc_memory *mem=q->read_buf->priv; struct videobuf_vmalloc_memory *mem = q->read_buf->priv;
BUG_ON (!mem); BUG_ON(!mem);
MAGIC_CHECK(mem->magic,MAGIC_VMAL_MEM); MAGIC_CHECK(mem->magic, MAGIC_VMAL_MEM);
if (vbihack) { if (vbihack) {
/* dirty, undocumented hack -- pass the frame counter /* dirty, undocumented hack -- pass the frame counter
* within the last four bytes of each vbi data block. * within the last four bytes of each vbi data block.
* We need that one to maintain backward compatibility * We need that one to maintain backward compatibility
* to all vbi decoding software out there ... */ * to all vbi decoding software out there ... */
fc = (unsigned int*)mem->vmalloc; fc = (unsigned int *)mem->vmalloc;
fc += (q->read_buf->size>>2) -1; fc += (q->read_buf->size >> 2) - 1;
*fc = q->read_buf->field_count >> 1; *fc = q->read_buf->field_count >> 1;
dprintk(1,"vbihack: %d\n",*fc); dprintk(1, "vbihack: %d\n", *fc);
} }
/* copy stuff using the common method */ /* copy stuff using the common method */
count = __videobuf_copy_to_user (q,data,count,nonblocking); count = __videobuf_copy_to_user(q, data, count, nonblocking);
if ( (count==-EFAULT) && (0 == pos) ) if ((count == -EFAULT) && (0 == pos))
return -EFAULT; return -EFAULT;
return count; return count;
...@@ -392,7 +392,7 @@ static struct videobuf_qtype_ops qops = { ...@@ -392,7 +392,7 @@ static struct videobuf_qtype_ops qops = {
.vmalloc = videobuf_to_vmalloc, .vmalloc = videobuf_to_vmalloc,
}; };
void videobuf_queue_vmalloc_init(struct videobuf_queue* q, void videobuf_queue_vmalloc_init(struct videobuf_queue *q,
const struct videobuf_queue_ops *ops, const struct videobuf_queue_ops *ops,
struct device *dev, struct device *dev,
spinlock_t *irqlock, spinlock_t *irqlock,
...@@ -404,20 +404,19 @@ void videobuf_queue_vmalloc_init(struct videobuf_queue* q, ...@@ -404,20 +404,19 @@ void videobuf_queue_vmalloc_init(struct videobuf_queue* q,
videobuf_queue_core_init(q, ops, dev, irqlock, type, field, msize, videobuf_queue_core_init(q, ops, dev, irqlock, type, field, msize,
priv, &qops); priv, &qops);
} }
EXPORT_SYMBOL_GPL(videobuf_queue_vmalloc_init); EXPORT_SYMBOL_GPL(videobuf_queue_vmalloc_init);
void *videobuf_to_vmalloc (struct videobuf_buffer *buf) void *videobuf_to_vmalloc(struct videobuf_buffer *buf)
{ {
struct videobuf_vmalloc_memory *mem=buf->priv; struct videobuf_vmalloc_memory *mem = buf->priv;
BUG_ON (!mem); BUG_ON(!mem);
MAGIC_CHECK(mem->magic,MAGIC_VMAL_MEM); MAGIC_CHECK(mem->magic, MAGIC_VMAL_MEM);
return mem->vmalloc; return mem->vmalloc;
} }
EXPORT_SYMBOL_GPL(videobuf_to_vmalloc); EXPORT_SYMBOL_GPL(videobuf_to_vmalloc);
void videobuf_vmalloc_free (struct videobuf_buffer *buf) void videobuf_vmalloc_free(struct videobuf_buffer *buf)
{ {
struct videobuf_vmalloc_memory *mem = buf->priv; struct videobuf_vmalloc_memory *mem = buf->priv;
...@@ -442,8 +441,3 @@ void videobuf_vmalloc_free (struct videobuf_buffer *buf) ...@@ -442,8 +441,3 @@ void videobuf_vmalloc_free (struct videobuf_buffer *buf)
} }
EXPORT_SYMBOL_GPL(videobuf_vmalloc_free); EXPORT_SYMBOL_GPL(videobuf_vmalloc_free);
/*
* Local variables:
* c-basic-offset: 8
* End:
*/
...@@ -129,14 +129,14 @@ struct videobuf_qtype_ops { ...@@ -129,14 +129,14 @@ struct videobuf_qtype_ops {
void *(*alloc) (size_t size); void *(*alloc) (size_t size);
void *(*vmalloc) (struct videobuf_buffer *buf); void *(*vmalloc) (struct videobuf_buffer *buf);
int (*iolock) (struct videobuf_queue* q, int (*iolock) (struct videobuf_queue *q,
struct videobuf_buffer *vb, struct videobuf_buffer *vb,
struct v4l2_framebuffer *fbuf); struct v4l2_framebuffer *fbuf);
int (*mmap) (struct videobuf_queue *q, int (*mmap) (struct videobuf_queue *q,
unsigned int *count, unsigned int *count,
unsigned int *size, unsigned int *size,
enum v4l2_memory memory); enum v4l2_memory memory);
int (*sync) (struct videobuf_queue* q, int (*sync) (struct videobuf_queue *q,
struct videobuf_buffer *buf); struct videobuf_buffer *buf);
int (*video_copy_to_user)(struct videobuf_queue *q, int (*video_copy_to_user)(struct videobuf_queue *q,
char __user *data, char __user *data,
...@@ -185,13 +185,13 @@ struct videobuf_queue { ...@@ -185,13 +185,13 @@ struct videobuf_queue {
}; };
int videobuf_waiton(struct videobuf_buffer *vb, int non_blocking, int intr); int videobuf_waiton(struct videobuf_buffer *vb, int non_blocking, int intr);
int videobuf_iolock(struct videobuf_queue* q, struct videobuf_buffer *vb, int videobuf_iolock(struct videobuf_queue *q, struct videobuf_buffer *vb,
struct v4l2_framebuffer *fbuf); struct v4l2_framebuffer *fbuf);
void *videobuf_alloc(struct videobuf_queue* q); void *videobuf_alloc(struct videobuf_queue* q);
/* Used on videobuf-dvb */ /* Used on videobuf-dvb */
void *videobuf_queue_to_vmalloc (struct videobuf_queue* q, void *videobuf_queue_to_vmalloc(struct videobuf_queue *q,
struct videobuf_buffer *buf); struct videobuf_buffer *buf);
void videobuf_queue_core_init(struct videobuf_queue *q, void videobuf_queue_core_init(struct videobuf_queue *q,
......
...@@ -17,6 +17,8 @@ ...@@ -17,6 +17,8 @@
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 * the Free Software Foundation; either version 2
*/ */
#ifndef _VIDEOBUF_DMA_SG_H
#define _VIDEOBUF_DMA_SG_H
#include <media/videobuf-core.h> #include <media/videobuf-core.h>
...@@ -27,14 +29,14 @@ ...@@ -27,14 +29,14 @@
* block (NULL on errors). Memory for the scatterlist is allocated * block (NULL on errors). Memory for the scatterlist is allocated
* using kmalloc. The caller must free the memory. * using kmalloc. The caller must free the memory.
*/ */
struct scatterlist* videobuf_vmalloc_to_sg(unsigned char *virt, int nr_pages); struct scatterlist *videobuf_vmalloc_to_sg(unsigned char *virt, int nr_pages);
/* /*
* Return a scatterlist for a an array of userpages (NULL on errors). * Return a scatterlist for a an array of userpages (NULL on errors).
* Memory for the scatterlist is allocated using kmalloc. The caller * Memory for the scatterlist is allocated using kmalloc. The caller
* must free the memory. * must free the memory.
*/ */
struct scatterlist* videobuf_pages_to_sg(struct page **pages, int nr_pages, struct scatterlist *videobuf_pages_to_sg(struct page **pages, int nr_pages,
int offset); int offset);
/* --------------------------------------------------------------------- */ /* --------------------------------------------------------------------- */
...@@ -78,8 +80,7 @@ struct videobuf_dmabuf { ...@@ -78,8 +80,7 @@ struct videobuf_dmabuf {
int direction; int direction;
}; };
struct videobuf_dma_sg_memory struct videobuf_dma_sg_memory {
{
u32 magic; u32 magic;
/* for mmap'ed buffers */ /* for mmap'ed buffers */
...@@ -95,14 +96,14 @@ int videobuf_dma_init_overlay(struct videobuf_dmabuf *dma, int direction, ...@@ -95,14 +96,14 @@ int videobuf_dma_init_overlay(struct videobuf_dmabuf *dma, int direction,
dma_addr_t addr, int nr_pages); dma_addr_t addr, int nr_pages);
int videobuf_dma_free(struct videobuf_dmabuf *dma); int videobuf_dma_free(struct videobuf_dmabuf *dma);
int videobuf_dma_map(struct videobuf_queue* q,struct videobuf_dmabuf *dma); int videobuf_dma_map(struct videobuf_queue *q, struct videobuf_dmabuf *dma);
int videobuf_dma_sync(struct videobuf_queue* q,struct videobuf_dmabuf *dma); int videobuf_dma_sync(struct videobuf_queue *q, struct videobuf_dmabuf *dma);
int videobuf_dma_unmap(struct videobuf_queue* q,struct videobuf_dmabuf *dma); int videobuf_dma_unmap(struct videobuf_queue *q, struct videobuf_dmabuf *dma);
struct videobuf_dmabuf *videobuf_to_dma (struct videobuf_buffer *buf); struct videobuf_dmabuf *videobuf_to_dma(struct videobuf_buffer *buf);
void *videobuf_sg_alloc(size_t size); void *videobuf_sg_alloc(size_t size);
void videobuf_queue_sg_init(struct videobuf_queue* q, void videobuf_queue_sg_init(struct videobuf_queue *q,
const struct videobuf_queue_ops *ops, const struct videobuf_queue_ops *ops,
struct device *dev, struct device *dev,
spinlock_t *irqlock, spinlock_t *irqlock,
...@@ -111,9 +112,11 @@ void videobuf_queue_sg_init(struct videobuf_queue* q, ...@@ -111,9 +112,11 @@ void videobuf_queue_sg_init(struct videobuf_queue* q,
unsigned int msize, unsigned int msize,
void *priv); void *priv);
/*FIXME: these variants are used only on *-alsa code, where videobuf is /*FIXME: these variants are used only on *-alsa code, where videobuf is
* used without queue * used without queue
*/ */
int videobuf_sg_dma_map(struct device *dev, struct videobuf_dmabuf *dma); int videobuf_sg_dma_map(struct device *dev, struct videobuf_dmabuf *dma);
int videobuf_sg_dma_unmap(struct device *dev, struct videobuf_dmabuf *dma); int videobuf_sg_dma_unmap(struct device *dev, struct videobuf_dmabuf *dma);
#endif /* _VIDEOBUF_DMA_SG_H */
...@@ -19,17 +19,17 @@ ...@@ -19,17 +19,17 @@
/* --------------------------------------------------------------------- */ /* --------------------------------------------------------------------- */
struct videobuf_vmalloc_memory struct videobuf_vmalloc_memory {
{
u32 magic; u32 magic;
void *vmalloc; void *vmalloc;
/* remap_vmalloc_range seems to need to run after mmap() on some cases */ /* remap_vmalloc_range seems to need to run
* after mmap() on some cases */
struct vm_area_struct *vma; struct vm_area_struct *vma;
}; };
void videobuf_queue_vmalloc_init(struct videobuf_queue* q, void videobuf_queue_vmalloc_init(struct videobuf_queue *q,
const struct videobuf_queue_ops *ops, const struct videobuf_queue_ops *ops,
struct device *dev, struct device *dev,
spinlock_t *irqlock, spinlock_t *irqlock,
...@@ -38,8 +38,8 @@ void videobuf_queue_vmalloc_init(struct videobuf_queue* q, ...@@ -38,8 +38,8 @@ void videobuf_queue_vmalloc_init(struct videobuf_queue* q,
unsigned int msize, unsigned int msize,
void *priv); void *priv);
void *videobuf_to_vmalloc (struct videobuf_buffer *buf); void *videobuf_to_vmalloc(struct videobuf_buffer *buf);
void videobuf_vmalloc_free (struct videobuf_buffer *buf); void videobuf_vmalloc_free(struct videobuf_buffer *buf);
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment