+++ /dev/null
-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 */
- }