From e3c5b24eedefd08eb78628fe2a8d4cae1802c64c Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 27 May 2018 00:04:05 +0300 Subject: configfs: Parse UVC formats, frames and intervals Extend the ConfigFS parser to parse UVC formats and intervals. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham --- configfs.h | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'configfs.h') diff --git a/configfs.h b/configfs.h index 9f7f377..e5a7efa 100644 --- a/configfs.h +++ b/configfs.h @@ -10,6 +10,8 @@ #ifndef __CONFIGFS_H__ #define __CONFIGFS_H__ +#include + /* * struct uvc_function_config_endpoint - Endpoint parameters * @bInterval: Transfer interval (interrupt and isochronous only) @@ -38,14 +40,51 @@ struct uvc_function_config_control { struct uvc_function_config_interface intf; }; +/* + * struct uvc_function_config_frame - Streaming frame parameters + * @index: Frame index in the UVC descriptors + * @width: Frame width in pixels + * @height: Frame height in pixels + * @num_intervals: Number of entries in the intervals array + * @intervals: Array of frame intervals + */ +struct uvc_function_config_frame { + unsigned int index; + unsigned int width; + unsigned int height; + unsigned int num_intervals; + unsigned int *intervals; +}; + +/* + * struct uvc_function_config_format - Streaming format parameters + * @index: Format index in the UVC descriptors + * @guid: Format GUID + * @fcc: V4L2 pixel format + * @num_frames: Number of entries in the frames array + * @frames: Array of frame descriptors + */ +struct uvc_function_config_format { + unsigned int index; + uint8_t guid[16]; + unsigned int fcc; + unsigned int num_frames; + struct uvc_function_config_frame *frames; +}; + /* * struct uvc_function_config_streaming - Streaming interface parameters * @intf: Generic interface parameters * @ep: Endpoint parameters + * @num_formats: Number of entries in the formats array + * @formats: Array of format descriptors */ struct uvc_function_config_streaming { struct uvc_function_config_interface intf; struct uvc_function_config_endpoint ep; + + unsigned int num_formats; + struct uvc_function_config_format *formats; }; /* -- cgit v1.2.3