Commit 36e1ac3c authored by Daniel Mack's avatar Daniel Mack Committed by Takashi Iwai

ALSA: usb: fine-tune Tenor error compensation value

Users of devices affected by the Tenor feedback data error report
buffer underruns, even with the +/- 0x1.0000 quirk applied.
Compensating the error with 0xf000 instead seems to reliably fix
that issue.

See

  https://sourceforge.net/p/alsa/mailman/message/35230259/Reported-and-tested-by: default avatarNorman Nolte <norman.nolte@gmx.net>
Reported-and-tested-by: default avatarThomas Gresens <T.Gresens@intershop.de>
Signed-off-by: default avatarDaniel Mack <daniel@zonque.org>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent ca0dd273
...@@ -1174,9 +1174,9 @@ void snd_usb_handle_sync_urb(struct snd_usb_endpoint *ep, ...@@ -1174,9 +1174,9 @@ void snd_usb_handle_sync_urb(struct snd_usb_endpoint *ep,
* by +/- 0x1.0000. * by +/- 0x1.0000.
*/ */
if (f < ep->freqn - 0x8000) if (f < ep->freqn - 0x8000)
f += 0x10000; f += 0xf000;
else if (f > ep->freqn + 0x8000) else if (f > ep->freqn + 0x8000)
f -= 0x10000; f -= 0xf000;
} else if (unlikely(ep->freqshift == INT_MIN)) { } else if (unlikely(ep->freqshift == INT_MIN)) {
/* /*
* The first time we see a feedback value, determine its format * The first time we see a feedback value, determine its format
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment