diff options
| author | Vadym Shevchuk <0xsheff@gmail.com> | 2026-10-05 15:59:53 +0300 |
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2026-10-05 15:17:31 +0200 |
| commit | b42663cecdf4403a230baafb31bae136e90fd142 (patch) | |
| tree | 769afad6c20b65d9da4dabe7802eb62bf0660bf1 /tools/lib/python/kdoc | |
| parent | 6f4cbf5f913fc1c01de3776147ced4fb7680f29b (diff) | |
ALSA: usb-audio: Add quirk for Shanling UP4
The Shanling UP4 (0a12:1244, CSR-based, UAC1, full speed) sets the
MaxPacketsOnly bit in its AS isochronous endpoint descriptor. With
UAC_EP_CS_ATTR_FILL_MAX set, the driver fills every 1 ms packet up to
wMaxPacketSize, i.e. 48 frames, regardless of the sample rate. At
44.1 kHz the device expects 44/45 frames per packet and outputs only
silence. 48 kHz works because both packet sizes are the same there.
Measured with aplay on hw:UP4,0, 4 s of S16_LE stereo:
before: 44.1 kHz consumed at ~48030 frames/s, done in 3.68 s, silent
after: 44.1 kHz consumed at ~44220 frames/s, done in 4.00 s, audible
48 kHz plays fine both before and after the change. Regular music
playback at 44.1 kHz through PipeWire sounds fine as well.
Clear the attribute for this device, as is already done for the MOTU
MicroBook IIc. Since the packet sizes are equal at 48 kHz, this does
not change anything for other devices that may share this CSR USB ID
and only use 48 kHz.
Link: https://lore.kernel.org/all/CAPHAwzdUNRbZjBQuYKLf18EK_QGq0gR6Vx3YMZ=ffYKBogUtLA@mail.gmail.com/
Signed-off-by: Vadym Shevchuk <0xsheff@gmail.com>
Link: https://patch.msgid.link/20261005125953.190316-1-0xsheff@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'tools/lib/python/kdoc')
0 files changed, 0 insertions, 0 deletions
