Re: [PATCH v3] ALSA: usb-audio: disable 96khz support for HUAWEI USB-C HEADSET

Macpaul Lin
2020-11-18T05:26:35Z

On Tue, 2020-11-10 at 17:04 +0800, Macpaul Lin wrote:
> 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@mediatek.com>
> Signed-off-by: Eddie Hung <eddie.hung@mediatek.com>
> Cc: stable@vger.kernel.org
> ---
> Changes for v2:
> - Fix build error.
> - Add Cc: stable@vger.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)

Sorry for bothering again, please hold-on this patch.
I'm still trying to clarify if there is another approach for this
interoperability issue.
I'll update this thread once the result has came out.

Thanks
Macpaul Lin