FreeBSD kernel sound device code
|
#include <sys/cdefs.h>
#include <sys/stdint.h>
#include <sys/stddef.h>
#include <sys/param.h>
#include <sys/queue.h>
#include <sys/types.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/bus.h>
#include <sys/module.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/condvar.h>
#include <sys/sysctl.h>
#include <sys/sx.h>
#include <sys/unistd.h>
#include <sys/callout.h>
#include <sys/malloc.h>
#include <sys/priv.h>
#include <dev/hid/hid.h>
#include "usbdevs.h"
#include <dev/usb/usb.h>
#include <dev/usb/usbdi.h>
#include <dev/usb/usbdi_util.h>
#include <dev/usb/usbhid.h>
#include <dev/usb/usb_request.h>
#include <dev/usb/usb_process.h>
#include <dev/usb/usb_debug.h>
#include <dev/usb/quirk/usb_quirk.h>
#include <sys/reboot.h>
#include <dev/sound/pcm/sound.h>
#include <dev/sound/usb/uaudioreg.h>
#include <dev/sound/usb/uaudio.h>
#include <dev/sound/chip.h>
#include "feeder_if.h"
Go to the source code of this file.
Data Structures | |
union | uaudio_asid |
union | uaudio_asf1d |
union | uaudio_sed |
struct | uaudio_mixer_node |
struct | uaudio_configure_msg |
struct | uaudio_chan_alt |
struct | uaudio_chan |
struct | umidi_sub_chan |
struct | umidi_chan |
struct | uaudio_search_result |
struct | uaudio_hid |
struct | uaudio_softc_child |
struct | uaudio_softc |
struct | uaudio_terminal_node |
struct | uaudio_format |
struct | uaudio_tt_to_feature |
Macros | |
#define | USB_DEBUG_VAR uaudio_debug |
#define | uaudio_debug 0 |
#define | UAUDIO_NFRAMES 64 /* must be factor of 8 due HS-USB */ |
#define | UAUDIO_NCHANBUFS 2 /* number of outstanding request */ |
#define | UAUDIO_RECURSE_LIMIT 255 /* rounds */ |
#define | UAUDIO_CHANNELS_MAX MIN(64, AFMT_CHANNEL_MAX) |
#define | UAUDIO_MATRIX_MAX 8 /* channels */ |
#define | MAKE_WORD(h, l) (((h) << 8) | (l)) |
#define | BIT_TEST(bm, bno) (((bm)[(bno) / 8] >> (7 - ((bno) % 8))) & 1) |
#define | UAUDIO_MAX_CHAN(x) (x) |
#define | MIX(sc) ((sc)->sc_mixer_node) |
#define | MIX_MAX_CHAN 16 |
#define | MIX_ON_OFF 1 |
#define | MIX_SIGNED_16 2 |
#define | MIX_UNSIGNED_16 3 |
#define | MIX_SIGNED_8 4 |
#define | MIX_SELECTOR 5 |
#define | MIX_UNKNOWN 6 |
#define | MIX_SIZE(n) |
#define | MIX_UNSIGNED(n) ((n) == MIX_UNSIGNED_16) |
#define | MAX_SELECTOR_INPUT_PIN 256 |
#define | CHAN_MAX_ALT 24 |
#define | CHAN_OP_NONE 0 |
#define | CHAN_OP_START 1 |
#define | CHAN_OP_STOP 2 |
#define | CHAN_OP_DRAIN 3 |
#define | UMIDI_EMB_JACK_MAX 16 /* units */ |
#define | UMIDI_TX_FRAMES 256 /* units */ |
#define | UMIDI_TX_BUFFER (UMIDI_TX_FRAMES * 4) /* bytes */ |
#define | UMIDI_ST_UNKNOWN 0 /* scan for command */ |
#define | UMIDI_ST_1PARAM 1 |
#define | UMIDI_ST_2PARAM_1 2 |
#define | UMIDI_ST_2PARAM_2 3 |
#define | UMIDI_ST_SYSEX_0 4 |
#define | UMIDI_ST_SYSEX_1 5 |
#define | UMIDI_ST_SYSEX_2 6 |
#define | UAUDIO_HID_VALID 0x0001 |
#define | UAUDIO_HID_HAS_ID 0x0002 |
#define | UAUDIO_HID_HAS_VOLUME_UP 0x0004 |
#define | UAUDIO_HID_HAS_VOLUME_DOWN 0x0008 |
#define | UAUDIO_HID_HAS_MUTE 0x0010 |
#define | UAUDIO_SPDIF_OUT 0x01 /* Enable S/PDIF output */ |
#define | UAUDIO_SPDIF_OUT_48K 0x02 /* Out sample rate = 48K */ |
#define | UAUDIO_SPDIF_OUT_96K 0x04 /* Out sample rate = 96K */ |
#define | UAUDIO_SPDIF_IN_MIX 0x10 /* Input mix enable */ |
#define | UAUDIO_MAX_CHILD 2 |
#define | UAUDIO20_MAX_RATES 32 /* we support at maximum 32 rates */ |
Enumerations | |
enum | { UMIDI_TX_TRANSFER , UMIDI_RX_TRANSFER , UMIDI_N_TRANSFER } |
enum | { UAUDIO_HID_RX_TRANSFER , UAUDIO_HID_N_TRANSFER } |
Functions | |
__FBSDID ("$FreeBSD$") | |
static | SYSCTL_NODE (_hw_usb, OID_AUTO, uaudio, CTLFLAG_RW|CTLFLAG_MPSAFE, 0, "USB uaudio") |
SYSCTL_BOOL (_hw_usb_uaudio, OID_AUTO, handle_hid, CTLFLAG_RWTUN, &uaudio_handle_hid, 0, "uaudio handles any HID volume/mute keys, if set") | |
SYSCTL_INT (_hw_usb_uaudio, OID_AUTO, default_rate, CTLFLAG_RWTUN, &uaudio_default_rate, 0, "uaudio default sample rate") | |
SYSCTL_INT (_hw_usb_uaudio, OID_AUTO, default_bits, CTLFLAG_RWTUN, &uaudio_default_bits, 0, "uaudio default sample bits") | |
SYSCTL_INT (_hw_usb_uaudio, OID_AUTO, default_channels, CTLFLAG_RWTUN, &uaudio_default_channels, 0, "uaudio default sample channels") | |
static int | uaudio_buffer_ms_sysctl (SYSCTL_HANDLER_ARGS) |
SYSCTL_PROC (_hw_usb_uaudio, OID_AUTO, buffer_ms, CTLTYPE_INT|CTLFLAG_RWTUN|CTLFLAG_MPSAFE, 0, sizeof(int), uaudio_buffer_ms_sysctl, "I", "uaudio buffering delay from 2ms to 8ms") | |
static int | uaudio_mixer_sysctl_handler (SYSCTL_HANDLER_ARGS) |
static void | uaudio_mixer_ctl_free (struct uaudio_softc *) |
static void | uaudio_mixer_register_sysctl (struct uaudio_softc *, device_t, unsigned) |
static void | uaudio_mixer_reload_all (struct uaudio_softc *) |
static void | uaudio_mixer_controls_create_ftu (struct uaudio_softc *) |
static void | uaudio_mixer_add_mixer (struct uaudio_softc *, const struct uaudio_terminal_node *, int) |
static void | uaudio_mixer_add_selector (struct uaudio_softc *, const struct uaudio_terminal_node *, int) |
static uint32_t | uaudio_mixer_feature_get_bmaControls (const struct usb_audio_feature_unit *, uint8_t) |
static void | uaudio_mixer_add_feature (struct uaudio_softc *, const struct uaudio_terminal_node *, int) |
static void | uaudio_mixer_add_processing_updown (struct uaudio_softc *, const struct uaudio_terminal_node *, int) |
static void | uaudio_mixer_add_processing (struct uaudio_softc *, const struct uaudio_terminal_node *, int) |
static void | uaudio_mixer_add_extension (struct uaudio_softc *, const struct uaudio_terminal_node *, int) |
static struct usb_audio_cluster | uaudio_mixer_get_cluster (uint8_t, const struct uaudio_terminal_node *) |
static uint16_t | uaudio_mixer_determine_class (const struct uaudio_terminal_node *) |
static void | uaudio_mixer_find_inputs_sub (struct uaudio_terminal_node *, const uint8_t *, uint8_t, struct uaudio_search_result *) |
static const void * | uaudio_mixer_verify_desc (const void *, uint32_t) |
static usb_error_t | uaudio_set_speed (struct usb_device *, uint8_t, uint32_t) |
static int | uaudio_mixer_get (struct usb_device *, uint16_t, uint8_t, struct uaudio_mixer_node *) |
static void | uaudio20_mixer_add_mixer (struct uaudio_softc *, const struct uaudio_terminal_node *, int) |
static void | uaudio20_mixer_add_selector (struct uaudio_softc *, const struct uaudio_terminal_node *, int) |
static void | uaudio20_mixer_add_feature (struct uaudio_softc *, const struct uaudio_terminal_node *, int) |
static struct usb_audio20_cluster | uaudio20_mixer_get_cluster (uint8_t, const struct uaudio_terminal_node *) |
static uint16_t | uaudio20_mixer_determine_class (const struct uaudio_terminal_node *) |
static void | uaudio20_mixer_find_inputs_sub (struct uaudio_terminal_node *, const uint8_t *, uint8_t, struct uaudio_search_result *) |
static const void * | uaudio20_mixer_verify_desc (const void *, uint32_t) |
static usb_error_t | uaudio20_set_speed (struct usb_device *, uint8_t, uint8_t, uint32_t) |
static void | uaudio_chan_fill_info_sub (struct uaudio_softc *, struct usb_device *, uint32_t, uint8_t, uint8_t) |
static void | uaudio_chan_fill_info (struct uaudio_softc *, struct usb_device *) |
static void | uaudio_mixer_add_ctl_sub (struct uaudio_softc *, struct uaudio_mixer_node *) |
static void | uaudio_mixer_add_ctl (struct uaudio_softc *, struct uaudio_mixer_node *) |
static void | uaudio_mixer_fill_info (struct uaudio_softc *, struct usb_device *, void *) |
static int | uaudio_mixer_signext (uint8_t, int) |
static void | uaudio_mixer_init (struct uaudio_softc *, unsigned) |
static uint8_t | umidi_convert_to_usb (struct umidi_sub_chan *, uint8_t, uint8_t) |
static struct umidi_sub_chan * | umidi_sub_by_fifo (struct usb_fifo *) |
static void | umidi_start_read (struct usb_fifo *) |
static void | umidi_stop_read (struct usb_fifo *) |
static void | umidi_start_write (struct usb_fifo *) |
static void | umidi_stop_write (struct usb_fifo *) |
static int | umidi_open (struct usb_fifo *, int) |
static int | umidi_ioctl (struct usb_fifo *, u_long cmd, void *, int) |
static void | umidi_close (struct usb_fifo *, int) |
static void | umidi_init (device_t dev) |
static int | umidi_probe (device_t dev) |
static int | umidi_detach (device_t dev) |
static int | uaudio_hid_probe (struct uaudio_softc *sc, struct usb_attach_arg *uaa) |
static void | uaudio_hid_detach (struct uaudio_softc *sc) |
static unsigned | uaudio_get_child_index_by_dev (struct uaudio_softc *sc, device_t dev) |
static unsigned | uaudio_get_child_index_by_chan (struct uaudio_softc *sc, struct uaudio_chan *ch) |
static int | uaudio_probe (device_t dev) |
static int | uaudio_set_spdif_cm6206 (struct uaudio_softc *sc, int flags) |
static int | uaudio_set_spdif_dummy (struct uaudio_softc *sc, int flags) |
static usb_error_t | uaudio_force_power_save (struct uaudio_softc *sc, uint8_t iface_index) |
static int | uaudio_attach (device_t dev) |
static void | uaudio_pcm_setflags (device_t dev, uint32_t flags) |
int | uaudio_attach_sub (device_t dev, kobj_class_t mixer_class, kobj_class_t chan_class) |
int | uaudio_detach_sub (device_t dev) |
static int | uaudio_detach (device_t dev) |
static uint32_t | uaudio_get_buffer_size (struct uaudio_chan *ch, uint8_t alt) |
static void | uaudio_configure_msg_sub (struct uaudio_softc *sc, struct uaudio_chan *chan, int dir) |
static void | uaudio_configure_msg (struct usb_proc_msg *pm) |
static void | uaudio_record_fix_fs (usb_endpoint_descriptor_audio_t *ep, uint32_t xps, uint32_t add) |
static usb_error_t | uaudio20_check_rate (struct usb_device *udev, uint8_t iface_no, uint8_t clockid, uint32_t rate) |
static struct uaudio_chan * | uaudio_get_chan (struct uaudio_softc *sc, struct uaudio_chan *chan, uint8_t iface_index) |
static void | uaudio_chan_play_sync_callback (struct usb_xfer *xfer, usb_error_t error) |
static int | uaudio_chan_is_async (struct uaudio_chan *ch, uint8_t alt) |
static void | uaudio_chan_play_callback (struct usb_xfer *xfer, usb_error_t error) |
static void | uaudio_chan_record_sync_callback (struct usb_xfer *xfer, usb_error_t error) |
static void | uaudio_chan_record_callback (struct usb_xfer *xfer, usb_error_t error) |
void * | uaudio_chan_init (struct uaudio_chan *ch, struct snd_dbuf *b, struct pcm_channel *c, int dir) |
int | uaudio_chan_free (struct uaudio_chan *ch) |
int | uaudio_chan_set_param_blocksize (struct uaudio_chan *ch, uint32_t blocksize) |
int | uaudio_chan_set_param_fragments (struct uaudio_chan *ch, uint32_t blocksize, uint32_t blockcount) |
int | uaudio_chan_set_param_speed (struct uaudio_chan *ch, uint32_t speed) |
int | uaudio_chan_getptr (struct uaudio_chan *ch) |
struct pcmchan_caps * | uaudio_chan_getcaps (struct uaudio_chan *ch) |
struct pcmchan_matrix * | uaudio_chan_getmatrix (struct uaudio_chan *ch, uint32_t format) |
int | uaudio_chan_set_param_format (struct uaudio_chan *ch, uint32_t format) |
static void | uaudio_chan_reconfigure (struct uaudio_chan *ch, uint8_t operation) |
static int | uaudio_chan_need_both (struct uaudio_chan *pchan, struct uaudio_chan *rchan) |
static int | uaudio_chan_need_none (struct uaudio_chan *pchan, struct uaudio_chan *rchan) |
void | uaudio_chan_start (struct uaudio_chan *ch) |
void | uaudio_chan_stop (struct uaudio_chan *ch) |
static void | uaudio_mixer_check_selectors (struct uaudio_softc *sc) |
static bool | uaudio_mixer_foreach_input (const struct uaudio_terminal_node *iot, uint8_t *pindex) |
static bool | uaudio_mixer_foreach_output (const struct uaudio_terminal_node *iot, uint8_t *pindex) |
static uint16_t | uaudio_mixer_get_feature_by_tt (uint16_t terminal_type, uint16_t default_type) |
static void | uaudio_mixer_merge_outputs (struct uaudio_search_result *dst, const struct uaudio_search_result *src) |
static void | uaudio20_mixer_find_clocks_sub (struct uaudio_terminal_node *root, const uint8_t *p_id, uint8_t n_id, struct uaudio_search_result *info) |
static void | uaudio_mixer_write_cfg_callback (struct usb_xfer *xfer, usb_error_t error) |
static int | uaudio_mixer_bsd2value (struct uaudio_mixer_node *mc, int val) |
static void | uaudio_mixer_ctl_set (struct uaudio_softc *sc, struct uaudio_mixer_node *mc, uint8_t chan, int val) |
int | uaudio_mixer_init_sub (struct uaudio_softc *sc, struct snd_mixer *m) |
int | uaudio_mixer_uninit_sub (struct uaudio_softc *sc, struct snd_mixer *m) |
void | uaudio_mixer_set (struct uaudio_softc *sc, struct snd_mixer *m, unsigned type, unsigned left, unsigned right) |
uint32_t | uaudio_mixer_setrecsrc (struct uaudio_softc *sc, struct snd_mixer *m, uint32_t src) |
static void | umidi_bulk_read_callback (struct usb_xfer *xfer, usb_error_t error) |
static void | umidi_bulk_write_callback (struct usb_xfer *xfer, usb_error_t error) |
static void | uaudio_hid_rx_callback (struct usb_xfer *xfer, usb_error_t error) |
DRIVER_MODULE_ORDERED (uaudio, uhub, uaudio_driver, uaudio_devclass, NULL, 0, SI_ORDER_ANY) | |
MODULE_DEPEND (uaudio, usb, 1, 1, 1) | |
MODULE_DEPEND (uaudio, sound, SOUND_MINVER, SOUND_PREFVER, SOUND_MAXVER) | |
MODULE_DEPEND (uaudio, hid, 1, 1, 1) | |
MODULE_VERSION (uaudio, 1) | |
USB_PNP_HOST_INFO (uaudio_devs) | |
USB_PNP_HOST_INFO (uaudio_vendor_midi) | |
#define BIT_TEST | ( | bm, | |
bno | |||
) | (((bm)[(bno) / 8] >> (7 - ((bno) % 8))) & 1) |
#define MIX_SIZE | ( | n | ) |
#define MIX_UNSIGNED | ( | n | ) | ((n) == MIX_UNSIGNED_16) |
#define UAUDIO20_MAX_RATES 32 /* we support at maximum 32 rates */ |
#define UAUDIO_CHANNELS_MAX MIN(64, AFMT_CHANNEL_MAX) |
#define UAUDIO_NCHANBUFS 2 /* number of outstanding request */ |
#define UAUDIO_NFRAMES 64 /* must be factor of 8 due HS-USB */ |
#define UAUDIO_SPDIF_OUT_48K 0x02 /* Out sample rate = 48K */ |
#define UAUDIO_SPDIF_OUT_96K 0x04 /* Out sample rate = 96K */ |
#define UMIDI_TX_BUFFER (UMIDI_TX_FRAMES * 4) /* bytes */ |
#define USB_DEBUG_VAR uaudio_debug |
anonymous enum |
anonymous enum |
__FBSDID | ( | "$FreeBSD$" | ) |
DRIVER_MODULE_ORDERED | ( | uaudio | , |
uhub | , | ||
uaudio_driver | , | ||
uaudio_devclass | , | ||
NULL | , | ||
0 | , | ||
SI_ORDER_ANY | |||
) |
MODULE_DEPEND | ( | uaudio | , |
hid | , | ||
1 | , | ||
1 | , | ||
1 | |||
) |
MODULE_DEPEND | ( | uaudio | , |
sound | , | ||
SOUND_MINVER | , | ||
SOUND_PREFVER | , | ||
SOUND_MAXVER | |||
) |
MODULE_DEPEND | ( | uaudio | , |
usb | , | ||
1 | , | ||
1 | , | ||
1 | |||
) |
MODULE_VERSION | ( | uaudio | , |
1 | |||
) |
SYSCTL_BOOL | ( | _hw_usb_uaudio | , |
OID_AUTO | , | ||
handle_hid | , | ||
CTLFLAG_RWTUN | , | ||
& | uaudio_handle_hid, | ||
0 | , | ||
"uaudio handles any HID volume/mute | keys, | ||
if set" | |||
) |
SYSCTL_INT | ( | _hw_usb_uaudio | , |
OID_AUTO | , | ||
default_bits | , | ||
CTLFLAG_RWTUN | , | ||
& | uaudio_default_bits, | ||
0 | , | ||
"uaudio default sample bits" | |||
) |
SYSCTL_INT | ( | _hw_usb_uaudio | , |
OID_AUTO | , | ||
default_channels | , | ||
CTLFLAG_RWTUN | , | ||
& | uaudio_default_channels, | ||
0 | , | ||
"uaudio default sample channels" | |||
) |
SYSCTL_INT | ( | _hw_usb_uaudio | , |
OID_AUTO | , | ||
default_rate | , | ||
CTLFLAG_RWTUN | , | ||
& | uaudio_default_rate, | ||
0 | , | ||
"uaudio default sample rate" | |||
) |
|
static |
SYSCTL_PROC | ( | _hw_usb_uaudio | , |
OID_AUTO | , | ||
buffer_ms | , | ||
CTLTYPE_INT|CTLFLAG_RWTUN| | CTLFLAG_MPSAFE, | ||
0 | , | ||
sizeof(int) | , | ||
uaudio_buffer_ms_sysctl | , | ||
"I" | , | ||
"uaudio buffering delay from 2ms to 8ms" | |||
) |
|
static |
Definition at line 1586 of file uaudio.c.
References data, DPRINTF, error, max, rate, rates, req, UA20_CS_RANGE, UA20_CS_SAM_FREQ_CONTROL, UAUDIO20_MAX_RATES, UGETDW, UGETW, USB_DEFAULT_TIMEOUT, USB_ERR_INVAL, USB_SHORT_XFER_OK, usbd_do_request_flags(), USETW, USETW2, and UT_READ_CLASS_INTERFACE.
Referenced by uaudio_chan_fill_info_sub().
|
static |
Definition at line 3755 of file uaudio.c.
References AGC_CONTROL, BASS_BOOST_CONTROL, BASS_CONTROL, usb_audio20_feature_unit::bLength, usb_audio20_feature_unit::bmaControls, usb_audio20_feature_unit::bUnitId, chan, DELAY_CONTROL, desc, uaudio_terminal_node::fu_v2, id, INPUT_GAIN_CONTROL, INPUT_GAIN_PAD_CONTROL, LOUDNESS_CONTROL, MAKE_WORD, MID_CONTROL, MIX, MIX_MAX_CHAN, MIX_ON_OFF, MIX_SIGNED_16, MIX_SIGNED_8, MIX_UNKNOWN, MIX_UNSIGNED_16, MUTE_CONTROL, uaudio_softc::sc_mixer_iface_no, uaudio_softc::sc_udev, TREBLE_CONTROL, type, uaudio_terminal_node::u, uaudio20_mixer_determine_class(), uaudio_mixer_add_ctl(), UGETDW, usbd_req_get_string_any(), VOLUME_CONTROL, and what.
Referenced by uaudio_mixer_fill_info().
|
static |
Definition at line 3372 of file uaudio.c.
References usb_audio20_mixer_unit_0::baSourceId, BIT_TEST, usb_audio20_mixer_unit_1::bmControls, usb_audio20_mixer_unit_1::bNrChannels, usb_audio20_cluster::bNrChannels, usb_audio20_mixer_unit_0::bNrInPins, usb_audio20_mixer_unit_0::bUnitId, c, id, MAKE_WORD, MIX, MIX_MAX_CHAN, MIX_SIGNED_16, uaudio_terminal_node::mu_v2, uaudio_softc::sc_mixer_iface_no, uaudio_terminal_node::u, uaudio20_mixer_get_cluster(), uaudio20_mixer_verify_desc(), and uaudio_mixer_add_ctl().
Referenced by uaudio_mixer_fill_info().
|
static |
Definition at line 3548 of file uaudio.c.
References usb_audio20_selector_unit::baSourceId, usb_audio20_selector_unit::bNrInPins, usb_audio20_selector_unit::bUnitId, desc, id, MAKE_WORD, MAX_SELECTOR_INPUT_PIN, MIX, MIX_SELECTOR, uaudio_softc::sc_mixer_iface_no, uaudio_softc::sc_udev, uaudio_terminal_node::su_v2, uaudio_terminal_node::u, uaudio20_mixer_determine_class(), uaudio_mixer_add_ctl(), uaudio_mixer_check_selectors(), and usbd_req_get_string_any().
Referenced by uaudio_mixer_fill_info().
|
static |
Definition at line 4596 of file uaudio.c.
References DPRINTF, uaudio_terminal_node::it_v2, uaudio_terminal_node::ot_v2, uaudio_terminal_node::root, uaudio_terminal_node::u, UAT_STREAM, UAT_UNDEFINED, uaudio_mixer_foreach_input(), uaudio_mixer_foreach_output(), uaudio_mixer_get_feature_by_tt(), UGETW, usb_audio20_input_terminal::wTerminalType, and usb_audio20_output_terminal::wTerminalType.
Referenced by uaudio20_mixer_add_feature(), and uaudio20_mixer_add_selector().
|
static |
Definition at line 4833 of file uaudio.c.
References usb_audio20_clock_selector_unit_0::baCSourceId, usb_audio20_clock_source_unit::bClockId, usb_audio20_clock_multiplier_unit::bCSourceId, usb_audio20_input_terminal::bCSourceId, usb_audio20_output_terminal::bCSourceId, usb_descriptor::bDescriptorSubtype, uaudio_search_result::bit_input, uaudio_search_result::bit_output, usb_audio20_clock_selector_unit_0::bNrInPins, uaudio_terminal_node::cmul_v2, uaudio_terminal_node::csel_v2, uaudio_terminal_node::csrc_v2, uaudio_terminal_node::desc, DPRINTF, id, uaudio_search_result::is_input, uaudio_terminal_node::it_v2, n, uaudio_terminal_node::ot_v2, uaudio_search_result::recurse_level, uaudio_terminal_node::root, uaudio_terminal_node::u, uaudio20_mixer_find_clocks_sub(), UAUDIO_RECURSE_LIMIT, UDESCSUB_AC_CLOCK_MUL, UDESCSUB_AC_CLOCK_SEL, UDESCSUB_AC_CLOCK_SRC, UDESCSUB_AC_INPUT, and UDESCSUB_AC_OUTPUT.
Referenced by uaudio20_mixer_find_clocks_sub(), and uaudio_mixer_fill_info().
|
static |
Definition at line 4743 of file uaudio.c.
References usb_audio20_mixer_unit_0::baSourceId, usb_audio20_selector_unit::baSourceId, usb_audio20_processing_unit_0::baSourceId, usb_audio20_extension_unit_0::baSourceId, usb_descriptor::bDescriptorSubtype, uaudio_search_result::bit_input, uaudio_search_result::bit_output, usb_audio20_mixer_unit_0::bNrInPins, usb_audio20_selector_unit::bNrInPins, usb_audio20_processing_unit_0::bNrInPins, usb_audio20_extension_unit_0::bNrInPins, usb_audio20_output_terminal::bSourceId, usb_audio20_feature_unit::bSourceId, usb_audio20_sample_rate_unit::bSourceId, usb_audio20_effect_unit::bSourceId, uaudio_terminal_node::desc, DPRINTF, uaudio_terminal_node::ef_v2, uaudio_terminal_node::eu_v2, uaudio_terminal_node::fu_v2, uaudio_terminal_node::mu_v2, n, uaudio_terminal_node::ot_v2, uaudio_terminal_node::pu_v2, uaudio_search_result::recurse_level, uaudio_terminal_node::root, uaudio_terminal_node::ru_v2, uaudio_terminal_node::su_v2, uaudio_terminal_node::u, uaudio20_mixer_find_inputs_sub(), uaudio_mixer_merge_outputs(), UAUDIO_RECURSE_LIMIT, UDESCSUB_AC_EFFECT, UDESCSUB_AC_EXTENSION_V2, UDESCSUB_AC_FEATURE, UDESCSUB_AC_INPUT, UDESCSUB_AC_MIXER, UDESCSUB_AC_OUTPUT, UDESCSUB_AC_PROCESSING_V2, UDESCSUB_AC_SAMPLE_RT, UDESCSUB_AC_SELECTOR, and uaudio_terminal_node::usr.
Referenced by uaudio20_mixer_find_inputs_sub(), and uaudio_mixer_fill_info().
|
static |
Definition at line 4353 of file uaudio.c.
References usb_descriptor::bDescriptorSubtype, DPRINTF, error, id, r, UAUDIO_RECURSE_LIMIT, UDESCSUB_AC_EFFECT, UDESCSUB_AC_EXTENSION_V2, UDESCSUB_AC_FEATURE, UDESCSUB_AC_INPUT, UDESCSUB_AC_MIXER, UDESCSUB_AC_OUTPUT, UDESCSUB_AC_PROCESSING_V2, UDESCSUB_AC_SAMPLE_RT, and UDESCSUB_AC_SELECTOR.
Referenced by uaudio20_mixer_add_mixer().
|
static |
Definition at line 4136 of file uaudio.c.
References usb_audio20_mixer_unit_1::bNrChannels, desc, DPRINTF, error, len, UDESC_CS_INTERFACE, UDESCSUB_AC_CLOCK_MUL, UDESCSUB_AC_CLOCK_SEL, UDESCSUB_AC_CLOCK_SRC, UDESCSUB_AC_EFFECT, UDESCSUB_AC_EXTENSION_V2, UDESCSUB_AC_FEATURE, UDESCSUB_AC_INPUT, UDESCSUB_AC_MIXER, UDESCSUB_AC_OUTPUT, UDESCSUB_AC_PROCESSING_V2, UDESCSUB_AC_SAMPLE_RT, and UDESCSUB_AC_SELECTOR.
Referenced by uaudio20_mixer_add_mixer(), and uaudio_mixer_fill_info().
|
static |
Definition at line 5302 of file uaudio.c.
References data, req, speed, UA20_CS_CUR, UA20_CS_SAM_FREQ_CONTROL, usbd_do_request, USETW, USETW2, and UT_WRITE_CLASS_INTERFACE.
Referenced by uaudio_configure_msg_sub().
|
static |
Definition at line 970 of file uaudio.c.
References usbd_lookup_info::bIfaceIndex, usbd_lookup_info::bIfaceNum, uaudio_chan_alt::channels, uaudio_format::description, dev, usb_attach_arg::device, device_set_usb_desc(), DPRINTF, usb_attach_arg::driver_info, sndcard_func::func, uaudio_configure_msg::hdr, id, usbd_lookup_info::idProduct, usbd_lookup_info::idVendor, usb_attach_arg::iface, umidi_chan::iface_alt_index, uaudio_chan_alt::iface_index, umidi_chan::iface_index, usb_attach_arg::info, uaudio_softc_child::mix_info, uaudio_chan::num_alt, uaudio_chan_alt::p_fmt, uaudio_softc_child::pcm_device, usb_proc_msg::pm_callback, uaudio_chan_alt::sample_rate, uaudio_configure_msg::sc, uaudio_softc::sc_audio_rev, uaudio_softc::sc_child, uaudio_softc::sc_config_msg, uaudio_softc::sc_midi_chan, uaudio_softc::sc_mixer_count, uaudio_softc::sc_mixer_iface_index, uaudio_softc::sc_mixer_iface_no, uaudio_softc::sc_play_chan, uaudio_softc::sc_rec_chan, uaudio_softc::sc_set_spdif_fn, uaudio_softc::sc_sndcard_func, uaudio_softc::sc_udev, uaudio_softc::sc_uq_au_inp_async, uaudio_softc::sc_uq_au_no_xu, uaudio_softc::sc_uq_au_vendor_class, uaudio_softc::sc_uq_audio_swap_lr, uaudio_softc::sc_uq_bad_adc, SCF_PCM, uaudio_buffer_ms, uaudio_chan_fill_info(), uaudio_configure_msg, uaudio_detach, uaudio_force_power_save(), uaudio_handle_hid, uaudio_hid_probe(), UAUDIO_MAX_CHILD, uaudio_mixer_controls_create_ftu(), uaudio_mixer_fill_info(), uaudio_mixer_reload_all(), uaudio_set_spdif_cm6206(), uaudio_set_spdif_dummy(), UAUDIO_SPDIF_OUT, UAUDIO_SPDIF_OUT_48K, uaudio_vendor_midi, umidi_init(), umidi_probe(), UQ_AU_INP_ASYNC, UQ_AU_NO_XU, UQ_AU_SET_SPDIF_CM6206, UQ_AU_VENDOR_CLASS, UQ_AUDIO_SWAP_LR, UQ_BAD_ADC, uaudio_chan::usb_alt, usb_test_quirk(), usbd_errstr(), usbd_get_interface_descriptor(), usbd_lookup_id_by_uaa(), and umidi_chan::valid.
int uaudio_attach_sub | ( | device_t | dev, |
kobj_class_t | mixer_class, | ||
kobj_class_t | chan_class | ||
) |
Definition at line 1175 of file uaudio.c.
References dev, DPRINTF, uaudio_chan::feedback_rate, uaudio_softc_child::mix_info, mixer_hwvol_init(), mixer_init(), uaudio_softc_child::mixer_init, uaudio_chan::num_alt, pcm_addchan(), PCM_KLDSTRING, pcm_register(), uaudio_softc_child::pcm_registered, pcm_setstatus(), PCMDIR_PLAY, PCMDIR_REC, uaudio_chan::priv_sc, uaudio_softc::sc_child, uaudio_softc::sc_pcm_bitperfect, uaudio_softc::sc_play_chan, uaudio_softc::sc_rec_chan, uaudio_softc::sc_uq_audio_swap_lr, SD_F_BITPERFECT, SD_F_MPSAFE, SD_F_SOFTPCMVOL, SND_STATUSLEN, status, uaudio_detach_sub(), uaudio_get_child_index_by_dev(), uaudio_mixer_init(), uaudio_mixer_register_sysctl(), and uaudio_pcm_setflags().
Referenced by ua_attach().
|
static |
Definition at line 117 of file uaudio.c.
References req, uaudio_buffer_ms, and val.
|
static |
Definition at line 2149 of file uaudio.c.
References uaudio_chan_alt::channels, rate, uaudio_softc::sc_sndstat, uaudio_softc::sc_sndstat_valid, uaudio_chan_fill_info_sub(), UAUDIO_CHANNELS_MAX, uaudio_default_bits, uaudio_default_channels, uaudio_default_rate, uaudio_rate_list, USB_SPEED_FULL, USB_SPEED_LOW, and usbd_get_speed().
Referenced by uaudio_attach().
|
static |
Definition at line 1701 of file uaudio.c.
References AS_GENERAL, usb_audio_control_descriptor::bcdADC, usb_midi_streaming_endpoint_descriptor::bDescriptorSubtype, usb_midi_streaming_endpoint_descriptor::bDescriptorType, usb_audio_streaming_type1_descriptor::bFormatType, uaudio_search_result::bit_input, uaudio_search_result::bit_output, usb_midi_streaming_endpoint_descriptor::bLength, usb_audio20_streaming_interface_descriptor::bmFormats, usb_audio_streaming_type1_descriptor::bNrChannels, usb_audio20_streaming_interface_descriptor::bNrChannels, usb_midi_streaming_endpoint_descriptor::bNumEmbMIDIJack, uaudio_format::bPrecision, usb_audio_streaming_type1_descriptor::bSamFreqType, usb_audio_streaming_type1_descriptor::bSubFrameSize, usb_audio20_streaming_type1_descriptor::bSubslotSize, chan, CHAN_MAX_ALT, uaudio_chan_alt::channels, desc, uaudio_format::description, DPRINTF, feeder_matrix_default_format(), uaudio_hid::flags, format, FORMAT_TYPE, FORMAT_TYPE_I, uaudio_format::freebsd_fmt, id, uaudio_chan_alt::iface_alt_index, umidi_chan::iface_alt_index, uaudio_chan_alt::iface_index, umidi_chan::iface_index, uaudio_hid::iface_index, umidi_chan::max_emb_jack, MS_GENERAL, uaudio_chan_alt::p_asf1d, uaudio_chan_alt::p_ed1, uaudio_chan_alt::p_fmt, uaudio_chan_alt::p_sed, rate, uaudio_chan_alt::sample_rate, uaudio_chan_alt::sample_size, uaudio_softc::sc_hid, uaudio_softc::sc_midi_chan, uaudio_softc::sc_mixer_clocks, uaudio_softc::sc_mixer_iface_index, uaudio_softc::sc_mixer_iface_no, uaudio_softc::sc_pcm_bitperfect, uaudio_softc::sc_play_chan, uaudio_softc::sc_rec_chan, uaudio_softc::sc_sndstat, uaudio_softc::sc_sndstat_valid, uaudio_softc::sc_udev, uaudio_softc::sc_uq_au_vendor_class, SND_FORMAT, UA_GETSAMP, UA_SAMP_HI, UA_SAMP_LO, uaudio10_formats, uaudio20_check_rate(), uaudio20_formats, uaudio_cfg_play, uaudio_cfg_record, uaudio_get_chan(), UAUDIO_HID_VALID, UAUDIO_MATRIX_MAX, UAUDIO_MAX_CHAN, UAUDIO_MAX_CHILD, uaudio_record_fix_fs(), UAUDIO_VERSION_20, UAUDIO_VERSION_30, UDESC_CS_ENDPOINT, UDESC_CS_INTERFACE, UDESC_ENDPOINT, UDESC_INTERFACE, UDESCSUB_AC_HEADER, UE_DIR_IN, UE_DIR_OUT, UE_GET_DIR, UE_GET_XFERTYPE, UE_ISOCHRONOUS, UEP_MINSIZE, UGETDW, UGETW, UICLASS_AUDIO, UICLASS_HID, UICLASS_VENDOR, UISUBCLASS_AUDIOSTREAM, UISUBCLASS_MIDISTREAM, uaudio_chan_alt::usb_cfg, usb_desc_foreach(), USB_SPEED_FULL, usbd_get_config_descriptor(), usbd_get_iface(), usbd_get_speed(), usbd_set_parent_iface(), uaudio_asid::v1, uaudio_asf1d::v1, uaudio_sed::v1, uaudio_asid::v2, uaudio_asf1d::v2, uaudio_sed::v2, umidi_chan::valid, uaudio_format::wFormat, and usb_audio_streaming_interface_descriptor::wFormatTag.
Referenced by uaudio_chan_fill_info().
int uaudio_chan_free | ( | struct uaudio_chan * | ch | ) |
Definition at line 2663 of file uaudio.c.
References uaudio_chan::buf, free, uaudio_chan::num_alt, UAUDIO_NCHANBUFS, usbd_transfer_unsetup(), and uaudio_chan::xfer.
Referenced by ua_chan_free(), and uaudio_chan_init().
struct pcmchan_caps * uaudio_chan_getcaps | ( | struct uaudio_chan * | ch | ) |
Definition at line 2725 of file uaudio.c.
References uaudio_chan::pcm_cap.
Referenced by ua_chan_getcaps().
struct pcmchan_matrix * uaudio_chan_getmatrix | ( | struct uaudio_chan * | ch, |
uint32_t | format | ||
) |
Definition at line 2762 of file uaudio.c.
References AFMT_CHANNEL, feeder_matrix_format_map(), format, uaudio_chan::priv_sc, uaudio_softc::sc_uq_audio_swap_lr, and uaudio_chan_matrix_swap_2_0.
Referenced by ua_chan_getmatrix().
int uaudio_chan_getptr | ( | struct uaudio_chan * | ch | ) |
Definition at line 2719 of file uaudio.c.
References uaudio_chan::cur, and uaudio_chan::start.
Referenced by ua_chan_getptr().
void * uaudio_chan_init | ( | struct uaudio_chan * | ch, |
struct snd_dbuf * | b, | ||
struct pcm_channel * | c, | ||
int | dir | ||
) |
Definition at line 2614 of file uaudio.c.
References b, uaudio_chan::buf, c, uaudio_chan::cur, DPRINTF, uaudio_chan::end, error, pcm_channel::lock, uaudio_chan::max_buf, uaudio_chan::num_alt, uaudio_chan::pcm_buf, uaudio_chan::pcm_ch, uaudio_chan::pcm_mtx, sndbuf_setup(), uaudio_chan::start, uaudio_chan_free(), and uaudio_get_buffer_size().
Referenced by ua_chan_init().
|
static |
Definition at line 2309 of file uaudio.c.
References uaudio_chan_alt::p_ed1, UE_GET_ISO_TYPE, UE_ISO_ASYNC, and uaudio_chan::usb_alt.
Referenced by uaudio_chan_need_both(), and uaudio_chan_play_callback().
|
static |
Definition at line 2804 of file uaudio.c.
References uaudio_chan::num_alt, uaudio_chan::running, uaudio_chan::set_alt, and uaudio_chan_is_async().
Referenced by uaudio_chan_start(), and uaudio_chan_stop().
|
static |
Definition at line 2814 of file uaudio.c.
References uaudio_chan::num_alt, and uaudio_chan::running.
Referenced by uaudio_chan_stop().
|
static |
Definition at line 2316 of file uaudio.c.
References blockcount, uaudio_chan::bytes_per_frame, chn_intr(), uaudio_chan::cur, uaudio_chan::cur_alt, DPRINTF, uaudio_chan::end, error, uaudio_chan::frames_per_second, uaudio_chan::intr_counter, uaudio_chan::intr_frames, uaudio_chan::jitter_curr, uaudio_chan::jitter_rem, n, uaudio_chan::num_alt, offset, uaudio_chan::pcm_ch, uaudio_chan::priv_sc, uaudio_chan::running, uaudio_chan::sample_curr, uaudio_chan_alt::sample_rate, uaudio_chan::sample_rem, uaudio_chan_alt::sample_size, uaudio_softc::sc_rec_chan, uaudio_chan::start, uaudio_chan_is_async(), uaudio_get_child_index_by_chan(), UAUDIO_NCHANBUFS, uaudio_chan::usb_alt, USB_ERR_CANCELLED, USB_GET_STATE, USB_ST_SETUP, USB_ST_TRANSFERRED, usbd_copy_in(), usbd_transfer_start(), usbd_transfer_submit(), usbd_xfer_get_frame(), usbd_xfer_max_framelen(), usbd_xfer_set_frame_len(), usbd_xfer_set_frames(), usbd_xfer_softc(), usbd_xfer_status(), and uaudio_chan::xfer.
|
static |
Definition at line 2203 of file uaudio.c.
References buf, uaudio_chan::cur_alt, DPRINTF, uaudio_chan::feedback_rate, uaudio_chan::jitter_curr, len, uaudio_chan::num_alt, uaudio_chan::priv_sc, uaudio_chan_alt::sample_rate, uaudio_softc::sc_rec_chan, uaudio_debug, uaudio_get_child_index_by_chan(), UGETDW, uaudio_chan::usb_alt, USB_GET_STATE, USB_ST_SETUP, USB_ST_TRANSFERRED, usbd_copy_out(), usbd_transfer_submit(), usbd_xfer_frame_len(), usbd_xfer_get_frame(), usbd_xfer_max_framelen(), usbd_xfer_set_frame_len(), usbd_xfer_set_frames(), usbd_xfer_softc(), usbd_xfer_status(), and uaudio_chan::xfer.
|
static |
Definition at line 2783 of file uaudio.c.
References CHAN_OP_DRAIN, uaudio_chan::operation, uaudio_chan::priv_sc, uaudio_softc::sc_config_msg, uaudio_softc::sc_udev, and usb_proc_explore_msignal().
Referenced by uaudio_chan_start(), and uaudio_chan_stop().
|
static |
Definition at line 2500 of file uaudio.c.
References uaudio_chan::bytes_per_frame, chn_intr(), uaudio_chan::cur, uaudio_chan::cur_alt, DPRINTF, uaudio_chan::end, error, uaudio_chan::frames_per_second, uaudio_chan::intr_frames, uaudio_chan::jitter_curr, len, m, n, uaudio_chan::pcm_ch, uaudio_chan::running, uaudio_chan::sample_curr, uaudio_chan::sample_rem, uaudio_chan_alt::sample_size, uaudio_chan::set_alt, uaudio_chan::start, uaudio_chan::usb_alt, USB_ERR_CANCELLED, USB_GET_STATE, USB_ST_SETUP, USB_ST_TRANSFERRED, usbd_copy_out(), usbd_transfer_submit(), usbd_xfer_frame_len(), usbd_xfer_get_frame(), usbd_xfer_max_framelen(), usbd_xfer_set_frame_len(), usbd_xfer_set_frames(), usbd_xfer_softc(), usbd_xfer_status(), and uaudio_chan::xfer.
|
static |
int uaudio_chan_set_param_blocksize | ( | struct uaudio_chan * | ch, |
uint32_t | blocksize | ||
) |
Definition at line 2677 of file uaudio.c.
References uaudio_chan::buf, uaudio_chan::pcm_buf, uaudio_chan::set_alt, sndbuf_setup(), and uaudio_get_buffer_size().
Referenced by ua_chan_setblocksize().
int uaudio_chan_set_param_format | ( | struct uaudio_chan * | ch, |
uint32_t | format | ||
) |
Definition at line 2776 of file uaudio.c.
References DPRINTF, and format.
Referenced by ua_chan_setformat().
int uaudio_chan_set_param_fragments | ( | struct uaudio_chan * | ch, |
uint32_t | blocksize, | ||
uint32_t | blockcount | ||
) |
Definition at line 2685 of file uaudio.c.
Referenced by ua_chan_setfragments().
int uaudio_chan_set_param_speed | ( | struct uaudio_chan * | ch, |
uint32_t | speed | ||
) |
Definition at line 2692 of file uaudio.c.
References DPRINTF, uaudio_chan::num_alt, uaudio_chan::priv_sc, uaudio_chan_alt::sample_rate, uaudio_softc::sc_udev, uaudio_chan::set_alt, speed, uaudio_chan::usb_alt, usb_proc_explore_lock(), and usb_proc_explore_unlock().
Referenced by ua_chan_setspeed().
void uaudio_chan_start | ( | struct uaudio_chan * | ch | ) |
Definition at line 2823 of file uaudio.c.
References uaudio_chan::buf, CHAN_OP_START, uaudio_chan::cur, uaudio_chan::end, uaudio_chan::priv_sc, uaudio_chan::running, uaudio_softc::sc_play_chan, uaudio_softc::sc_rec_chan, uaudio_softc::sc_udev, uaudio_chan::set_alt, uaudio_chan::start, uaudio_chan_need_both(), uaudio_chan_reconfigure(), uaudio_get_buffer_size(), uaudio_get_child_index_by_chan(), usb_proc_explore_lock(), and usb_proc_explore_unlock().
Referenced by ua_chan_trigger().
void uaudio_chan_stop | ( | struct uaudio_chan * | ch | ) |
Definition at line 2865 of file uaudio.c.
References CHAN_OP_STOP, uaudio_chan::priv_sc, uaudio_chan::running, uaudio_softc::sc_play_chan, uaudio_softc::sc_rec_chan, uaudio_softc::sc_udev, uaudio_chan_need_both(), uaudio_chan_need_none(), uaudio_chan_reconfigure(), uaudio_get_child_index_by_chan(), usb_proc_explore_lock(), and usb_proc_explore_unlock().
Referenced by ua_chan_trigger().
|
static |
Definition at line 1510 of file uaudio.c.
References PCMDIR_PLAY, PCMDIR_REC, uaudio_configure_msg::sc, uaudio_softc::sc_play_chan, uaudio_softc::sc_rec_chan, uaudio_softc::sc_udev, uaudio_configure_msg_sub(), UAUDIO_MAX_CHILD, usb_proc_explore_lock(), and usb_proc_explore_unlock().
|
static |
Definition at line 1324 of file uaudio.c.
References uaudio_search_result::bit_input, uaudio_search_result::bit_output, usb_audio_streaming_endpoint_descriptor::bmAttributes, chan, CHAN_MAX_ALT, CHAN_OP_NONE, CHAN_OP_START, CHAN_OP_STOP, dir, DPRINTF, error, frames, uaudio_chan_alt::iface_alt_index, uaudio_chan_alt::iface_index, uaudio_chan_alt::p_ed1, uaudio_chan_alt::p_sed, PCMDIR_PLAY, uaudio_chan_alt::sample_rate, uaudio_chan_alt::sample_size, uaudio_softc::sc_audio_rev, uaudio_softc::sc_mixer_clocks, uaudio_softc::sc_mixer_iface_no, uaudio_softc::sc_udev, UA_SED_FREQ_CONTROL, uaudio20_set_speed(), uaudio_buffer_ms, UAUDIO_NCHANBUFS, uaudio_set_speed(), UAUDIO_VERSION_20, UAUDIO_VERSION_30, uaudio_chan_alt::usb_cfg, usb_proc_explore_lock(), usb_proc_explore_unlock(), usbd_errstr(), usbd_get_isoc_fps(), usbd_set_alt_interface_index(), usbd_transfer_setup(), usbd_transfer_start(), usbd_transfer_unsetup(), usbd_xfer_get_fps_shift(), and uaudio_sed::v1.
Referenced by uaudio_configure_msg().
|
static |
Definition at line 1269 of file uaudio.c.
References CHAN_OP_DRAIN, dev, DPRINTF, uaudio_chan::operation, uaudio_softc::sc_config_msg, uaudio_softc::sc_play_chan, uaudio_softc::sc_rec_chan, uaudio_softc::sc_set_spdif_fn, uaudio_softc::sc_sndstat, uaudio_softc::sc_sndstat_valid, uaudio_softc::sc_udev, uaudio_hid_detach(), UAUDIO_MAX_CHILD, uaudio_mixer_ctl_free(), UAUDIO_NCHANBUFS, umidi_detach(), usb_proc_explore_lock(), usb_proc_explore_mwait(), usb_proc_explore_unlock(), usbd_transfer_unsetup(), and uaudio_chan::xfer.
int uaudio_detach_sub | ( | device_t | dev | ) |
Definition at line 1246 of file uaudio.c.
References dev, error, uaudio_softc_child::mixer_init, mixer_uninit(), uaudio_softc_child::pcm_registered, pcm_unregister(), uaudio_softc::sc_child, uaudio_get_child_index_by_dev(), and usb_pause_mtx().
Referenced by ua_detach(), and uaudio_attach_sub().
|
static |
Definition at line 949 of file uaudio.c.
References usb_interface::alt_index, usb_interface_descriptor::bAlternateSetting, usb_interface::idesc, uaudio_softc::sc_udev, USB_ERR_INVAL, usbd_get_iface(), usbd_req_set_alt_interface_no(), and usbd_set_alt_interface_index().
Referenced by uaudio_attach().
|
static |
Definition at line 1314 of file uaudio.c.
References uaudio_chan_alt::sample_rate, uaudio_chan_alt::sample_size, UAUDIO_NFRAMES, and uaudio_chan::usb_alt.
Referenced by uaudio_chan_init(), uaudio_chan_set_param_blocksize(), and uaudio_chan_start().
|
static |
Definition at line 1685 of file uaudio.c.
References chan, uaudio_chan::iface_index, and UAUDIO_MAX_CHILD.
Referenced by uaudio_chan_fill_info_sub().
|
static |
Definition at line 854 of file uaudio.c.
References uaudio_softc::sc_play_chan, uaudio_softc::sc_rec_chan, and UAUDIO_MAX_CHILD.
Referenced by uaudio_chan_play_callback(), uaudio_chan_play_sync_callback(), uaudio_chan_start(), and uaudio_chan_stop().
|
static |
Definition at line 841 of file uaudio.c.
References dev, uaudio_softc_child::pcm_device, uaudio_softc::sc_child, and UAUDIO_MAX_CHILD.
Referenced by uaudio_attach_sub(), uaudio_detach_sub(), uaudio_mixer_init_sub(), uaudio_mixer_set(), uaudio_mixer_setrecsrc(), and uaudio_mixer_uninit_sub().
|
static |
Definition at line 6227 of file uaudio.c.
References uaudio_softc::sc_hid, UAUDIO_HID_N_TRANSFER, usbd_transfer_unsetup(), and uaudio_hid::xfer.
Referenced by uaudio_detach().
|
static |
Definition at line 6145 of file uaudio.c.
References usb_attach_arg::device, DPRINTF, error, uaudio_hid::flags, free, id, uaudio_hid::iface_index, uaudio_softc_child::mixer_lock, uaudio_hid::mute_id, uaudio_hid::mute_loc, uaudio_softc::sc_child, uaudio_softc::sc_hid, uaudio_softc::sc_mixer_iface_index, uaudio_hid_config, UAUDIO_HID_HAS_ID, UAUDIO_HID_HAS_MUTE, UAUDIO_HID_HAS_VOLUME_DOWN, UAUDIO_HID_HAS_VOLUME_UP, UAUDIO_HID_N_TRANSFER, UAUDIO_HID_VALID, usbd_errstr(), usbd_req_get_hid_desc(), usbd_set_parent_iface(), usbd_transfer_setup(), uaudio_hid::volume_down_id, uaudio_hid::volume_down_loc, uaudio_hid::volume_up_id, uaudio_hid::volume_up_loc, and uaudio_hid::xfer.
Referenced by uaudio_attach().
|
static |
Definition at line 6072 of file uaudio.c.
References buffer, DPRINTF, error, uaudio_hid::flags, id, m, uaudio_softc_child::mixer_dev, mixer_hwvol_mute_locked(), mixer_hwvol_step_locked(), uaudio_hid::mute_id, uaudio_hid::mute_loc, uaudio_softc::sc_child, uaudio_softc::sc_hid, UAUDIO_HID_HAS_ID, UAUDIO_HID_HAS_MUTE, UAUDIO_HID_HAS_VOLUME_DOWN, UAUDIO_HID_HAS_VOLUME_UP, USB_ERR_CANCELLED, USB_GET_STATE, USB_ST_SETUP, USB_ST_TRANSFERRED, usbd_errstr(), usbd_transfer_submit(), usbd_xfer_get_frame_buffer(), usbd_xfer_max_len(), usbd_xfer_set_frame_len(), usbd_xfer_set_stall(), usbd_xfer_softc(), usbd_xfer_status(), uaudio_hid::volume_down_id, uaudio_hid::volume_down_loc, uaudio_hid::volume_up_id, and uaudio_hid::volume_up_loc.
|
static |
Definition at line 3239 of file uaudio.c.
References uaudio_mixer_node::ctl, DPRINTF, GET_MAX, GET_MIN, GET_RES, uaudio_mixer_node::maxval, uaudio_mixer_node::minval, MIX_ON_OFF, MIX_SELECTOR, uaudio_mixer_node::mul, uaudio_mixer_node::nchan, uaudio_softc::sc_audio_rev, uaudio_softc::sc_udev, uaudio_mixer_node::type, uaudio_debug, uaudio_mixer_add_ctl_sub(), uaudio_mixer_get(), uaudio_mixer_node::wIndex, and uaudio_mixer_node::wValue.
Referenced by uaudio20_mixer_add_feature(), uaudio20_mixer_add_mixer(), uaudio20_mixer_add_selector(), uaudio_mixer_add_extension(), uaudio_mixer_add_feature(), uaudio_mixer_add_mixer(), uaudio_mixer_add_processing(), uaudio_mixer_add_processing_updown(), uaudio_mixer_add_selector(), and uaudio_mixer_controls_create_ftu().
|
static |
Definition at line 3204 of file uaudio.c.
References DPRINTF, uaudio_mixer_node::maxval, uaudio_mixer_node::minval, uaudio_mixer_node::nchan, uaudio_mixer_node::next, uaudio_softc::sc_mixer_count, uaudio_softc::sc_mixer_root, uaudio_mixer_node::val_default, and uaudio_mixer_node::wData.
Referenced by uaudio_mixer_add_ctl(), and uaudio_mixer_controls_create_ftu().
|
static |
Definition at line 3975 of file uaudio.c.
References usb_audio_extension_unit_0::baSourceId, usb_audio_extension_unit_1::bControlSize, usb_audio_extension_unit_1::bmControls, usb_audio_extension_unit_0::bNrInPins, usb_audio_extension_unit_0::bUnitId, uaudio_terminal_node::eu_v1, id, MAKE_WORD, MIX, MIX_ON_OFF, uaudio_softc::sc_mixer_iface_no, uaudio_softc::sc_uq_au_no_xu, uaudio_terminal_node::u, UA_EXT_ENABLE, UA_EXT_ENABLE_MASK, and uaudio_mixer_add_ctl().
Referenced by uaudio_mixer_fill_info().
|
static |
Definition at line 3617 of file uaudio.c.
References AGC_CONTROL, BASS_BOOST_CONTROL, BASS_CONTROL, usb_audio_feature_unit::bControlSize, usb_audio_feature_unit::bLength, usb_audio_feature_unit::bmaControls, usb_audio_feature_unit::bUnitId, chan, DELAY_CONTROL, desc, FU_MASK, uaudio_terminal_node::fu_v1, GRAPHIC_EQUALIZER_CONTROL, id, LOUDNESS_CONTROL, MAKE_WORD, MID_CONTROL, MIX, MIX_MAX_CHAN, MIX_ON_OFF, MIX_SIGNED_16, MIX_SIGNED_8, MIX_UNKNOWN, MIX_UNSIGNED_16, MUTE_CONTROL, uaudio_softc::sc_mixer_iface_no, uaudio_softc::sc_udev, TREBLE_CONTROL, type, uaudio_terminal_node::u, uaudio_mixer_add_ctl(), uaudio_mixer_determine_class(), uaudio_mixer_feature_get_bmaControls(), usbd_req_get_string_any(), and VOLUME_CONTROL.
Referenced by uaudio_mixer_fill_info().
|
static |
Definition at line 3295 of file uaudio.c.
References usb_audio_mixer_unit_0::baSourceId, BIT_TEST, usb_audio_mixer_unit_1::bmControls, usb_audio_cluster::bNrChannels, usb_audio_mixer_unit_1::bNrChannels, usb_audio_mixer_unit_0::bNrInPins, usb_audio_mixer_unit_0::bUnitId, c, id, MAKE_WORD, MIX, MIX_MAX_CHAN, MIX_SIGNED_16, uaudio_terminal_node::mu_v1, uaudio_softc::sc_mixer_iface_no, uaudio_terminal_node::u, uaudio_mixer_add_ctl(), uaudio_mixer_get_cluster(), and uaudio_mixer_verify_desc().
Referenced by uaudio_mixer_fill_info().
|
static |
Definition at line 3932 of file uaudio.c.
References usb_audio_processing_unit_0::baSourceId, usb_audio_processing_unit_1::bControlSize, usb_audio_processing_unit_1::bmControls, usb_audio_processing_unit_0::bNrInPins, usb_audio_processing_unit_0::bUnitId, CHORUS_PROCESS, DOLBY_PROLOGIC_PROCESS, DPRINTF, DYN_RANGE_COMP_PROCESS, id, MAKE_WORD, MIX, MIX_ON_OFF, P3D_STEREO_EXTENDER_PROCESS, uaudio_terminal_node::pu_v1, REVERBATION_PROCESS, uaudio_softc::sc_mixer_iface_no, uaudio_terminal_node::u, UA_PROC_ENABLE_MASK, uaudio_mixer_add_ctl(), uaudio_mixer_add_processing_updown(), UGETW, UPDOWNMIX_PROCESS, usb_audio_processing_unit_0::wProcessType, and XX_ENABLE_CONTROL.
Referenced by uaudio_mixer_fill_info().
|
static |
Definition at line 3892 of file uaudio.c.
References usb_audio_processing_unit_0::baSourceId, usb_audio_processing_unit_1::bControlSize, usb_audio_processing_unit_1::bmControls, usb_audio_processing_unit_0::bNrInPins, usb_audio_processing_unit_updown::bNrModes, usb_audio_processing_unit_0::bUnitId, DPRINTF, id, MAKE_WORD, MIX, MIX_ON_OFF, uaudio_terminal_node::pu_v1, uaudio_softc::sc_mixer_iface_no, uaudio_terminal_node::u, UA_PROC_MASK, uaudio_mixer_add_ctl(), uaudio_mixer_verify_desc(), UD_MODE_SELECT_CONTROL, UGETW, and usb_audio_processing_unit_updown::waModes.
Referenced by uaudio_mixer_add_processing().
|
static |
Definition at line 3501 of file uaudio.c.
References usb_audio_selector_unit::baSourceId, usb_audio_selector_unit::bNrInPins, usb_audio_selector_unit::bUnitId, desc, id, MAKE_WORD, MAX_SELECTOR_INPUT_PIN, MIX, MIX_SELECTOR, uaudio_softc::sc_mixer_iface_no, uaudio_softc::sc_udev, uaudio_terminal_node::su_v1, uaudio_terminal_node::u, uaudio_mixer_add_ctl(), uaudio_mixer_check_selectors(), uaudio_mixer_determine_class(), and usbd_req_get_string_any().
Referenced by uaudio_mixer_fill_info().
|
static |
Definition at line 5338 of file uaudio.c.
References uaudio_mixer_node::maxval, uaudio_mixer_node::minval, MIX_ON_OFF, MIX_SELECTOR, uaudio_mixer_node::mul, uaudio_mixer_node::type, and val.
Referenced by uaudio_mixer_ctl_set().
|
static |
Definition at line 3449 of file uaudio.c.
References DPRINTF, k, and MIX.
Referenced by uaudio20_mixer_add_selector(), and uaudio_mixer_add_selector().
|
static |
Definition at line 3038 of file uaudio.c.
References desc, MAKE_WORD, MIX, MIX_SIGNED_16, MIX_SIGNED_8, MIX_UNSIGNED_16, uaudio_softc::sc_mixer_iface_no, uaudio_mixer_add_ctl(), and uaudio_mixer_add_ctl_sub().
Referenced by uaudio_attach().
|
static |
Definition at line 2960 of file uaudio.c.
References free, uaudio_mixer_node::next, and uaudio_softc::sc_mixer_root.
Referenced by uaudio_detach().
|
static |
Definition at line 5361 of file uaudio.c.
References chan, uaudio_softc::sc_mixer_xfer, uaudio_mixer_bsd2value(), uaudio_mixer_node::update, usbd_transfer_start(), val, and uaudio_mixer_node::wData.
Referenced by uaudio_mixer_set(), and uaudio_mixer_setrecsrc().
|
static |
Definition at line 4537 of file uaudio.c.
References DPRINTF, uaudio_terminal_node::it_v1, uaudio_terminal_node::ot_v1, uaudio_terminal_node::root, uaudio_terminal_node::u, UAT_STREAM, UAT_UNDEFINED, uaudio_mixer_foreach_input(), uaudio_mixer_foreach_output(), uaudio_mixer_get_feature_by_tt(), UGETW, usb_audio_input_terminal::wTerminalType, and usb_audio_output_terminal::wTerminalType.
Referenced by uaudio_mixer_add_feature(), and uaudio_mixer_add_selector().
|
static |
Definition at line 3595 of file uaudio.c.
References usb_audio_feature_unit::bControlSize, usb_audio_feature_unit::bmaControls, and offset.
Referenced by uaudio_mixer_add_feature().
|
static |
Definition at line 4929 of file uaudio.c.
References usb_audio_control_descriptor::bcdADC, usb_audio_control_descriptor::bDescriptorSubtype, usb_descriptor::bDescriptorSubtype, usb_audio_control_descriptor::bDescriptorType, usb_audio_control_descriptor::bLength, usb_descriptor::bLength, usb_audio_unit::bUnitId, desc, uaudio_terminal_node::desc, DPRINTF, free, uaudio_search_result::id_max, uaudio_search_result::is_input, uaudio_search_result::recurse_level, uaudio_softc::sc_audio_rev, uaudio_softc::sc_mixer_clocks, uaudio_terminal_node::u, uaudio20_mixer_add_feature(), uaudio20_mixer_add_mixer(), uaudio20_mixer_add_selector(), uaudio20_mixer_find_clocks_sub(), uaudio20_mixer_find_inputs_sub(), uaudio20_mixer_verify_desc(), uaudio_mixer_add_extension(), uaudio_mixer_add_feature(), uaudio_mixer_add_mixer(), uaudio_mixer_add_processing(), uaudio_mixer_add_selector(), uaudio_mixer_find_inputs_sub(), uaudio_mixer_verify_desc(), UAUDIO_VERSION_20, UAUDIO_VERSION_30, UDESC_CS_INTERFACE, UDESCSUB_AC_CLOCK_MUL, UDESCSUB_AC_CLOCK_SEL, UDESCSUB_AC_CLOCK_SRC, UDESCSUB_AC_EFFECT, UDESCSUB_AC_EXTENSION, UDESCSUB_AC_EXTENSION_V2, UDESCSUB_AC_FEATURE, UDESCSUB_AC_HEADER, UDESCSUB_AC_INPUT, UDESCSUB_AC_MIXER, UDESCSUB_AC_OUTPUT, UDESCSUB_AC_PROCESSING, UDESCSUB_AC_PROCESSING_V2, UDESCSUB_AC_SAMPLE_RT, UDESCSUB_AC_SELECTOR, UGETW, usb_desc_foreach(), usbd_get_config_descriptor(), uaudio_terminal_node::usr, and usb_audio_control_descriptor::wTotalLength.
Referenced by uaudio_attach().
|
static |
Definition at line 4666 of file uaudio.c.
References usb_audio_mixer_unit_0::baSourceId, usb_audio_selector_unit::baSourceId, usb_audio_processing_unit_0::baSourceId, usb_audio_extension_unit_0::baSourceId, usb_descriptor::bDescriptorSubtype, uaudio_search_result::bit_input, uaudio_search_result::bit_output, usb_audio_mixer_unit_0::bNrInPins, usb_audio_selector_unit::bNrInPins, usb_audio_processing_unit_0::bNrInPins, usb_audio_extension_unit_0::bNrInPins, usb_audio_output_terminal::bSourceId, usb_audio_feature_unit::bSourceId, uaudio_terminal_node::desc, DPRINTF, uaudio_terminal_node::eu_v1, uaudio_terminal_node::fu_v1, uaudio_terminal_node::mu_v1, n, uaudio_terminal_node::ot_v1, uaudio_terminal_node::pu_v1, uaudio_search_result::recurse_level, uaudio_terminal_node::root, uaudio_terminal_node::su_v1, uaudio_terminal_node::u, uaudio_mixer_find_inputs_sub(), uaudio_mixer_merge_outputs(), UAUDIO_RECURSE_LIMIT, UDESCSUB_AC_EXTENSION, UDESCSUB_AC_FEATURE, UDESCSUB_AC_INPUT, UDESCSUB_AC_MIXER, UDESCSUB_AC_OUTPUT, UDESCSUB_AC_PROCESSING, UDESCSUB_AC_SELECTOR, and uaudio_terminal_node::usr.
Referenced by uaudio_mixer_fill_info(), and uaudio_mixer_find_inputs_sub().
|
static |
Definition at line 4427 of file uaudio.c.
References uaudio_search_result::bit_input, uaudio_search_result::id_max, n, and uaudio_terminal_node::usr.
Referenced by uaudio20_mixer_determine_class(), and uaudio_mixer_determine_class().
|
static |
Definition at line 4446 of file uaudio.c.
References uaudio_search_result::bit_output, uaudio_search_result::id_max, n, and uaudio_terminal_node::usr.
Referenced by uaudio20_mixer_determine_class(), and uaudio_mixer_determine_class().
|
static |
Definition at line 5118 of file uaudio.c.
References data, DPRINTF, GET_CUR, GET_MAX, GET_MIN, GET_RES, len, MIX_SIZE, req, uaudio_mixer_node::type, UA20_CS_CUR, UA20_CS_RANGE, uaudio_mixer_signext(), UAUDIO_VERSION_20, UAUDIO_VERSION_30, usbd_do_request, usbd_errstr(), USETW, UT_READ_CLASS_INTERFACE, val, what, uaudio_mixer_node::wIndex, and uaudio_mixer_node::wValue.
Referenced by uaudio_mixer_add_ctl().
|
static |
Definition at line 4289 of file uaudio.c.
References usb_descriptor::bDescriptorSubtype, DPRINTF, error, id, r, UAUDIO_RECURSE_LIMIT, UDESCSUB_AC_EXTENSION, UDESCSUB_AC_FEATURE, UDESCSUB_AC_INPUT, UDESCSUB_AC_MIXER, UDESCSUB_AC_OUTPUT, UDESCSUB_AC_PROCESSING, and UDESCSUB_AC_SELECTOR.
Referenced by uaudio_mixer_add_mixer().
|
static |
Definition at line 4501 of file uaudio.c.
References DPRINTF, uaudio_tt_to_feature::feature, uaudio_tt_to_feature::terminal_type, UATI_UNDEFINED, UATO_UNDEFINED, UATT_UNDEFINED, and uaudio_tt_to_feature.
Referenced by uaudio20_mixer_determine_class(), and uaudio_mixer_determine_class().
|
static |
Definition at line 5375 of file uaudio.c.
References uaudio_mixer_node::ctl, index, uaudio_mixer_node::maxval, uaudio_mixer_node::minval, uaudio_softc_child::mix_info, MIX_SELECTOR, uaudio_mixer_node::next, uaudio_softc_child::recsrc_info, uaudio_softc::sc_child, uaudio_softc::sc_mixer_root, uaudio_mixer_node::slctrtype, and uaudio_mixer_node::type.
Referenced by uaudio_attach_sub().
int uaudio_mixer_init_sub | ( | struct uaudio_softc * | sc, |
struct snd_mixer * | m | ||
) |
Definition at line 5402 of file uaudio.c.
References DPRINTF, m, mix_get_dev(), uaudio_softc_child::mix_info, mix_setdevs(), mix_setparentchild(), mix_setrealdev(), mix_setrecdevs(), uaudio_softc_child::mixer_dev, mixer_get_lock(), uaudio_softc_child::mixer_lock, uaudio_chan::num_alt, uaudio_softc_child::recsrc_info, uaudio_softc::sc_child, uaudio_softc::sc_mixer_iface_index, uaudio_softc::sc_mixer_xfer, uaudio_softc::sc_play_chan, uaudio_softc::sc_udev, uaudio_get_child_index_by_dev(), uaudio_mixer_config, and usbd_transfer_setup().
Referenced by ua_mixer_init().
|
static |
Definition at line 4655 of file uaudio.c.
References uaudio_search_result::bit_output, max, and src.
Referenced by uaudio20_mixer_find_inputs_sub(), and uaudio_mixer_find_inputs_sub().
|
static |
Definition at line 2971 of file uaudio.c.
References buf, chan, uaudio_mixer_node::desc, dev, index, uaudio_mixer_node::maxval, uaudio_mixer_node::minval, n, uaudio_mixer_node::name, uaudio_mixer_node::nchan, uaudio_mixer_node::next, uaudio_softc::sc_mixer_root, uaudio_mixer_sysctl_handler(), and uaudio_mixer_node::wValue.
Referenced by uaudio_attach_sub().
|
static |
Definition at line 3180 of file uaudio.c.
References chan, uaudio_mixer_node::ctl, uaudio_softc_child::mixer_lock, uaudio_mixer_node::nchan, uaudio_mixer_node::next, uaudio_softc::sc_child, uaudio_softc::sc_hid, uaudio_softc::sc_mixer_root, uaudio_softc::sc_mixer_xfer, uaudio_mixer_node::update, usbd_transfer_start(), and uaudio_hid::xfer.
Referenced by uaudio_attach().
void uaudio_mixer_set | ( | struct uaudio_softc * | sc, |
struct snd_mixer * | m, | ||
unsigned | type, | ||
unsigned | left, | ||
unsigned | right | ||
) |
Definition at line 5445 of file uaudio.c.
References chan, uaudio_mixer_node::ctl, index, left, m, mix_get_dev(), uaudio_mixer_node::nchan, uaudio_mixer_node::next, right, uaudio_softc::sc_mixer_root, type, uaudio_get_child_index_by_dev(), and uaudio_mixer_ctl_set().
Referenced by ua_mixer_set().
uint32_t uaudio_mixer_setrecsrc | ( | struct uaudio_softc * | sc, |
struct snd_mixer * | m, | ||
uint32_t | src | ||
) |
Definition at line 5465 of file uaudio.c.
References uaudio_mixer_node::ctl, index, m, mask, uaudio_mixer_node::maxval, uaudio_mixer_node::minval, mix_get_dev(), MIX_SELECTOR, uaudio_mixer_node::next, uaudio_softc::sc_mixer_root, uaudio_mixer_node::slctrtype, src, uaudio_mixer_node::type, uaudio_get_child_index_by_dev(), and uaudio_mixer_ctl_set().
Referenced by ua_mixer_setrecsrc().
|
static |
Definition at line 5325 of file uaudio.c.
References MIX_SIZE, MIX_UNSIGNED, type, and val.
Referenced by uaudio_mixer_get().
|
static |
Definition at line 2908 of file uaudio.c.
References chan, error, uaudio_mixer_node::minval, uaudio_softc_child::mixer_lock, uaudio_mixer_node::nchan, uaudio_mixer_node::next, req, uaudio_softc::sc_child, uaudio_softc::sc_mixer_root, uaudio_softc::sc_mixer_xfer, uaudio_mixer_node::update, usbd_transfer_start(), uaudio_mixer_node::wData, and uaudio_mixer_node::wValue.
Referenced by uaudio_mixer_register_sysctl().
int uaudio_mixer_uninit_sub | ( | struct uaudio_softc * | sc, |
struct snd_mixer * | m | ||
) |
Definition at line 5430 of file uaudio.c.
References DPRINTF, index, m, mix_get_dev(), uaudio_softc_child::mixer_lock, uaudio_softc::sc_child, uaudio_softc::sc_mixer_xfer, uaudio_get_child_index_by_dev(), and usbd_transfer_unsetup().
Referenced by ua_mixer_uninit().
|
static |
Definition at line 4004 of file uaudio.c.
References usb_audio_processing_unit_1::bControlSize, usb_audio_extension_unit_1::bControlSize, desc, DPRINTF, error, len, UDESC_CS_INTERFACE, UDESCSUB_AC_EXTENSION, UDESCSUB_AC_FEATURE, UDESCSUB_AC_INPUT, UDESCSUB_AC_MIXER, UDESCSUB_AC_OUTPUT, UDESCSUB_AC_PROCESSING, and UDESCSUB_AC_SELECTOR.
Referenced by uaudio_mixer_add_mixer(), uaudio_mixer_add_processing_updown(), and uaudio_mixer_fill_info().
|
static |
Definition at line 5191 of file uaudio.c.
References buf, chan, DPRINTF, error, len, MIX_SIZE, uaudio_mixer_node::nchan, uaudio_mixer_node::next, req, uaudio_softc::sc_audio_rev, uaudio_softc::sc_mixer_chan, uaudio_softc::sc_mixer_curr, uaudio_softc::sc_mixer_root, SET_CUR, uaudio_mixer_node::type, UA20_CS_CUR, UAUDIO_VERSION_20, UAUDIO_VERSION_30, uaudio_mixer_node::update, USB_ERR_CANCELLED, USB_GET_STATE, USB_ST_SETUP, USB_ST_TRANSFERRED, usbd_copy_in(), usbd_errstr(), usbd_transfer_submit(), usbd_xfer_get_frame(), usbd_xfer_set_frame_len(), usbd_xfer_set_frames(), usbd_xfer_softc(), USETW, UT_WRITE_CLASS_INTERFACE, uaudio_mixer_node::wData, uaudio_mixer_node::wIndex, and uaudio_mixer_node::wValue.
|
static |
Definition at line 1169 of file uaudio.c.
References dev, pcm_getflags(), and pcm_setflags().
Referenced by uaudio_attach_sub().
|
static |
Definition at line 868 of file uaudio.c.
References usbd_lookup_info::bInterfaceClass, usbd_lookup_info::bInterfaceSubClass, dev, usb_attach_arg::info, uaudio_vendor_midi, UICLASS_AUDIO, UICLASS_VENDOR, UISUBCLASS_AUDIOCONTROL, UISUBCLASS_MIDISTREAM, UQ_AU_VENDOR_CLASS, UQ_BAD_AUDIO, UQ_BAD_MIDI, usb_attach_arg::usb_mode, USB_MODE_HOST, usb_test_quirk(), and usbd_lookup_id_by_uaa().
|
static |
|
static |
Definition at line 913 of file uaudio.c.
References uaudio_softc::sc_mixer_iface_index, uaudio_softc::sc_udev, UAUDIO_SPDIF_IN_MIX, UAUDIO_SPDIF_OUT, UAUDIO_SPDIF_OUT_96K, UHID_OUTPUT_REPORT, and usbd_req_set_report().
Referenced by uaudio_attach().
|
static |
Definition at line 943 of file uaudio.c.
Referenced by uaudio_attach().
|
static |
Definition at line 5282 of file uaudio.c.
References data, req, SAMPLING_FREQ_CONTROL, SET_CUR, speed, usbd_do_request, USETW, USETW2, and UT_WRITE_CLASS_ENDPOINT.
Referenced by uaudio_configure_msg_sub().
|
static |
Definition at line 5511 of file uaudio.c.
References buf, chan, DPRINTF, error, umidi_sub_chan::fifo, usb_fifo_sc::fp, umidi_sub_chan::read_open, umidi_cmd_to_len, USB_ERR_CANCELLED, usb_fifo_put_data_linear(), USB_FIFO_RX, USB_GET_STATE, USB_ST_SETUP, USB_ST_TRANSFERRED, usbd_copy_out(), usbd_errstr(), usbd_transfer_submit(), usbd_xfer_get_frame(), usbd_xfer_max_len(), usbd_xfer_set_frame_len(), usbd_xfer_set_stall(), usbd_xfer_softc(), usbd_xfer_status(), and umidi_chan::xfer.
|
static |
Definition at line 5711 of file uaudio.c.
References buf, chan, DPRINTF, error, umidi_sub_chan::fifo, usb_fifo_sc::fp, len, umidi_sub_chan::temp_cmd, umidi_convert_to_usb(), UMIDI_TX_FRAMES, USB_ERR_CANCELLED, usb_fifo_get_data_linear(), USB_FIFO_TX, USB_GET_STATE, USB_ST_SETUP, USB_ST_TRANSFERRED, usbd_copy_in(), usbd_errstr(), usbd_transfer_submit(), usbd_xfer_get_frame(), usbd_xfer_set_frame_len(), usbd_xfer_set_stall(), usbd_xfer_softc(), usbd_xfer_status(), umidi_sub_chan::write_open, and umidi_chan::xfer.
|
static |
Definition at line 5920 of file uaudio.c.
References umidi_sub_chan::fifo, and usb_fifo_free_buffer().
|
static |
Definition at line 5585 of file uaudio.c.
References b, umidi_sub_chan::state, umidi_sub_chan::temp_0, umidi_sub_chan::temp_1, umidi_sub_chan::temp_cmd, UMIDI_ST_1PARAM, UMIDI_ST_2PARAM_1, UMIDI_ST_2PARAM_2, UMIDI_ST_SYSEX_0, UMIDI_ST_SYSEX_1, UMIDI_ST_SYSEX_2, and UMIDI_ST_UNKNOWN.
Referenced by umidi_bulk_write_callback().
|
static |
Definition at line 6049 of file uaudio.c.
References chan, dev, n, uaudio_softc::sc_midi_chan, UMIDI_EMB_JACK_MAX, UMIDI_N_TRANSFER, UMIDI_RX_TRANSFER, usb_fifo_detach(), usbd_transfer_stop(), and usbd_transfer_unsetup().
Referenced by uaudio_detach().
|
static |
Definition at line 5938 of file uaudio.c.
References chan, dev, and uaudio_softc::sc_midi_chan.
Referenced by uaudio_attach().
|
static |
|
static |
Definition at line 5889 of file uaudio.c.
References chan, umidi_sub_chan::fifo, umidi_sub_chan::read_open, umidi_sub_chan::state, UMIDI_ST_UNKNOWN, umidi_sub_by_fifo(), usb_fifo_alloc_buffer(), usb_fifo_softc(), and umidi_sub_chan::write_open.
|
static |
Definition at line 5958 of file uaudio.c.
References chan, dev, usb_attach_arg::device, DPRINTF, error, umidi_sub_chan::fifo, n, uaudio_softc::sc_midi_chan, uaudio_softc::sc_mixer_iface_index, uaudio_softc::sc_udev, umidi_config, UMIDI_EMB_JACK_MAX, umidi_fifo_methods, UMIDI_N_TRANSFER, UMIDI_RX_TRANSFER, UMIDI_TX_TRANSFER, UQ_SINGLE_CMD_MIDI, usb_fifo_attach(), usb_test_quirk(), usbd_errstr(), usbd_set_alt_interface_index(), usbd_set_parent_iface(), usbd_transfer_setup(), usbd_transfer_start(), and usbd_xfer_maxp_was_clamped().
Referenced by uaudio_attach().
|
static |
Definition at line 5829 of file uaudio.c.
References chan, UMIDI_RX_TRANSFER, usb_fifo_softc(), and usbd_transfer_start().
|
static |
Definition at line 5856 of file uaudio.c.
References buf, chan, UMIDI_TX_TRANSFER, usb_fifo_get_data_linear(), usb_fifo_softc(), and usbd_transfer_start().
|
static |
Definition at line 5837 of file uaudio.c.
References chan, DPRINTF, umidi_sub_chan::fifo, umidi_sub_chan::read_open, umidi_sub_by_fifo(), and usb_fifo_softc().
|
static |
Definition at line 5873 of file uaudio.c.
References chan, DPRINTF, umidi_sub_chan::fifo, umidi_sub_by_fifo(), UMIDI_TX_TRANSFER, usb_fifo_softc(), usbd_transfer_stop(), and umidi_sub_chan::write_open.
|
static |
Definition at line 5808 of file uaudio.c.
References chan, umidi_sub_chan::fifo, usb_fifo_sc::fp, n, UMIDI_EMB_JACK_MAX, USB_FIFO_RX, usb_fifo_softc(), and USB_FIFO_TX.
Referenced by umidi_open(), umidi_stop_read(), and umidi_stop_write().
USB_PNP_HOST_INFO | ( | uaudio_devs | ) |
USB_PNP_HOST_INFO | ( | uaudio_vendor_midi | ) |
|
static |
Definition at line 437 of file uaudio.c.
Referenced by uaudio_chan_fill_info_sub().
|
static |
Definition at line 453 of file uaudio.c.
Referenced by uaudio_chan_fill_info_sub().
|
static |
Definition at line 102 of file uaudio.c.
Referenced by uaudio_attach(), uaudio_buffer_ms_sysctl(), and uaudio_configure_msg_sub().
|
static |
Definition at line 606 of file uaudio.c.
Referenced by uaudio_chan_fill_info_sub().
|
static |
Definition at line 573 of file uaudio.c.
Referenced by uaudio_chan_fill_info_sub().
|
static |
Definition at line 2730 of file uaudio.c.
Referenced by uaudio_chan_getmatrix().
|
static |
|
static |
|
static |
|
static |
Definition at line 484 of file uaudio.c.
Referenced by uaudio_attach().
|
static |
Definition at line 100 of file uaudio.c.
Referenced by uaudio_chan_fill_info().
|
static |
Definition at line 101 of file uaudio.c.
Referenced by uaudio_chan_fill_info().
|
static |
Definition at line 99 of file uaudio.c.
Referenced by uaudio_chan_fill_info().
|
static |
Definition at line 473 of file uaudio.c.
Referenced by uaudio_attach().
|
static |
|
static |
|
static |
Definition at line 103 of file uaudio.c.
Referenced by uaudio_attach().
|
static |
Definition at line 692 of file uaudio.c.
Referenced by uaudio_hid_probe().
|
static |
|
static |
|
static |
Definition at line 639 of file uaudio.c.
Referenced by uaudio_mixer_init_sub().
|
static |
|
static |
Definition at line 2124 of file uaudio.c.
Referenced by uaudio_chan_fill_info().
|
static |
Definition at line 4469 of file uaudio.c.
Referenced by uaudio_mixer_get_feature_by_tt().
|
static |
Definition at line 723 of file uaudio.c.
Referenced by uaudio_attach(), and uaudio_probe().
|
static |
|
static |
|
static |
Definition at line 651 of file uaudio.c.
Referenced by umidi_bulk_read_callback().
|
static |
Definition at line 671 of file uaudio.c.
Referenced by umidi_probe().
|
static |
Definition at line 5946 of file uaudio.c.
Referenced by umidi_probe().