aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-05-02 12:07:27 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-05-02 12:07:27 -0400
commitc7bcecbe98fe29e87ac7d01c70c5998806e0989f (patch)
treefa3c2d92ed0303adfb7eb2a8b82f2d22fea3aaf0 /sound
parent96f3ee280549ebf62818ef71603061a3b3230eb9 (diff)
parent24af2b1cc418d6791b1d9e56bf6070cccb752db3 (diff)
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
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/au88x0/au88x0_pcm.c7
-rw-r--r--sound/pci/hda/patch_realtek.c30
-rw-r--r--sound/pci/hda/patch_via.c10
-rw-r--r--sound/usb/format.c4
-rw-r--r--sound/usb/quirks.c1
5 files changed, 27 insertions, 25 deletions
diff --git a/sound/pci/au88x0/au88x0_pcm.c b/sound/pci/au88x0/au88x0_pcm.c
index 33f0ba5559a7..62e959120c44 100644
--- a/sound/pci/au88x0/au88x0_pcm.c
+++ b/sound/pci/au88x0/au88x0_pcm.c
@@ -44,10 +44,10 @@ static struct snd_pcm_hardware snd_vortex_playback_hw_adb = {
44 .channels_min = 1, 44 .channels_min = 1,
45 .channels_max = 2, 45 .channels_max = 2,
46 .buffer_bytes_max = 0x10000, 46 .buffer_bytes_max = 0x10000,
47 .period_bytes_min = 0x1, 47 .period_bytes_min = 0x20,
48 .period_bytes_max = 0x1000, 48 .period_bytes_max = 0x1000,
49 .periods_min = 2, 49 .periods_min = 2,
50 .periods_max = 32, 50 .periods_max = 1024,
51}; 51};
52 52
53#ifndef CHIP_AU8820 53#ifndef CHIP_AU8820
@@ -140,6 +140,9 @@ static int snd_vortex_pcm_open(struct snd_pcm_substream *substream)
140 SNDRV_PCM_HW_PARAM_PERIOD_BYTES)) < 0) 140 SNDRV_PCM_HW_PARAM_PERIOD_BYTES)) < 0)
141 return err; 141 return err;
142 142
143 snd_pcm_hw_constraint_step(runtime, 0,
144 SNDRV_PCM_HW_PARAM_BUFFER_BYTES, 64);
145
143 if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT) { 146 if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT) {
144#ifndef CHIP_AU8820 147#ifndef CHIP_AU8820
145 if (VORTEX_PCM_TYPE(substream->pcm) == VORTEX_PCM_A3D) { 148 if (VORTEX_PCM_TYPE(substream->pcm) == VORTEX_PCM_A3D) {
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index d3bd2c10180f..c82979a8cd09 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -1704,11 +1704,11 @@ static void alc_apply_fixup(struct hda_codec *codec, int action)
1704 codec->chip_name, fix->type); 1704 codec->chip_name, fix->type);
1705 break; 1705 break;
1706 } 1706 }
1707 if (!fix[id].chained) 1707 if (!fix->chained)
1708 break; 1708 break;
1709 if (++depth > 10) 1709 if (++depth > 10)
1710 break; 1710 break;
1711 id = fix[id].chain_id; 1711 id = fix->chain_id;
1712 } 1712 }
1713} 1713}
1714 1714
@@ -5645,6 +5645,7 @@ static void fillup_priv_adc_nids(struct hda_codec *codec, hda_nid_t *nids,
5645static struct snd_pci_quirk beep_white_list[] = { 5645static struct snd_pci_quirk beep_white_list[] = {
5646 SND_PCI_QUIRK(0x1043, 0x829f, "ASUS", 1), 5646 SND_PCI_QUIRK(0x1043, 0x829f, "ASUS", 1),
5647 SND_PCI_QUIRK(0x1043, 0x83ce, "EeePC", 1), 5647 SND_PCI_QUIRK(0x1043, 0x83ce, "EeePC", 1),
5648 SND_PCI_QUIRK(0x1043, 0x831a, "EeePC", 1),
5648 SND_PCI_QUIRK(0x8086, 0xd613, "Intel", 1), 5649 SND_PCI_QUIRK(0x8086, 0xd613, "Intel", 1),
5649 {} 5650 {}
5650}; 5651};
@@ -9863,6 +9864,7 @@ static struct snd_pci_quirk alc882_cfg_tbl[] = {
9863 SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC883_LAPTOP_EAPD), 9864 SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC883_LAPTOP_EAPD),
9864 SND_PCI_QUIRK(0x10f1, 0x2350, "TYAN-S2350", ALC888_6ST_DELL), 9865 SND_PCI_QUIRK(0x10f1, 0x2350, "TYAN-S2350", ALC888_6ST_DELL),
9865 SND_PCI_QUIRK(0x108e, 0x534d, NULL, ALC883_3ST_6ch), 9866 SND_PCI_QUIRK(0x108e, 0x534d, NULL, ALC883_3ST_6ch),
9867 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte P35 DS3R", ALC882_6ST_DIG),
9866 9868
9867 SND_PCI_QUIRK(0x1462, 0x0349, "MSI", ALC883_TARGA_2ch_DIG), 9869 SND_PCI_QUIRK(0x1462, 0x0349, "MSI", ALC883_TARGA_2ch_DIG),
9868 SND_PCI_QUIRK(0x1462, 0x040d, "MSI", ALC883_TARGA_2ch_DIG), 9870 SND_PCI_QUIRK(0x1462, 0x040d, "MSI", ALC883_TARGA_2ch_DIG),
@@ -10699,7 +10701,6 @@ enum {
10699 PINFIX_LENOVO_Y530, 10701 PINFIX_LENOVO_Y530,
10700 PINFIX_PB_M5210, 10702 PINFIX_PB_M5210,
10701 PINFIX_ACER_ASPIRE_7736, 10703 PINFIX_ACER_ASPIRE_7736,
10702 PINFIX_GIGABYTE_880GM,
10703}; 10704};
10704 10705
10705static const struct alc_fixup alc882_fixups[] = { 10706static const struct alc_fixup alc882_fixups[] = {
@@ -10731,13 +10732,6 @@ static const struct alc_fixup alc882_fixups[] = {
10731 .type = ALC_FIXUP_SKU, 10732 .type = ALC_FIXUP_SKU,
10732 .v.sku = ALC_FIXUP_SKU_IGNORE, 10733 .v.sku = ALC_FIXUP_SKU_IGNORE,
10733 }, 10734 },
10734 [PINFIX_GIGABYTE_880GM] = {
10735 .type = ALC_FIXUP_PINS,
10736 .v.pins = (const struct alc_pincfg[]) {
10737 { 0x14, 0x1114410 }, /* set as speaker */
10738 { }
10739 }
10740 },
10741}; 10735};
10742 10736
10743static struct snd_pci_quirk alc882_fixup_tbl[] = { 10737static struct snd_pci_quirk alc882_fixup_tbl[] = {
@@ -10745,7 +10739,6 @@ static struct snd_pci_quirk alc882_fixup_tbl[] = {
10745 SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", PINFIX_LENOVO_Y530), 10739 SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", PINFIX_LENOVO_Y530),
10746 SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX), 10740 SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX),
10747 SND_PCI_QUIRK(0x1025, 0x0296, "Acer Aspire 7736z", PINFIX_ACER_ASPIRE_7736), 10741 SND_PCI_QUIRK(0x1025, 0x0296, "Acer Aspire 7736z", PINFIX_ACER_ASPIRE_7736),
10748 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte", PINFIX_GIGABYTE_880GM),
10749 {} 10742 {}
10750}; 10743};
10751 10744
@@ -18805,6 +18798,8 @@ static struct snd_pci_quirk alc662_cfg_tbl[] = {
18805 ALC662_3ST_6ch_DIG), 18798 ALC662_3ST_6ch_DIG),
18806 SND_PCI_QUIRK(0x1179, 0xff6e, "Toshiba NB20x", ALC662_AUTO), 18799 SND_PCI_QUIRK(0x1179, 0xff6e, "Toshiba NB20x", ALC662_AUTO),
18807 SND_PCI_QUIRK(0x144d, 0xca00, "Samsung NC10", ALC272_SAMSUNG_NC10), 18800 SND_PCI_QUIRK(0x144d, 0xca00, "Samsung NC10", ALC272_SAMSUNG_NC10),
18801 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte 945GCM-S2L",
18802 ALC662_3ST_6ch_DIG),
18808 SND_PCI_QUIRK(0x152d, 0x2304, "Quanta WH1", ALC663_ASUS_H13), 18803 SND_PCI_QUIRK(0x152d, 0x2304, "Quanta WH1", ALC663_ASUS_H13),
18809 SND_PCI_QUIRK(0x1565, 0x820f, "Biostar TA780G M2+", ALC662_3ST_6ch_DIG), 18804 SND_PCI_QUIRK(0x1565, 0x820f, "Biostar TA780G M2+", ALC662_3ST_6ch_DIG),
18810 SND_PCI_QUIRK(0x1631, 0xc10c, "PB RS65", ALC663_ASUS_M51VA), 18805 SND_PCI_QUIRK(0x1631, 0xc10c, "PB RS65", ALC663_ASUS_M51VA),
@@ -19478,7 +19473,7 @@ enum {
19478 ALC662_FIXUP_IDEAPAD, 19473 ALC662_FIXUP_IDEAPAD,
19479 ALC272_FIXUP_MARIO, 19474 ALC272_FIXUP_MARIO,
19480 ALC662_FIXUP_CZC_P10T, 19475 ALC662_FIXUP_CZC_P10T,
19481 ALC662_FIXUP_GIGABYTE, 19476 ALC662_FIXUP_SKU_IGNORE,
19482}; 19477};
19483 19478
19484static const struct alc_fixup alc662_fixups[] = { 19479static const struct alc_fixup alc662_fixups[] = {
@@ -19507,20 +19502,17 @@ static const struct alc_fixup alc662_fixups[] = {
19507 {} 19502 {}
19508 } 19503 }
19509 }, 19504 },
19510 [ALC662_FIXUP_GIGABYTE] = { 19505 [ALC662_FIXUP_SKU_IGNORE] = {
19511 .type = ALC_FIXUP_PINS, 19506 .type = ALC_FIXUP_SKU,
19512 .v.pins = (const struct alc_pincfg[]) { 19507 .v.sku = ALC_FIXUP_SKU_IGNORE,
19513 { 0x14, 0x1114410 }, /* set as speaker */
19514 { }
19515 }
19516 }, 19508 },
19517}; 19509};
19518 19510
19519static struct snd_pci_quirk alc662_fixup_tbl[] = { 19511static struct snd_pci_quirk alc662_fixup_tbl[] = {
19520 SND_PCI_QUIRK(0x1025, 0x0308, "Acer Aspire 8942G", ALC662_FIXUP_ASPIRE), 19512 SND_PCI_QUIRK(0x1025, 0x0308, "Acer Aspire 8942G", ALC662_FIXUP_ASPIRE),
19513 SND_PCI_QUIRK(0x1025, 0x031c, "Gateway NV79", ALC662_FIXUP_SKU_IGNORE),
19521 SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE), 19514 SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE),
19522 SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD), 19515 SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD),
19523 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte", ALC662_FIXUP_GIGABYTE),
19524 SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD), 19516 SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD),
19525 SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD), 19517 SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD),
19526 SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T), 19518 SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T),
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index 1371b57c11e8..0997031c48d2 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -1292,14 +1292,18 @@ static void notify_aa_path_ctls(struct hda_codec *codec)
1292{ 1292{
1293 int i; 1293 int i;
1294 struct snd_ctl_elem_id id; 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 memset(&id, 0, sizeof(id)); 1298 memset(&id, 0, sizeof(id));
1298 id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; 1299 id.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
1299 for (i = 0; i < ARRAY_SIZE(labels); i++) { 1300 for (i = 0; i < ARRAY_SIZE(labels); i++) {
1300 sprintf(id.name, "%s Playback Volume", labels[i]); 1301 sprintf(id.name, "%s Playback Volume", labels[i]);
1301 snd_ctl_notify(codec->bus->card, SNDRV_CTL_EVENT_MASK_VALUE, 1302 ctl = snd_hda_find_mixer_ctl(codec, id.name);
1302 &id); 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
diff --git a/sound/usb/format.c b/sound/usb/format.c
index 5b792d2c8061..f079b5e2ab28 100644
--- a/sound/usb/format.c
+++ b/sound/usb/format.c
@@ -176,9 +176,11 @@ static int parse_audio_format_rates_v1(struct snd_usb_audio *chip, struct audiof
176 if (!rate) 176 if (!rate)
177 continue; 177 continue;
178 /* C-Media CM6501 mislabels its 96 kHz altsetting */ 178 /* C-Media CM6501 mislabels its 96 kHz altsetting */
179 /* Terratec Aureon 7.1 USB C-Media 6206, too */
179 if (rate == 48000 && nr_rates == 1 && 180 if (rate == 48000 && nr_rates == 1 &&
180 (chip->usb_id == USB_ID(0x0d8c, 0x0201) || 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 fp->altsetting == 5 && fp->maxpacksize == 392) 184 fp->altsetting == 5 && fp->maxpacksize == 392)
183 rate = 96000; 185 rate = 96000;
184 /* Creative VF0470 Live Cam reports 16 kHz instead of 8kHz */ 186 /* Creative VF0470 Live Cam reports 16 kHz instead of 8kHz */
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index ec07e62e53f3..1b94ec3a3368 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -533,6 +533,7 @@ int snd_usb_apply_boot_quirk(struct usb_device *dev,
533 533
534 case USB_ID(0x0d8c, 0x0102): 534 case USB_ID(0x0d8c, 0x0102):
535 /* C-Media CM6206 / CM106-Like Sound Device */ 535 /* C-Media CM6206 / CM106-Like Sound Device */
536 case USB_ID(0x0ccd, 0x00b1): /* Terratec Aureon 7.1 USB */
536 return snd_usb_cm6206_boot_quirk(dev); 537 return snd_usb_cm6206_boot_quirk(dev);
537 538
538 case USB_ID(0x133e, 0x0815): 539 case USB_ID(0x133e, 0x0815):