On Wed, Mar 08, 2023 at 03:57:33PM -0800, Wesley Cheng wrote: > -static const struct audioformat * > +const struct audioformat * > find_format(struct list_head *fmt_list_head, snd_pcm_format_t format, > unsigned int rate, unsigned int channels, bool strict_match, > struct snd_usb_substream *subs) > @@ -147,8 +147,9 @@ find_format(struct list_head *fmt_list_head, snd_pcm_format_t format, > } > return found; > } > +EXPORT_SYMBOL_GPL(find_format); This is a horrible name for the global symbol namespace, right? It needs a "snd_" prefix at the very least, maybe even more. > > -static const struct audioformat * > +const struct audioformat * > find_substream_format(struct snd_usb_substream *subs, > const struct snd_pcm_hw_params *params) > { > @@ -156,6 +157,7 @@ find_substream_format(struct snd_usb_substream *subs, > params_rate(params), params_channels(params), > true, subs); > } > +EXPORT_SYMBOL_GPL(find_substream_format); Same here. > > bool snd_usb_pcm_has_fixed_rate(struct snd_usb_substream *subs) > { > @@ -446,7 +448,7 @@ int snd_usb_pcm_resume(struct snd_usb_stream *as) > return 0; > } > > -static void close_endpoints(struct snd_usb_audio *chip, > +void close_endpoints(struct snd_usb_audio *chip, > struct snd_usb_substream *subs) > { > if (subs->data_endpoint) { > @@ -460,6 +462,7 @@ static void close_endpoints(struct snd_usb_audio *chip, > subs->sync_endpoint = NULL; > } > } > +EXPORT_SYMBOL(close_endpoints); Same here. thanks, greg k-h