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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox