projects
/
platform
/
kernel
/
linux-rpi.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
92549c9
)
ALSA: usb-audio: Disable sample read check if firmware doesn't give back
author
Takashi Iwai
<tiwai@suse.de>
Fri, 18 Dec 2020 14:58:58 +0000
(15:58 +0100)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Wed, 30 Dec 2020 10:54:07 +0000
(11:54 +0100)
commit
9df28edce7c6ab38050235f6f8b43dd7ccd01b6d
upstream.
Some buggy firmware don't give the current sample rate but leaves
zero. Handle this case more gracefully without warning but just skip
the current rate verification from the next time.
Cc: <stable@vger.kernel.org>
Link:
https://lore.kernel.org/r/20201218145858.2357-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/usb/clock.c
patch
|
blob
|
history
diff --git
a/sound/usb/clock.c
b/sound/usb/clock.c
index f3ca59005d9143fcd37aa971294f065681d3fe2c..674e15bf98ed5c5c1dfeeac2376f995da1990ef7 100644
(file)
--- a/
sound/usb/clock.c
+++ b/
sound/usb/clock.c
@@
-531,6
+531,12
@@
static int set_sample_rate_v1(struct snd_usb_audio *chip, int iface,
}
crate = data[0] | (data[1] << 8) | (data[2] << 16);
+ if (!crate) {
+ dev_info(&dev->dev, "failed to read current rate; disabling the check\n");
+ chip->sample_rate_read_error = 3; /* three strikes, see above */
+ return 0;
+ }
+
if (crate != rate) {
dev_warn(&dev->dev, "current rate %d is different from the runtime rate %d\n", crate, rate);
// runtime->rate = crate;