diff --git a/sound/usb/clock.c b/sound/usb/clock.c index 92e6918..d25986a 100644 --- a/sound/usb/clock.c +++ b/sound/usb/clock.c @@ -373,7 +373,6 @@ static int set_sample_rate_v2(struct snd_usb_audio *chip, int iface, if (chip->usb_id == USB_ID(0x0e41, 0x4244) && rate == 48000) return 0; - if (clock < 0) return clock; diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c index c90607e..026095a 100644 --- a/sound/usb/endpoint.c +++ b/sound/usb/endpoint.c @@ -888,6 +888,8 @@ int snd_usb_endpoint_set_params(struct snd_usb_endpoint *ep, if (snd_usb_get_speed(ep->chip->dev) == USB_SPEED_FULL) ep->freqn = get_usb_full_speed_rate(rate); + else if (USB_ID(0x0e41, 0x4244)) + ep->freqn = get_usb_high_speed_rate(rate + 5); // ugly helix hack, readout from focusrite scarlett on same usbbus else ep->freqn = get_usb_high_speed_rate(rate); diff --git a/sound/usb/format.c b/sound/usb/format.c index 1c0107d..886089f 100644 --- a/sound/usb/format.c +++ b/sound/usb/format.c @@ -305,7 +305,7 @@ static int parse_audio_format_rates_v2(struct snd_usb_audio *chip, if (chip->usb_id == USB_ID(0x0e41, 0x4244)) { fp->nr_rates = 1; fp->rate_min = 48000; - fp->rate_max = 48000; + fp->rate_max = 48000; fp->rates = SNDRV_PCM_RATE_48000; fp->rate_table = kmalloc(sizeof(int), GFP_KERNEL); fp->rate_table[0] = 48000;