I just realized the name semantics are backwards in the original patch as well. (c_/p_ are device centric semantics and I made them host centric) I will update that and send out a new version. -- Chris Wulff On Sat, Aug 3, 2024 at 7:27 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. > > discussion thread for api changes for alt mode settings: > https://lore.kernel.org/linux-usb/35be4668-58d3-894a-72cf-de1afaacae45@xxxxxxxxxxx/T/ > > Signed-off-by: Chris Wulff <crwulff@xxxxxxxxx> > --- > v2: Moved discussion thread tidbit into commit message > v1: https://lore.kernel.org/all/20240803155215.2746444-2-crwulff@xxxxxxxxx/ > --- > .../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; > -- > 2.43.0 >