11diff --git a/drivers/usb/gadget/function/f_uac2.c b/drivers/usb/gadget/function/f_uac2.c
2- index ae29871bdcc1..1714ab2277e3 100644
2+ index ae29871bdcc1..4ffbd525e468 100644
33--- a/drivers/usb/gadget/function/f_uac2.c
44+++ b/drivers/usb/gadget/function/f_uac2.c
5- @@ -108,7 +108,7 @@ enum {
5+ @@ -104,23 +104,31 @@ enum {
6+ STR_AS_OUT_ALT1,
7+ STR_AS_IN_ALT0,
8+ STR_AS_IN_ALT1,
9+ + STR_DESC_CH_NAMES,
10+ + STR_DESC_CH_NAMES_2,
11+ + STR_DESC_CH_NAMES_3,
12+ + STR_DESC_CH_NAMES_4,
13+ };
614
715 static struct usb_string strings_fn[] = {
816 /* [STR_ASSOC].s = DYNAMIC, */
917- [STR_IF_CTRL].s = "Topology Control",
1018+ [STR_IF_CTRL].s = "MOD Dwarf Control",
1119 [STR_CLKSRC_IN].s = "Input Clock",
1220 [STR_CLKSRC_OUT].s = "Output Clock",
13- [STR_USB_IT].s = "USBH Out",
14- @@ -117,10 +117,10 @@ static struct usb_string strings_fn[] = {
15- [STR_IO_OT].s = "USBD In",
21+ - [STR_USB_IT].s = "USBH Out",
22+ - [STR_IO_IT].s = "USBD Out",
23+ - [STR_USB_OT].s = "USBH In",
24+ - [STR_IO_OT].s = "USBD In",
25+ + [STR_USB_IT].s = "Playback Input terminal",
26+ + [STR_IO_IT].s = "Capture Input terminal",
27+ + [STR_USB_OT].s = "Capture Output terminal",
28+ + [STR_IO_OT].s = "Playback Output terminal",
1629 [STR_FU_IN].s = "Capture Volume",
1730 [STR_FU_OUT].s = "Playback Volume",
1831- [STR_AS_OUT_ALT0].s = "Playback Inactive",
@@ -23,6 +36,59 @@ index ae29871bdcc1..1714ab2277e3 100644
2336+ [STR_AS_OUT_ALT1].s = "MOD Dwarf Playback (Active)",
2437+ [STR_AS_IN_ALT0].s = "MOD Dwarf Capture",
2538+ [STR_AS_IN_ALT1].s = "MOD Dwarf Capture (Active)",
39+ + [STR_DESC_CH_NAMES].s = "Pre-FX 1",
40+ + [STR_DESC_CH_NAMES_2].s = "Pre-FX 2",
41+ + [STR_DESC_CH_NAMES_3].s = "Post-FX 1",
42+ + [STR_DESC_CH_NAMES_4].s = "Post-FX 2",
2643 { },
2744 };
2845
46+ @@ -201,7 +209,7 @@ static struct uac2_input_terminal_descriptor usb_out_it_desc = {
47+ .wTerminalType = cpu_to_le16(UAC_TERMINAL_STREAMING),
48+ .bAssocTerminal = 0,
49+ /* .bCSourceID = DYNAMIC */
50+ - .iChannelNames = 0,
51+ + /* .iChannelNames = DYNAMIC */
52+ .bmControls = cpu_to_le16(CONTROL_RDWR << COPY_CTRL),
53+ };
54+
55+ @@ -215,7 +223,7 @@ static struct uac2_input_terminal_descriptor io_in_it_desc = {
56+ .wTerminalType = cpu_to_le16(0x603),
57+ .bAssocTerminal = 0,
58+ /* .bCSourceID = DYNAMIC */
59+ - .iChannelNames = 0,
60+ + /* .iChannelNames = DYNAMIC */
61+ .bmControls = cpu_to_le16(CONTROL_RDWR << COPY_CTRL),
62+ };
63+
64+ @@ -1069,7 +1077,9 @@ afunc_bind(struct usb_configuration *cfg, struct usb_function *fn)
65+ in_clk_src_desc.iClockSource = us[STR_CLKSRC_IN].id;
66+ out_clk_src_desc.iClockSource = us[STR_CLKSRC_OUT].id;
67+ usb_out_it_desc.iTerminal = us[STR_USB_IT].id;
68+ + usb_out_it_desc.iChannelNames = us[STR_DESC_CH_NAMES].id;
69+ io_in_it_desc.iTerminal = us[STR_IO_IT].id;
70+ + io_in_it_desc.iChannelNames = us[STR_DESC_CH_NAMES].id;
71+ usb_in_ot_desc.iTerminal = us[STR_USB_OT].id;
72+ io_out_ot_desc.iTerminal = us[STR_IO_OT].id;
73+ std_as_out_if0_desc.iInterface = us[STR_AS_OUT_ALT0].id;
74+ @@ -1088,16 +1098,15 @@ afunc_bind(struct usb_configuration *cfg, struct usb_function *fn)
75+ *i_feature = us[STR_FU_IN].id;
76+ }
77+
78+ -
79+ /* Initialize the configurable parameters */
80+ usb_out_it_desc.bNrChannels = num_channels(uac2_opts->c_chmask);
81+ - usb_out_it_desc.bmChannelConfig = cpu_to_le32(uac2_opts->c_chmask);
82+ + usb_out_it_desc.bmChannelConfig = 0;
83+ io_in_it_desc.bNrChannels = num_channels(uac2_opts->p_chmask);
84+ - io_in_it_desc.bmChannelConfig = cpu_to_le32(uac2_opts->p_chmask);
85+ + io_in_it_desc.bmChannelConfig = 0;
86+ as_out_hdr_desc.bNrChannels = num_channels(uac2_opts->c_chmask);
87+ - as_out_hdr_desc.bmChannelConfig = cpu_to_le32(uac2_opts->c_chmask);
88+ + as_out_hdr_desc.bmChannelConfig = 0;
89+ as_in_hdr_desc.bNrChannels = num_channels(uac2_opts->p_chmask);
90+ - as_in_hdr_desc.bmChannelConfig = cpu_to_le32(uac2_opts->p_chmask);
91+ + as_in_hdr_desc.bmChannelConfig = 0;
92+ as_out_fmt1_desc.bSubslotSize = uac2_opts->c_ssize;
93+ as_out_fmt1_desc.bBitResolution = uac2_opts->c_ssize * 8;
94+ as_in_fmt1_desc.bSubslotSize = uac2_opts->p_ssize;
0 commit comments