diff options
author | Takashi Iwai <tiwai@suse.de> | 2016-05-16 09:13:08 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2016-05-16 09:13:08 +0200 |
commit | 581abbaa03367f0b1327521f30bd2b69b8075b2f (patch) | |
tree | 686db8cee890fa97061baf5722c3bb9344e658dc /sound/usb/clock.c | |
parent | 84add303ef950b8d85f54bc2248c2bc73467c329 (diff) | |
parent | 639db596165746ca87bbcb56559b094fd9042890 (diff) |
Merge branch 'for-next' into for-linus
Diffstat (limited to 'sound/usb/clock.c')
-rw-r--r-- | sound/usb/clock.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sound/usb/clock.c b/sound/usb/clock.c index 7ccbcaf6a147..26dd5f20f149 100644 --- a/sound/usb/clock.c +++ b/sound/usb/clock.c @@ -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 */ } |