Hi Laurent On Thu, 20 Apr 2023 at 12:09, Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> wrote: > > The uvc_streaming 'format' field points to an array of formats. Rename > it to 'formats' to make this clearer. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> Reviewed-by: Ricardo Ribalda <ribalda@xxxxxxxxxxxx> > --- > drivers/media/usb/uvc/uvc_driver.c | 4 ++-- > drivers/media/usb/uvc/uvc_v4l2.c | 16 ++++++++-------- > drivers/media/usb/uvc/uvc_video.c | 6 +++--- > drivers/media/usb/uvc/uvcvideo.h | 2 +- > 4 files changed, 14 insertions(+), 14 deletions(-) > > diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c > index 25b8199f4e82..77d4403b0b4f 100644 > --- a/drivers/media/usb/uvc/uvc_driver.c > +++ b/drivers/media/usb/uvc/uvc_driver.c > @@ -184,7 +184,7 @@ static void uvc_stream_delete(struct uvc_streaming *stream) > > usb_put_intf(stream->intf); > > - kfree(stream->format); > + kfree(stream->formats); > kfree(stream->header.bmaControls); > kfree(stream); > } > @@ -677,7 +677,7 @@ static int uvc_parse_streaming(struct uvc_device *dev, > frame = (struct uvc_frame *)&format[nformats]; > interval = (u32 *)&frame[nframes]; > > - streaming->format = format; > + streaming->formats = format; > streaming->nformats = nformats; Unrelated question: For: size = nformats * sizeof(*format) + nframes * sizeof(*frame) + nintervals * sizeof(*interval); frame = (struct uvc_frame *)&format[nformats]; interval = (u32 *)&frame[nframes]; streaming->format = format; streaming->nformats = nformats; We are very lucky that (*format) (*frame) and (*interval) are cache aligned right? Maybe we should make 3 allocations? > > /* Parse the format descriptors. */ > diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c > index 35453f81c1d9..6960d7ebd904 100644 > --- a/drivers/media/usb/uvc/uvc_v4l2.c > +++ b/drivers/media/usb/uvc/uvc_v4l2.c > @@ -235,7 +235,7 @@ static int uvc_v4l2_try_format(struct uvc_streaming *stream, > * format otherwise. > */ > for (i = 0; i < stream->nformats; ++i) { > - format = &stream->format[i]; > + format = &stream->formats[i]; > if (format->fcc == fmt->fmt.pix.pixelformat) > break; > } > @@ -319,8 +319,8 @@ static int uvc_v4l2_try_format(struct uvc_streaming *stream, > * accepted the requested format as-is. > */ > for (i = 0; i < stream->nformats; ++i) { > - if (probe->bFormatIndex == stream->format[i].index) { > - format = &stream->format[i]; > + if (probe->bFormatIndex == stream->formats[i].index) { > + format = &stream->formats[i]; > break; > } > } > @@ -708,7 +708,7 @@ static int uvc_ioctl_enum_fmt(struct uvc_streaming *stream, > fmt->index = index; > fmt->type = type; > > - format = &stream->format[fmt->index]; > + format = &stream->formats[fmt->index]; > fmt->flags = 0; > if (format->flags & UVC_FMT_FLAG_COMPRESSED) > fmt->flags |= V4L2_FMT_FLAG_COMPRESSED; > @@ -1256,8 +1256,8 @@ static int uvc_ioctl_enum_framesizes(struct file *file, void *fh, > > /* Look for the given pixel format */ > for (i = 0; i < stream->nformats; i++) { > - if (stream->format[i].fcc == fsize->pixel_format) { > - format = &stream->format[i]; > + if (stream->formats[i].fcc == fsize->pixel_format) { > + format = &stream->formats[i]; > break; > } > } > @@ -1297,8 +1297,8 @@ static int uvc_ioctl_enum_frameintervals(struct file *file, void *fh, > > /* Look for the given pixel format and frame size */ > for (i = 0; i < stream->nformats; i++) { > - if (stream->format[i].fcc == fival->pixel_format) { > - format = &stream->format[i]; > + if (stream->formats[i].fcc == fival->pixel_format) { > + format = &stream->formats[i]; > break; > } > } > diff --git a/drivers/media/usb/uvc/uvc_video.c b/drivers/media/usb/uvc/uvc_video.c > index d4b023d4de7c..af540f435099 100644 > --- a/drivers/media/usb/uvc/uvc_video.c > +++ b/drivers/media/usb/uvc/uvc_video.c > @@ -166,8 +166,8 @@ static void uvc_fixup_video_ctrl(struct uvc_streaming *stream, > } > > for (i = 0; i < stream->nformats; ++i) { > - if (stream->format[i].index == ctrl->bFormatIndex) { > - format = &stream->format[i]; > + if (stream->formats[i].index == ctrl->bFormatIndex) { > + format = &stream->formats[i]; > break; > } > } > @@ -2161,7 +2161,7 @@ int uvc_video_init(struct uvc_streaming *stream) > * available format otherwise. > */ > for (i = stream->nformats; i > 0; --i) { > - format = &stream->format[i-1]; > + format = &stream->formats[i-1]; > if (format->index == probe->bFormatIndex) > break; > } > diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h > index 50f171e7381b..9c8bea8d405c 100644 > --- a/drivers/media/usb/uvc/uvcvideo.h > +++ b/drivers/media/usb/uvc/uvcvideo.h > @@ -438,7 +438,7 @@ struct uvc_streaming { > enum v4l2_buf_type type; > > unsigned int nformats; > - struct uvc_format *format; > + struct uvc_format *formats; > > struct uvc_streaming_control ctrl; > struct uvc_format *def_format; > -- > Regards, > > Laurent Pinchart > -- Ricardo Ribalda