Index | Thread | Search

From:
Marcus Glocker <marcus@nazgul.ch>
Subject:
Re: sys/uvideo: sync GUID to pixelformat mappngs with Linux 6.13-rc7
To:
"Kirill A. Korinsky" <kirill@korins.ky>
Cc:
tech@openbsd.org
Date:
Thu, 16 Jan 2025 07:20:46 +0100

Download raw body.

Thread
On Wed, Jan 15, 2025 at 09:43:22PM GMT, Kirill A. Korinsky wrote:

> tech@
> 
> I'd like to sync mappings of GUID to pixel format with Linux 6.13-rc7.
> 
> Sources for used data:
>  - https://github.com/torvalds/linux/blob/v6.13-rc7/drivers/media/common/uvc.c
>  - https://github.com/torvalds/linux/blob/v6.13-rc7/include/linux/usb/uvc.h
> 
> Ok?

Why not, makes sense.  Also quickly regression tested.

ok mglocker@

> Index: sys/dev/usb/uvideo.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/usb/uvideo.c,v
> diff -u -p -r1.235 uvideo.c
> --- sys/dev/usb/uvideo.c	15 Jan 2025 20:34:50 -0000	1.235
> +++ sys/dev/usb/uvideo.c	15 Jan 2025 20:40:29 -0000
> @@ -392,7 +392,24 @@ const struct uvideo_map_fmts {
>  	{ UVIDEO_FORMAT_GUID_I420, V4L2_PIX_FMT_YUV420 },
>  	{ UVIDEO_FORMAT_GUID_Y800, V4L2_PIX_FMT_GREY },
>  	{ UVIDEO_FORMAT_GUID_Y8, V4L2_PIX_FMT_GREY },
> +	{ UVIDEO_FORMAT_GUID_D3DFMT_L8, V4L2_PIX_FMT_GREY },
>  	{ UVIDEO_FORMAT_GUID_KSMEDIA_L8_IR, V4L2_PIX_FMT_GREY },
> +	{ UVIDEO_FORMAT_GUID_BY8, V4L2_PIX_FMT_SBGGR8 },
> +	{ UVIDEO_FORMAT_GUID_BA81, V4L2_PIX_FMT_SBGGR8 },
> +	{ UVIDEO_FORMAT_GUID_GBRG, V4L2_PIX_FMT_SBGGR8 },
> +	{ UVIDEO_FORMAT_GUID_GRBG, V4L2_PIX_FMT_SBGGR8 },
> +	{ UVIDEO_FORMAT_GUID_RGGB, V4L2_PIX_FMT_SBGGR8 },
> +	{ UVIDEO_FORMAT_GUID_RGBP, V4L2_PIX_FMT_RGB565 },
> +	{ UVIDEO_FORMAT_GUID_D3DFMT_R5G6B5, V4L2_PIX_FMT_RGB565 },
> +	{ UVIDEO_FORMAT_GUID_BGR3, V4L2_PIX_FMT_BGR24 },
> +	{ UVIDEO_FORMAT_GUID_BGR4, V4L2_PIX_FMT_XBGR32 },
> +	{ UVIDEO_FORMAT_GUID_H265, V4L2_PIX_FMT_HEVC },
> +	{ UVIDEO_FORMAT_GUID_RW10, V4L2_PIX_FMT_SRGGB10P },
> +	{ UVIDEO_FORMAT_GUID_BG16, V4L2_PIX_FMT_SBGGR16 },
> +	{ UVIDEO_FORMAT_GUID_GB16, V4L2_PIX_FMT_SGBRG16 },
> +	{ UVIDEO_FORMAT_GUID_RG16, V4L2_PIX_FMT_SGBRG16 },
> +	{ UVIDEO_FORMAT_GUID_INVZ, V4L2_PIX_FMT_Z16 },
> +	{ UVIDEO_FORMAT_GUID_INVI, V4L2_PIX_FMT_Y10 },
>  };
>  
>  int
> Index: sys/dev/usb/uvideo.h
> ===================================================================
> RCS file: /cvs/src/sys/dev/usb/uvideo.h,v
> diff -u -p -r1.62 uvideo.h
> --- sys/dev/usb/uvideo.h	13 Jan 2025 15:32:36 -0000	1.62
> +++ sys/dev/usb/uvideo.h	15 Jan 2025 20:40:29 -0000
> @@ -316,9 +316,77 @@ struct usb_video_probe_commit {
>      'Y',  '8',  ' ',  ' ',  '\0', 0x00, 0x10, 0x00,	\
>      0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
>  
> +#define	UVIDEO_FORMAT_GUID_D3DFMT_L8	{		\
> +    0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,	\
> +    0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
> +
>  #define	UVIDEO_FORMAT_GUID_KSMEDIA_L8_IR	{	\
>      0x32, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00,	\
>      0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
> +
> +#define	UVIDEO_FORMAT_GUID_BY8	{			\
> +    'B',  'Y',  '8',  ' ',  0x00, 0x00, 0x10, 0x00,	\
> +    0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
> +
> +#define	UVIDEO_FORMAT_GUID_BA81	{			\
> +    'B',  'A',  '8',  '1',  0x00, 0x00, 0x10, 0x00,	\
> +    0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
> +
> +#define	UVIDEO_FORMAT_GUID_GBRG	{			\
> +    'G',  'B',  'R',  'G',  0x00, 0x00, 0x10, 0x00,	\
> +    0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
> +
> +#define	UVIDEO_FORMAT_GUID_GRBG	{			\
> +    'G',  'R',  'B',  'G',  0x00, 0x00, 0x10, 0x00,	\
> +    0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
> +
> +#define	UVIDEO_FORMAT_GUID_RGGB	{			\
> +    'R',  'G',  'G',  'B',  0x00, 0x00, 0x10, 0x00,	\
> +    0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
> +
> +#define	UVIDEO_FORMAT_GUID_RGBP	{			\
> +    'R',  'G',  'B',  'P',  0x00, 0x00, 0x10, 0x00,	\
> +    0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
> +
> +#define	UVIDEO_FORMAT_GUID_D3DFMT_R5G6B5	{	\
> +    0x7b, 0xeb, 0x36, 0xe4, 0x4f, 0x52, 0xce, 0x11,	\
> +    0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70 }
> +
> +#define	UVIDEO_FORMAT_GUID_BGR3	{			\
> +    0x7d, 0xeb, 0x36, 0xe4, 0x4f, 0x52, 0xce, 0x11,	\
> +    0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70 }
> +
> +#define	UVIDEO_FORMAT_GUID_BGR4	{			\
> +    0x7e, 0xeb, 0x36, 0xe4, 0x4f, 0x52, 0xce, 0x11,	\
> +    0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70 }
> +
> +#define	UVIDEO_FORMAT_GUID_H265	{			\
> +    'H',  '2',  '6',  '5',  0x00, 0x00, 0x10, 0x00,	\
> +    0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
> +
> +#define	UVIDEO_FORMAT_GUID_RW10	{			\
> +    'R',  'W',  '1',  '0',  0x00, 0x00, 0x10, 0x00,	\
> +    0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
> +
> +#define	UVIDEO_FORMAT_GUID_BG16	{			\
> +    'B',  'G',  '1',  '6',  0x00, 0x00, 0x10, 0x00,	\
> +    0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
> +
> +#define	UVIDEO_FORMAT_GUID_GB16	{			\
> +    'R',  'W',  '1',  '0',  0x00, 0x00, 0x10, 0x00,	\
> +    0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
> +
> +#define	UVIDEO_FORMAT_GUID_RG16	{			\
> +    'R',  'W',  '1',  '0',  0x00, 0x00, 0x10, 0x00,	\
> +    0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
> +
> +#define	UVIDEO_FORMAT_GUID_INVZ	{			\
> +    'I',  'N',  'V',  'Z',  0x90, 0x2d, 0x58, 0x4a,	\
> +    0x92, 0x0b, 0x77, 0x3f, 0x1f, 0x2c, 0x55, 0x6b }
> +
> +#define	UVIDEO_FORMAT_GUID_INVI	{			\
> +    'I',  'N',  'V',  'I',  0xdb, 0x57, 0x49, 0x5e,	\
> +    0x8e, 0x3f, 0xf4, 0x79, 0x53, 0x2b, 0x94, 0x6f }
>  
>  /*
>   * USB Video Payload MJPEG
> 
> 
> --
> wbr, Kirill
>