@@ -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.
22992299quirk_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
23342376This module supports multiple devices, autoprobe and hotplugging.
23352377
0 commit comments