[alsa-devel] no reset_resume for driver snd-usb-audio for logitech headset H600

Takashi Iwai tiwai at suse.de
Wed Oct 9 11:13:44 CEST 2013


At Wed, 09 Oct 2013 10:41:57 +0200,
Clemens Ladisch wrote:
> 
> Takashi Iwai wrote:
> >> On Tue, 8 Oct 2013 baumber at hotmail.com wrote:
> >>> https://bugzilla.kernel.org/show_bug.cgi?id=62691
> >>>
> >>> Summary: no reset_resume for driver snd-usb-audio for logitech headset H600
> >
> > How about simply applying the same resume for reset_resume like below?
> >
> > ---
> >
> > diff --git a/sound/usb/card.c b/sound/usb/card.c
> > index 9d9de8d..c591a83 100644
> > --- a/sound/usb/card.c
> > +++ b/sound/usb/card.c
> > @@ -747,6 +747,7 @@ static struct usb_driver usb_audio_driver = {
> >  	.disconnect =	usb_audio_disconnect,
> >  	.suspend =	usb_audio_suspend,
> >  	.resume =	usb_audio_resume,
> > +	.reset_resume =	usb_audio_resume,
> >  	.id_table =	usb_audio_ids,
> >  	.supports_autosuspend = 1,
> >  };
> 
> When the device was reset, the state of all mixer controls has been
> lost.  Disconnecting the card (the default behaviour without
> reset_resume) is the correct thing to do in this situation.

Ah, I somehow thought we resume the mixer control values as well (as
they are cached in the driver).  So it's possible to resume these in
reset_resume case, in theory, too.

But, not all stuff has been cached, e.g. the quirk stuff may be
handled exceptionally.

> Userspace should pick up the USB device again when it reappears.
> (But it doesn't.  Is this a PulseAudio or a KDE problem?)

PulseAudio shows the problem, AFAIK.  IIRC, it's a bit tricky to
achieve this because it can be other 

> And why does the kernel whine about the lack of a callback that is
> documented as being optional?

Indeed...


Takashi


More information about the Alsa-devel mailing list