Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: ALSA: ctxfi: Swapped SURROUND-SIDE channels on emu20k2 ALSA: ca0106 - Fix the max capture buffer size ALSA: hda - Fix pin-setup for Sony VAIO with STAC9872 codecs ALSA: hda - Add quirk for Gateway T6834c laptop ALSA: OSS sequencer should be initialized after snd_seq_system_client_init ALSA: sound/isa: convert nested spin_lock_irqsave to spin_lock ALSA: hda_codec: Check for invalid zero connections
This commit is contained in:
Коммит
0d517fb1f3
|
@ -3,10 +3,6 @@
|
||||||
# Copyright (c) 1999 by Jaroslav Kysela <perex@perex.cz>
|
# Copyright (c) 1999 by Jaroslav Kysela <perex@perex.cz>
|
||||||
#
|
#
|
||||||
|
|
||||||
ifeq ($(CONFIG_SND_SEQUENCER_OSS),y)
|
|
||||||
obj-$(CONFIG_SND_SEQUENCER) += oss/
|
|
||||||
endif
|
|
||||||
|
|
||||||
snd-seq-device-objs := seq_device.o
|
snd-seq-device-objs := seq_device.o
|
||||||
snd-seq-objs := seq.o seq_lock.o seq_clientmgr.o seq_memory.o seq_queue.o \
|
snd-seq-objs := seq.o seq_lock.o seq_clientmgr.o seq_memory.o seq_queue.o \
|
||||||
seq_fifo.o seq_prioq.o seq_timer.o \
|
seq_fifo.o seq_prioq.o seq_timer.o \
|
||||||
|
@ -19,7 +15,8 @@ snd-seq-virmidi-objs := seq_virmidi.o
|
||||||
|
|
||||||
obj-$(CONFIG_SND_SEQUENCER) += snd-seq.o snd-seq-device.o
|
obj-$(CONFIG_SND_SEQUENCER) += snd-seq.o snd-seq-device.o
|
||||||
ifeq ($(CONFIG_SND_SEQUENCER_OSS),y)
|
ifeq ($(CONFIG_SND_SEQUENCER_OSS),y)
|
||||||
obj-$(CONFIG_SND_SEQUENCER) += snd-seq-midi-event.o
|
obj-$(CONFIG_SND_SEQUENCER) += snd-seq-midi-event.o
|
||||||
|
obj-$(CONFIG_SND_SEQUENCER) += oss/
|
||||||
endif
|
endif
|
||||||
obj-$(CONFIG_SND_SEQ_DUMMY) += snd-seq-dummy.o
|
obj-$(CONFIG_SND_SEQ_DUMMY) += snd-seq-dummy.o
|
||||||
|
|
||||||
|
|
|
@ -795,13 +795,13 @@ static int snd_gf1_pcm_volume_put(struct snd_kcontrol *kcontrol, struct snd_ctl_
|
||||||
if (!(pcmp->flags & SNDRV_GF1_PCM_PFLG_ACTIVE))
|
if (!(pcmp->flags & SNDRV_GF1_PCM_PFLG_ACTIVE))
|
||||||
continue;
|
continue;
|
||||||
/* load real volume - better precision */
|
/* load real volume - better precision */
|
||||||
spin_lock_irqsave(&gus->reg_lock, flags);
|
spin_lock(&gus->reg_lock);
|
||||||
snd_gf1_select_voice(gus, pvoice->number);
|
snd_gf1_select_voice(gus, pvoice->number);
|
||||||
snd_gf1_ctrl_stop(gus, SNDRV_GF1_VB_VOLUME_CONTROL);
|
snd_gf1_ctrl_stop(gus, SNDRV_GF1_VB_VOLUME_CONTROL);
|
||||||
vol = pvoice == pcmp->pvoices[0] ? gus->gf1.pcm_volume_level_left : gus->gf1.pcm_volume_level_right;
|
vol = pvoice == pcmp->pvoices[0] ? gus->gf1.pcm_volume_level_left : gus->gf1.pcm_volume_level_right;
|
||||||
snd_gf1_write16(gus, SNDRV_GF1_VW_VOLUME, vol);
|
snd_gf1_write16(gus, SNDRV_GF1_VW_VOLUME, vol);
|
||||||
pcmp->final_volume = 1;
|
pcmp->final_volume = 1;
|
||||||
spin_unlock_irqrestore(&gus->reg_lock, flags);
|
spin_unlock(&gus->reg_lock);
|
||||||
}
|
}
|
||||||
spin_unlock_irqrestore(&gus->voice_alloc, flags);
|
spin_unlock_irqrestore(&gus->voice_alloc, flags);
|
||||||
return change;
|
return change;
|
||||||
|
|
|
@ -325,9 +325,9 @@ static struct snd_pcm_hardware snd_ca0106_capture_hw = {
|
||||||
.rate_max = 192000,
|
.rate_max = 192000,
|
||||||
.channels_min = 2,
|
.channels_min = 2,
|
||||||
.channels_max = 2,
|
.channels_max = 2,
|
||||||
.buffer_bytes_max = ((65536 - 64) * 8),
|
.buffer_bytes_max = 65536 - 128,
|
||||||
.period_bytes_min = 64,
|
.period_bytes_min = 64,
|
||||||
.period_bytes_max = (65536 - 64),
|
.period_bytes_max = 32768 - 64,
|
||||||
.periods_min = 2,
|
.periods_min = 2,
|
||||||
.periods_max = 2,
|
.periods_max = 2,
|
||||||
.fifo_size = 0,
|
.fifo_size = 0,
|
||||||
|
|
|
@ -57,9 +57,9 @@ struct daio_rsc_idx idx_20k1[NUM_DAIOTYP] = {
|
||||||
|
|
||||||
struct daio_rsc_idx idx_20k2[NUM_DAIOTYP] = {
|
struct daio_rsc_idx idx_20k2[NUM_DAIOTYP] = {
|
||||||
[LINEO1] = {.left = 0x40, .right = 0x41},
|
[LINEO1] = {.left = 0x40, .right = 0x41},
|
||||||
[LINEO2] = {.left = 0x70, .right = 0x71},
|
[LINEO2] = {.left = 0x60, .right = 0x61},
|
||||||
[LINEO3] = {.left = 0x50, .right = 0x51},
|
[LINEO3] = {.left = 0x50, .right = 0x51},
|
||||||
[LINEO4] = {.left = 0x60, .right = 0x61},
|
[LINEO4] = {.left = 0x70, .right = 0x71},
|
||||||
[LINEIM] = {.left = 0x45, .right = 0xc5},
|
[LINEIM] = {.left = 0x45, .right = 0xc5},
|
||||||
[SPDIFOO] = {.left = 0x00, .right = 0x01},
|
[SPDIFOO] = {.left = 0x00, .right = 0x01},
|
||||||
[SPDIFIO] = {.left = 0x05, .right = 0x85},
|
[SPDIFIO] = {.left = 0x05, .right = 0x85},
|
||||||
|
|
|
@ -332,6 +332,12 @@ int snd_hda_get_connections(struct hda_codec *codec, hda_nid_t nid,
|
||||||
AC_VERB_GET_CONNECT_LIST, i);
|
AC_VERB_GET_CONNECT_LIST, i);
|
||||||
range_val = !!(parm & (1 << (shift-1))); /* ranges */
|
range_val = !!(parm & (1 << (shift-1))); /* ranges */
|
||||||
val = parm & mask;
|
val = parm & mask;
|
||||||
|
if (val == 0) {
|
||||||
|
snd_printk(KERN_WARNING "hda_codec: "
|
||||||
|
"invalid CONNECT_LIST verb %x[%i]:%x\n",
|
||||||
|
nid, i, parm);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
parm >>= shift;
|
parm >>= shift;
|
||||||
if (range_val) {
|
if (range_val) {
|
||||||
/* ranges between the previous and this one */
|
/* ranges between the previous and this one */
|
||||||
|
|
|
@ -2378,6 +2378,7 @@ static struct snd_pci_quirk stac9205_cfg_tbl[] = {
|
||||||
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0228,
|
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0228,
|
||||||
"Dell Vostro 1500", STAC_9205_DELL_M42),
|
"Dell Vostro 1500", STAC_9205_DELL_M42),
|
||||||
/* Gateway */
|
/* Gateway */
|
||||||
|
SND_PCI_QUIRK(0x107b, 0x0560, "Gateway T6834c", STAC_9205_EAPD),
|
||||||
SND_PCI_QUIRK(0x107b, 0x0565, "Gateway T1616", STAC_9205_EAPD),
|
SND_PCI_QUIRK(0x107b, 0x0565, "Gateway T1616", STAC_9205_EAPD),
|
||||||
{} /* terminator */
|
{} /* terminator */
|
||||||
};
|
};
|
||||||
|
@ -5854,6 +5855,8 @@ static unsigned int *stac9872_brd_tbl[STAC_9872_MODELS] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct snd_pci_quirk stac9872_cfg_tbl[] = {
|
static struct snd_pci_quirk stac9872_cfg_tbl[] = {
|
||||||
|
SND_PCI_QUIRK_MASK(0x104d, 0xfff0, 0x81e0,
|
||||||
|
"Sony VAIO F/S", STAC_9872_VAIO),
|
||||||
{} /* terminator */
|
{} /* terminator */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -5866,6 +5869,8 @@ static int patch_stac9872(struct hda_codec *codec)
|
||||||
if (spec == NULL)
|
if (spec == NULL)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
codec->spec = spec;
|
codec->spec = spec;
|
||||||
|
spec->num_pins = ARRAY_SIZE(stac9872_pin_nids);
|
||||||
|
spec->pin_nids = stac9872_pin_nids;
|
||||||
|
|
||||||
spec->board_config = snd_hda_check_board_config(codec, STAC_9872_MODELS,
|
spec->board_config = snd_hda_check_board_config(codec, STAC_9872_MODELS,
|
||||||
stac9872_models,
|
stac9872_models,
|
||||||
|
@ -5877,8 +5882,6 @@ static int patch_stac9872(struct hda_codec *codec)
|
||||||
stac92xx_set_config_regs(codec,
|
stac92xx_set_config_regs(codec,
|
||||||
stac9872_brd_tbl[spec->board_config]);
|
stac9872_brd_tbl[spec->board_config]);
|
||||||
|
|
||||||
spec->num_pins = ARRAY_SIZE(stac9872_pin_nids);
|
|
||||||
spec->pin_nids = stac9872_pin_nids;
|
|
||||||
spec->multiout.dac_nids = spec->dac_nids;
|
spec->multiout.dac_nids = spec->dac_nids;
|
||||||
spec->num_adcs = ARRAY_SIZE(stac9872_adc_nids);
|
spec->num_adcs = ARRAY_SIZE(stac9872_adc_nids);
|
||||||
spec->adc_nids = stac9872_adc_nids;
|
spec->adc_nids = stac9872_adc_nids;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче