On 8/29/24 21:40, Wesley Cheng wrote: > Expose API for creation of a jack control for notifying of available > devices that are plugged in/discovered, and that support offloading. This > allows for control names to be standardized across implementations of USB > audio offloading. > > Signed-off-by: Wesley Cheng <quic_wcheng@xxxxxxxxxxx> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx> Some nit-picks below. > diff --git a/include/sound/soc-usb.h b/include/sound/soc-usb.h > index b550ee87b748..5c788cbfa82e 100644 > --- a/include/sound/soc-usb.h > +++ b/include/sound/soc-usb.h > @@ -6,6 +6,8 @@ > #ifndef __LINUX_SND_SOC_USB_H > #define __LINUX_SND_SOC_USB_H > > +#include <sound/soc.h> > + nit-pick: move this to patch 12/33 > diff --git a/sound/soc/soc-usb.c b/sound/soc/soc-usb.c > index 8ade2060d8fe..3d5354298206 100644 > --- a/sound/soc/soc-usb.c > +++ b/sound/soc/soc-usb.c > @@ -4,8 +4,10 @@ > */ > #include <linux/of.h> > #include <linux/usb.h> > -#include <sound/soc.h> > + nit-pick: move this to patch 12/33 > +#include <sound/jack.h> > #include <sound/soc-usb.h> > + > #include "../usb/card.h" > > static DEFINE_MUTEX(ctx_mutex); > @@ -57,6 +59,64 @@ static struct snd_soc_usb *snd_soc_find_usb_ctx(struct device *dev) > return ctx ? ctx : NULL; > } > > +/* SOC USB sound kcontrols */ > +/** > + * snd_soc_usb_setup_offload_jack() - Create USB offloading jack > + * @component: USB DPCM backend DAI component > + * @jack: jack structure to create > + * > + * Creates a jack device for notifying userspace of the availability > + * of an offload capable device. > + * > + * Returns 0 on success, negative on error. > + * > + */ > +int snd_soc_usb_setup_offload_jack(struct snd_soc_component *component, > + struct snd_soc_jack *jack) > +{ > + int ret; > + > + ret = snd_soc_card_jack_new(component->card, "USB Offload Jack", > + SND_JACK_USB, jack); > + if (ret < 0) { > + dev_err(component->card->dev, "Unable to add USB offload jack\n"); nit-pick: be consistent and return the code in the error log as done below. > + return ret; > + } > + > + ret = snd_soc_component_set_jack(component, jack, NULL); > + if (ret) { > + dev_err(component->card->dev, "Failed to set jack: %d\n", ret); > + return ret; > + } > + > + return 0; > +}