Re: [PATCH] ALSA: usb-audio: Fix "cannot set freq 48000 to ep 0x3" msgs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 05 Jun 2023 15:21:51 +0200,
Joakim Tjernlund wrote:
> 
> On Mon, 2023-06-05 at 09:39 +0200, Takashi Iwai wrote:
> > On Thu, 01 Jun 2023 16:28:05 +0200,
> > Joakim Tjernlund wrote:
> > > 
> > > Adding Michael Ralston <michael@xxxxxxxxxxxxx>
> > > 
> > > He did have problems with his behringer UMC404HD device when this whole seq. was removed.
> > > Ralston, can you try if the below change affects your device?
> > 
> > Sorry for the late reaction, as I've been off in the last weeks.
> 
> NP.
> 
> > 
> > The code sequence there seems pretty sensitive, and swapping or
> > dropping the call might break things easily on certain devices,
> > unfortunately.  So, I guess we can't take the patch as is.  If any, we
> > need to fiddle the call order depending on the device quirk or such.
> > I guess we may try to fit with the existing quirk flag.  Let me check
> > it later.
> 
> yes, this is tricky. To me it look like this code will always set 48000 sample rate and
> not all devices support that on all EPs.
> Maybe one can get away with not setting sample rate at all? Just guessing though.

I guess it should work without setting the rate explicitly, but as
already mentioned, some devices (firmware) might need it.  Who knows.

The vendors apparently test only with Windows and/or MacOS, and
issuing unexpected commands (or missing the expected command) can
screw up firmware...


Takashi

> 
>  Jocke
> 
> > 
> > 
> > thanks,
> > 
> > Takashi
> > 
> > 
> > >  Jocke
> > > 
> > > On Thu, 2023-06-01 at 15:11 +0200, Joakim Tjernlund wrote:
> > > > On some USB speaker devices(Jabra/Logitech) we see above error
> > > > msg when connecting device to computer and kernel is probing the device.
> > > > 
> > > > Moving the snd_usb_init_sample_rate() to after usb_set_interface() makes
> > > > the error go away.
> > > > 
> > > > Signed-off-by: Joakim Tjernlund <joakim.tjernlund@xxxxxxxxxxxx>
> > > > Cc: stable@xxxxxxxxxxxxxxx
> > > > ---
> > > >  sound/usb/stream.c | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > 
> > > > diff --git a/sound/usb/stream.c b/sound/usb/stream.c
> > > > index f10f4e6d3fb8..d9ac8663a48b 100644
> > > > --- a/sound/usb/stream.c
> > > > +++ b/sound/usb/stream.c
> > > > @@ -1226,8 +1226,8 @@ static int __snd_usb_parse_audio_interface(struct snd_usb_audio *chip,
> > > >  		/* try to set the interface... */
> > > >  		usb_set_interface(chip->dev, iface_no, 0);
> > > >  		snd_usb_init_pitch(chip, fp);
> > > > -		snd_usb_init_sample_rate(chip, fp, fp->rate_max);
> > > >  		usb_set_interface(chip->dev, iface_no, altno);
> > > > +		snd_usb_init_sample_rate(chip, fp, fp->rate_max);
> > > >  	}
> > > >  	return 0;
> > > >  }
> > > 
> 



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux