Re: [PATCH] ALSA: usb-audio: Don't refcount multiple accesses on the single clock

From: Takashi Iwai
Date: Wed Sep 07 2022 - 05:41:44 EST


On Wed, 07 Sep 2022 11:28:54 +0200,
Jason A. Donenfeld wrote:
>
> On Wed, Sep 07, 2022 at 10:00:46AM +0200, Takashi Iwai wrote:
> > On Mon, 05 Sep 2022 14:16:39 +0200,
> > Jason A. Donenfeld wrote:
> > >
> > > On Mon, Sep 5, 2022 at 1:44 PM Takashi Iwai <tiwai@xxxxxxx> wrote:
> > > > When you load snd-usb-audio with dyndbg=+p option, does it show the
> > > > new error message "Mismatched sample rate xxx"?
> > >
> > > No.
> >
> > What about the patch below?
> >
> >
> > Takashi
> >
> > -- 8< --
> > --- a/sound/usb/endpoint.c
> > +++ b/sound/usb/endpoint.c
> > @@ -925,6 +925,8 @@ void snd_usb_endpoint_close(struct snd_usb_audio *chip,
> > endpoint_set_interface(chip, ep, false);
> >
> > if (!--ep->opened) {
> > + if (ep->clock_ref && !atomic_read(&ep->clock_ref->locked))
> > + ep->clock_ref->rate = 0;
> > ep->iface = 0;
> > ep->altsetting = 0;
> > ep->cur_audiofmt = NULL;
>
> I think this works.

OK, thanks.

If this patch fixes, the problem is that the behavior of the
applications that do only PCM prepare without actually starting, then
closes. This left the last set rate unexpectedly.

I'm going to write up the proper patch.


Takashi