[media] em28xx: em28xx_urb_data_copy_vbi(): calculate vbi_size only if needed
authorFrank Schaefer <fschaefer.oss@googlemail.com>
Sun, 25 Nov 2012 09:37:36 +0000 (06:37 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 22 Dec 2012 21:17:18 +0000 (19:17 -0200)
Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/usb/em28xx/em28xx-video.c

index d4f230002747319cd202cdafa0846a129279fc10..c397aa213601eca124dce1dc529974cedba002fb 100644 (file)
@@ -525,7 +525,7 @@ static inline int em28xx_urb_data_copy_vbi(struct em28xx *dev, struct urb *urb)
        struct em28xx_buffer    *buf, *vbi_buf;
        struct em28xx_dmaqueue  *dma_q = &dev->vidq;
        struct em28xx_dmaqueue  *vbi_dma_q = &dev->vbiq;
-       int xfer_bulk, vbi_size, num_packets, i, rc = 1;
+       int xfer_bulk, num_packets, i, rc = 1;
        unsigned int actual_length, len = 0;
        unsigned char *p, *outp = NULL, *vbioutp = NULL;
 
@@ -612,9 +612,8 @@ static inline int em28xx_urb_data_copy_vbi(struct em28xx *dev, struct urb *urb)
                /* NOTE: with bulk transfers, intermediate data packets
                 * have no continuation header */
 
-               vbi_size = dev->vbi_width * dev->vbi_height;
-
                if (dev->capture_type == 0) {
+                       int vbi_size = dev->vbi_width * dev->vbi_height;
                        if (dev->vbi_read >= vbi_size) {
                                /* We've already read all the VBI data, so
                                   treat the rest as video */