From 42fbd61f4775d9ec9e7a1d1833565a45581efb27 Mon Sep 17 00:00:00 2001
From: Jonathan Bell <jonathan@raspberrypi.com>
Date: Thu, 15 Apr 2021 13:15:14 +0100
Subject: [PATCH] sound/usb: add device quirks for A4Tech FHD 1080p
 webcams

These devices use a type of Sonix chipset that produces broken microphone
data if suspended/resumed.

They also don't support readback of the sample rate.

Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
---
 sound/usb/quirks-table.h | 9 +++++++++
 sound/usb/quirks.c       | 1 +
 2 files changed, 10 insertions(+)

--- a/sound/usb/quirks-table.h
+++ b/sound/usb/quirks-table.h
@@ -47,6 +47,15 @@
 },
 
 {
+	/* A4Tech FHD 1080p webcam */
+	USB_DEVICE(0x09da, 0x2695),
+	.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
+		.ifnum = QUIRK_ANY_INTERFACE,
+		.type = QUIRK_SETUP_DISABLE_AUTOSUSPEND
+	}
+},
+
+{
 	/* Creative BT-D1 */
 	USB_DEVICE(0x041e, 0x0005),
 	.driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1530,6 +1530,7 @@ bool snd_usb_get_sample_rate_quirk(struc
 	case USB_ID(0x2912, 0x30c8): /* Audioengine D1 */
 	case USB_ID(0x413c, 0xa506): /* Dell AE515 sound bar */
 	case USB_ID(0x046d, 0x084c): /* Logitech ConferenceCam Connect */
+	case USB_ID(0x09da, 0x2695): /* A4Tech FHD 1080p webcam */
 		return true;
 	}
 
