usb: uvc: make uvc_format_desc table const
authorMichael Grzeschik <m.grzeschik@pengutronix.de>
Thu, 26 Jan 2023 23:14:55 +0000 (00:14 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 31 Jan 2023 08:40:42 +0000 (09:40 +0100)
Since the uvc_fmts array can not be modified we declare it const and
change every user of the uvc_format_by_guid function aswell.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>
Tested-by: Daniel Scally <dan.scally@ideasonboard.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Link: https://lore.kernel.org/r/20230126231456.3402323-5-m.grzeschik@pengutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/common/uvc.c
drivers/media/usb/uvc/uvc_driver.c
drivers/usb/gadget/function/uvc_v4l2.c
include/linux/usb/uvc.h

index bb96d9e..2b4df3e 100644 (file)
@@ -11,7 +11,7 @@
  * Video formats
  */
 
-static struct uvc_format_desc uvc_fmts[] = {
+static const struct uvc_format_desc uvc_fmts[] = {
        {
                .name           = "YUV 4:2:2 (YUYV)",
                .guid           = UVC_GUID_FORMAT_YUY2,
@@ -204,7 +204,7 @@ static struct uvc_format_desc uvc_fmts[] = {
        },
 };
 
-struct uvc_format_desc *uvc_format_by_guid(const u8 guid[16])
+const struct uvc_format_desc *uvc_format_by_guid(const u8 guid[16])
 {
        unsigned int len = ARRAY_SIZE(uvc_fmts);
        unsigned int i;
index edf8c4a..7aefa76 100644 (file)
@@ -225,7 +225,7 @@ static int uvc_parse_format(struct uvc_device *dev,
 {
        struct usb_interface *intf = streaming->intf;
        struct usb_host_interface *alts = intf->cur_altsetting;
-       struct uvc_format_desc *fmtdesc;
+       const struct uvc_format_desc *fmtdesc;
        struct uvc_frame *frame;
        const unsigned char *start = buffer;
        unsigned int width_multiplier = 1;
index 7435df0..21e573e 100644 (file)
 #include "uvc_v4l2.h"
 #include "uvc_configfs.h"
 
-static struct uvc_format_desc *to_uvc_format(struct uvcg_format *uformat)
+static const struct uvc_format_desc *to_uvc_format(struct uvcg_format *uformat)
 {
        char guid[16] = UVC_GUID_FORMAT_MJPEG;
-       struct uvc_format_desc *format;
+       const struct uvc_format_desc *format;
        struct uvcg_uncompressed *unc;
 
        if (uformat->type == UVCG_UNCOMPRESSED) {
@@ -119,7 +119,7 @@ static struct uvcg_format *find_format_by_pix(struct uvc_device *uvc,
        struct uvcg_format *uformat = NULL;
 
        list_for_each_entry(format, &uvc->header->formats, entry) {
-               struct uvc_format_desc *fmtdesc = to_uvc_format(format->fmt);
+               const struct uvc_format_desc *fmtdesc = to_uvc_format(format->fmt);
 
                if (fmtdesc->fcc == pixelformat) {
                        uformat = format->fmt;
@@ -364,7 +364,7 @@ uvc_v4l2_enum_format(struct file *file, void *fh, struct v4l2_fmtdesc *f)
 {
        struct video_device *vdev = video_devdata(file);
        struct uvc_device *uvc = video_get_drvdata(vdev);
-       struct uvc_format_desc *fmtdesc;
+       const struct uvc_format_desc *fmtdesc;
        struct uvcg_format *uformat;
 
        if (f->index >= uvc->header->num_fmt)
index 8cebb46..b0210c5 100644 (file)
@@ -154,6 +154,6 @@ struct uvc_format_desc {
        u32 fcc;
 };
 
-struct uvc_format_desc *uvc_format_by_guid(const u8 guid[16]);
+const struct uvc_format_desc *uvc_format_by_guid(const u8 guid[16]);
 
 #endif /* __LINUX_V4L2_UVC_H */