// SPDX-License-Identifier: GPL-2.0-or-later/* * (Tentative) USB Audio Driver for ALSA * * Copyright (c) 2002 by Takashi Iwai <tiwai@suse.de> * * Many codes borrowed from audio.c by * Alan Cox (alan@lxorguk.ukuu.org.uk) * Thomas Sailer (sailer@ife.ee.ethz.ch) * * Audio Class 3.0 support by Ruslan Bilovol <ruslan.bilovol@gmail.com> * * NOTES: * * - the linked URBs would be preferred but not used so far because of * the instability of unlinking. * - type II is not supported properly. there is no device which supports * this type *correctly*. SB extigy looks as if it supports, but it's * indeed an AC3 stream packed in SPDIF frames (i.e. no real AC3 stream). */#include<linux/bitops.h>#include<linux/init.h>#include<linux/list.h>#include<linux/slab.h>#include<linux/string.h>#include<linux/ctype.h>#include<linux/usb.h>#include<linux/moduleparam.h>#include<linux/mutex.h>#include<linux/usb/audio.h>#include<linux/usb/audio-v2.h>#include<linux/usb/audio-v3.h>#include<linux/module.h>#include<sound/control.h>#include<sound/core.h>#include<sound/info.h>#include<sound/pcm.h>#include<sound/pcm_params.h>#include<sound/initval.h>#include"usbaudio.h"#include"card.h"#include"midi.h"#include"midi2.h"#include"mixer.h"#include"proc.h"#include"quirks.h"#include"endpoint.h"#include"helper.h"#include"pcm.h"#include"format.h"#include"power.h"#include"stream.h"#include"media.h"MODULE_AUTHOR("Takashi Iwai <tiwai@suse.de>");MODULE_DESCRIPTION("USB Audio");MODULE_LICENSE("GPL");staticintindex[SNDRV_CARDS]=SNDRV_DEFAULT_IDX;/* Index 0-MAX */staticchar*id[SNDRV_CARDS]=SNDRV_DEFAULT_STR;/* ID for this card */staticboolenable[SNDRV_CARDS]=SNDRV_DEFAULT_ENABLE_PNP;/* Enable this card *//* Vendor/product IDs for this card */staticintvid[SNDRV_CARDS]={[0...(SNDRV_CARDS-1)]=-1};staticintpid[SNDRV_CARDS]={[0...(SNDRV_CARDS-1)]=-1};staticintdevice_setup[SNDRV_CARDS];/* device parameter for this card */staticboolignore_ctl_error;staticboolautoclock=true;staticboollowlatency=true;staticchar*quirk_alias[SNDRV_CARDS];staticchar*delayed_register[SNDRV_CARDS];staticboolimplicit_fb[SNDRV_CARDS];staticchar*quirk_flags[SNDRV_CARDS];boolsnd_usb_use_vmalloc=true