Skip to content

Commit a767d35

Browse files
Cryolitiatiwai
authored andcommitted
ALSA: doc: improved docs about quirk_flags in snd-usb-audio
Just briefly described about the option's change and its new usage. Signed-off-by: Cryolitia PukNgae <cryolitia@uniontech.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
1 parent 98b5427 commit a767d35

File tree

1 file changed

+75
-33
lines changed

1 file changed

+75
-33
lines changed

Documentation/sound/alsa-configuration.rst

Lines changed: 75 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2297,39 +2297,81 @@ skip_validation
22972297
of the unit descriptor instead of a driver probe error, so that we
22982298
can check its details.
22992299
quirk_flags
2300-
Contains the bit flags for various device specific workarounds.
2301-
Applied to the corresponding card index.
2302-
2303-
* bit 0: Skip reading sample rate for devices
2304-
* bit 1: Create Media Controller API entries
2305-
* bit 2: Allow alignment on audio sub-slot at transfer
2306-
* bit 3: Add length specifier to transfers
2307-
* bit 4: Start playback stream at first in implement feedback mode
2308-
* bit 5: Skip clock selector setup
2309-
* bit 6: Ignore errors from clock source search
2310-
* bit 7: Indicates ITF-USB DSD based DACs
2311-
* bit 8: Add a delay of 20ms at each control message handling
2312-
* bit 9: Add a delay of 1-2ms at each control message handling
2313-
* bit 10: Add a delay of 5-6ms at each control message handling
2314-
* bit 11: Add a delay of 50ms at each interface setup
2315-
* bit 12: Perform sample rate validations at probe
2316-
* bit 13: Disable runtime PM autosuspend
2317-
* bit 14: Ignore errors for mixer access
2318-
* bit 15: Support generic DSD raw U32_BE format
2319-
* bit 16: Set up the interface at first like UAC1
2320-
* bit 17: Apply the generic implicit feedback sync mode
2321-
* bit 18: Don't apply implicit feedback sync mode
2322-
* bit 19: Don't closed interface during setting sample rate
2323-
* bit 20: Force an interface reset whenever stopping & restarting
2324-
a stream
2325-
* bit 21: Do not set PCM rate (frequency) when only one rate is
2326-
available for the given endpoint.
2327-
* bit 22: Set the fixed resolution 16 for Mic Capture Volume
2328-
* bit 23: Set the fixed resolution 384 for Mic Capture Volume
2329-
* bit 24: Set minimum volume control value as mute for devices
2330-
where the lowest playback value represents muted state instead
2331-
of minimum audible volume
2332-
* bit 25: Be similar to bit 24 but for capture streams
2300+
The option provides a refined and flexible control for applying quirk
2301+
flags. It allows to specify the quirk flags for each device, and can
2302+
be modified dynamically via sysfs.
2303+
The old usage accepts an array of integers, each of which applies quirk
2304+
flags on the device in the order of probing.
2305+
E.g., ``quirk_flags=0x01,0x02`` applies get_sample_rate to the first
2306+
device, and share_media_device to the second device.
2307+
The new usage accepts a string in the format of
2308+
``VID1:PID1:FLAGS1;VID2:PID2:FLAGS2;...``, where ``VIDx`` and ``PIDx``
2309+
specify the device, and ``FLAGSx`` specify the flags to be applied.
2310+
``VIDx`` and ``PIDx`` are 4-digit hexadecimal numbers, and can be
2311+
specified as ``*`` to match any value. ``FLAGSx`` can be a set of
2312+
flags given by name, separated by ``|``, or a hexadecimal number
2313+
representing the bit flags. The available flag names are listed below.
2314+
An exclamation mark can be prefixed to a flag name to negate the flag.
2315+
For example, ``1234:abcd:mixer_playback_min_mute|!ignore_ctl_error;*:*:0x01;``
2316+
applies the ``mixer_playback_min_mute`` flag and clears the
2317+
``ignore_ctl_error`` flag for the device 1234:abcd, and applies the
2318+
``skip_sample_rate`` flag for all devices.
2319+
2320+
* bit 0: ``get_sample_rate``
2321+
Skip reading sample rate for devices
2322+
* bit 1: ``share_media_device``
2323+
Create Media Controller API entries
2324+
* bit 2: ``align_transfer``
2325+
Allow alignment on audio sub-slot at transfer
2326+
* bit 3: ``tx_length``
2327+
Add length specifier to transfers
2328+
* bit 4: ``playback_first``
2329+
Start playback stream at first in implement feedback mode
2330+
* bit 5: ``skip_clock_selector``
2331+
Skip clock selector setup
2332+
* bit 6: ``ignore_clock_source``
2333+
Ignore errors from clock source search
2334+
* bit 7: ``itf_usb_dsd_dac``
2335+
Indicates ITF-USB DSD-based DACs
2336+
* bit 8: ``ctl_msg_delay``
2337+
Add a delay of 20ms at each control message handling
2338+
* bit 9: ``ctl_msg_delay_1m``
2339+
Add a delay of 1-2ms at each control message handling
2340+
* bit 10: ``ctl_msg_delay_5m``
2341+
Add a delay of 5-6ms at each control message handling
2342+
* bit 11: ``iface_delay``
2343+
Add a delay of 50ms at each interface setup
2344+
* bit 12: ``validate_rates``
2345+
Perform sample rate validations at probe
2346+
* bit 13: ``disable_autosuspend``
2347+
Disable runtime PM autosuspend
2348+
* bit 14: ``ignore_ctl_error``
2349+
Ignore errors for mixer access
2350+
* bit 15: ``dsd_raw``
2351+
Support generic DSD raw U32_BE format
2352+
* bit 16: ``set_iface_first``
2353+
Set up the interface at first like UAC1
2354+
* bit 17: ``generic_implicit_fb``
2355+
Apply the generic implicit feedback sync mode
2356+
* bit 18: ``skip_implicit_fb``
2357+
Don't apply implicit feedback sync mode
2358+
* bit 19: ``iface_skip_close``
2359+
Don't close interface during setting sample rate
2360+
* bit 20: ``force_iface_reset``
2361+
Force an interface reset whenever stopping & restarting a stream
2362+
* bit 21: ``fixed_rate``
2363+
Do not set PCM rate (frequency) when only one rate is available
2364+
for the given endpoint
2365+
* bit 22: ``mic_res_16``
2366+
Set the fixed resolution 16 for Mic Capture Volume
2367+
* bit 23: ``mic_res_384``
2368+
Set the fixed resolution 384 for Mic Capture Volume
2369+
* bit 24: ``mixer_playback_min_mute``
2370+
Set minimum volume control value as mute for devices where the
2371+
lowest playback value represents muted state instead of minimum
2372+
audible volume
2373+
* bit 25: ``mixer_capture_min_mute``
2374+
Similar to bit 24 but for capture streams
23332375

23342376
This module supports multiple devices, autoprobe and hotplugging.
23352377

0 commit comments

Comments
 (0)