[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1604999048-20294-1-git-send-email-macpaul.lin@mediatek.com>
Date: Tue, 10 Nov 2020 17:04:08 +0800
From: Macpaul Lin <macpaul.lin@...iatek.com>
To: Jaroslav Kysela <perex@...ex.cz>, Takashi Iwai <tiwai@...e.com>,
Matthias Brugger <matthias.bgg@...il.com>,
Alexander Tsoy <alexander@...y.me>,
Nicola Lunghi <nick83ola@...il.com>,
Christopher Swenson <swenson@...nson.io>,
Nick Kossifidis <mickflemm@...il.com>,
<alsa-devel@...a-project.org>
CC: Ainge Hsu <ainge.hsu@...iatek.com>,
Eddie Hung <eddie.hung@...iatek.com>,
Chunfeng Yun <chunfeng.yun@...iatek.com>,
Mediatek WSD Upstream <wsd_upstream@...iatek.com>,
Macpaul Lin <macpaul.lin@...iatek.com>,
Macpaul Lin <macpaul@...il.com>,
<linux-kernel@...r.kernel.org>,
<linux-arm-kernel@...ts.infradead.org>,
<linux-usb@...r.kernel.org>, <linux-mediatek@...ts.infradead.org>,
<stable@...r.kernel.org>
Subject: [PATCH v3] ALSA: usb-audio: disable 96khz support for HUAWEI USB-C HEADSET
The HUAWEI USB-C headset (VID:0x12d1, PID:0x3a07) reported it supports
96khz. However there will be some random issue under 96khz.
Not sure if there is any alternate setting could be applied.
Hence 48khz is suggested to be applied at this moment.
Signed-off-by: Macpaul Lin <macpaul.lin@...iatek.com>
Signed-off-by: Eddie Hung <eddie.hung@...iatek.com>
Cc: stable@...r.kernel.org
---
Changes for v2:
- Fix build error.
- Add Cc: stable@...r.kernel.org
Changes for v3:
- Replace "udev" with "chip->dev" according to Takashi's suggestion. Thanks.
sound/usb/format.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/sound/usb/format.c b/sound/usb/format.c
index 1b28d01..0aff774 100644
--- a/sound/usb/format.c
+++ b/sound/usb/format.c
@@ -217,6 +217,11 @@ static int parse_audio_format_rates_v1(struct snd_usb_audio *chip, struct audiof
(chip->usb_id == USB_ID(0x041e, 0x4064) ||
chip->usb_id == USB_ID(0x041e, 0x4068)))
rate = 8000;
+ /* Huawei headset can't support 96kHz fully */
+ if (rate == 96000 &&
+ chip->usb_id == USB_ID(0x12d1, 0x3a07) &&
+ le16_to_cpu(chip->dev->descriptor.bcdDevice) == 0x49)
+ continue;
fp->rate_table[fp->nr_rates] = rate;
if (!fp->rate_min || rate < fp->rate_min)
--
1.7.9.5
Powered by blists - more mailing lists