/*
  * Main USB camera driver
  *
- * Copyright (C) 2008-2010 Jean-François Moine <http://moinejf.free.fr>
+ * Copyright (C) 2008-2011 Jean-François Moine <http://moinejf.free.fr>
  *
  * Camera button input handling by Márton Németh
  * Copyright (C) 2009-2010 Márton Németh <nm127@freemail.hu>
  *     - 0 or many INTER_PACKETs
  *     - one LAST_PACKET
  * DISCARD_PACKET invalidates the whole frame.
- * On LAST_PACKET, a new frame is returned.
  */
 void gspca_frame_add(struct gspca_dev *gspca_dev,
                        enum gspca_packet_type packet_type,
                gspca_dev->usb_err = 0;
                gspca_stream_off(gspca_dev);
                mutex_unlock(&gspca_dev->usb_lock);
+
+               /* Don't restart the stream when switching from read
+                * to mmap mode */
+               if (gspca_dev->memory == GSPCA_MEMORY_READ)
+                       streaming = 0;
        }
-       /* Don't restart the stream when switching from read to mmap mode */
-       if (gspca_dev->memory == GSPCA_MEMORY_READ)
-               streaming = 0;
 
        /* free the previous allocated buffers, if any */
        if (gspca_dev->nframes != 0)
        .vidioc_g_chip_ident    = vidioc_g_chip_ident,
 };
 
-static struct video_device gspca_template = {
+static const struct video_device gspca_template = {
        .name = "gspca main driver",
        .fops = &dev_fops,
        .ioctl_ops = &dev_ioctl_ops,