|
@@ -309,6 +309,9 @@ static int set_sample_rate_v1(struct snd_usb_audio *chip, int iface,
|
|
|
* support reading */
|
|
|
if (snd_usb_get_sample_rate_quirk(chip))
|
|
|
return 0;
|
|
|
+ /* the firmware is likely buggy, don't repeat to fail too many times */
|
|
|
+ if (chip->sample_rate_read_error > 2)
|
|
|
+ return 0;
|
|
|
|
|
|
if ((err = snd_usb_ctl_msg(dev, usb_rcvctrlpipe(dev, 0), UAC_GET_CUR,
|
|
|
USB_TYPE_CLASS | USB_RECIP_ENDPOINT | USB_DIR_IN,
|
|
@@ -316,6 +319,7 @@ static int set_sample_rate_v1(struct snd_usb_audio *chip, int iface,
|
|
|
data, sizeof(data))) < 0) {
|
|
|
dev_err(&dev->dev, "%d:%d: cannot get freq at ep %#x\n",
|
|
|
iface, fmt->altsetting, ep);
|
|
|
+ chip->sample_rate_read_error++;
|
|
|
return 0; /* some devices don't support reading */
|
|
|
}
|
|
|
|