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: hda - Fix Realtek's chained fixup checks Revert "ALSA: hda - Fix pin-config of Gigabyte mobo" ALSA: HDA: Fix automute for Gateway NV79 ALSA: hda: add beep quirk for Realtek 0x1043:831a ALSA: usb-audio - Terratec Aureon 7.1 USB ID as C-Media cm6206 quirks ALSA: hda - VIA: Fix notify_aa_path_ctls() invalid issue. ALSA - au88x0 - Add buffer bytes constraints
This commit is contained in:
Коммит
c7bcecbe98
|
@ -44,10 +44,10 @@ static struct snd_pcm_hardware snd_vortex_playback_hw_adb = {
|
|||
.channels_min = 1,
|
||||
.channels_max = 2,
|
||||
.buffer_bytes_max = 0x10000,
|
||||
.period_bytes_min = 0x1,
|
||||
.period_bytes_min = 0x20,
|
||||
.period_bytes_max = 0x1000,
|
||||
.periods_min = 2,
|
||||
.periods_max = 32,
|
||||
.periods_max = 1024,
|
||||
};
|
||||
|
||||
#ifndef CHIP_AU8820
|
||||
|
@ -140,6 +140,9 @@ static int snd_vortex_pcm_open(struct snd_pcm_substream *substream)
|
|||
SNDRV_PCM_HW_PARAM_PERIOD_BYTES)) < 0)
|
||||
return err;
|
||||
|
||||
snd_pcm_hw_constraint_step(runtime, 0,
|
||||
SNDRV_PCM_HW_PARAM_BUFFER_BYTES, 64);
|
||||
|
||||
if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT) {
|
||||
#ifndef CHIP_AU8820
|
||||
if (VORTEX_PCM_TYPE(substream->pcm) == VORTEX_PCM_A3D) {
|
||||
|
|
|
@ -1704,11 +1704,11 @@ static void alc_apply_fixup(struct hda_codec *codec, int action)
|
|||
codec->chip_name, fix->type);
|
||||
break;
|
||||
}
|
||||
if (!fix[id].chained)
|
||||
if (!fix->chained)
|
||||
break;
|
||||
if (++depth > 10)
|
||||
break;
|
||||
id = fix[id].chain_id;
|
||||
id = fix->chain_id;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5645,6 +5645,7 @@ static void fillup_priv_adc_nids(struct hda_codec *codec, hda_nid_t *nids,
|
|||
static struct snd_pci_quirk beep_white_list[] = {
|
||||
SND_PCI_QUIRK(0x1043, 0x829f, "ASUS", 1),
|
||||
SND_PCI_QUIRK(0x1043, 0x83ce, "EeePC", 1),
|
||||
SND_PCI_QUIRK(0x1043, 0x831a, "EeePC", 1),
|
||||
SND_PCI_QUIRK(0x8086, 0xd613, "Intel", 1),
|
||||
{}
|
||||
};
|
||||
|
@ -9863,6 +9864,7 @@ static struct snd_pci_quirk alc882_cfg_tbl[] = {
|
|||
SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC883_LAPTOP_EAPD),
|
||||
SND_PCI_QUIRK(0x10f1, 0x2350, "TYAN-S2350", ALC888_6ST_DELL),
|
||||
SND_PCI_QUIRK(0x108e, 0x534d, NULL, ALC883_3ST_6ch),
|
||||
SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte P35 DS3R", ALC882_6ST_DIG),
|
||||
|
||||
SND_PCI_QUIRK(0x1462, 0x0349, "MSI", ALC883_TARGA_2ch_DIG),
|
||||
SND_PCI_QUIRK(0x1462, 0x040d, "MSI", ALC883_TARGA_2ch_DIG),
|
||||
|
@ -10699,7 +10701,6 @@ enum {
|
|||
PINFIX_LENOVO_Y530,
|
||||
PINFIX_PB_M5210,
|
||||
PINFIX_ACER_ASPIRE_7736,
|
||||
PINFIX_GIGABYTE_880GM,
|
||||
};
|
||||
|
||||
static const struct alc_fixup alc882_fixups[] = {
|
||||
|
@ -10731,13 +10732,6 @@ static const struct alc_fixup alc882_fixups[] = {
|
|||
.type = ALC_FIXUP_SKU,
|
||||
.v.sku = ALC_FIXUP_SKU_IGNORE,
|
||||
},
|
||||
[PINFIX_GIGABYTE_880GM] = {
|
||||
.type = ALC_FIXUP_PINS,
|
||||
.v.pins = (const struct alc_pincfg[]) {
|
||||
{ 0x14, 0x1114410 }, /* set as speaker */
|
||||
{ }
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
static struct snd_pci_quirk alc882_fixup_tbl[] = {
|
||||
|
@ -10745,7 +10739,6 @@ static struct snd_pci_quirk alc882_fixup_tbl[] = {
|
|||
SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", PINFIX_LENOVO_Y530),
|
||||
SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX),
|
||||
SND_PCI_QUIRK(0x1025, 0x0296, "Acer Aspire 7736z", PINFIX_ACER_ASPIRE_7736),
|
||||
SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte", PINFIX_GIGABYTE_880GM),
|
||||
{}
|
||||
};
|
||||
|
||||
|
@ -18805,6 +18798,8 @@ static struct snd_pci_quirk alc662_cfg_tbl[] = {
|
|||
ALC662_3ST_6ch_DIG),
|
||||
SND_PCI_QUIRK(0x1179, 0xff6e, "Toshiba NB20x", ALC662_AUTO),
|
||||
SND_PCI_QUIRK(0x144d, 0xca00, "Samsung NC10", ALC272_SAMSUNG_NC10),
|
||||
SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte 945GCM-S2L",
|
||||
ALC662_3ST_6ch_DIG),
|
||||
SND_PCI_QUIRK(0x152d, 0x2304, "Quanta WH1", ALC663_ASUS_H13),
|
||||
SND_PCI_QUIRK(0x1565, 0x820f, "Biostar TA780G M2+", ALC662_3ST_6ch_DIG),
|
||||
SND_PCI_QUIRK(0x1631, 0xc10c, "PB RS65", ALC663_ASUS_M51VA),
|
||||
|
@ -19478,7 +19473,7 @@ enum {
|
|||
ALC662_FIXUP_IDEAPAD,
|
||||
ALC272_FIXUP_MARIO,
|
||||
ALC662_FIXUP_CZC_P10T,
|
||||
ALC662_FIXUP_GIGABYTE,
|
||||
ALC662_FIXUP_SKU_IGNORE,
|
||||
};
|
||||
|
||||
static const struct alc_fixup alc662_fixups[] = {
|
||||
|
@ -19507,20 +19502,17 @@ static const struct alc_fixup alc662_fixups[] = {
|
|||
{}
|
||||
}
|
||||
},
|
||||
[ALC662_FIXUP_GIGABYTE] = {
|
||||
.type = ALC_FIXUP_PINS,
|
||||
.v.pins = (const struct alc_pincfg[]) {
|
||||
{ 0x14, 0x1114410 }, /* set as speaker */
|
||||
{ }
|
||||
}
|
||||
[ALC662_FIXUP_SKU_IGNORE] = {
|
||||
.type = ALC_FIXUP_SKU,
|
||||
.v.sku = ALC_FIXUP_SKU_IGNORE,
|
||||
},
|
||||
};
|
||||
|
||||
static struct snd_pci_quirk alc662_fixup_tbl[] = {
|
||||
SND_PCI_QUIRK(0x1025, 0x0308, "Acer Aspire 8942G", ALC662_FIXUP_ASPIRE),
|
||||
SND_PCI_QUIRK(0x1025, 0x031c, "Gateway NV79", ALC662_FIXUP_SKU_IGNORE),
|
||||
SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE),
|
||||
SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD),
|
||||
SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte", ALC662_FIXUP_GIGABYTE),
|
||||
SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD),
|
||||
SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD),
|
||||
SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T),
|
||||
|
|
|
@ -1292,14 +1292,18 @@ static void notify_aa_path_ctls(struct hda_codec *codec)
|
|||
{
|
||||
int i;
|
||||
struct snd_ctl_elem_id id;
|
||||
const char *labels[] = {"Mic", "Front Mic", "Line"};
|
||||
const char *labels[] = {"Mic", "Front Mic", "Line", "Rear Mic"};
|
||||
struct snd_kcontrol *ctl;
|
||||
|
||||
memset(&id, 0, sizeof(id));
|
||||
id.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
|
||||
for (i = 0; i < ARRAY_SIZE(labels); i++) {
|
||||
sprintf(id.name, "%s Playback Volume", labels[i]);
|
||||
snd_ctl_notify(codec->bus->card, SNDRV_CTL_EVENT_MASK_VALUE,
|
||||
&id);
|
||||
ctl = snd_hda_find_mixer_ctl(codec, id.name);
|
||||
if (ctl)
|
||||
snd_ctl_notify(codec->bus->card,
|
||||
SNDRV_CTL_EVENT_MASK_VALUE,
|
||||
&ctl->id);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -176,9 +176,11 @@ static int parse_audio_format_rates_v1(struct snd_usb_audio *chip, struct audiof
|
|||
if (!rate)
|
||||
continue;
|
||||
/* C-Media CM6501 mislabels its 96 kHz altsetting */
|
||||
/* Terratec Aureon 7.1 USB C-Media 6206, too */
|
||||
if (rate == 48000 && nr_rates == 1 &&
|
||||
(chip->usb_id == USB_ID(0x0d8c, 0x0201) ||
|
||||
chip->usb_id == USB_ID(0x0d8c, 0x0102)) &&
|
||||
chip->usb_id == USB_ID(0x0d8c, 0x0102) ||
|
||||
chip->usb_id == USB_ID(0x0ccd, 0x00b1)) &&
|
||||
fp->altsetting == 5 && fp->maxpacksize == 392)
|
||||
rate = 96000;
|
||||
/* Creative VF0470 Live Cam reports 16 kHz instead of 8kHz */
|
||||
|
|
|
@ -533,6 +533,7 @@ int snd_usb_apply_boot_quirk(struct usb_device *dev,
|
|||
|
||||
case USB_ID(0x0d8c, 0x0102):
|
||||
/* C-Media CM6206 / CM106-Like Sound Device */
|
||||
case USB_ID(0x0ccd, 0x00b1): /* Terratec Aureon 7.1 USB */
|
||||
return snd_usb_cm6206_boot_quirk(dev);
|
||||
|
||||
case USB_ID(0x133e, 0x0815):
|
||||
|
|
Загрузка…
Ссылка в новой задаче