The current UVC gadget implementation hardcodes a single color matching descriptor and includes it in the payload of USB descriptors a single time following all the format and frame descriptors. This is inflexible, and additionally applies only to the _last_ format in the array of descriptors. This series extends the support such that the default descriptor can be amended and is included once-per-format instead of once-only, it then adds the ability to create new color matching descriptors and associate them with particular formats. The default color matching descriptor is retained and used where the user does not link a new color matching descriptor to the format, so the default interaction with userspace is unchanged from the current implementation. Daniel Scally (7): usb: gadget: usb: Remove "default" from color matching attributes usb: uvc: Enumerate valid values for color matching usb: gadget: uvc: Add struct for color matching in configs usb: gadget: uvc: Copy color matching descriptor for each frame usb: gadget: uvc: Remove the hardcoded default color matching usb: gadget: uvc: Make color matching attributes read/write usb: gadget: uvc: Allow creating new color matching descriptors .../ABI/testing/configfs-usb-gadget-uvc | 19 +- drivers/usb/gadget/function/f_uvc.c | 9 - drivers/usb/gadget/function/u_uvc.h | 1 - drivers/usb/gadget/function/uvc_configfs.c | 278 ++++++++++++++++-- drivers/usb/gadget/function/uvc_configfs.h | 22 +- include/uapi/linux/usb/video.h | 30 ++ 6 files changed, 311 insertions(+), 48 deletions(-) -- 2.34.1