Rebased RPi foundation patches on linux 5.10.59, removed applied and reverted patches, wireless patches and defconfig patches. bcm2708: boot tested on RPi B+ v1.2 bcm2709: boot tested on RPi 4B v1.1 4G bcm2711: boot tested on RPi 4B v1.1 4G Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
33 lines
1.2 KiB
Diff
33 lines
1.2 KiB
Diff
From ec43e93b7e36e2baa6685da504b9db3ac7048ceb Mon Sep 17 00:00:00 2001
|
|
From: Jonathan Bell <jonathan@raspberrypi.com>
|
|
Date: Fri, 16 Apr 2021 11:40:23 +0100
|
|
Subject: [PATCH] sound/usb: call usb_autopm_get_interface() for
|
|
devices that should not be suspended
|
|
|
|
Webcams with microphones are composite devices, and autosuspend is set
|
|
at the device level. If uvcvideo is probed after snd-usb-audio, the effect
|
|
of the quirk applied by snd-usb-audio is undone by uvcvideo's global
|
|
application of autosuspend.
|
|
|
|
Incrementing the interface's PM refcount in such cases prevents runtime PM
|
|
from happening, thus the device is left active.
|
|
|
|
Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|
---
|
|
sound/usb/quirks.c | 5 +++++
|
|
1 file changed, 5 insertions(+)
|
|
|
|
--- a/sound/usb/quirks.c
|
|
+++ b/sound/usb/quirks.c
|
|
@@ -531,6 +531,11 @@ static int setup_disable_autosuspend(str
|
|
struct usb_driver *driver,
|
|
const struct snd_usb_audio_quirk *quirk)
|
|
{
|
|
+ /*
|
|
+ * Grab the interface, because on a webcam uvcvideo may race
|
|
+ * with snd-usb-audio during probe and re-enable autosuspend.
|
|
+ */
|
|
+ usb_autopm_get_interface(iface);
|
|
usb_disable_autosuspend(interface_to_usbdev(iface));
|
|
return 1; /* Continue with creating streams and mixer */
|
|
}
|