From: Takashi Iwai <tiwai@suse.de>
To: Rong Zhang <i@rong.moe>
Cc: Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/2] ALSA: usb-audio: Add quirks for HP Elite x3 Lap Dock
Date: Tue, 08 Sep 2026 09:12:09 +0200 [thread overview]
Message-ID: <87cxuoqks6.wl-tiwai@suse.de> (raw)
In-Reply-To: <20260908-uac-hp-elite-x3-lap-dock-v1-0-e226cfe4038e@rong.moe>
On Mon, 07 Sep 2026 21:34:38 +0200,
Rong Zhang wrote:
>
> The HP Elite x3 Lap Dock is a laptop-like external display device with a
> FHD screen, a keyboard, and a MT touchpad. It can be connected via USB-C
> or Miracast. As an e-waste collector, I recently brought one for 69 CNY
> (10.2 USD). The price already indicates how broken the device's design
> and compatibility are ;-P
>
> When connecting via USB-C, the video source is, of course, DisplayPort
> Alternate Mode. However, the audio source has nothing to do with the
> DisplayPort signal and is actually from a builtin UAC device.
>
> The builtin UAC device provides three Alternate Settings:
>
> - 1:1 - Capture, S16_LE, 8000/32000/44100/48000Hz
> - 2:1 - Playback, S16_LE, 48000Hz
> - 2:2 - Playback, S24_3LE, 48000Hz
>
> Unfortunately, the last one is broken because:
>
> - it doesn't accept SET_CUR(SAMPLE_RATE). QUIRK_FLAG_FIXED_RATE works
> around it, however...
> - it constantly produces severe harmonic distortion once the capture
> stream is also opened. The interface 2 must be closed and reopened to
> make it recover. IOW, simply closing the capture stream makes no
> difference.
>
> Considering that S24_3LE offers no additional benefit on small speakers
> compared to S16_LE, and 2:1 is always usable as an alternative, skip 2:2
> to get rid of the trouble.
>
> Setting chip->setup to any non-default value disables the fixup and
> reenables 2:2 (in this case QUIRK_FLAG_FIXED_RATE is required).
>
> Quirky device sample:
>
> usb 7-1.4: new full-speed USB device number 50 using xhci_hcd
> usb 7-1.4: New USB device found, idVendor=03f0, idProduct=0c56, bcdDevice= 0.00
> usb 7-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
> usb 7-1.4: Product: HP Elite x3 Lap Dock
> usb 7-1.4: Manufacturer: HP
> usb 7-1.4: Found last interface = 0
> usb 7-1.4: 1:1: add audio endpoint 0x81
> usb 7-1.4: Creating new data endpoint #81
> usb 7-1.4: 1:1 Set sample rate 48000, clock 0
> usb 7-1.4: 2:1: add audio endpoint 0x1
> usb 7-1.4: Creating new data endpoint #1
> usb 7-1.4: 2:1 Set sample rate 48000, clock 0
> usb 7-1.4: 2:2: add audio endpoint 0x1
> usb 7-1.4: 2:2 Set sample rate 48000, clock 0
> usb 7-1.4: 2:2: cannot set freq 48000 to ep 0x1
> usb 7-1.4: [9] FU [Sidetone Playback Switch] ch = 1, val = 0/1/1
> usb 7-1.4: cannot set ctl value: req = 0x4, wValue = 0x200, wIndex = 0x900, type = 4, data = 0x40/0x0
> usb 7-1.4: [9] FU [Sidetone Playback Volume] ch = 1, val = -17664/0/128
> usb 7-1.4: [2] FU [Headset Playback Switch] ch = 1, val = 0/1/1
> usb 7-1.4: [2] FU [Headset Playback Volume] ch = 2, val = -18944/0/1
> usb 7-1.4: [6] FU [Headset Capture Switch] ch = 1, val = 0/1/1
> usb 7-1.4: [6] FU [Headset Capture Volume] ch = 2, val = -18944/0/1
> input: HP HP Elite x3 Lap Dock Consumer Control as /devices/pci0000:00/0000:00:08.3/0000:c9:00.4/usb7/7-1/7-1.4/7-1.4:1.3/0003:03F0:0C56.0033/input/input129
> input: HP HP Elite x3 Lap Dock as /devices/pci0000:00/0000:00:08.3/0000:c9:00.4/usb7/7-1/7-1.4/7-1.4:1.3/0003:03F0:0C56.0033/input/input130
> hid-generic 0003:03F0:0C56.0033: input,hiddev100,hidraw8: USB HID v1.11 Device [HP HP Elite x3 Lap Dock] on usb-0000:c9:00.4-1.4/input3
>
> Signed-off-by: Rong Zhang <i@rong.moe>
> ---
> Rong Zhang (2):
> ALSA: usb-audio: Convert snd_usb_apply_interface_quirk() into a switch statement
> ALSA: usb-audio: Add quirks for HP Elite x3 Lap Dock
Applied both to for-next branch. Thanks.
Takashi
prev parent reply other threads:[~2026-09-08 7:12 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-07 19:34 [PATCH 0/2] ALSA: usb-audio: Add quirks for HP Elite x3 Lap Dock Rong Zhang
2026-09-07 19:34 ` [PATCH 1/2] ALSA: usb-audio: Convert snd_usb_apply_interface_quirk() into a switch statement Rong Zhang
2026-09-07 19:34 ` [PATCH 2/2] ALSA: usb-audio: Add quirks for HP Elite x3 Lap Dock Rong Zhang
2026-09-08 7:12 ` Takashi Iwai [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87cxuoqks6.wl-tiwai@suse.de \
--to=tiwai@suse.de \
--cc=i@rong.moe \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=perex@perex.cz \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.