ftype = 0;
 
                /* Create a dummy frame descriptor. */
-               frame = &format->frame[0];
-               memset(&format->frame[0], 0, sizeof(format->frame[0]));
+               frame = &format->frames[0];
+               memset(&format->frames[0], 0, sizeof(format->frames[0]));
                frame->bFrameIntervalType = 1;
                frame->dwDefaultFrameInterval = 1;
                frame->dwFrameInterval = *intervals;
         */
        while (buflen > 2 && buffer[1] == USB_DT_CS_INTERFACE &&
               buffer[2] == ftype) {
-               frame = &format->frame[format->nframes];
+               frame = &format->frames[format->nframes];
                if (ftype != UVC_VS_FRAME_FRAME_BASED)
                        n = buflen > 25 ? buffer[25] : 0;
                else
                case UVC_VS_FORMAT_MJPEG:
                case UVC_VS_FORMAT_DV:
                case UVC_VS_FORMAT_FRAME_BASED:
-                       format->frame = frame;
+                       format->frames = frame;
                        ret = uvc_parse_format(dev, streaming, format,
                                &interval, buffer, buflen);
                        if (ret < 0)
 
        maxd = (unsigned int)-1;
 
        for (i = 0; i < format->nframes; ++i) {
-               u16 w = format->frame[i].wWidth;
-               u16 h = format->frame[i].wHeight;
+               u16 w = format->frames[i].wWidth;
+               u16 h = format->frames[i].wHeight;
 
                d = min(w, rw) * min(h, rh);
                d = w*h + rw*rh - 2*d;
                if (d < maxd) {
                        maxd = d;
-                       frame = &format->frame[i];
+                       frame = &format->frames[i];
                }
 
                if (maxd == 0)
                        probe->bFormatIndex);
 
        for (i = 0; i < format->nframes; ++i) {
-               if (probe->bFrameIndex == format->frame[i].bFrameIndex) {
-                       frame = &format->frame[i];
+               if (probe->bFrameIndex == format->frames[i].bFrameIndex) {
+                       frame = &format->frames[i];
                        break;
                }
        }
        for (i = 0; i < format->nframes && maxd != 0; i++) {
                u32 d, ival;
 
-               if (&format->frame[i] == stream->cur_frame)
+               if (&format->frames[i] == stream->cur_frame)
                        continue;
 
-               if (format->frame[i].wWidth != stream->cur_frame->wWidth ||
-                   format->frame[i].wHeight != stream->cur_frame->wHeight)
+               if (format->frames[i].wWidth != stream->cur_frame->wWidth ||
+                   format->frames[i].wHeight != stream->cur_frame->wHeight)
                        continue;
 
-               ival = uvc_try_frame_interval(&format->frame[i], interval);
+               ival = uvc_try_frame_interval(&format->frames[i], interval);
                d = abs((s32)ival - interval);
                if (d >= maxd)
                        continue;
 
-               frame = &format->frame[i];
+               frame = &format->frames[i];
                probe.bFrameIndex = frame->bFrameIndex;
                probe.dwFrameInterval = ival;
                maxd = d;
 
        /* Skip duplicate frame sizes */
        for (i = 0, index = 0; i < format->nframes; i++) {
-               if (frame && frame->wWidth == format->frame[i].wWidth &&
-                   frame->wHeight == format->frame[i].wHeight)
+               if (frame && frame->wWidth == format->frames[i].wWidth &&
+                   frame->wHeight == format->frames[i].wHeight)
                        continue;
-               frame = &format->frame[i];
+               frame = &format->frames[i];
                if (index == fsize->index)
                        break;
                index++;
 
        index = fival->index;
        for (i = 0; i < format->nframes; i++) {
-               if (format->frame[i].wWidth == fival->width &&
-                   format->frame[i].wHeight == fival->height) {
-                       frame = &format->frame[i];
+               if (format->frames[i].wWidth == fival->width &&
+                   format->frames[i].wHeight == fival->height) {
+                       frame = &format->frames[i];
                        nintervals = frame->bFrameIntervalType ?: 1;
                        if (index < nintervals)
                                break;
 
                return;
 
        for (i = 0; i < format->nframes; ++i) {
-               if (format->frame[i].bFrameIndex == ctrl->bFrameIndex) {
-                       frame = &format->frame[i];
+               if (format->frames[i].bFrameIndex == ctrl->bFrameIndex) {
+                       frame = &format->frames[i];
                        break;
                }
        }
         * descriptor is not found, use the first available frame.
         */
        for (i = format->nframes; i > 0; --i) {
-               frame = &format->frame[i-1];
+               frame = &format->frames[i-1];
                if (frame->bFrameIndex == probe->bFrameIndex)
                        break;
        }