Commit b48f8939 authored by Ruslan Bilovol's avatar Ruslan Bilovol Committed by Greg Kroah-Hartman
Browse files

usb: audio-v2: add ability to define feature unit descriptor



Similar to UAC1 spec, UAC2 feature unit descriptor
has variable size.

Current audio-v2 feature unit descriptor structure
is used for parsing descriptors, but can't be used
to define your own descriptor.

Add a new macro similar to what audio v1 already has.

Signed-off-by: default avatarRuslan Bilovol <ruslan.bilovol@gmail.com>
Signed-off-by: default avatarPavel Hofman <pavel.hofman@ivitera.com>
Link: https://lore.kernel.org/r/20210712125529.76070-2-pavel.hofman@ivitera.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0c29ec92
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -156,6 +156,20 @@ struct uac2_feature_unit_descriptor {
	__u8 bmaControls[]; /* variable length */
} __attribute__((packed));

#define UAC2_DT_FEATURE_UNIT_SIZE(ch)		(6 + ((ch) + 1) * 4)

/* As above, but more useful for defining your own descriptors: */
#define DECLARE_UAC2_FEATURE_UNIT_DESCRIPTOR(ch)		\
struct uac2_feature_unit_descriptor_##ch {			\
	__u8  bLength;						\
	__u8  bDescriptorType;					\
	__u8  bDescriptorSubtype;				\
	__u8  bUnitID;						\
	__u8  bSourceID;					\
	__le32 bmaControls[ch + 1];				\
	__u8  iFeature;						\
} __packed

/* 4.7.2.10 Effect Unit Descriptor */

struct uac2_effect_unit_descriptor {