mirror of
https://github.com/ukui/kernel.git
synced 2026-03-09 10:07:04 -07:00
Merge commit master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa of HEAD
* HEAD: [ALSA] Fix undefined (missing) references in ISA MIRO sound driver [ALSA] make sound/isa/gus/gusextreme.c:devices static [ALSA] hda-codec - Fix missing array terminators in AD1988 codec support [ALSA] Fix a deadlock in snd-rtctimer [ALSA] Fix section mismatch errors in ALSA PCI drivers [ALSA] remove unused snd_minor.name field [ALSA] Fix no mpu401 interface can cause hard freeze [ALSA] wavefront: fix __init/__devinit confusion [ALSA] Fix workaround for AD1988A rev2 codec [ALSA] trivial: Code clean up of i2c/cs8427.c [ALSA] sound/i2c/cs8427.c: don't export a static function [ALSA] intel8x0 - Add ac97 quirk for Tyan Thunder K8WE board [ALSA] Reduce the string length of Terratec Aureon 7.1 Universe [ALSA] sound/pci/Kconfig - fix broken indenting for SND_FM801_TEA575X [ALSA] fix the SND_FM801_TEA575X dependencies [ALSA] Memory leak in sound/pcmcia/pdaudiocf/pdaudiocf.c
This commit is contained in:
@@ -1172,7 +1172,7 @@
|
||||
}
|
||||
|
||||
/* PCI IDs */
|
||||
static struct pci_device_id snd_mychip_ids[] __devinitdata = {
|
||||
static struct pci_device_id snd_mychip_ids[] = {
|
||||
{ PCI_VENDOR_ID_FOO, PCI_DEVICE_ID_BAR,
|
||||
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, },
|
||||
....
|
||||
@@ -1565,7 +1565,7 @@
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
static struct pci_device_id snd_mychip_ids[] __devinitdata = {
|
||||
static struct pci_device_id snd_mychip_ids[] = {
|
||||
{ PCI_VENDOR_ID_FOO, PCI_DEVICE_ID_BAR,
|
||||
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, },
|
||||
....
|
||||
|
||||
@@ -188,8 +188,6 @@ struct snd_minor {
|
||||
int device; /* device number */
|
||||
const struct file_operations *f_ops; /* file operations */
|
||||
void *private_data; /* private data for f_ops->open */
|
||||
char name[0]; /* device name (keep at the end of
|
||||
structure) */
|
||||
};
|
||||
|
||||
/* sound.c */
|
||||
|
||||
@@ -1704,6 +1704,7 @@ struct snd_cs46xx {
|
||||
int acpi_port;
|
||||
struct snd_kcontrol *eapd_switch; /* for amplifier hack */
|
||||
int accept_valid; /* accept mmap valid (for OSS) */
|
||||
int in_suspend;
|
||||
|
||||
struct gameport *gameport;
|
||||
|
||||
|
||||
@@ -244,7 +244,7 @@ int snd_register_device(int type, struct snd_card *card, int dev,
|
||||
struct device *device = NULL;
|
||||
|
||||
snd_assert(name, return -EINVAL);
|
||||
preg = kmalloc(sizeof(struct snd_minor) + strlen(name) + 1, GFP_KERNEL);
|
||||
preg = kmalloc(sizeof *preg, GFP_KERNEL);
|
||||
if (preg == NULL)
|
||||
return -ENOMEM;
|
||||
preg->type = type;
|
||||
@@ -252,7 +252,6 @@ int snd_register_device(int type, struct snd_card *card, int dev,
|
||||
preg->device = dev;
|
||||
preg->f_ops = f_ops;
|
||||
preg->private_data = private_data;
|
||||
strcpy(preg->name, name);
|
||||
mutex_lock(&sound_mutex);
|
||||
#ifdef CONFIG_SND_DYNAMIC_MINORS
|
||||
minor = snd_find_free_minor();
|
||||
|
||||
@@ -628,8 +628,9 @@ static void snd_timer_tasklet(unsigned long arg)
|
||||
struct snd_timer_instance *ti;
|
||||
struct list_head *p;
|
||||
unsigned long resolution, ticks;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock(&timer->lock);
|
||||
spin_lock_irqsave(&timer->lock, flags);
|
||||
/* now process all callbacks */
|
||||
while (!list_empty(&timer->sack_list_head)) {
|
||||
p = timer->sack_list_head.next; /* get first item */
|
||||
@@ -649,7 +650,7 @@ static void snd_timer_tasklet(unsigned long arg)
|
||||
spin_lock(&timer->lock);
|
||||
ti->flags &= ~SNDRV_TIMER_IFLG_CALLBACK;
|
||||
}
|
||||
spin_unlock(&timer->lock);
|
||||
spin_unlock_irqrestore(&timer->lock, flags);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -76,23 +76,28 @@ int snd_cs8427_reg_write(struct snd_i2c_device *device, unsigned char reg,
|
||||
buf[0] = reg & 0x7f;
|
||||
buf[1] = val;
|
||||
if ((err = snd_i2c_sendbytes(device, buf, 2)) != 2) {
|
||||
snd_printk(KERN_ERR "unable to send bytes 0x%02x:0x%02x to CS8427 (%i)\n", buf[0], buf[1], err);
|
||||
snd_printk(KERN_ERR "unable to send bytes 0x%02x:0x%02x "
|
||||
"to CS8427 (%i)\n", buf[0], buf[1], err);
|
||||
return err < 0 ? err : -EIO;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(snd_cs8427_reg_write);
|
||||
|
||||
static int snd_cs8427_reg_read(struct snd_i2c_device *device, unsigned char reg)
|
||||
{
|
||||
int err;
|
||||
unsigned char buf;
|
||||
|
||||
if ((err = snd_i2c_sendbytes(device, ®, 1)) != 1) {
|
||||
snd_printk(KERN_ERR "unable to send register 0x%x byte to CS8427\n", reg);
|
||||
snd_printk(KERN_ERR "unable to send register 0x%x byte "
|
||||
"to CS8427\n", reg);
|
||||
return err < 0 ? err : -EIO;
|
||||
}
|
||||
if ((err = snd_i2c_readbytes(device, &buf, 1)) != 1) {
|
||||
snd_printk(KERN_ERR "unable to read register 0x%x byte from CS8427\n", reg);
|
||||
snd_printk(KERN_ERR "unable to read register 0x%x byte "
|
||||
"from CS8427\n", reg);
|
||||
return err < 0 ? err : -EIO;
|
||||
}
|
||||
return buf;
|
||||
@@ -121,7 +126,8 @@ static int snd_cs8427_send_corudata(struct snd_i2c_device *device,
|
||||
int count)
|
||||
{
|
||||
struct cs8427 *chip = device->private_data;
|
||||
char *hw_data = udata ? chip->playback.hw_udata : chip->playback.hw_status;
|
||||
char *hw_data = udata ?
|
||||
chip->playback.hw_udata : chip->playback.hw_status;
|
||||
char data[32];
|
||||
int err, idx;
|
||||
|
||||
@@ -134,11 +140,11 @@ static int snd_cs8427_send_corudata(struct snd_i2c_device *device,
|
||||
memset(data, 0, sizeof(data));
|
||||
if (memcmp(hw_data, data, count) == 0) {
|
||||
chip->regmap[CS8427_REG_UDATABUF] &= ~CS8427_UBMMASK;
|
||||
chip->regmap[CS8427_REG_UDATABUF] |= CS8427_UBMZEROS | CS8427_EFTUI;
|
||||
if ((err = snd_cs8427_reg_write(device, CS8427_REG_UDATABUF,
|
||||
chip->regmap[CS8427_REG_UDATABUF])) < 0)
|
||||
return err;
|
||||
return 0;
|
||||
chip->regmap[CS8427_REG_UDATABUF] |= CS8427_UBMZEROS |
|
||||
CS8427_EFTUI;
|
||||
err = snd_cs8427_reg_write(device, CS8427_REG_UDATABUF,
|
||||
chip->regmap[CS8427_REG_UDATABUF]);
|
||||
return err < 0 ? err : 0;
|
||||
}
|
||||
}
|
||||
data[0] = CS8427_REG_AUTOINC | CS8427_REG_CORU_DATABUF;
|
||||
@@ -161,24 +167,32 @@ int snd_cs8427_create(struct snd_i2c_bus *bus,
|
||||
{
|
||||
static unsigned char initvals1[] = {
|
||||
CS8427_REG_CONTROL1 | CS8427_REG_AUTOINC,
|
||||
/* CS8427_REG_CONTROL1: RMCK to OMCK, valid PCM audio, disable mutes, TCBL=output */
|
||||
/* CS8427_REG_CONTROL1: RMCK to OMCK, valid PCM audio, disable mutes,
|
||||
TCBL=output */
|
||||
CS8427_SWCLK | CS8427_TCBLDIR,
|
||||
/* CS8427_REG_CONTROL2: hold last valid audio sample, RMCK=256*Fs, normal stereo operation */
|
||||
/* CS8427_REG_CONTROL2: hold last valid audio sample, RMCK=256*Fs,
|
||||
normal stereo operation */
|
||||
0x00,
|
||||
/* CS8427_REG_DATAFLOW: output drivers normal operation, Tx<=serial, Rx=>serial */
|
||||
/* CS8427_REG_DATAFLOW: output drivers normal operation, Tx<=serial,
|
||||
Rx=>serial */
|
||||
CS8427_TXDSERIAL | CS8427_SPDAES3RECEIVER,
|
||||
/* CS8427_REG_CLOCKSOURCE: Run off, CMCK=256*Fs, output time base = OMCK, input time base =
|
||||
recovered input clock, recovered input clock source is ILRCK changed to AES3INPUT (workaround, see snd_cs8427_reset) */
|
||||
/* CS8427_REG_CLOCKSOURCE: Run off, CMCK=256*Fs,
|
||||
output time base = OMCK, input time base = recovered input clock,
|
||||
recovered input clock source is ILRCK changed to AES3INPUT
|
||||
(workaround, see snd_cs8427_reset) */
|
||||
CS8427_RXDILRCK,
|
||||
/* CS8427_REG_SERIALINPUT: Serial audio input port data format = I2S, 24-bit, 64*Fsi */
|
||||
/* CS8427_REG_SERIALINPUT: Serial audio input port data format = I2S,
|
||||
24-bit, 64*Fsi */
|
||||
CS8427_SIDEL | CS8427_SILRPOL,
|
||||
/* CS8427_REG_SERIALOUTPUT: Serial audio output port data format = I2S, 24-bit, 64*Fsi */
|
||||
/* CS8427_REG_SERIALOUTPUT: Serial audio output port data format
|
||||
= I2S, 24-bit, 64*Fsi */
|
||||
CS8427_SODEL | CS8427_SOLRPOL,
|
||||
};
|
||||
static unsigned char initvals2[] = {
|
||||
CS8427_REG_RECVERRMASK | CS8427_REG_AUTOINC,
|
||||
/* CS8427_REG_RECVERRMASK: unmask the input PLL clock, V, confidence, biphase, parity status bits */
|
||||
/* CS8427_UNLOCK | CS8427_V | CS8427_CONF | CS8427_BIP | CS8427_PAR, */
|
||||
/* CS8427_REG_RECVERRMASK: unmask the input PLL clock, V, confidence,
|
||||
biphase, parity status bits */
|
||||
/* CS8427_UNLOCK | CS8427_V | CS8427_CONF | CS8427_BIP | CS8427_PAR,*/
|
||||
0xff, /* set everything */
|
||||
/* CS8427_REG_CSDATABUF:
|
||||
Registers 32-55 window to CS buffer
|
||||
@@ -201,7 +215,8 @@ int snd_cs8427_create(struct snd_i2c_bus *bus,
|
||||
struct snd_i2c_device *device;
|
||||
unsigned char buf[24];
|
||||
|
||||
if ((err = snd_i2c_device_create(bus, "CS8427", CS8427_ADDR | (addr & 7),
|
||||
if ((err = snd_i2c_device_create(bus, "CS8427",
|
||||
CS8427_ADDR | (addr & 7),
|
||||
&device)) < 0)
|
||||
return err;
|
||||
chip = device->private_data = kzalloc(sizeof(*chip), GFP_KERNEL);
|
||||
@@ -212,8 +227,8 @@ int snd_cs8427_create(struct snd_i2c_bus *bus,
|
||||
device->private_free = snd_cs8427_free;
|
||||
|
||||
snd_i2c_lock(bus);
|
||||
if ((err = snd_cs8427_reg_read(device, CS8427_REG_ID_AND_VER)) !=
|
||||
CS8427_VER8427A) {
|
||||
err = snd_cs8427_reg_read(device, CS8427_REG_ID_AND_VER);
|
||||
if (err != CS8427_VER8427A) {
|
||||
snd_i2c_unlock(bus);
|
||||
snd_printk(KERN_ERR "unable to find CS8427 signature "
|
||||
"(expected 0x%x, read 0x%x),\n",
|
||||
@@ -222,7 +237,8 @@ int snd_cs8427_create(struct snd_i2c_bus *bus,
|
||||
return -EFAULT;
|
||||
}
|
||||
/* turn off run bit while making changes to configuration */
|
||||
if ((err = snd_cs8427_reg_write(device, CS8427_REG_CLOCKSOURCE, 0x00)) < 0)
|
||||
err = snd_cs8427_reg_write(device, CS8427_REG_CLOCKSOURCE, 0x00);
|
||||
if (err < 0)
|
||||
goto __fail;
|
||||
/* send initial values */
|
||||
memcpy(chip->regmap + (initvals1[0] & 0x7f), initvals1 + 1, 6);
|
||||
@@ -282,6 +298,8 @@ int snd_cs8427_create(struct snd_i2c_bus *bus,
|
||||
return err < 0 ? err : -EIO;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(snd_cs8427_create);
|
||||
|
||||
/*
|
||||
* Reset the chip using run bit, also lock PLL using ILRCK and
|
||||
* put back AES3INPUT. This workaround is described in latest
|
||||
@@ -296,7 +314,8 @@ static void snd_cs8427_reset(struct snd_i2c_device *cs8427)
|
||||
snd_assert(cs8427, return);
|
||||
chip = cs8427->private_data;
|
||||
snd_i2c_lock(cs8427->bus);
|
||||
if ((chip->regmap[CS8427_REG_CLOCKSOURCE] & CS8427_RXDAES3INPUT) == CS8427_RXDAES3INPUT) /* AES3 bit is set */
|
||||
if ((chip->regmap[CS8427_REG_CLOCKSOURCE] & CS8427_RXDAES3INPUT) ==
|
||||
CS8427_RXDAES3INPUT) /* AES3 bit is set */
|
||||
aes3input = 1;
|
||||
chip->regmap[CS8427_REG_CLOCKSOURCE] &= ~(CS8427_RUN | CS8427_RXDMASK);
|
||||
snd_cs8427_reg_write(cs8427, CS8427_REG_CLOCKSOURCE,
|
||||
@@ -367,12 +386,15 @@ static int snd_cs8427_qsubcode_get(struct snd_kcontrol *kcontrol,
|
||||
|
||||
snd_i2c_lock(device->bus);
|
||||
if ((err = snd_i2c_sendbytes(device, ®, 1)) != 1) {
|
||||
snd_printk(KERN_ERR "unable to send register 0x%x byte to CS8427\n", reg);
|
||||
snd_printk(KERN_ERR "unable to send register 0x%x byte "
|
||||
"to CS8427\n", reg);
|
||||
snd_i2c_unlock(device->bus);
|
||||
return err < 0 ? err : -EIO;
|
||||
}
|
||||
if ((err = snd_i2c_readbytes(device, ucontrol->value.bytes.data, 10)) != 10) {
|
||||
snd_printk(KERN_ERR "unable to read Q-subcode bytes from CS8427\n");
|
||||
err = snd_i2c_readbytes(device, ucontrol->value.bytes.data, 10);
|
||||
if (err != 10) {
|
||||
snd_printk(KERN_ERR "unable to read Q-subcode bytes "
|
||||
"from CS8427\n");
|
||||
snd_i2c_unlock(device->bus);
|
||||
return err < 0 ? err : -EIO;
|
||||
}
|
||||
@@ -380,7 +402,8 @@ static int snd_cs8427_qsubcode_get(struct snd_kcontrol *kcontrol,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int snd_cs8427_spdif_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
|
||||
static int snd_cs8427_spdif_info(struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_info *uinfo)
|
||||
{
|
||||
uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958;
|
||||
uinfo->count = 1;
|
||||
@@ -413,7 +436,8 @@ static int snd_cs8427_spdif_put(struct snd_kcontrol *kcontrol,
|
||||
snd_i2c_lock(device->bus);
|
||||
change = memcmp(ucontrol->value.iec958.status, status, 24) != 0;
|
||||
memcpy(status, ucontrol->value.iec958.status, 24);
|
||||
if (change && (kcontrol->private_value ? runtime != NULL : runtime == NULL)) {
|
||||
if (change && (kcontrol->private_value ?
|
||||
runtime != NULL : runtime == NULL)) {
|
||||
err = snd_cs8427_send_corudata(device, 0, status, 24);
|
||||
if (err < 0)
|
||||
change = err;
|
||||
@@ -442,7 +466,8 @@ static struct snd_kcontrol_new snd_cs8427_iec958_controls[] = {
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.info = snd_cs8427_in_status_info,
|
||||
.name = "IEC958 CS8427 Input Status",
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE,
|
||||
.access = (SNDRV_CTL_ELEM_ACCESS_READ |
|
||||
SNDRV_CTL_ELEM_ACCESS_VOLATILE),
|
||||
.get = snd_cs8427_in_status_get,
|
||||
.private_value = 15,
|
||||
},
|
||||
@@ -450,7 +475,8 @@ static struct snd_kcontrol_new snd_cs8427_iec958_controls[] = {
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.info = snd_cs8427_in_status_info,
|
||||
.name = "IEC958 CS8427 Error Status",
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE,
|
||||
.access = (SNDRV_CTL_ELEM_ACCESS_READ |
|
||||
SNDRV_CTL_ELEM_ACCESS_VOLATILE),
|
||||
.get = snd_cs8427_in_status_get,
|
||||
.private_value = 16,
|
||||
},
|
||||
@@ -470,7 +496,8 @@ static struct snd_kcontrol_new snd_cs8427_iec958_controls[] = {
|
||||
.private_value = 0
|
||||
},
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
|
||||
.access = (SNDRV_CTL_ELEM_ACCESS_READWRITE |
|
||||
SNDRV_CTL_ELEM_ACCESS_INACTIVE),
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM),
|
||||
.info = snd_cs8427_spdif_info,
|
||||
@@ -482,7 +509,8 @@ static struct snd_kcontrol_new snd_cs8427_iec958_controls[] = {
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.info = snd_cs8427_qsubcode_info,
|
||||
.name = "IEC958 Q-subcode Capture Default",
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE,
|
||||
.access = (SNDRV_CTL_ELEM_ACCESS_READ |
|
||||
SNDRV_CTL_ELEM_ACCESS_VOLATILE),
|
||||
.get = snd_cs8427_qsubcode_get
|
||||
}};
|
||||
|
||||
@@ -505,7 +533,8 @@ int snd_cs8427_iec958_build(struct snd_i2c_device *cs8427,
|
||||
err = snd_ctl_add(cs8427->bus->card, kctl);
|
||||
if (err < 0)
|
||||
return err;
|
||||
if (!strcmp(kctl->id.name, SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM)))
|
||||
if (! strcmp(kctl->id.name,
|
||||
SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM)))
|
||||
chip->playback.pcm_ctl = kctl;
|
||||
}
|
||||
|
||||
@@ -515,6 +544,8 @@ int snd_cs8427_iec958_build(struct snd_i2c_device *cs8427,
|
||||
return 0;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(snd_cs8427_iec958_build);
|
||||
|
||||
int snd_cs8427_iec958_active(struct snd_i2c_device *cs8427, int active)
|
||||
{
|
||||
struct cs8427 *chip;
|
||||
@@ -522,13 +553,17 @@ int snd_cs8427_iec958_active(struct snd_i2c_device *cs8427, int active)
|
||||
snd_assert(cs8427, return -ENXIO);
|
||||
chip = cs8427->private_data;
|
||||
if (active)
|
||||
memcpy(chip->playback.pcm_status, chip->playback.def_status, 24);
|
||||
memcpy(chip->playback.pcm_status,
|
||||
chip->playback.def_status, 24);
|
||||
chip->playback.pcm_ctl->vd[0].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE;
|
||||
snd_ctl_notify(cs8427->bus->card, SNDRV_CTL_EVENT_MASK_VALUE |
|
||||
SNDRV_CTL_EVENT_MASK_INFO, &chip->playback.pcm_ctl->id);
|
||||
snd_ctl_notify(cs8427->bus->card,
|
||||
SNDRV_CTL_EVENT_MASK_VALUE | SNDRV_CTL_EVENT_MASK_INFO,
|
||||
&chip->playback.pcm_ctl->id);
|
||||
return 0;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(snd_cs8427_iec958_active);
|
||||
|
||||
int snd_cs8427_iec958_pcm(struct snd_i2c_device *cs8427, unsigned int rate)
|
||||
{
|
||||
struct cs8427 *chip;
|
||||
@@ -568,6 +603,8 @@ int snd_cs8427_iec958_pcm(struct snd_i2c_device *cs8427, unsigned int rate)
|
||||
return err < 0 ? err : 0;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(snd_cs8427_iec958_pcm);
|
||||
|
||||
static int __init alsa_cs8427_module_init(void)
|
||||
{
|
||||
return 0;
|
||||
@@ -579,10 +616,3 @@ static void __exit alsa_cs8427_module_exit(void)
|
||||
|
||||
module_init(alsa_cs8427_module_init)
|
||||
module_exit(alsa_cs8427_module_exit)
|
||||
|
||||
EXPORT_SYMBOL(snd_cs8427_create);
|
||||
EXPORT_SYMBOL(snd_cs8427_reset);
|
||||
EXPORT_SYMBOL(snd_cs8427_reg_write);
|
||||
EXPORT_SYMBOL(snd_cs8427_iec958_build);
|
||||
EXPORT_SYMBOL(snd_cs8427_iec958_active);
|
||||
EXPORT_SYMBOL(snd_cs8427_iec958_pcm);
|
||||
|
||||
@@ -11,6 +11,7 @@ snd-cs4236-objs := cs4236.o
|
||||
|
||||
# Toplevel Module Dependency
|
||||
obj-$(CONFIG_SND_AZT2320) += snd-cs4231-lib.o
|
||||
obj-$(CONFIG_SND_MIRO) += snd-cs4231-lib.o
|
||||
obj-$(CONFIG_SND_OPL3SA2) += snd-cs4231-lib.o
|
||||
obj-$(CONFIG_SND_CS4231) += snd-cs4231.o snd-cs4231-lib.o
|
||||
obj-$(CONFIG_SND_CS4232) += snd-cs4232.o snd-cs4231-lib.o
|
||||
|
||||
@@ -87,7 +87,7 @@ MODULE_PARM_DESC(channels, "GF1 channels for GUS Extreme driver.");
|
||||
module_param_array(pcm_channels, int, NULL, 0444);
|
||||
MODULE_PARM_DESC(pcm_channels, "Reserved PCM channels for GUS Extreme driver.");
|
||||
|
||||
struct platform_device *devices[SNDRV_CARDS];
|
||||
static struct platform_device *devices[SNDRV_CARDS];
|
||||
|
||||
|
||||
#define PFX "gusextreme: "
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
/* weird stuff, derived from port I/O tracing with dosemu */
|
||||
|
||||
static unsigned char page_zero[] __initdata = {
|
||||
static unsigned char page_zero[] __devinitdata = {
|
||||
0x01, 0x7c, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x00,
|
||||
0x11, 0x00, 0x20, 0x00, 0x32, 0x00, 0x40, 0x00, 0x13, 0x00, 0x00,
|
||||
0x00, 0x14, 0x02, 0x76, 0x00, 0x60, 0x00, 0x80, 0x02, 0x00, 0x00,
|
||||
@@ -61,7 +61,7 @@ static unsigned char page_zero[] __initdata = {
|
||||
0x1d, 0x02, 0xdf
|
||||
};
|
||||
|
||||
static unsigned char page_one[] __initdata = {
|
||||
static unsigned char page_one[] __devinitdata = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x19, 0x00,
|
||||
0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xd8, 0x00, 0x00,
|
||||
0x02, 0x20, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x01,
|
||||
@@ -88,7 +88,7 @@ static unsigned char page_one[] __initdata = {
|
||||
0x60, 0x00, 0x1b
|
||||
};
|
||||
|
||||
static unsigned char page_two[] __initdata = {
|
||||
static unsigned char page_two[] __devinitdata = {
|
||||
0xc4, 0x00, 0x44, 0x07, 0x44, 0x00, 0x40, 0x25, 0x01, 0x06, 0xc4,
|
||||
0x07, 0x40, 0x25, 0x01, 0x00, 0x46, 0x46, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
@@ -103,7 +103,7 @@ static unsigned char page_two[] __initdata = {
|
||||
0x46, 0x05, 0x46, 0x07, 0x46, 0x07, 0x44
|
||||
};
|
||||
|
||||
static unsigned char page_three[] __initdata = {
|
||||
static unsigned char page_three[] __devinitdata = {
|
||||
0x07, 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x40, 0x00, 0x40, 0x06,
|
||||
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
@@ -118,7 +118,7 @@ static unsigned char page_three[] __initdata = {
|
||||
0x02, 0x00, 0x42, 0x00, 0xc0, 0x00, 0x40
|
||||
};
|
||||
|
||||
static unsigned char page_four[] __initdata = {
|
||||
static unsigned char page_four[] __devinitdata = {
|
||||
0x63, 0x03, 0x26, 0x02, 0x2c, 0x00, 0x24, 0x00, 0x2e, 0x02, 0x02,
|
||||
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
@@ -133,7 +133,7 @@ static unsigned char page_four[] __initdata = {
|
||||
0x02, 0x62, 0x02, 0x20, 0x01, 0x21, 0x01
|
||||
};
|
||||
|
||||
static unsigned char page_six[] __initdata = {
|
||||
static unsigned char page_six[] __devinitdata = {
|
||||
0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x06, 0x00,
|
||||
0x00, 0x08, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x0e,
|
||||
0x00, 0x00, 0x10, 0x00, 0x00, 0x12, 0x00, 0x00, 0x14, 0x00, 0x00,
|
||||
@@ -154,7 +154,7 @@ static unsigned char page_six[] __initdata = {
|
||||
0x80, 0x00, 0x7e, 0x80, 0x80
|
||||
};
|
||||
|
||||
static unsigned char page_seven[] __initdata = {
|
||||
static unsigned char page_seven[] __devinitdata = {
|
||||
0x0f, 0xff, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
|
||||
0x08, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0f,
|
||||
@@ -181,7 +181,7 @@ static unsigned char page_seven[] __initdata = {
|
||||
0x00, 0x02, 0x00
|
||||
};
|
||||
|
||||
static unsigned char page_zero_v2[] __initdata = {
|
||||
static unsigned char page_zero_v2[] __devinitdata = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
@@ -193,7 +193,7 @@ static unsigned char page_zero_v2[] __initdata = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
static unsigned char page_one_v2[] __initdata = {
|
||||
static unsigned char page_one_v2[] __devinitdata = {
|
||||
0x01, 0xc0, 0x01, 0xfa, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
@@ -205,21 +205,21 @@ static unsigned char page_one_v2[] __initdata = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
static unsigned char page_two_v2[] __initdata = {
|
||||
static unsigned char page_two_v2[] __devinitdata = {
|
||||
0x46, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
static unsigned char page_three_v2[] __initdata = {
|
||||
static unsigned char page_three_v2[] __devinitdata = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
static unsigned char page_four_v2[] __initdata = {
|
||||
static unsigned char page_four_v2[] __devinitdata = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
@@ -227,7 +227,7 @@ static unsigned char page_four_v2[] __initdata = {
|
||||
0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
static unsigned char page_seven_v2[] __initdata = {
|
||||
static unsigned char page_seven_v2[] __devinitdata = {
|
||||
0x0f, 0xff, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
@@ -239,7 +239,7 @@ static unsigned char page_seven_v2[] __initdata = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
static unsigned char mod_v2[] __initdata = {
|
||||
static unsigned char mod_v2[] __devinitdata = {
|
||||
0x01, 0x00, 0x02, 0x00, 0x01, 0x01, 0x02, 0x00, 0x01, 0x02, 0x02,
|
||||
0x00, 0x01, 0x03, 0x02, 0x00, 0x01, 0x04, 0x02, 0x00, 0x01, 0x05,
|
||||
0x02, 0x00, 0x01, 0x06, 0x02, 0x00, 0x01, 0x07, 0x02, 0x00, 0xb0,
|
||||
@@ -269,7 +269,7 @@ static unsigned char mod_v2[] __initdata = {
|
||||
0x02, 0x01, 0x01, 0x04, 0x02, 0x01, 0x01, 0x05, 0x02, 0x01, 0x01,
|
||||
0x06, 0x02, 0x01, 0x01, 0x07, 0x02, 0x01
|
||||
};
|
||||
static unsigned char coefficients[] __initdata = {
|
||||
static unsigned char coefficients[] __devinitdata = {
|
||||
0x07, 0x46, 0x00, 0x00, 0x07, 0x49, 0x00, 0x00, 0x00, 0x4b, 0x03,
|
||||
0x11, 0x00, 0x4d, 0x01, 0x32, 0x07, 0x46, 0x00, 0x00, 0x07, 0x49,
|
||||
0x00, 0x00, 0x07, 0x40, 0x00, 0x00, 0x07, 0x41, 0x00, 0x00, 0x01,
|
||||
@@ -305,14 +305,14 @@ static unsigned char coefficients[] __initdata = {
|
||||
0x06, 0x6c, 0x4c, 0x6c, 0x06, 0x50, 0x52, 0xe2, 0x06, 0x42, 0x02,
|
||||
0xba
|
||||
};
|
||||
static unsigned char coefficients2[] __initdata = {
|
||||
static unsigned char coefficients2[] __devinitdata = {
|
||||
0x07, 0x46, 0x00, 0x00, 0x07, 0x49, 0x00, 0x00, 0x07, 0x45, 0x0f,
|
||||
0xff, 0x07, 0x48, 0x0f, 0xff, 0x07, 0x7b, 0x04, 0xcc, 0x07, 0x7d,
|
||||
0x04, 0xcc, 0x07, 0x7c, 0x00, 0x00, 0x07, 0x7e, 0x00, 0x00, 0x07,
|
||||
0x46, 0x00, 0x00, 0x07, 0x49, 0x00, 0x00, 0x07, 0x47, 0x00, 0x00,
|
||||
0x07, 0x4a, 0x00, 0x00, 0x07, 0x4c, 0x00, 0x00, 0x07, 0x4e, 0x00, 0x00
|
||||
};
|
||||
static unsigned char coefficients3[] __initdata = {
|
||||
static unsigned char coefficients3[] __devinitdata = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x28, 0x00, 0x51, 0x00,
|
||||
0x51, 0x00, 0x7a, 0x00, 0x7a, 0x00, 0xa3, 0x00, 0xa3, 0x00, 0xcc,
|
||||
0x00, 0xcc, 0x00, 0xf5, 0x00, 0xf5, 0x01, 0x1e, 0x01, 0x1e, 0x01,
|
||||
@@ -563,7 +563,7 @@ snd_wavefront_fx_ioctl (struct snd_hwdep *sdev, struct file *file,
|
||||
*/
|
||||
|
||||
|
||||
int __init
|
||||
int __devinit
|
||||
snd_wavefront_fx_start (snd_wavefront_t *dev)
|
||||
|
||||
{
|
||||
|
||||
@@ -474,7 +474,7 @@ snd_wavefront_midi_disable_virtual (snd_wavefront_card_t *card)
|
||||
spin_unlock_irqrestore (&card->wavefront.midi.virtual, flags);
|
||||
}
|
||||
|
||||
int __init
|
||||
int __devinit
|
||||
snd_wavefront_midi_start (snd_wavefront_card_t *card)
|
||||
|
||||
{
|
||||
|
||||
@@ -1738,7 +1738,7 @@ snd_wavefront_internal_interrupt (snd_wavefront_card_t *card)
|
||||
7 Unused
|
||||
*/
|
||||
|
||||
static int __init
|
||||
static int __devinit
|
||||
snd_wavefront_interrupt_bits (int irq)
|
||||
|
||||
{
|
||||
@@ -1766,7 +1766,7 @@ snd_wavefront_interrupt_bits (int irq)
|
||||
return bits;
|
||||
}
|
||||
|
||||
static void __init
|
||||
static void __devinit
|
||||
wavefront_should_cause_interrupt (snd_wavefront_t *dev,
|
||||
int val, int port, int timeout)
|
||||
|
||||
@@ -1787,7 +1787,7 @@ wavefront_should_cause_interrupt (snd_wavefront_t *dev,
|
||||
}
|
||||
}
|
||||
|
||||
static int __init
|
||||
static int __devinit
|
||||
wavefront_reset_to_cleanliness (snd_wavefront_t *dev)
|
||||
|
||||
{
|
||||
@@ -1946,7 +1946,7 @@ wavefront_reset_to_cleanliness (snd_wavefront_t *dev)
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
|
||||
static int __init
|
||||
static int __devinit
|
||||
wavefront_download_firmware (snd_wavefront_t *dev, char *path)
|
||||
|
||||
{
|
||||
@@ -2047,7 +2047,7 @@ wavefront_download_firmware (snd_wavefront_t *dev, char *path)
|
||||
}
|
||||
|
||||
|
||||
static int __init
|
||||
static int __devinit
|
||||
wavefront_do_reset (snd_wavefront_t *dev)
|
||||
|
||||
{
|
||||
@@ -2136,7 +2136,7 @@ wavefront_do_reset (snd_wavefront_t *dev)
|
||||
return 1;
|
||||
}
|
||||
|
||||
int __init
|
||||
int __devinit
|
||||
snd_wavefront_start (snd_wavefront_t *dev)
|
||||
|
||||
{
|
||||
@@ -2178,7 +2178,7 @@ snd_wavefront_start (snd_wavefront_t *dev)
|
||||
return (0);
|
||||
}
|
||||
|
||||
int __init
|
||||
int __devinit
|
||||
snd_wavefront_detect (snd_wavefront_card_t *card)
|
||||
|
||||
{
|
||||
|
||||
@@ -460,17 +460,19 @@ config SND_FM801
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called snd-fm801.
|
||||
|
||||
config SND_FM801_TEA575X
|
||||
tristate "ForteMedia FM801 + TEA5757 tuner"
|
||||
config SND_FM801_TEA575X_BOOL
|
||||
bool "ForteMedia FM801 + TEA5757 tuner"
|
||||
depends on SND_FM801
|
||||
select VIDEO_DEV
|
||||
help
|
||||
Say Y here to include support for soundcards based on the ForteMedia
|
||||
FM801 chip with a TEA5757 tuner connected to GPIO1-3 pins (Media
|
||||
Forte SF256-PCS-02).
|
||||
Forte SF256-PCS-02) into the snd-fm801 driver.
|
||||
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called snd-fm801-tea575x.
|
||||
config SND_FM801_TEA575X
|
||||
tristate
|
||||
depends on SND_FM801_TEA575X_BOOL
|
||||
default SND_FM801
|
||||
select VIDEO_DEV
|
||||
|
||||
config SND_HDA_INTEL
|
||||
tristate "Intel HD Audio"
|
||||
|
||||
@@ -241,14 +241,14 @@ ad1889_channel_reset(struct snd_ad1889 *chip, unsigned int channel)
|
||||
}
|
||||
}
|
||||
|
||||
static inline u16
|
||||
static u16
|
||||
snd_ad1889_ac97_read(struct snd_ac97 *ac97, unsigned short reg)
|
||||
{
|
||||
struct snd_ad1889 *chip = ac97->private_data;
|
||||
return ad1889_readw(chip, AD_AC97_BASE + reg);
|
||||
}
|
||||
|
||||
static inline void
|
||||
static void
|
||||
snd_ad1889_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val)
|
||||
{
|
||||
struct snd_ad1889 *chip = ac97->private_data;
|
||||
@@ -873,7 +873,7 @@ skip_hw:
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
static int
|
||||
snd_ad1889_dev_free(struct snd_device *device)
|
||||
{
|
||||
struct snd_ad1889 *chip = device->device_data;
|
||||
@@ -1051,7 +1051,7 @@ snd_ad1889_remove(struct pci_dev *pci)
|
||||
pci_set_drvdata(pci, NULL);
|
||||
}
|
||||
|
||||
static struct pci_device_id snd_ad1889_ids[] __devinitdata = {
|
||||
static struct pci_device_id snd_ad1889_ids[] = {
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_ANALOG_DEVICES, PCI_DEVICE_ID_AD1889JS) },
|
||||
{ 0, },
|
||||
};
|
||||
|
||||
@@ -279,7 +279,7 @@ struct snd_ali {
|
||||
#endif
|
||||
};
|
||||
|
||||
static struct pci_device_id snd_ali_ids[] __devinitdata = {
|
||||
static struct pci_device_id snd_ali_ids[] = {
|
||||
{PCI_DEVICE(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M5451), 0, 0, 0},
|
||||
{0, }
|
||||
};
|
||||
|
||||
@@ -146,7 +146,7 @@ struct snd_als300_substream_data {
|
||||
int block_counter_register;
|
||||
};
|
||||
|
||||
static struct pci_device_id snd_als300_ids[] __devinitdata = {
|
||||
static struct pci_device_id snd_als300_ids[] = {
|
||||
{ 0x4005, 0x0300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALS300 },
|
||||
{ 0x4005, 0x0308, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALS300_PLUS },
|
||||
{ 0, }
|
||||
|
||||
@@ -116,7 +116,7 @@ struct snd_card_als4000 {
|
||||
#endif
|
||||
};
|
||||
|
||||
static struct pci_device_id snd_als4000_ids[] __devinitdata = {
|
||||
static struct pci_device_id snd_als4000_ids[] = {
|
||||
{ 0x4005, 0x4000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ALS4000 */
|
||||
{ 0, }
|
||||
};
|
||||
|
||||
@@ -284,7 +284,7 @@ struct atiixp {
|
||||
|
||||
/*
|
||||
*/
|
||||
static struct pci_device_id snd_atiixp_ids[] __devinitdata = {
|
||||
static struct pci_device_id snd_atiixp_ids[] = {
|
||||
{ 0x1002, 0x4341, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB200 */
|
||||
{ 0x1002, 0x4361, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB300 */
|
||||
{ 0x1002, 0x4370, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB400 */
|
||||
|
||||
@@ -262,7 +262,7 @@ struct atiixp_modem {
|
||||
|
||||
/*
|
||||
*/
|
||||
static struct pci_device_id snd_atiixp_ids[] __devinitdata = {
|
||||
static struct pci_device_id snd_atiixp_ids[] = {
|
||||
{ 0x1002, 0x434d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB200 */
|
||||
{ 0x1002, 0x4378, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB400 */
|
||||
{ 0, }
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "au8810.h"
|
||||
#include "au88x0.h"
|
||||
static struct pci_device_id snd_vortex_ids[] __devinitdata = {
|
||||
static struct pci_device_id snd_vortex_ids[] = {
|
||||
{PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_ADVANTAGE,
|
||||
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1,},
|
||||
{0,}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "au8820.h"
|
||||
#include "au88x0.h"
|
||||
static struct pci_device_id snd_vortex_ids[] __devinitdata = {
|
||||
static struct pci_device_id snd_vortex_ids[] = {
|
||||
{PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_VORTEX_1,
|
||||
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,},
|
||||
{0,}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user