* 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,
                                   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 */
        }
 
 
        
        int num_interfaces;
        int num_suspended_intf;
+       int sample_rate_read_error;
 
        struct list_head pcm_list;      /* list of pcm streams */
        struct list_head ep_list;       /* list of audio-related endpoints */