diff options
| author | Jonathan Seth Mainguy <jon@soh.re> | 2026-08-28 20:50:01 -0400 |
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2026-08-31 10:27:38 +0200 |
| commit | bdeed0642157667bd14912241c83ffd50f9fec22 (patch) | |
| tree | c8e91b69a2fa9379882eb4967b51cb6de3ff6434 /scripts/Makefile.thinlto | |
| parent | b4801a387ca396b3dd442ea9801794a5bc3ba91e (diff) | |
| download | linux-next-bdeed0642157667bd14912241c83ffd50f9fec22.tar.gz linux-next-bdeed0642157667bd14912241c83ffd50f9fec22.zip | |
ALSA: usb-audio: set Roland Capture rate during stream preparation
Roland OCTA-CAPTURE and QUAD-CAPTURE select their hardware clock with
a vendor control request. Streaming fails when the hardware clock differs
from the rate selected for the USB endpoint.
During stream preparation, read the hardware rate and send the rate
request only when it differs from the selected endpoint rate. The control
transfer can complete before the device reports the new clock rate, so
poll readback every 25 ms and continue as soon as it matches. Forty
attempts avoid hammering the control endpoint while bounding an
unresponsive transition to one second.
Run the transaction from the existing format-setup quirk, after ALSA has
selected the endpoint rate and before data URBs are submitted. Hold the
USB-audio device mutex so playback and capture preparation cannot issue
overlapping clock changes.
Apply the quirk to:
0582:0120 Roland OCTA-CAPTURE
0582:012f Roland QUAD-CAPTURE
Tested on physical OCTA-CAPTURE and QUAD-CAPTURE units. Rate changes
followed by full-duplex streaming succeeded at 44.1, 48, 96 and 192 kHz
on both. External digital clocking on the OCTA-CAPTURE was tested at all
supported rates: 44.1, 48 and 96 kHz. The OCTA-CAPTURE disables its
digital input and output at 192 kHz, so external clocking is unavailable
at that rate.
Signed-off-by: Jonathan Seth Mainguy <jon@soh.re>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20260829005001.534571-5-jon@soh.re
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions
