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

+27 -25
+5 -2
sound/pci/au88x0/au88x0_pcm.c
··· 44 44 .channels_min = 1, 45 45 .channels_max = 2, 46 46 .buffer_bytes_max = 0x10000, 47 - .period_bytes_min = 0x1, 47 + .period_bytes_min = 0x20, 48 48 .period_bytes_max = 0x1000, 49 49 .periods_min = 2, 50 - .periods_max = 32, 50 + .periods_max = 1024, 51 51 }; 52 52 53 53 #ifndef CHIP_AU8820 ··· 139 139 snd_pcm_hw_constraint_pow2(runtime, 0, 140 140 SNDRV_PCM_HW_PARAM_PERIOD_BYTES)) < 0) 141 141 return err; 142 + 143 + snd_pcm_hw_constraint_step(runtime, 0, 144 + SNDRV_PCM_HW_PARAM_BUFFER_BYTES, 64); 142 145 143 146 if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT) { 144 147 #ifndef CHIP_AU8820
+11 -19
sound/pci/hda/patch_realtek.c
··· 1704 1704 codec->chip_name, fix->type); 1705 1705 break; 1706 1706 } 1707 - if (!fix[id].chained) 1707 + if (!fix->chained) 1708 1708 break; 1709 1709 if (++depth > 10) 1710 1710 break; 1711 - id = fix[id].chain_id; 1711 + id = fix->chain_id; 1712 1712 } 1713 1713 } 1714 1714 ··· 5645 5645 static struct snd_pci_quirk beep_white_list[] = { 5646 5646 SND_PCI_QUIRK(0x1043, 0x829f, "ASUS", 1), 5647 5647 SND_PCI_QUIRK(0x1043, 0x83ce, "EeePC", 1), 5648 + SND_PCI_QUIRK(0x1043, 0x831a, "EeePC", 1), 5648 5649 SND_PCI_QUIRK(0x8086, 0xd613, "Intel", 1), 5649 5650 {} 5650 5651 }; ··· 9864 9863 SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC883_LAPTOP_EAPD), 9865 9864 SND_PCI_QUIRK(0x10f1, 0x2350, "TYAN-S2350", ALC888_6ST_DELL), 9866 9865 SND_PCI_QUIRK(0x108e, 0x534d, NULL, ALC883_3ST_6ch), 9866 + SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte P35 DS3R", ALC882_6ST_DIG), 9867 9867 9868 9868 SND_PCI_QUIRK(0x1462, 0x0349, "MSI", ALC883_TARGA_2ch_DIG), 9869 9869 SND_PCI_QUIRK(0x1462, 0x040d, "MSI", ALC883_TARGA_2ch_DIG), ··· 10701 10699 PINFIX_LENOVO_Y530, 10702 10700 PINFIX_PB_M5210, 10703 10701 PINFIX_ACER_ASPIRE_7736, 10704 - PINFIX_GIGABYTE_880GM, 10705 10702 }; 10706 10703 10707 10704 static const struct alc_fixup alc882_fixups[] = { ··· 10732 10731 .type = ALC_FIXUP_SKU, 10733 10732 .v.sku = ALC_FIXUP_SKU_IGNORE, 10734 10733 }, 10735 - [PINFIX_GIGABYTE_880GM] = { 10736 - .type = ALC_FIXUP_PINS, 10737 - .v.pins = (const struct alc_pincfg[]) { 10738 - { 0x14, 0x1114410 }, /* set as speaker */ 10739 - { } 10740 - } 10741 - }, 10742 10734 }; 10743 10735 10744 10736 static struct snd_pci_quirk alc882_fixup_tbl[] = { ··· 10739 10745 SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", PINFIX_LENOVO_Y530), 10740 10746 SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX), 10741 10747 SND_PCI_QUIRK(0x1025, 0x0296, "Acer Aspire 7736z", PINFIX_ACER_ASPIRE_7736), 10742 - SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte", PINFIX_GIGABYTE_880GM), 10743 10748 {} 10744 10749 }; 10745 10750 ··· 18798 18805 ALC662_3ST_6ch_DIG), 18799 18806 SND_PCI_QUIRK(0x1179, 0xff6e, "Toshiba NB20x", ALC662_AUTO), 18800 18807 SND_PCI_QUIRK(0x144d, 0xca00, "Samsung NC10", ALC272_SAMSUNG_NC10), 18808 + SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte 945GCM-S2L", 18809 + ALC662_3ST_6ch_DIG), 18801 18810 SND_PCI_QUIRK(0x152d, 0x2304, "Quanta WH1", ALC663_ASUS_H13), 18802 18811 SND_PCI_QUIRK(0x1565, 0x820f, "Biostar TA780G M2+", ALC662_3ST_6ch_DIG), 18803 18812 SND_PCI_QUIRK(0x1631, 0xc10c, "PB RS65", ALC663_ASUS_M51VA), ··· 19473 19478 ALC662_FIXUP_IDEAPAD, 19474 19479 ALC272_FIXUP_MARIO, 19475 19480 ALC662_FIXUP_CZC_P10T, 19476 - ALC662_FIXUP_GIGABYTE, 19481 + ALC662_FIXUP_SKU_IGNORE, 19477 19482 }; 19478 19483 19479 19484 static const struct alc_fixup alc662_fixups[] = { ··· 19502 19507 {} 19503 19508 } 19504 19509 }, 19505 - [ALC662_FIXUP_GIGABYTE] = { 19506 - .type = ALC_FIXUP_PINS, 19507 - .v.pins = (const struct alc_pincfg[]) { 19508 - { 0x14, 0x1114410 }, /* set as speaker */ 19509 - { } 19510 - } 19510 + [ALC662_FIXUP_SKU_IGNORE] = { 19511 + .type = ALC_FIXUP_SKU, 19512 + .v.sku = ALC_FIXUP_SKU_IGNORE, 19511 19513 }, 19512 19514 }; 19513 19515 19514 19516 static struct snd_pci_quirk alc662_fixup_tbl[] = { 19515 19517 SND_PCI_QUIRK(0x1025, 0x0308, "Acer Aspire 8942G", ALC662_FIXUP_ASPIRE), 19518 + SND_PCI_QUIRK(0x1025, 0x031c, "Gateway NV79", ALC662_FIXUP_SKU_IGNORE), 19516 19519 SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE), 19517 19520 SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD), 19518 - SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte", ALC662_FIXUP_GIGABYTE), 19519 19521 SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD), 19520 19522 SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD), 19521 19523 SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T),
+7 -3
sound/pci/hda/patch_via.c
··· 1292 1292 { 1293 1293 int i; 1294 1294 struct snd_ctl_elem_id id; 1295 - const char *labels[] = {"Mic", "Front Mic", "Line"}; 1295 + const char *labels[] = {"Mic", "Front Mic", "Line", "Rear Mic"}; 1296 + struct snd_kcontrol *ctl; 1296 1297 1297 1298 memset(&id, 0, sizeof(id)); 1298 1299 id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; 1299 1300 for (i = 0; i < ARRAY_SIZE(labels); i++) { 1300 1301 sprintf(id.name, "%s Playback Volume", labels[i]); 1301 - snd_ctl_notify(codec->bus->card, SNDRV_CTL_EVENT_MASK_VALUE, 1302 - &id); 1302 + ctl = snd_hda_find_mixer_ctl(codec, id.name); 1303 + if (ctl) 1304 + snd_ctl_notify(codec->bus->card, 1305 + SNDRV_CTL_EVENT_MASK_VALUE, 1306 + &ctl->id); 1303 1307 } 1304 1308 } 1305 1309
+3 -1
sound/usb/format.c
··· 176 176 if (!rate) 177 177 continue; 178 178 /* C-Media CM6501 mislabels its 96 kHz altsetting */ 179 + /* Terratec Aureon 7.1 USB C-Media 6206, too */ 179 180 if (rate == 48000 && nr_rates == 1 && 180 181 (chip->usb_id == USB_ID(0x0d8c, 0x0201) || 181 - chip->usb_id == USB_ID(0x0d8c, 0x0102)) && 182 + chip->usb_id == USB_ID(0x0d8c, 0x0102) || 183 + chip->usb_id == USB_ID(0x0ccd, 0x00b1)) && 182 184 fp->altsetting == 5 && fp->maxpacksize == 392) 183 185 rate = 96000; 184 186 /* Creative VF0470 Live Cam reports 16 kHz instead of 8kHz */
+1
sound/usb/quirks.c
··· 533 533 534 534 case USB_ID(0x0d8c, 0x0102): 535 535 /* C-Media CM6206 / CM106-Like Sound Device */ 536 + case USB_ID(0x0ccd, 0x00b1): /* Terratec Aureon 7.1 USB */ 536 537 return snd_usb_cm6206_boot_quirk(dev); 537 538 538 539 case USB_ID(0x133e, 0x0815):