Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Cryolitia PukNgae and committed by
Takashi Iwai
a767d358 98b5427b

+74 -32
+74 -32
Documentation/sound/alsa-configuration.rst
··· 2297 2297 of the unit descriptor instead of a driver probe error, so that we 2298 2298 can check its details. 2299 2299 quirk_flags 2300 - Contains the bit flags for various device specific workarounds. 2301 - Applied to the corresponding card index. 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. 2302 2319 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 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 2333 2375 2334 2376 This module supports multiple devices, autoprobe and hotplugging. 2335 2377