On Sat, Aug 3, 2024 at 1:23 PM Krishna Kurapati PSSNV <quic_kriskura@xxxxxxxxxxx> wrote: > > > > On 8/3/2024 9:22 PM, crwulff@xxxxxxxxx wrote: > > From: Chris Wulff <crwulff@xxxxxxxxx> > > > > This changes the UAPI to align with disussion of alt settings work. > > > > fu_name is renamed to fu_vol_name, and alt settings mode names > > are removed for now in favor of future work where they will be > > settable in subdirectories for each alt mode. > > > > Just a nit. > > It would be good to keep the discussion thread link inside commit text > rather than below the SoB. It would give more context when the patch is > applied. Ok, I can move it. I wasn't sure if it was appropriate to include in the commit message or not. -- Chris > > Regards, > Krishna, > > > Signed-off-by: Chris Wulff <crwulff@xxxxxxxxx> > > --- > > discussion thread for api changes for alt mode settings: > > https://lore.kernel.org/linux-usb/35be4668-58d3-894a-72cf-de1afaacae45@xxxxxxxxxxx/T/ > > --- > > .../ABI/testing/configfs-usb-gadget-uac1 | 8 ++--- > > Documentation/usb/gadget-testing.rst | 8 ++--- > > drivers/usb/gadget/function/f_uac1.c | 36 +++++++------------ > > drivers/usb/gadget/function/u_uac1.h | 8 ++--- > > 4 files changed, 18 insertions(+), 42 deletions(-) > > > > diff --git a/Documentation/ABI/testing/configfs-usb-gadget-uac1 b/Documentation/ABI/testing/configfs-usb-gadget-uac1 > > index cf93b98b274d..64188a85592b 100644 > > --- a/Documentation/ABI/testing/configfs-usb-gadget-uac1 > > +++ b/Documentation/ABI/testing/configfs-usb-gadget-uac1 > > @@ -33,13 +33,9 @@ Description: > > p_it_name playback input terminal name > > p_it_ch_name playback channels name > > p_ot_name playback output terminal name > > - p_fu_name playback functional unit name > > - p_alt0_name playback alt mode 0 name > > - p_alt1_name playback alt mode 1 name > > + p_fu_vol_name playback mute/volume functional unit name > > c_it_name capture input terminal name > > c_it_ch_name capture channels name > > c_ot_name capture output terminal name > > - c_fu_name capture functional unit name > > - c_alt0_name capture alt mode 0 name > > - c_alt1_name capture alt mode 1 name > > + c_fu_vol_name capture mute/volume functional unit name > > ===================== ======================================= > > diff --git a/Documentation/usb/gadget-testing.rst b/Documentation/usb/gadget-testing.rst > > index a89b49e639c3..7a94490fb2fd 100644 > > --- a/Documentation/usb/gadget-testing.rst > > +++ b/Documentation/usb/gadget-testing.rst > > @@ -960,15 +960,11 @@ The uac1 function provides these attributes in its function directory: > > p_it_name playback input terminal name > > p_it_ch_name playback channels name > > p_ot_name playback output terminal name > > - p_fu_name playback functional unit name > > - p_alt0_name playback alt mode 0 name > > - p_alt1_name playback alt mode 1 name > > + p_fu_vol_name playback mute/volume functional unit name > > c_it_name capture input terminal name > > c_it_ch_name capture channels name > > c_ot_name capture output terminal name > > - c_fu_name capture functional unit name > > - c_alt0_name capture alt mode 0 name > > - c_alt1_name capture alt mode 1 name > > + c_fu_vol_name capture mute/volume functional unit name > > ================ ==================================================== > > > > The attributes have sane default values. > > diff --git a/drivers/usb/gadget/function/f_uac1.c b/drivers/usb/gadget/function/f_uac1.c > > index 06a220fb7a87..bb36ce2be569 100644 > > --- a/drivers/usb/gadget/function/f_uac1.c > > +++ b/drivers/usb/gadget/function/f_uac1.c > > @@ -1254,16 +1254,16 @@ static int f_audio_bind(struct usb_configuration *c, struct usb_function *f) > > strings_uac1[STR_USB_OUT_IT].s = audio_opts->p_it_name; > > strings_uac1[STR_USB_OUT_IT_CH_NAMES].s = audio_opts->p_it_ch_name; > > strings_uac1[STR_IO_OUT_OT].s = audio_opts->p_ot_name; > > - strings_uac1[STR_FU_OUT].s = audio_opts->p_fu_name; > > - strings_uac1[STR_AS_OUT_IF_ALT0].s = audio_opts->p_alt0_name; > > - strings_uac1[STR_AS_OUT_IF_ALT1].s = audio_opts->p_alt1_name; > > + strings_uac1[STR_FU_OUT].s = audio_opts->p_fu_vol_name; > > + strings_uac1[STR_AS_OUT_IF_ALT0].s = "Playback Inactive"; > > + strings_uac1[STR_AS_OUT_IF_ALT1].s = "Playback Active"; > > > > strings_uac1[STR_IO_IN_IT].s = audio_opts->c_it_name; > > strings_uac1[STR_IO_IN_IT_CH_NAMES].s = audio_opts->c_it_ch_name; > > strings_uac1[STR_USB_IN_OT].s = audio_opts->c_ot_name; > > - strings_uac1[STR_FU_IN].s = audio_opts->c_fu_name; > > - strings_uac1[STR_AS_IN_IF_ALT0].s = audio_opts->c_alt0_name; > > - strings_uac1[STR_AS_IN_IF_ALT1].s = audio_opts->c_alt1_name; > > + strings_uac1[STR_FU_IN].s = audio_opts->c_fu_vol_name; > > + strings_uac1[STR_AS_IN_IF_ALT0].s = "Capture Inactive"; > > + strings_uac1[STR_AS_IN_IF_ALT1].s = "Capture Active"; > > > > us = usb_gstrings_attach(cdev, uac1_strings, ARRAY_SIZE(strings_uac1)); > > if (IS_ERR(us)) > > @@ -1687,16 +1687,12 @@ UAC1_ATTRIBUTE_STRING(function_name); > > UAC1_ATTRIBUTE_STRING(p_it_name); > > UAC1_ATTRIBUTE_STRING(p_it_ch_name); > > UAC1_ATTRIBUTE_STRING(p_ot_name); > > -UAC1_ATTRIBUTE_STRING(p_fu_name); > > -UAC1_ATTRIBUTE_STRING(p_alt0_name); > > -UAC1_ATTRIBUTE_STRING(p_alt1_name); > > +UAC1_ATTRIBUTE_STRING(p_fu_vol_name); > > > > UAC1_ATTRIBUTE_STRING(c_it_name); > > UAC1_ATTRIBUTE_STRING(c_it_ch_name); > > UAC1_ATTRIBUTE_STRING(c_ot_name); > > -UAC1_ATTRIBUTE_STRING(c_fu_name); > > -UAC1_ATTRIBUTE_STRING(c_alt0_name); > > -UAC1_ATTRIBUTE_STRING(c_alt1_name); > > +UAC1_ATTRIBUTE_STRING(c_fu_vol_name); > > > > static struct configfs_attribute *f_uac1_attrs[] = { > > &f_uac1_opts_attr_c_chmask, > > @@ -1724,16 +1720,12 @@ static struct configfs_attribute *f_uac1_attrs[] = { > > &f_uac1_opts_attr_p_it_name, > > &f_uac1_opts_attr_p_it_ch_name, > > &f_uac1_opts_attr_p_ot_name, > > - &f_uac1_opts_attr_p_fu_name, > > - &f_uac1_opts_attr_p_alt0_name, > > - &f_uac1_opts_attr_p_alt1_name, > > + &f_uac1_opts_attr_p_fu_vol_name, > > > > &f_uac1_opts_attr_c_it_name, > > &f_uac1_opts_attr_c_it_ch_name, > > &f_uac1_opts_attr_c_ot_name, > > - &f_uac1_opts_attr_c_fu_name, > > - &f_uac1_opts_attr_c_alt0_name, > > - &f_uac1_opts_attr_c_alt1_name, > > + &f_uac1_opts_attr_c_fu_vol_name, > > > > NULL, > > }; > > @@ -1792,16 +1784,12 @@ static struct usb_function_instance *f_audio_alloc_inst(void) > > scnprintf(opts->p_it_name, sizeof(opts->p_it_name), "Playback Input terminal"); > > scnprintf(opts->p_it_ch_name, sizeof(opts->p_it_ch_name), "Playback Channels"); > > scnprintf(opts->p_ot_name, sizeof(opts->p_ot_name), "Playback Output terminal"); > > - scnprintf(opts->p_fu_name, sizeof(opts->p_fu_name), "Playback Volume"); > > - scnprintf(opts->p_alt0_name, sizeof(opts->p_alt0_name), "Playback Inactive"); > > - scnprintf(opts->p_alt1_name, sizeof(opts->p_alt1_name), "Playback Active"); > > + scnprintf(opts->p_fu_vol_name, sizeof(opts->p_fu_vol_name), "Playback Volume"); > > > > scnprintf(opts->c_it_name, sizeof(opts->c_it_name), "Capture Input terminal"); > > scnprintf(opts->c_it_ch_name, sizeof(opts->c_it_ch_name), "Capture Channels"); > > scnprintf(opts->c_ot_name, sizeof(opts->c_ot_name), "Capture Output terminal"); > > - scnprintf(opts->c_fu_name, sizeof(opts->c_fu_name), "Capture Volume"); > > - scnprintf(opts->c_alt0_name, sizeof(opts->c_alt0_name), "Capture Inactive"); > > - scnprintf(opts->c_alt1_name, sizeof(opts->c_alt1_name), "Capture Active"); > > + scnprintf(opts->c_fu_vol_name, sizeof(opts->c_fu_vol_name), "Capture Volume"); > > > > return &opts->func_inst; > > } > > diff --git a/drivers/usb/gadget/function/u_uac1.h b/drivers/usb/gadget/function/u_uac1.h > > index 67784de9782b..feb6eb76462f 100644 > > --- a/drivers/usb/gadget/function/u_uac1.h > > +++ b/drivers/usb/gadget/function/u_uac1.h > > @@ -57,16 +57,12 @@ struct f_uac1_opts { > > char p_it_name[USB_MAX_STRING_LEN]; > > char p_it_ch_name[USB_MAX_STRING_LEN]; > > char p_ot_name[USB_MAX_STRING_LEN]; > > - char p_fu_name[USB_MAX_STRING_LEN]; > > - char p_alt0_name[USB_MAX_STRING_LEN]; > > - char p_alt1_name[USB_MAX_STRING_LEN]; > > + char p_fu_vol_name[USB_MAX_STRING_LEN]; > > > > char c_it_name[USB_MAX_STRING_LEN]; > > char c_it_ch_name[USB_MAX_STRING_LEN]; > > char c_ot_name[USB_MAX_STRING_LEN]; > > - char c_fu_name[USB_MAX_STRING_LEN]; > > - char c_alt0_name[USB_MAX_STRING_LEN]; > > - char c_alt1_name[USB_MAX_STRING_LEN]; > > + char c_fu_vol_name[USB_MAX_STRING_LEN]; > > > > struct mutex lock; > > int refcnt;