Loading Documentation/sound/alsa-configuration.rst +13 −0 Original line number Diff line number Diff line Loading @@ -2234,6 +2234,19 @@ use_vmalloc buffers. If mmap is used on such architectures, turn off this option, so that the DMA-coherent buffers are allocated and used instead. delayed_register The option is needed for devices that have multiple streams defined in multiple USB interfaces. The driver may invoke registrations multiple times (once per interface) and this may lead to the insufficient device enumeration. This option receives an array of strings, and you can pass ID:INTERFACE like ``0123abcd:4`` for performing the delayed registration to the given device. In this example, when a USB device 0123:abcd is probed, the driver waits the registration until the USB interface 4 gets probed. The driver prints a message like "Found post-registration device assignment: 1234abcd:04" for such a device, so that user can notice the need. This module supports multiple devices, autoprobe and hotplugging. Loading include/linux/usb/audio-v2.h +12 −0 Original line number Diff line number Diff line Loading @@ -156,6 +156,18 @@ struct uac2_feature_unit_descriptor { __u8 bmaControls[0]; /* variable length */ } __attribute__((packed)); /* 4.7.2.10 Effect Unit Descriptor */ struct uac2_effect_unit_descriptor { __u8 bLength; __u8 bDescriptorType; __u8 bDescriptorSubtype; __u8 bUnitID; __le16 wEffectType; __u8 bSourceID; __u8 bmaControls[]; /* variable length */ } __attribute__((packed)); /* 4.9.2 Class-Specific AS Interface Descriptor */ struct uac2_as_header_descriptor { Loading include/sound/core.h +1 −0 Original line number Diff line number Diff line Loading @@ -266,6 +266,7 @@ void snd_device_disconnect(struct snd_card *card, void *device_data); void snd_device_disconnect_all(struct snd_card *card); void snd_device_free(struct snd_card *card, void *device_data); void snd_device_free_all(struct snd_card *card); int snd_device_get_state(struct snd_card *card, void *device_data); /* isadma.c */ Loading include/sound/pcm.h +9 −0 Original line number Diff line number Diff line Loading @@ -1415,6 +1415,15 @@ static inline u64 pcm_format_to_bits(snd_pcm_format_t pcm_format) return 1ULL << (__force int) pcm_format; } /** * pcm_for_each_format - helper to iterate for each format type * @f: the iterator variable in snd_pcm_format_t type */ #define pcm_for_each_format(f) \ for ((f) = SNDRV_PCM_FORMAT_FIRST; \ (__force int)(f) <= (__force int)SNDRV_PCM_FORMAT_LAST; \ (f) = (__force snd_pcm_format_t)((__force int)(f) + 1)) /* printk helpers */ #define pcm_err(pcm, fmt, args...) \ dev_err((pcm)->card->dev, fmt, ##args) Loading include/sound/pcm_params.h +7 −0 Original line number Diff line number Diff line Loading @@ -133,6 +133,13 @@ static inline int snd_mask_test(const struct snd_mask *mask, unsigned int val) return mask->bits[MASK_OFS(val)] & MASK_BIT(val); } /* Most of drivers need only this one */ static inline int snd_mask_test_format(const struct snd_mask *mask, snd_pcm_format_t format) { return snd_mask_test(mask, (__force unsigned int)format); } static inline int snd_mask_single(const struct snd_mask *mask) { int i, c = 0; Loading Loading
Documentation/sound/alsa-configuration.rst +13 −0 Original line number Diff line number Diff line Loading @@ -2234,6 +2234,19 @@ use_vmalloc buffers. If mmap is used on such architectures, turn off this option, so that the DMA-coherent buffers are allocated and used instead. delayed_register The option is needed for devices that have multiple streams defined in multiple USB interfaces. The driver may invoke registrations multiple times (once per interface) and this may lead to the insufficient device enumeration. This option receives an array of strings, and you can pass ID:INTERFACE like ``0123abcd:4`` for performing the delayed registration to the given device. In this example, when a USB device 0123:abcd is probed, the driver waits the registration until the USB interface 4 gets probed. The driver prints a message like "Found post-registration device assignment: 1234abcd:04" for such a device, so that user can notice the need. This module supports multiple devices, autoprobe and hotplugging. Loading
include/linux/usb/audio-v2.h +12 −0 Original line number Diff line number Diff line Loading @@ -156,6 +156,18 @@ struct uac2_feature_unit_descriptor { __u8 bmaControls[0]; /* variable length */ } __attribute__((packed)); /* 4.7.2.10 Effect Unit Descriptor */ struct uac2_effect_unit_descriptor { __u8 bLength; __u8 bDescriptorType; __u8 bDescriptorSubtype; __u8 bUnitID; __le16 wEffectType; __u8 bSourceID; __u8 bmaControls[]; /* variable length */ } __attribute__((packed)); /* 4.9.2 Class-Specific AS Interface Descriptor */ struct uac2_as_header_descriptor { Loading
include/sound/core.h +1 −0 Original line number Diff line number Diff line Loading @@ -266,6 +266,7 @@ void snd_device_disconnect(struct snd_card *card, void *device_data); void snd_device_disconnect_all(struct snd_card *card); void snd_device_free(struct snd_card *card, void *device_data); void snd_device_free_all(struct snd_card *card); int snd_device_get_state(struct snd_card *card, void *device_data); /* isadma.c */ Loading
include/sound/pcm.h +9 −0 Original line number Diff line number Diff line Loading @@ -1415,6 +1415,15 @@ static inline u64 pcm_format_to_bits(snd_pcm_format_t pcm_format) return 1ULL << (__force int) pcm_format; } /** * pcm_for_each_format - helper to iterate for each format type * @f: the iterator variable in snd_pcm_format_t type */ #define pcm_for_each_format(f) \ for ((f) = SNDRV_PCM_FORMAT_FIRST; \ (__force int)(f) <= (__force int)SNDRV_PCM_FORMAT_LAST; \ (f) = (__force snd_pcm_format_t)((__force int)(f) + 1)) /* printk helpers */ #define pcm_err(pcm, fmt, args...) \ dev_err((pcm)->card->dev, fmt, ##args) Loading
include/sound/pcm_params.h +7 −0 Original line number Diff line number Diff line Loading @@ -133,6 +133,13 @@ static inline int snd_mask_test(const struct snd_mask *mask, unsigned int val) return mask->bits[MASK_OFS(val)] & MASK_BIT(val); } /* Most of drivers need only this one */ static inline int snd_mask_test_format(const struct snd_mask *mask, snd_pcm_format_t format) { return snd_mask_test(mask, (__force unsigned int)format); } static inline int snd_mask_single(const struct snd_mask *mask) { int i, c = 0; Loading