7bf1c56a90
For the Processing Unit and Camera Terminal descriptors defined in the UVC Gadget we currently hard-code values into their bmControls fields, which enumerates which controls the gadget is able to support. This isn't appropriate since only the userspace companion program to the kernel driver will know which controls are supported. Make the configfs attributes that point to those fields read/write so userspace can set them to appropriate values. Document the new behaviour at the same time so the functionality is clear. Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com> Link: https://lore.kernel.org/r/20230309105825.216745-1-dan.scally@ideasonboard.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
375 lines
13 KiB
Plaintext
375 lines
13 KiB
Plaintext
What: /config/usb-gadget/gadget/functions/uvc.name
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: UVC function directory
|
|
|
|
=================== =============================
|
|
streaming_maxburst 0..15 (ss only)
|
|
streaming_maxpacket 1..1023 (fs), 1..3072 (hs/ss)
|
|
streaming_interval 1..16
|
|
function_name string [32]
|
|
=================== =============================
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/control
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Control descriptors
|
|
|
|
All attributes read only except enable_interrupt_ep:
|
|
|
|
=================== =============================
|
|
bInterfaceNumber USB interface number for this
|
|
streaming interface
|
|
enable_interrupt_ep flag to enable the interrupt
|
|
endpoint for the VC interface
|
|
=================== =============================
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/control/class
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Class descriptors
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/control/class/ss
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Super speed control class descriptors
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/control/class/fs
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Full speed control class descriptors
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Terminal descriptors
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal/output
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Output terminal descriptors
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal/output/default
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Default output terminal descriptors
|
|
|
|
All attributes read only except bSourceID:
|
|
|
|
============== =============================================
|
|
iTerminal index of string descriptor
|
|
bSourceID id of the terminal to which this terminal
|
|
is connected
|
|
bAssocTerminal id of the input terminal to which this output
|
|
terminal is associated
|
|
wTerminalType terminal type
|
|
bTerminalID a non-zero id of this terminal
|
|
============== =============================================
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal/camera
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Camera terminal descriptors
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal/camera/default
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Default camera terminal descriptors
|
|
|
|
All attributes read only except bmControls, which is read/write:
|
|
|
|
======================== ====================================
|
|
bmControls bitmap specifying which controls are
|
|
supported for the video stream
|
|
wOcularFocalLength the value of Locular
|
|
wObjectiveFocalLengthMax the value of Lmin
|
|
wObjectiveFocalLengthMin the value of Lmax
|
|
iTerminal index of string descriptor
|
|
bAssocTerminal id of the output terminal to which
|
|
this terminal is connected
|
|
wTerminalType terminal type
|
|
bTerminalID a non-zero id of this terminal
|
|
======================== ====================================
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/control/processing
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Processing unit descriptors
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/control/processing/default
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Default processing unit descriptors
|
|
|
|
All attributes read only except bmControls, which is read/write:
|
|
|
|
=============== ========================================
|
|
iProcessing index of string descriptor
|
|
bmControls bitmap specifying which controls are
|
|
supported for the video stream
|
|
wMaxMultiplier maximum digital magnification x100
|
|
bSourceID id of the terminal to which this unit is
|
|
connected
|
|
bUnitID a non-zero id of this unit
|
|
=============== ========================================
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/control/extensions
|
|
Date: Nov 2022
|
|
KernelVersion: 6.1
|
|
Description: Extension unit descriptors
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/control/extensions/name
|
|
Date: Nov 2022
|
|
KernelVersion: 6.1
|
|
Description: Extension Unit (XU) Descriptor
|
|
|
|
bLength, bUnitID and iExtension are read-only. All others are
|
|
read-write.
|
|
|
|
================= ========================================
|
|
bLength size of the descriptor in bytes
|
|
bUnitID non-zero ID of this unit
|
|
guidExtensionCode Vendor-specific code identifying the XU
|
|
bNumControls number of controls in this XU
|
|
bNrInPins number of input pins for this unit
|
|
baSourceID list of the IDs of the units or terminals
|
|
to which this XU is connected
|
|
bControlSize size of the bmControls field in bytes
|
|
bmControls list of bitmaps detailing which vendor
|
|
specific controls are supported
|
|
iExtension index of a string descriptor that describes
|
|
this extension unit
|
|
================= ========================================
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/control/header
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Control header descriptors
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/control/header/name
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Specific control header descriptors
|
|
|
|
dwClockFrequency
|
|
bcdUVC
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/streaming
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Streaming descriptors
|
|
|
|
All attributes read only:
|
|
|
|
================ =============================
|
|
bInterfaceNumber USB interface number for this
|
|
streaming interface
|
|
================ =============================
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/class
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Streaming class descriptors
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/class/ss
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Super speed streaming class descriptors
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/class/hs
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: High speed streaming class descriptors
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/class/fs
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Full speed streaming class descriptors
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/color_matching
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Color matching descriptors
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/color_matching/default
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Default color matching descriptors
|
|
|
|
All attributes read/write:
|
|
|
|
======================== ======================================
|
|
bMatrixCoefficients matrix used to compute luma and
|
|
chroma values from the color primaries
|
|
bTransferCharacteristics optoelectronic transfer
|
|
characteristic of the source picture,
|
|
also called the gamma function
|
|
bColorPrimaries color primaries and the reference
|
|
white
|
|
======================== ======================================
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/color_matching/name
|
|
Date: Dec 2022
|
|
KernelVersion: 6.3
|
|
Description: Additional color matching descriptors
|
|
|
|
All attributes read/write:
|
|
|
|
======================== ======================================
|
|
bMatrixCoefficients matrix used to compute luma and
|
|
chroma values from the color primaries
|
|
bTransferCharacteristics optoelectronic transfer
|
|
characteristic of the source picture,
|
|
also called the gamma function
|
|
bColorPrimaries color primaries and the reference
|
|
white
|
|
======================== ======================================
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/mjpeg
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: MJPEG format descriptors
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/mjpeg/name
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Specific MJPEG format descriptors
|
|
|
|
All attributes read only,
|
|
except bmaControls and bDefaultFrameIndex:
|
|
|
|
=================== =====================================
|
|
bFormatIndex unique id for this format descriptor;
|
|
only defined after parent header is
|
|
linked into the streaming class;
|
|
read-only
|
|
bmaControls this format's data for bmaControls in
|
|
the streaming header
|
|
bmInterlaceFlags specifies interlace information,
|
|
read-only
|
|
bAspectRatioY the X dimension of the picture aspect
|
|
ratio, read-only
|
|
bAspectRatioX the Y dimension of the picture aspect
|
|
ratio, read-only
|
|
bmFlags characteristics of this format,
|
|
read-only
|
|
bDefaultFrameIndex optimum frame index for this stream
|
|
=================== =====================================
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/mjpeg/name/name
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Specific MJPEG frame descriptors
|
|
|
|
========================= =====================================
|
|
bFrameIndex unique id for this framedescriptor;
|
|
only defined after parent format is
|
|
linked into the streaming header;
|
|
read-only
|
|
dwFrameInterval indicates how frame interval can be
|
|
programmed; a number of values
|
|
separated by newline can be specified
|
|
dwDefaultFrameInterval the frame interval the device would
|
|
like to use as default
|
|
dwMaxVideoFrameBufferSize the maximum number of bytes the
|
|
compressor will produce for a video
|
|
frame or still image
|
|
dwMaxBitRate the maximum bit rate at the shortest
|
|
frame interval in bps
|
|
dwMinBitRate the minimum bit rate at the longest
|
|
frame interval in bps
|
|
wHeight height of decoded bitmap frame in px
|
|
wWidth width of decoded bitmam frame in px
|
|
bmCapabilities still image support, fixed frame-rate
|
|
support
|
|
========================= =====================================
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/uncompressed
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Uncompressed format descriptors
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/uncompressed/name
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Specific uncompressed format descriptors
|
|
|
|
================== =======================================
|
|
bFormatIndex unique id for this format descriptor;
|
|
only defined after parent header is
|
|
linked into the streaming class;
|
|
read-only
|
|
bmaControls this format's data for bmaControls in
|
|
the streaming header
|
|
bmInterlaceFlags specifies interlace information,
|
|
read-only
|
|
bAspectRatioY the X dimension of the picture aspect
|
|
ratio, read-only
|
|
bAspectRatioX the Y dimension of the picture aspect
|
|
ratio, read-only
|
|
bDefaultFrameIndex optimum frame index for this stream
|
|
bBitsPerPixel number of bits per pixel used to
|
|
specify color in the decoded video
|
|
frame
|
|
guidFormat globally unique id used to identify
|
|
stream-encoding format
|
|
================== =======================================
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/uncompressed/name/name
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Specific uncompressed frame descriptors
|
|
|
|
========================= =====================================
|
|
bFrameIndex unique id for this framedescriptor;
|
|
only defined after parent format is
|
|
linked into the streaming header;
|
|
read-only
|
|
dwFrameInterval indicates how frame interval can be
|
|
programmed; a number of values
|
|
separated by newline can be specified
|
|
dwDefaultFrameInterval the frame interval the device would
|
|
like to use as default
|
|
dwMaxVideoFrameBufferSize the maximum number of bytes the
|
|
compressor will produce for a video
|
|
frame or still image
|
|
dwMaxBitRate the maximum bit rate at the shortest
|
|
frame interval in bps
|
|
dwMinBitRate the minimum bit rate at the longest
|
|
frame interval in bps
|
|
wHeight height of decoded bitmap frame in px
|
|
wWidth width of decoded bitmam frame in px
|
|
bmCapabilities still image support, fixed frame-rate
|
|
support
|
|
========================= =====================================
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/header
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Streaming header descriptors
|
|
|
|
What: /config/usb-gadget/gadget/functions/uvc.name/streaming/header/name
|
|
Date: Dec 2014
|
|
KernelVersion: 4.0
|
|
Description: Specific streaming header descriptors
|
|
|
|
All attributes read only:
|
|
|
|
==================== =====================================
|
|
bTriggerUsage how the host software will respond to
|
|
a hardware trigger interrupt event
|
|
bTriggerSupport flag specifying if hardware
|
|
triggering is supported
|
|
bStillCaptureMethod method of still image capture
|
|
supported
|
|
bTerminalLink id of the output terminal to which
|
|
the video endpoint of this interface
|
|
is connected
|
|
bmInfo capabilities of this video streaming
|
|
interface
|
|
==================== =====================================
|
|
|
|
What: /sys/class/udc/udc.name/device/gadget/video4linux/video.name/function_name
|
|
Date: May 2018
|
|
KernelVersion: 4.19
|
|
Description: UVC configfs function instance name
|