Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

usb: uvc: use v4l2_fill_fmtdesc instead of open coded format name

Since v4l2_fill_fmtdesc will be called in the ioctl v4l_enum_fmt anyway.
We can set the format description and compressed flag from v4l_fill_fmtdesc
and can remove the extra name field in uvc_format_desc.

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>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Link: https://lore.kernel.org/r/20230126231456.3402323-6-m.grzeschik@pengutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Michael Grzeschik and committed by
Greg Kroah-Hartman
2d83eb5d 8ecb17a8

-45
-38
drivers/media/common/uvc.c
··· 13 13 14 14 static const struct uvc_format_desc uvc_fmts[] = { 15 15 { 16 - .name = "YUV 4:2:2 (YUYV)", 17 16 .guid = UVC_GUID_FORMAT_YUY2, 18 17 .fcc = V4L2_PIX_FMT_YUYV, 19 18 }, 20 19 { 21 - .name = "YUV 4:2:2 (YUYV)", 22 20 .guid = UVC_GUID_FORMAT_YUY2_ISIGHT, 23 21 .fcc = V4L2_PIX_FMT_YUYV, 24 22 }, 25 23 { 26 - .name = "YUV 4:2:0 (NV12)", 27 24 .guid = UVC_GUID_FORMAT_NV12, 28 25 .fcc = V4L2_PIX_FMT_NV12, 29 26 }, 30 27 { 31 - .name = "MJPEG", 32 28 .guid = UVC_GUID_FORMAT_MJPEG, 33 29 .fcc = V4L2_PIX_FMT_MJPEG, 34 30 }, 35 31 { 36 - .name = "YVU 4:2:0 (YV12)", 37 32 .guid = UVC_GUID_FORMAT_YV12, 38 33 .fcc = V4L2_PIX_FMT_YVU420, 39 34 }, 40 35 { 41 - .name = "YUV 4:2:0 (I420)", 42 36 .guid = UVC_GUID_FORMAT_I420, 43 37 .fcc = V4L2_PIX_FMT_YUV420, 44 38 }, 45 39 { 46 - .name = "YUV 4:2:0 (M420)", 47 40 .guid = UVC_GUID_FORMAT_M420, 48 41 .fcc = V4L2_PIX_FMT_M420, 49 42 }, 50 43 { 51 - .name = "YUV 4:2:2 (UYVY)", 52 44 .guid = UVC_GUID_FORMAT_UYVY, 53 45 .fcc = V4L2_PIX_FMT_UYVY, 54 46 }, 55 47 { 56 - .name = "Greyscale 8-bit (Y800)", 57 48 .guid = UVC_GUID_FORMAT_Y800, 58 49 .fcc = V4L2_PIX_FMT_GREY, 59 50 }, 60 51 { 61 - .name = "Greyscale 8-bit (Y8 )", 62 52 .guid = UVC_GUID_FORMAT_Y8, 63 53 .fcc = V4L2_PIX_FMT_GREY, 64 54 }, 65 55 { 66 - .name = "Greyscale 8-bit (D3DFMT_L8)", 67 56 .guid = UVC_GUID_FORMAT_D3DFMT_L8, 68 57 .fcc = V4L2_PIX_FMT_GREY, 69 58 }, 70 59 { 71 - .name = "IR 8-bit (L8_IR)", 72 60 .guid = UVC_GUID_FORMAT_KSMEDIA_L8_IR, 73 61 .fcc = V4L2_PIX_FMT_GREY, 74 62 }, 75 63 { 76 - .name = "Greyscale 10-bit (Y10 )", 77 64 .guid = UVC_GUID_FORMAT_Y10, 78 65 .fcc = V4L2_PIX_FMT_Y10, 79 66 }, 80 67 { 81 - .name = "Greyscale 12-bit (Y12 )", 82 68 .guid = UVC_GUID_FORMAT_Y12, 83 69 .fcc = V4L2_PIX_FMT_Y12, 84 70 }, 85 71 { 86 - .name = "Greyscale 16-bit (Y16 )", 87 72 .guid = UVC_GUID_FORMAT_Y16, 88 73 .fcc = V4L2_PIX_FMT_Y16, 89 74 }, 90 75 { 91 - .name = "BGGR Bayer (BY8 )", 92 76 .guid = UVC_GUID_FORMAT_BY8, 93 77 .fcc = V4L2_PIX_FMT_SBGGR8, 94 78 }, 95 79 { 96 - .name = "BGGR Bayer (BA81)", 97 80 .guid = UVC_GUID_FORMAT_BA81, 98 81 .fcc = V4L2_PIX_FMT_SBGGR8, 99 82 }, 100 83 { 101 - .name = "GBRG Bayer (GBRG)", 102 84 .guid = UVC_GUID_FORMAT_GBRG, 103 85 .fcc = V4L2_PIX_FMT_SGBRG8, 104 86 }, 105 87 { 106 - .name = "GRBG Bayer (GRBG)", 107 88 .guid = UVC_GUID_FORMAT_GRBG, 108 89 .fcc = V4L2_PIX_FMT_SGRBG8, 109 90 }, 110 91 { 111 - .name = "RGGB Bayer (RGGB)", 112 92 .guid = UVC_GUID_FORMAT_RGGB, 113 93 .fcc = V4L2_PIX_FMT_SRGGB8, 114 94 }, 115 95 { 116 - .name = "RGB565", 117 96 .guid = UVC_GUID_FORMAT_RGBP, 118 97 .fcc = V4L2_PIX_FMT_RGB565, 119 98 }, 120 99 { 121 - .name = "BGR 8:8:8 (BGR3)", 122 100 .guid = UVC_GUID_FORMAT_BGR3, 123 101 .fcc = V4L2_PIX_FMT_BGR24, 124 102 }, 125 103 { 126 - .name = "BGRA/X 8:8:8:8 (BGR4)", 127 104 .guid = UVC_GUID_FORMAT_BGR4, 128 105 .fcc = V4L2_PIX_FMT_XBGR32, 129 106 }, 130 107 { 131 - .name = "H.264", 132 108 .guid = UVC_GUID_FORMAT_H264, 133 109 .fcc = V4L2_PIX_FMT_H264, 134 110 }, 135 111 { 136 - .name = "H.265", 137 112 .guid = UVC_GUID_FORMAT_H265, 138 113 .fcc = V4L2_PIX_FMT_HEVC, 139 114 }, 140 115 { 141 - .name = "Greyscale 8 L/R (Y8I)", 142 116 .guid = UVC_GUID_FORMAT_Y8I, 143 117 .fcc = V4L2_PIX_FMT_Y8I, 144 118 }, 145 119 { 146 - .name = "Greyscale 12 L/R (Y12I)", 147 120 .guid = UVC_GUID_FORMAT_Y12I, 148 121 .fcc = V4L2_PIX_FMT_Y12I, 149 122 }, 150 123 { 151 - .name = "Depth data 16-bit (Z16)", 152 124 .guid = UVC_GUID_FORMAT_Z16, 153 125 .fcc = V4L2_PIX_FMT_Z16, 154 126 }, 155 127 { 156 - .name = "Bayer 10-bit (SRGGB10P)", 157 128 .guid = UVC_GUID_FORMAT_RW10, 158 129 .fcc = V4L2_PIX_FMT_SRGGB10P, 159 130 }, 160 131 { 161 - .name = "Bayer 16-bit (SBGGR16)", 162 132 .guid = UVC_GUID_FORMAT_BG16, 163 133 .fcc = V4L2_PIX_FMT_SBGGR16, 164 134 }, 165 135 { 166 - .name = "Bayer 16-bit (SGBRG16)", 167 136 .guid = UVC_GUID_FORMAT_GB16, 168 137 .fcc = V4L2_PIX_FMT_SGBRG16, 169 138 }, 170 139 { 171 - .name = "Bayer 16-bit (SRGGB16)", 172 140 .guid = UVC_GUID_FORMAT_RG16, 173 141 .fcc = V4L2_PIX_FMT_SRGGB16, 174 142 }, 175 143 { 176 - .name = "Bayer 16-bit (SGRBG16)", 177 144 .guid = UVC_GUID_FORMAT_GR16, 178 145 .fcc = V4L2_PIX_FMT_SGRBG16, 179 146 }, 180 147 { 181 - .name = "Depth data 16-bit (Z16)", 182 148 .guid = UVC_GUID_FORMAT_INVZ, 183 149 .fcc = V4L2_PIX_FMT_Z16, 184 150 }, 185 151 { 186 - .name = "Greyscale 10-bit (Y10 )", 187 152 .guid = UVC_GUID_FORMAT_INVI, 188 153 .fcc = V4L2_PIX_FMT_Y10, 189 154 }, 190 155 { 191 - .name = "IR:Depth 26-bit (INZI)", 192 156 .guid = UVC_GUID_FORMAT_INZI, 193 157 .fcc = V4L2_PIX_FMT_INZI, 194 158 }, 195 159 { 196 - .name = "4-bit Depth Confidence (Packed)", 197 160 .guid = UVC_GUID_FORMAT_CNF4, 198 161 .fcc = V4L2_PIX_FMT_CNF4, 199 162 }, 200 163 { 201 - .name = "HEVC", 202 164 .guid = UVC_GUID_FORMAT_HEVC, 203 165 .fcc = V4L2_PIX_FMT_HEVC, 204 166 },
-6
drivers/usb/gadget/function/uvc_v4l2.c
··· 374 374 if (!uformat) 375 375 return -EINVAL; 376 376 377 - if (uformat->type != UVCG_UNCOMPRESSED) 378 - f->flags |= V4L2_FMT_FLAG_COMPRESSED; 379 - 380 377 fmtdesc = to_uvc_format(uformat); 381 378 f->pixelformat = fmtdesc->fcc; 382 - 383 - strscpy(f->description, fmtdesc->name, sizeof(f->description)); 384 - f->description[strlen(fmtdesc->name) - 1] = 0; 385 379 386 380 return 0; 387 381 }
-1
include/linux/usb/uvc.h
··· 149 149 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} 150 150 151 151 struct uvc_format_desc { 152 - char *name; 153 152 u8 guid[16]; 154 153 u32 fcc; 155 154 };