Message ID | 1604997774-13593-1-git-send-email-macpaul.lin@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] ALSA: usb-audio: disable 96khz support for HUAWEI USB-C HEADSET | expand |
On Tue, Nov 10, 2020 at 04:42:54PM +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 > > sound/usb/format.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/sound/usb/format.c b/sound/usb/format.c > index 1b28d01..7a4837b 100644 > --- a/sound/usb/format.c > +++ b/sound/usb/format.c > @@ -202,6 +202,7 @@ static int parse_audio_format_rates_v1(struct snd_usb_audio *chip, struct audiof > fp->rate_min = fp->rate_max = 0; > for (r = 0, idx = offset + 1; r < nr_rates; r++, idx += 3) { > unsigned int rate = combine_triple(&fmt[idx]); > + struct usb_device *udev = chip->dev; > if (!rate) > continue; > /* C-Media CM6501 mislabels its 96 kHz altsetting */ Did you run this patch through checkpatch.pl?
On Tue, 2020-11-10 at 09:50 +0100, Greg KH wrote: > On Tue, Nov 10, 2020 at 04:42:54PM +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 > > > > sound/usb/format.c | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/sound/usb/format.c b/sound/usb/format.c > > index 1b28d01..7a4837b 100644 > > --- a/sound/usb/format.c > > +++ b/sound/usb/format.c > > @@ -202,6 +202,7 @@ static int parse_audio_format_rates_v1(struct snd_usb_audio *chip, struct audiof > > fp->rate_min = fp->rate_max = 0; > > for (r = 0, idx = offset + 1; r < nr_rates; r++, idx += 3) { > > unsigned int rate = combine_triple(&fmt[idx]); > > + struct usb_device *udev = chip->dev; > > if (!rate) > > continue; > > /* C-Media CM6501 mislabels its 96 kHz altsetting */ > > Did you run this patch through checkpatch.pl? > I've ran checkpatch for this patch v2, and it shown "total: 0 errors, 0 warnings". We're using 5.9-rc1 internal. However, I'll send patch v3 according to Takashi's suggestion. Thanks Macpaul Lin
diff --git a/sound/usb/format.c b/sound/usb/format.c index 1b28d01..7a4837b 100644 --- a/sound/usb/format.c +++ b/sound/usb/format.c @@ -202,6 +202,7 @@ static int parse_audio_format_rates_v1(struct snd_usb_audio *chip, struct audiof fp->rate_min = fp->rate_max = 0; for (r = 0, idx = offset + 1; r < nr_rates; r++, idx += 3) { unsigned int rate = combine_triple(&fmt[idx]); + struct usb_device *udev = chip->dev; if (!rate) continue; /* C-Media CM6501 mislabels its 96 kHz altsetting */ @@ -217,6 +218,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(udev->descriptor.bcdDevice) == 0x49) + continue; fp->rate_table[fp->nr_rates] = rate; if (!fp->rate_min || rate < fp->rate_min)