switch (format) {
        case V4L2_PIX_FMT_MJPEG:
        case V4L2_PIX_FMT_JPEG:
+       case V4L2_PIX_FMT_SPCA561:
                return 1;
        }
        return 0;
        case V4L2_PIX_FMT_YYUV:         /* 'YYUV' */
                return 16;
        case V4L2_PIX_FMT_YUV420:       /* 'YU12' planar 4.2.0 */
+       case V4L2_PIX_FMT_SPCA501:      /* 'S501' YUYV per line */
                return 12;
        case V4L2_PIX_FMT_MJPEG:
        case V4L2_PIX_FMT_JPEG:
        case V4L2_PIX_FMT_SBGGR8:       /* 'BA81' Bayer */
        case V4L2_PIX_FMT_SN9C10X:      /* 'S910' SN9C10x compression */
-       case V4L2_PIX_FMT_SPCA501:      /* 'S501' YUYV per line */
        case V4L2_PIX_FMT_SPCA561:      /* 'S561' compressed BGGR bayer */
                return 8;
        }
                goto out;
        }
 
-       if (ret == gspca_dev->curr_mode)
+       if (ret == gspca_dev->curr_mode) {
+               ret = 0;
                goto out;                       /* same mode */
+       }
 
        if (gspca_dev->streaming) {
                ret = -EBUSY;
 
 }
 
 static unsigned char *pac207_find_sof(struct gspca_dev *gspca_dev,
-       unsigned char *m, int len)
+                                       unsigned char *m, int len)
 {
        struct sd *sd = (struct sd *) gspca_dev;
        int i;
 }
 
 static int pac207_decompress_row(struct gspca_dev *gspca_dev,
-       struct gspca_frame *f, unsigned char *cdata, int len)
+                               struct gspca_frame *f,
+                               __u8 *cdata,
+                               int len)
 {
        struct sd *sd = (struct sd *) gspca_dev;
        struct pac207_decoder_state *decoder_state = &sd->decoder_state;
                case LINE_HEADER2:
                        decoder_state->line_marker |= data[0];
                        switch (decoder_state->line_marker) {
-                       case 0x0FF0:
+                       case 0x0ff0:
                                decoder_state->line_state = LINE_UNCOMPRESSED;
                                break;
-                       case 0x1EE1:
+                       case 0x1ee1:
                                decoder_state->line_state = LINE_COMPRESSED;
                                break;
                        default: