> +static inline int snd_soc_usb_setup_offload_jack(struct snd_soc_component *component, > + struct snd_soc_jack *jack) > +{ > + return -ENODEV; > +} > + > +static inline int snd_soc_usb_disable_offload_jack(struct snd_soc_component *component) > +{ > + return -ENODEV; > +} usually fallback functions return 0, is the error code intentional? > +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 Playback Jack", do we need the reference to Playback? > + SND_JACK_HEADPHONE, jack); wondering if there would be any merit in defining a new type of jack, e.g. SND_JACK_USB since here the purpose is to notify that there's a USB device connected. The type of device does not really matter, does it? > + if (ret < 0) { > + dev_err(component->card->dev, "Unable to add USB offload jack\n"); > + 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;