The device advertises 8 formats, but only a rate of 48kHz is honored
by the hardware and 24 bits give chopped audio, so only report the
one working combination. This fixes out-of-the-box audio experience
with PipeWire which otherwise attempts to choose S24_3LE (while
PulseAudio defaulted to S16_LE).
Signed-off-by: Jonas Hahnfeld <[email protected]>
---
sound/usb/quirks-table.h | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
index e03043f7dad3..be5c2bc26a1d 100644
--- a/sound/usb/quirks-table.h
+++ b/sound/usb/quirks-table.h
@@ -77,6 +77,45 @@
/* E-Mu 0204 USB */
{ USB_DEVICE_VENDOR_SPEC(0x041e, 0x3f19) },
+/*
+ * Creative Technology, Ltd Live! Cam Sync HD [VF0770]
+ * The device advertises 8 formats, but only a rate of 48kHz is honored by the
+ * hardware and 24 bits give chopped audio, so only report the one working
+ * combination.
+ */
+{
+ USB_DEVICE(0x041e, 0x4095),
+ .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
+ .ifnum = QUIRK_ANY_INTERFACE,
+ .type = QUIRK_COMPOSITE,
+ .data = &(const struct snd_usb_audio_quirk[]) {
+ {
+ .ifnum = 2,
+ .type = QUIRK_AUDIO_STANDARD_MIXER,
+ },
+ {
+ .ifnum = 3,
+ .type = QUIRK_AUDIO_FIXED_ENDPOINT,
+ .data = &(const struct audioformat) {
+ .formats = SNDRV_PCM_FMTBIT_S16_LE,
+ .channels = 2,
+ .fmt_bits = 16,
+ .iface = 3,
+ .altsetting = 4,
+ .altset_idx = 4,
+ .endpoint = 0x82,
+ .ep_attr = 0x05,
+ .rates = SNDRV_PCM_RATE_48000,
+ .rate_min = 48000,
+ .rate_max = 48000,
+ .nr_rates = 1,
+ .rate_table = (unsigned int[]) { 48000 },
+ },
+ },
+ },
+ },
+},
+
/*
* HP Wireless Audio
* When not ignored, causes instability issues for some users, forcing them to
--
2.33.0
On Sun, 10 Oct 2021 13:19:47 +0200,
Jonas Hahnfeld wrote:
>
> The device advertises 8 formats, but only a rate of 48kHz is honored
> by the hardware and 24 bits give chopped audio, so only report the
> one working combination. This fixes out-of-the-box audio experience
> with PipeWire which otherwise attempts to choose S24_3LE (while
> PulseAudio defaulted to S16_LE).
>
> Signed-off-by: Jonas Hahnfeld <[email protected]>
Could you give alsa-info.sh output with and without patch, just for
comparison? Run the script with --no-upload option and attach the
outputs.
thanks,
Takashi
Am Sonntag, dem 10.10.2021 um 22:26 +0200 schrieb Takashi Iwai:
> On Sun, 10 Oct 2021 13:19:47 +0200,
> Jonas Hahnfeld wrote:
> >
> > The device advertises 8 formats, but only a rate of 48kHz is honored
> > by the hardware and 24 bits give chopped audio, so only report the
> > one working combination. This fixes out-of-the-box audio experience
> > with PipeWire which otherwise attempts to choose S24_3LE (while
> > PulseAudio defaulted to S16_LE).
> >
> > Signed-off-by: Jonas Hahnfeld <[email protected]>
>
> Could you give alsa-info.sh output with and without patch, just for
> comparison? Run the script with --no-upload option and attach the
> outputs.
Attached. Let me know if I should put any of this into the commit
message.
Thanks
Jonas
On Mon, 11 Oct 2021 19:12:56 +0200,
Jonas Hahnfeld wrote:
>
> Am Sonntag, dem 10.10.2021 um 22:26 +0200 schrieb Takashi Iwai:
> > On Sun, 10 Oct 2021 13:19:47 +0200,
> > Jonas Hahnfeld wrote:
> > >
> > > The device advertises 8 formats, but only a rate of 48kHz is honored
> > > by the hardware and 24 bits give chopped audio, so only report the
> > > one working combination. This fixes out-of-the-box audio experience
> > > with PipeWire which otherwise attempts to choose S24_3LE (while
> > > PulseAudio defaulted to S16_LE).
> > >
> > > Signed-off-by: Jonas Hahnfeld <[email protected]>
> >
> > Could you give alsa-info.sh output with and without patch, just for
> > comparison? Run the script with --no-upload option and attach the
> > outputs.
>
> Attached. Let me know if I should put any of this into the commit
> message.
Thanks. The device is a UAC1, so the format quirk seems to be a valid
way.
But I found the terminator entry (.ifnum = -1) is missing in the
QUIRK_COMPOSITE array. Could you resubmit with the fix?
thanks,
Takashi
The device advertises 8 formats, but only a rate of 48kHz is honored
by the hardware and 24 bits give chopped audio, so only report the
one working combination. This fixes out-of-the-box audio experience
with PipeWire which otherwise attempts to choose S24_3LE (while
PulseAudio defaulted to S16_LE).
Signed-off-by: Jonas Hahnfeld <[email protected]>
---
v2: added terminator entry
sound/usb/quirks-table.h | 42 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
index e03043f7dad3..de18fff69280 100644
--- a/sound/usb/quirks-table.h
+++ b/sound/usb/quirks-table.h
@@ -77,6 +77,48 @@
/* E-Mu 0204 USB */
{ USB_DEVICE_VENDOR_SPEC(0x041e, 0x3f19) },
+/*
+ * Creative Technology, Ltd Live! Cam Sync HD [VF0770]
+ * The device advertises 8 formats, but only a rate of 48kHz is honored by the
+ * hardware and 24 bits give chopped audio, so only report the one working
+ * combination.
+ */
+{
+ USB_DEVICE(0x041e, 0x4095),
+ .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
+ .ifnum = QUIRK_ANY_INTERFACE,
+ .type = QUIRK_COMPOSITE,
+ .data = &(const struct snd_usb_audio_quirk[]) {
+ {
+ .ifnum = 2,
+ .type = QUIRK_AUDIO_STANDARD_MIXER,
+ },
+ {
+ .ifnum = 3,
+ .type = QUIRK_AUDIO_FIXED_ENDPOINT,
+ .data = &(const struct audioformat) {
+ .formats = SNDRV_PCM_FMTBIT_S16_LE,
+ .channels = 2,
+ .fmt_bits = 16,
+ .iface = 3,
+ .altsetting = 4,
+ .altset_idx = 4,
+ .endpoint = 0x82,
+ .ep_attr = 0x05,
+ .rates = SNDRV_PCM_RATE_48000,
+ .rate_min = 48000,
+ .rate_max = 48000,
+ .nr_rates = 1,
+ .rate_table = (unsigned int[]) { 48000 },
+ },
+ },
+ {
+ .ifnum = -1
+ },
+ },
+ },
+},
+
/*
* HP Wireless Audio
* When not ignored, causes instability issues for some users, forcing them to
--
2.33.0
On Tue, 12 Oct 2021 22:09:07 +0200,
Jonas Hahnfeld wrote:
>
> The device advertises 8 formats, but only a rate of 48kHz is honored
> by the hardware and 24 bits give chopped audio, so only report the
> one working combination. This fixes out-of-the-box audio experience
> with PipeWire which otherwise attempts to choose S24_3LE (while
> PulseAudio defaulted to S16_LE).
>
> Signed-off-by: Jonas Hahnfeld <[email protected]>
> ---
> v2: added terminator entry
Thanks, applied now.
Takashi