V4L/DVB (7545): em28xx: Fix CodingStyle errors and most warnings introduced by videobuf
The last videobuf changes introduced several CodingStyle errors. Fixes all those errors, as reported by checkpatch.pl Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
@@ -55,13 +55,13 @@
|
|||||||
dev->name, __func__ , ##arg); } while (0)
|
dev->name, __func__ , ##arg); } while (0)
|
||||||
|
|
||||||
static unsigned int isoc_debug;
|
static unsigned int isoc_debug;
|
||||||
module_param(isoc_debug,int,0644);
|
module_param(isoc_debug, int, 0644);
|
||||||
MODULE_PARM_DESC(isoc_debug,"enable debug messages [isoc transfers]");
|
MODULE_PARM_DESC(isoc_debug, "enable debug messages [isoc transfers]");
|
||||||
|
|
||||||
#define em28xx_isocdbg(fmt, arg...) do {\
|
#define em28xx_isocdbg(fmt, arg...) do {\
|
||||||
if (isoc_debug) \
|
if (isoc_debug) \
|
||||||
printk(KERN_INFO "%s %s :"fmt, \
|
printk(KERN_INFO "%s %s :"fmt, \
|
||||||
dev->name, __FUNCTION__ , ##arg); } while (0)
|
dev->name, __func__ , ##arg); } while (0)
|
||||||
|
|
||||||
#define BUFFER_TIMEOUT msecs_to_jiffies(2000) /* 2 seconds */
|
#define BUFFER_TIMEOUT msecs_to_jiffies(2000) /* 2 seconds */
|
||||||
|
|
||||||
@@ -129,7 +129,7 @@ static struct usb_driver em28xx_usb_driver;
|
|||||||
/*
|
/*
|
||||||
* Announces that a buffer were filled and request the next
|
* Announces that a buffer were filled and request the next
|
||||||
*/
|
*/
|
||||||
static void inline buffer_filled (struct em28xx *dev,
|
static inline void buffer_filled(struct em28xx *dev,
|
||||||
struct em28xx_dmaqueue *dma_q,
|
struct em28xx_dmaqueue *dma_q,
|
||||||
struct em28xx_buffer *buf)
|
struct em28xx_buffer *buf)
|
||||||
{
|
{
|
||||||
@@ -163,9 +163,9 @@ static void em28xx_copy_video(struct em28xx *dev,
|
|||||||
unsigned char *outp, unsigned long len)
|
unsigned char *outp, unsigned long len)
|
||||||
{
|
{
|
||||||
void *fieldstart, *startwrite, *startread;
|
void *fieldstart, *startwrite, *startread;
|
||||||
int linesdone, currlinedone, offset, lencopy,remain;
|
int linesdone, currlinedone, offset, lencopy, remain;
|
||||||
|
|
||||||
if(dev->frame_size != buf->vb.size){
|
if (dev->frame_size != buf->vb.size) {
|
||||||
em28xx_errdev("size %i and buf.length %lu are different!\n",
|
em28xx_errdev("size %i and buf.length %lu are different!\n",
|
||||||
dev->frame_size, buf->vb.size);
|
dev->frame_size, buf->vb.size);
|
||||||
return;
|
return;
|
||||||
@@ -178,7 +178,7 @@ static void em28xx_copy_video(struct em28xx *dev,
|
|||||||
em28xx_isocdbg("frame is not complete\n");
|
em28xx_isocdbg("frame is not complete\n");
|
||||||
len += 4;
|
len += 4;
|
||||||
} else
|
} else
|
||||||
p +=4;
|
p += 4;
|
||||||
|
|
||||||
startread = p;
|
startread = p;
|
||||||
remain = len;
|
remain = len;
|
||||||
@@ -196,10 +196,11 @@ static void em28xx_copy_video(struct em28xx *dev,
|
|||||||
lencopy = dev->bytesperline - currlinedone;
|
lencopy = dev->bytesperline - currlinedone;
|
||||||
lencopy = lencopy > remain ? remain : lencopy;
|
lencopy = lencopy > remain ? remain : lencopy;
|
||||||
|
|
||||||
if((char*)startwrite + lencopy > (char*)outp + buf->vb.size) {
|
if ((char *)startwrite + lencopy > (char *)outp + buf->vb.size) {
|
||||||
em28xx_isocdbg("Overflow of %zi bytes past buffer end (1)\n",
|
em28xx_isocdbg("Overflow of %zi bytes past buffer end (1)\n",
|
||||||
((char*)startwrite + lencopy) - ((char*)outp + buf->vb.size));
|
((char *)startwrite + lencopy) -
|
||||||
lencopy = remain = (char*)outp + buf->vb.size - (char*)startwrite;
|
((char *)outp + buf->vb.size));
|
||||||
|
lencopy = remain = (char *)outp + buf->vb.size - (char *)startwrite;
|
||||||
}
|
}
|
||||||
BUG_ON(lencopy <= 0);
|
BUG_ON(lencopy <= 0);
|
||||||
memcpy(startwrite, startread, lencopy);
|
memcpy(startwrite, startread, lencopy);
|
||||||
@@ -216,12 +217,15 @@ static void em28xx_copy_video(struct em28xx *dev,
|
|||||||
|
|
||||||
BUG_ON(lencopy <= 0);
|
BUG_ON(lencopy <= 0);
|
||||||
|
|
||||||
if((char*)startwrite + lencopy > (char*)outp + buf->vb.size) {
|
if ((char *)startwrite + lencopy > (char *)outp + buf->vb.size) {
|
||||||
em28xx_isocdbg("Overflow of %zi bytes past buffer end (2)\n",
|
em28xx_isocdbg("Overflow of %zi bytes past buffer end (2)\n",
|
||||||
((char*)startwrite + lencopy) - ((char*)outp + buf->vb.size));
|
((char *)startwrite + lencopy) -
|
||||||
lencopy = remain = (char*)outp + buf->vb.size - (char*)startwrite;
|
((char *)outp + buf->vb.size));
|
||||||
|
lencopy = remain = (char *)outp + buf->vb.size -
|
||||||
|
(char *)startwrite;
|
||||||
}
|
}
|
||||||
if(lencopy <= 0) break;
|
if (lencopy <= 0)
|
||||||
|
break;
|
||||||
|
|
||||||
memcpy(startwrite, startread, lencopy);
|
memcpy(startwrite, startread, lencopy);
|
||||||
|
|
||||||
@@ -231,12 +235,12 @@ static void em28xx_copy_video(struct em28xx *dev,
|
|||||||
dma_q->pos += len;
|
dma_q->pos += len;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void inline print_err_status (struct em28xx *dev,
|
static inline void print_err_status(struct em28xx *dev,
|
||||||
int packet, int status)
|
int packet, int status)
|
||||||
{
|
{
|
||||||
char *errmsg = "Unknown";
|
char *errmsg = "Unknown";
|
||||||
|
|
||||||
switch(status) {
|
switch (status) {
|
||||||
case -ENOENT:
|
case -ENOENT:
|
||||||
errmsg = "unlinked synchronuously";
|
errmsg = "unlinked synchronuously";
|
||||||
break;
|
break;
|
||||||
@@ -262,7 +266,7 @@ static void inline print_err_status (struct em28xx *dev,
|
|||||||
errmsg = "Device does not respond";
|
errmsg = "Device does not respond";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (packet<0) {
|
if (packet < 0) {
|
||||||
em28xx_isocdbg("URB status %d [%s].\n", status, errmsg);
|
em28xx_isocdbg("URB status %d [%s].\n", status, errmsg);
|
||||||
} else {
|
} else {
|
||||||
em28xx_isocdbg("URB packet %d, status %d [%s].\n",
|
em28xx_isocdbg("URB packet %d, status %d [%s].\n",
|
||||||
@@ -273,7 +277,7 @@ static void inline print_err_status (struct em28xx *dev,
|
|||||||
/*
|
/*
|
||||||
* video-buf generic routine to get the next available buffer
|
* video-buf generic routine to get the next available buffer
|
||||||
*/
|
*/
|
||||||
static int inline get_next_buf (struct em28xx_dmaqueue *dma_q,
|
static inline int get_next_buf(struct em28xx_dmaqueue *dma_q,
|
||||||
struct em28xx_buffer **buf)
|
struct em28xx_buffer **buf)
|
||||||
{
|
{
|
||||||
struct em28xx *dev = container_of(dma_q, struct em28xx, vidq);
|
struct em28xx *dev = container_of(dma_q, struct em28xx, vidq);
|
||||||
@@ -306,33 +310,33 @@ static inline int em28xx_isoc_copy(struct urb *urb)
|
|||||||
if ((dev->state & DEV_DISCONNECTED) || (dev->state & DEV_MISCONFIGURED))
|
if ((dev->state & DEV_DISCONNECTED) || (dev->state & DEV_MISCONFIGURED))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (urb->status<0) {
|
if (urb->status < 0) {
|
||||||
print_err_status (dev,-1,urb->status);
|
print_err_status(dev, -1, urb->status);
|
||||||
if (urb->status == -ENOENT)
|
if (urb->status == -ENOENT)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
buf=dev->isoc_ctl.buf;
|
buf = dev->isoc_ctl.buf;
|
||||||
|
|
||||||
if (!buf) {
|
if (!buf) {
|
||||||
rc=get_next_buf (dma_q, &buf);
|
rc = get_next_buf(dma_q, &buf);
|
||||||
if (rc<=0)
|
if (rc <= 0)
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
outp = videobuf_to_vmalloc (&buf->vb);
|
outp = videobuf_to_vmalloc(&buf->vb);
|
||||||
|
|
||||||
|
|
||||||
for (i = 0; i < urb->number_of_packets; i++) {
|
for (i = 0; i < urb->number_of_packets; i++) {
|
||||||
int status = urb->iso_frame_desc[i].status;
|
int status = urb->iso_frame_desc[i].status;
|
||||||
|
|
||||||
if (status<0) {
|
if (status < 0) {
|
||||||
print_err_status (dev,i,status);
|
print_err_status(dev, i, status);
|
||||||
if (urb->iso_frame_desc[i].status != -EPROTO)
|
if (urb->iso_frame_desc[i].status != -EPROTO)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
len=urb->iso_frame_desc[i].actual_length - 4;
|
len = urb->iso_frame_desc[i].actual_length - 4;
|
||||||
|
|
||||||
if (urb->iso_frame_desc[i].actual_length <= 0) {
|
if (urb->iso_frame_desc[i].actual_length <= 0) {
|
||||||
/* em28xx_isocdbg("packet %d is empty",i); - spammy */
|
/* em28xx_isocdbg("packet %d is empty",i); - spammy */
|
||||||
@@ -353,25 +357,25 @@ static inline int em28xx_isoc_copy(struct urb *urb)
|
|||||||
/* FIXME - are the fields the right way around? */
|
/* FIXME - are the fields the right way around? */
|
||||||
em28xx_isocdbg("Video frame, length=%i, %s\n", len,
|
em28xx_isocdbg("Video frame, length=%i, %s\n", len,
|
||||||
(p[2] & 1)? "top" : "bottom");
|
(p[2] & 1)? "top" : "bottom");
|
||||||
em28xx_isocdbg("Current buffer is: outp = 0x%p, len = %i\n", outp, (int)buf->vb.size);
|
em28xx_isocdbg("Current buffer is: outp = 0x%p,"
|
||||||
|
" len = %i\n", outp, (int)buf->vb.size);
|
||||||
|
|
||||||
if (p[2] & 1) {
|
if (p[2] & 1) {
|
||||||
if (buf->receiving) {
|
if (buf->receiving) {
|
||||||
buffer_filled (dev, dma_q, buf);
|
buffer_filled(dev, dma_q, buf);
|
||||||
rc=get_next_buf (dma_q, &buf);
|
rc = get_next_buf(dma_q, &buf);
|
||||||
if (rc<=0)
|
if (rc <= 0)
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
outp = videobuf_to_vmalloc (&buf->vb);
|
outp = videobuf_to_vmalloc(&buf->vb);
|
||||||
}
|
}
|
||||||
|
|
||||||
buf->top_field = 1;
|
buf->top_field = 1;
|
||||||
} else {
|
} else
|
||||||
buf->top_field = 0;
|
buf->top_field = 0;
|
||||||
}
|
|
||||||
buf->receiving = 1;
|
buf->receiving = 1;
|
||||||
dma_q->pos = 0;
|
dma_q->pos = 0;
|
||||||
} else if (p[0]==0x33 && p[1]==0x95 && p[2]==0x00) {
|
} else if (p[0] == 0x33 && p[1] == 0x95 && p[2] == 0x00) {
|
||||||
em28xx_isocdbg("VBI HEADER!!!\n");
|
em28xx_isocdbg("VBI HEADER!!!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -393,13 +397,13 @@ static void em28xx_irq_callback(struct urb *urb)
|
|||||||
{
|
{
|
||||||
struct em28xx_dmaqueue *dma_q = urb->context;
|
struct em28xx_dmaqueue *dma_q = urb->context;
|
||||||
struct em28xx *dev = container_of(dma_q, struct em28xx, vidq);
|
struct em28xx *dev = container_of(dma_q, struct em28xx, vidq);
|
||||||
int rc,i;
|
int rc, i;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
spin_lock_irqsave(&dev->slock,flags);
|
spin_lock_irqsave(&dev->slock, flags);
|
||||||
|
|
||||||
/* Copy data from URB */
|
/* Copy data from URB */
|
||||||
rc=em28xx_isoc_copy(urb);
|
rc = em28xx_isoc_copy(urb);
|
||||||
|
|
||||||
/* Reset urb buffers */
|
/* Reset urb buffers */
|
||||||
for (i = 0; i < urb->number_of_packets; i++) {
|
for (i = 0; i < urb->number_of_packets; i++) {
|
||||||
@@ -408,12 +412,13 @@ static void em28xx_irq_callback(struct urb *urb)
|
|||||||
}
|
}
|
||||||
urb->status = 0;
|
urb->status = 0;
|
||||||
|
|
||||||
if ((urb->status = usb_submit_urb(urb, GFP_ATOMIC))) {
|
urb->status = usb_submit_urb(urb, GFP_ATOMIC);
|
||||||
|
if (urb->status) {
|
||||||
em28xx_err("urb resubmit failed (error=%i)\n",
|
em28xx_err("urb resubmit failed (error=%i)\n",
|
||||||
urb->status);
|
urb->status);
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock_irqrestore(&dev->slock,flags);
|
spin_unlock_irqrestore(&dev->slock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -426,10 +431,10 @@ static void em28xx_uninit_isoc(struct em28xx *dev)
|
|||||||
|
|
||||||
em28xx_isocdbg("em28xx: called em28xx_uninit_isoc\n");
|
em28xx_isocdbg("em28xx: called em28xx_uninit_isoc\n");
|
||||||
|
|
||||||
dev->isoc_ctl.nfields=-1;
|
dev->isoc_ctl.nfields = -1;
|
||||||
dev->isoc_ctl.buf=NULL;
|
dev->isoc_ctl.buf = NULL;
|
||||||
for (i = 0; i < dev->isoc_ctl.num_bufs; i++) {
|
for (i = 0; i < dev->isoc_ctl.num_bufs; i++) {
|
||||||
urb=dev->isoc_ctl.urb[i];
|
urb = dev->isoc_ctl.urb[i];
|
||||||
if (urb) {
|
if (urb) {
|
||||||
usb_kill_urb(urb);
|
usb_kill_urb(urb);
|
||||||
usb_unlink_urb(urb);
|
usb_unlink_urb(urb);
|
||||||
@@ -445,12 +450,12 @@ static void em28xx_uninit_isoc(struct em28xx *dev)
|
|||||||
dev->isoc_ctl.transfer_buffer[i] = NULL;
|
dev->isoc_ctl.transfer_buffer[i] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
kfree (dev->isoc_ctl.urb);
|
kfree(dev->isoc_ctl.urb);
|
||||||
kfree (dev->isoc_ctl.transfer_buffer);
|
kfree(dev->isoc_ctl.transfer_buffer);
|
||||||
dev->isoc_ctl.urb=NULL;
|
dev->isoc_ctl.urb = NULL;
|
||||||
dev->isoc_ctl.transfer_buffer=NULL;
|
dev->isoc_ctl.transfer_buffer = NULL;
|
||||||
|
|
||||||
dev->isoc_ctl.num_bufs=0;
|
dev->isoc_ctl.num_bufs = 0;
|
||||||
|
|
||||||
del_timer(&dev->vidq.timeout);
|
del_timer(&dev->vidq.timeout);
|
||||||
em28xx_capture_start(dev, 0);
|
em28xx_capture_start(dev, 0);
|
||||||
@@ -507,7 +512,7 @@ static int em28xx_prepare_isoc(struct em28xx *dev, int max_packets,
|
|||||||
dev->isoc_ctl.transfer_buffer[i] = usb_buffer_alloc(dev->udev,
|
dev->isoc_ctl.transfer_buffer[i] = usb_buffer_alloc(dev->udev,
|
||||||
sb_size, GFP_KERNEL, &urb->transfer_dma);
|
sb_size, GFP_KERNEL, &urb->transfer_dma);
|
||||||
if (!dev->isoc_ctl.transfer_buffer[i]) {
|
if (!dev->isoc_ctl.transfer_buffer[i]) {
|
||||||
em28xx_err ("unable to allocate %i bytes for transfer"
|
em28xx_err("unable to allocate %i bytes for transfer"
|
||||||
" buffer %i%s\n",
|
" buffer %i%s\n",
|
||||||
sb_size, i,
|
sb_size, i,
|
||||||
in_interrupt()?" while in int":"");
|
in_interrupt()?" while in int":"");
|
||||||
@@ -520,7 +525,7 @@ static int em28xx_prepare_isoc(struct em28xx *dev, int max_packets,
|
|||||||
'desc.bEndpointAddress & USB_ENDPOINT_NUMBER_MASK'
|
'desc.bEndpointAddress & USB_ENDPOINT_NUMBER_MASK'
|
||||||
should also be using 'desc.bInterval'
|
should also be using 'desc.bInterval'
|
||||||
*/
|
*/
|
||||||
pipe=usb_rcvisocpipe(dev->udev, 0x82);
|
pipe = usb_rcvisocpipe(dev->udev, 0x82);
|
||||||
usb_fill_int_urb(urb, dev->udev, pipe,
|
usb_fill_int_urb(urb, dev->udev, pipe,
|
||||||
dev->isoc_ctl.transfer_buffer[i], sb_size,
|
dev->isoc_ctl.transfer_buffer[i], sb_size,
|
||||||
em28xx_irq_callback, dma_q, 1);
|
em28xx_irq_callback, dma_q, 1);
|
||||||
@@ -540,10 +545,10 @@ static int em28xx_prepare_isoc(struct em28xx *dev, int max_packets,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int em28xx_start_thread( struct em28xx_dmaqueue *dma_q)
|
static int em28xx_start_thread(struct em28xx_dmaqueue *dma_q)
|
||||||
{
|
{
|
||||||
struct em28xx *dev = container_of(dma_q, struct em28xx, vidq);
|
struct em28xx *dev = container_of(dma_q, struct em28xx, vidq);
|
||||||
int i,rc = 0;
|
int i, rc = 0;
|
||||||
|
|
||||||
em28xx_videodbg("Called em28xx_start_thread\n");
|
em28xx_videodbg("Called em28xx_start_thread\n");
|
||||||
|
|
||||||
@@ -562,7 +567,7 @@ static int em28xx_start_thread( struct em28xx_dmaqueue *dma_q)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rc<0)
|
if (rc < 0)
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -570,12 +575,12 @@ static int em28xx_start_thread( struct em28xx_dmaqueue *dma_q)
|
|||||||
|
|
||||||
static void em28xx_vid_timeout(unsigned long data)
|
static void em28xx_vid_timeout(unsigned long data)
|
||||||
{
|
{
|
||||||
struct em28xx *dev = (struct em28xx*)data;
|
struct em28xx *dev = (struct em28xx *)data;
|
||||||
struct em28xx_dmaqueue *vidq = &dev->vidq;
|
struct em28xx_dmaqueue *vidq = &dev->vidq;
|
||||||
struct em28xx_buffer *buf;
|
struct em28xx_buffer *buf;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
spin_lock_irqsave(&dev->slock,flags);
|
spin_lock_irqsave(&dev->slock, flags);
|
||||||
|
|
||||||
list_for_each_entry(buf, vidq->active.next, vb.queue) {
|
list_for_each_entry(buf, vidq->active.next, vb.queue) {
|
||||||
list_del(&buf->vb.queue);
|
list_del(&buf->vb.queue);
|
||||||
@@ -587,7 +592,7 @@ static void em28xx_vid_timeout(unsigned long data)
|
|||||||
/* Instead of trying to restart, just sets timeout again */
|
/* Instead of trying to restart, just sets timeout again */
|
||||||
mod_timer(&vidq->timeout, jiffies + BUFFER_TIMEOUT);
|
mod_timer(&vidq->timeout, jiffies + BUFFER_TIMEOUT);
|
||||||
|
|
||||||
spin_unlock_irqrestore(&dev->slock,flags);
|
spin_unlock_irqrestore(&dev->slock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------------
|
/* ------------------------------------------------------------------
|
||||||
@@ -603,9 +608,8 @@ buffer_setup(struct videobuf_queue *vq, unsigned int *count, unsigned int *size)
|
|||||||
if (0 == *count)
|
if (0 == *count)
|
||||||
*count = EM28XX_DEF_BUF;
|
*count = EM28XX_DEF_BUF;
|
||||||
|
|
||||||
if (*count < EM28XX_MIN_BUF) {
|
if (*count < EM28XX_MIN_BUF)
|
||||||
*count=EM28XX_MIN_BUF;
|
*count = EM28XX_MIN_BUF;
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -625,7 +629,7 @@ buffer_prepare(struct videobuf_queue *vq, struct videobuf_buffer *vb,
|
|||||||
enum v4l2_field field)
|
enum v4l2_field field)
|
||||||
{
|
{
|
||||||
struct em28xx_fh *fh = vq->priv_data;
|
struct em28xx_fh *fh = vq->priv_data;
|
||||||
struct em28xx_buffer *buf = container_of(vb,struct em28xx_buffer,vb);
|
struct em28xx_buffer *buf = container_of(vb, struct em28xx_buffer, vb);
|
||||||
struct em28xx *dev = fh->dev;
|
struct em28xx *dev = fh->dev;
|
||||||
struct em28xx_dmaqueue *vidq = &dev->vidq;
|
struct em28xx_dmaqueue *vidq = &dev->vidq;
|
||||||
int rc = 0, urb_init = 0;
|
int rc = 0, urb_init = 0;
|
||||||
@@ -657,15 +661,16 @@ buffer_prepare(struct videobuf_queue *vq, struct videobuf_buffer *vb,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!dev->isoc_ctl.num_bufs)
|
if (!dev->isoc_ctl.num_bufs)
|
||||||
urb_init=1;
|
urb_init = 1;
|
||||||
|
|
||||||
if (urb_init) {
|
if (urb_init) {
|
||||||
rc = em28xx_prepare_isoc(dev, EM28XX_NUM_PACKETS, EM28XX_NUM_BUFS);
|
rc = em28xx_prepare_isoc(dev, EM28XX_NUM_PACKETS,
|
||||||
if (rc<0)
|
EM28XX_NUM_BUFS);
|
||||||
|
if (rc < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
rc = em28xx_start_thread(vidq);
|
rc = em28xx_start_thread(vidq);
|
||||||
if (rc<0)
|
if (rc < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -673,7 +678,7 @@ buffer_prepare(struct videobuf_queue *vq, struct videobuf_buffer *vb,
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
free_buffer(vq,buf);
|
free_buffer(vq, buf);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -682,7 +687,7 @@ buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
|
|||||||
{
|
{
|
||||||
struct em28xx_buffer *buf = container_of(vb, struct em28xx_buffer, vb);
|
struct em28xx_buffer *buf = container_of(vb, struct em28xx_buffer, vb);
|
||||||
struct em28xx_fh *fh = vq->priv_data;
|
struct em28xx_fh *fh = vq->priv_data;
|
||||||
struct em28xx *dev = fh->dev;
|
struct em28xx *dev = fh->dev;
|
||||||
struct em28xx_dmaqueue *vidq = &dev->vidq;
|
struct em28xx_dmaqueue *vidq = &dev->vidq;
|
||||||
|
|
||||||
buf->vb.state = VIDEOBUF_QUEUED;
|
buf->vb.state = VIDEOBUF_QUEUED;
|
||||||
@@ -692,13 +697,13 @@ buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
|
|||||||
|
|
||||||
static void buffer_release(struct videobuf_queue *vq, struct videobuf_buffer *vb)
|
static void buffer_release(struct videobuf_queue *vq, struct videobuf_buffer *vb)
|
||||||
{
|
{
|
||||||
struct em28xx_buffer *buf = container_of(vb,struct em28xx_buffer,vb);
|
struct em28xx_buffer *buf = container_of(vb, struct em28xx_buffer, vb);
|
||||||
struct em28xx_fh *fh = vq->priv_data;
|
struct em28xx_fh *fh = vq->priv_data;
|
||||||
struct em28xx *dev = (struct em28xx*)fh->dev;
|
struct em28xx *dev = (struct em28xx *)fh->dev;
|
||||||
|
|
||||||
em28xx_isocdbg("em28xx: called buffer_release\n");
|
em28xx_isocdbg("em28xx: called buffer_release\n");
|
||||||
|
|
||||||
free_buffer(vq,buf);
|
free_buffer(vq, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct videobuf_queue_ops em28xx_video_qops = {
|
static struct videobuf_queue_ops em28xx_video_qops = {
|
||||||
@@ -1589,11 +1594,11 @@ static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *b)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||||
static int vidiocgmbuf (struct file *file, void *priv, struct video_mbuf *mbuf)
|
static int vidiocgmbuf(struct file *file, void *priv, struct video_mbuf *mbuf)
|
||||||
{
|
{
|
||||||
struct em28xx_fh *fh=priv;
|
struct em28xx_fh *fh = priv;
|
||||||
|
|
||||||
return videobuf_cgmbuf (&fh->vb_vidq, mbuf, 8);
|
return videobuf_cgmbuf(&fh->vb_vidq, mbuf, 8);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1865,7 +1870,7 @@ static int em28xx_v4l2_close(struct inode *inode, struct file *filp)
|
|||||||
*/
|
*/
|
||||||
static ssize_t
|
static ssize_t
|
||||||
em28xx_v4l2_read(struct file *filp, char __user * buf, size_t count,
|
em28xx_v4l2_read(struct file *filp, char __user * buf, size_t count,
|
||||||
loff_t * pos)
|
loff_t *pos)
|
||||||
{
|
{
|
||||||
struct em28xx_fh *fh = filp->private_data;
|
struct em28xx_fh *fh = filp->private_data;
|
||||||
struct em28xx *dev = fh->dev;
|
struct em28xx *dev = fh->dev;
|
||||||
|
Reference in New Issue
Block a user