blk-mq: really fix plug list flushing for nomerge queues
[linux-2.6-block.git] / sound / usb / clock.c
index 7ccbcaf6a1476423e0d2becf0bf91f3463a47b46..26dd5f20f1494320735b47f60be79eab70b6e111 100644 (file)
@@ -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 */
        }