aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2013-12-02 07:32:41 -0500
committerTakashi Iwai <tiwai@suse.de>2013-12-02 07:32:41 -0500
commitb95ff8e61afc5b621992bdddef5bf6af2d66772a (patch)
tree15f718fa446ce37b1d4a561b8fdd4d7c3c8854e2
parent7f132927435cf09d26ceb81cd0043b542ac7206d (diff)
parent88d071fc9a93de2916822910c927f28ed15c3a56 (diff)
Merge branch 'for-linus' into for-next
-rw-r--r--sound/firewire/dice.c4
-rw-r--r--sound/pci/hda/hda_intel.c9
-rw-r--r--sound/pci/hda/patch_analog.c1
-rw-r--r--sound/pci/hda/patch_realtek.c38
4 files changed, 43 insertions, 9 deletions
diff --git a/sound/firewire/dice.c b/sound/firewire/dice.c
index 57bcd31fcc12..c0aa64941cee 100644
--- a/sound/firewire/dice.c
+++ b/sound/firewire/dice.c
@@ -1019,7 +1019,7 @@ static void dice_proc_read(struct snd_info_entry *entry,
1019 1019
1020 if (dice_proc_read_mem(dice, &tx_rx_header, sections[2], 2) < 0) 1020 if (dice_proc_read_mem(dice, &tx_rx_header, sections[2], 2) < 0)
1021 return; 1021 return;
1022 quadlets = min_t(u32, tx_rx_header.size, sizeof(buf.tx)); 1022 quadlets = min_t(u32, tx_rx_header.size, sizeof(buf.tx) / 4);
1023 for (stream = 0; stream < tx_rx_header.number; ++stream) { 1023 for (stream = 0; stream < tx_rx_header.number; ++stream) {
1024 if (dice_proc_read_mem(dice, &buf.tx, sections[2] + 2 + 1024 if (dice_proc_read_mem(dice, &buf.tx, sections[2] + 2 +
1025 stream * tx_rx_header.size, 1025 stream * tx_rx_header.size,
@@ -1045,7 +1045,7 @@ static void dice_proc_read(struct snd_info_entry *entry,
1045 1045
1046 if (dice_proc_read_mem(dice, &tx_rx_header, sections[4], 2) < 0) 1046 if (dice_proc_read_mem(dice, &tx_rx_header, sections[4], 2) < 0)
1047 return; 1047 return;
1048 quadlets = min_t(u32, tx_rx_header.size, sizeof(buf.rx)); 1048 quadlets = min_t(u32, tx_rx_header.size, sizeof(buf.rx) / 4);
1049 for (stream = 0; stream < tx_rx_header.number; ++stream) { 1049 for (stream = 0; stream < tx_rx_header.number; ++stream) {
1050 if (dice_proc_read_mem(dice, &buf.rx, sections[4] + 2 + 1050 if (dice_proc_read_mem(dice, &buf.rx, sections[4] + 2 +
1051 stream * tx_rx_header.size, 1051 stream * tx_rx_header.size,
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index dfdb96603636..486d25fa7e97 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -3876,7 +3876,8 @@ static int azx_probe(struct pci_dev *pci,
3876 } 3876 }
3877 3877
3878 dev++; 3878 dev++;
3879 complete_all(&chip->probe_wait); 3879 if (chip->disabled)
3880 complete_all(&chip->probe_wait);
3880 return 0; 3881 return 0;
3881 3882
3882out_free: 3883out_free:
@@ -3953,10 +3954,10 @@ static int azx_probe_continue(struct azx *chip)
3953 if ((chip->driver_caps & AZX_DCAPS_PM_RUNTIME) || chip->use_vga_switcheroo) 3954 if ((chip->driver_caps & AZX_DCAPS_PM_RUNTIME) || chip->use_vga_switcheroo)
3954 pm_runtime_put_noidle(&pci->dev); 3955 pm_runtime_put_noidle(&pci->dev);
3955 3956
3956 return 0;
3957
3958out_free: 3957out_free:
3959 chip->init_failed = 1; 3958 if (err < 0)
3959 chip->init_failed = 1;
3960 complete_all(&chip->probe_wait);
3960 return err; 3961 return err;
3961} 3962}
3962 3963
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c
index 1a83559f4cbd..34d86ec5d3dd 100644
--- a/sound/pci/hda/patch_analog.c
+++ b/sound/pci/hda/patch_analog.c
@@ -962,6 +962,7 @@ static void ad1884_fixup_hp_eapd(struct hda_codec *codec,
962 switch (action) { 962 switch (action) {
963 case HDA_FIXUP_ACT_PRE_PROBE: 963 case HDA_FIXUP_ACT_PRE_PROBE:
964 spec->gen.vmaster_mute.hook = ad1884_vmaster_hp_gpio_hook; 964 spec->gen.vmaster_mute.hook = ad1884_vmaster_hp_gpio_hook;
965 spec->gen.own_eapd_ctl = 1;
965 snd_hda_sequence_write_cache(codec, gpio_init_verbs); 966 snd_hda_sequence_write_cache(codec, gpio_init_verbs);
966 break; 967 break;
967 case HDA_FIXUP_ACT_PROBE: 968 case HDA_FIXUP_ACT_PROBE:
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index b092dfd2670e..537991ccba28 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -1827,6 +1827,8 @@ enum {
1827 ALC889_FIXUP_IMAC91_VREF, 1827 ALC889_FIXUP_IMAC91_VREF,
1828 ALC882_FIXUP_INV_DMIC, 1828 ALC882_FIXUP_INV_DMIC,
1829 ALC882_FIXUP_NO_PRIMARY_HP, 1829 ALC882_FIXUP_NO_PRIMARY_HP,
1830 ALC887_FIXUP_ASUS_BASS,
1831 ALC887_FIXUP_BASS_CHMAP,
1830}; 1832};
1831 1833
1832static void alc889_fixup_coef(struct hda_codec *codec, 1834static void alc889_fixup_coef(struct hda_codec *codec,
@@ -1960,6 +1962,9 @@ static void alc882_fixup_no_primary_hp(struct hda_codec *codec,
1960 } 1962 }
1961} 1963}
1962 1964
1965static void alc_fixup_bass_chmap(struct hda_codec *codec,
1966 const struct hda_fixup *fix, int action);
1967
1963static const struct hda_fixup alc882_fixups[] = { 1968static const struct hda_fixup alc882_fixups[] = {
1964 [ALC882_FIXUP_ABIT_AW9D_MAX] = { 1969 [ALC882_FIXUP_ABIT_AW9D_MAX] = {
1965 .type = HDA_FIXUP_PINS, 1970 .type = HDA_FIXUP_PINS,
@@ -2150,6 +2155,19 @@ static const struct hda_fixup alc882_fixups[] = {
2150 .type = HDA_FIXUP_FUNC, 2155 .type = HDA_FIXUP_FUNC,
2151 .v.func = alc882_fixup_no_primary_hp, 2156 .v.func = alc882_fixup_no_primary_hp,
2152 }, 2157 },
2158 [ALC887_FIXUP_ASUS_BASS] = {
2159 .type = HDA_FIXUP_PINS,
2160 .v.pins = (const struct hda_pintbl[]) {
2161 {0x16, 0x99130130}, /* bass speaker */
2162 {}
2163 },
2164 .chained = true,
2165 .chain_id = ALC887_FIXUP_BASS_CHMAP,
2166 },
2167 [ALC887_FIXUP_BASS_CHMAP] = {
2168 .type = HDA_FIXUP_FUNC,
2169 .v.func = alc_fixup_bass_chmap,
2170 },
2153}; 2171};
2154 2172
2155static const struct snd_pci_quirk alc882_fixup_tbl[] = { 2173static const struct snd_pci_quirk alc882_fixup_tbl[] = {
@@ -2183,6 +2201,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = {
2183 SND_PCI_QUIRK(0x1043, 0x1873, "ASUS W90V", ALC882_FIXUP_ASUS_W90V), 2201 SND_PCI_QUIRK(0x1043, 0x1873, "ASUS W90V", ALC882_FIXUP_ASUS_W90V),
2184 SND_PCI_QUIRK(0x1043, 0x1971, "Asus W2JC", ALC882_FIXUP_ASUS_W2JC), 2202 SND_PCI_QUIRK(0x1043, 0x1971, "Asus W2JC", ALC882_FIXUP_ASUS_W2JC),
2185 SND_PCI_QUIRK(0x1043, 0x835f, "Asus Eee 1601", ALC888_FIXUP_EEE1601), 2203 SND_PCI_QUIRK(0x1043, 0x835f, "Asus Eee 1601", ALC888_FIXUP_EEE1601),
2204 SND_PCI_QUIRK(0x1043, 0x84bc, "ASUS ET2700", ALC887_FIXUP_ASUS_BASS),
2186 SND_PCI_QUIRK(0x104d, 0x9047, "Sony Vaio TT", ALC889_FIXUP_VAIO_TT), 2205 SND_PCI_QUIRK(0x104d, 0x9047, "Sony Vaio TT", ALC889_FIXUP_VAIO_TT),
2187 SND_PCI_QUIRK(0x104d, 0x905a, "Sony Vaio Z", ALC882_FIXUP_NO_PRIMARY_HP), 2206 SND_PCI_QUIRK(0x104d, 0x905a, "Sony Vaio Z", ALC882_FIXUP_NO_PRIMARY_HP),
2188 SND_PCI_QUIRK(0x104d, 0x9043, "Sony Vaio VGC-LN51JGB", ALC882_FIXUP_NO_PRIMARY_HP), 2207 SND_PCI_QUIRK(0x104d, 0x9043, "Sony Vaio VGC-LN51JGB", ALC882_FIXUP_NO_PRIMARY_HP),
@@ -4234,6 +4253,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
4234 SND_PCI_QUIRK(0x1028, 0x0614, "Dell Inspiron 3135", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), 4253 SND_PCI_QUIRK(0x1028, 0x0614, "Dell Inspiron 3135", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE),
4235 SND_PCI_QUIRK(0x1028, 0x0616, "Dell Vostro 5470", ALC290_FIXUP_MONO_SPEAKERS), 4254 SND_PCI_QUIRK(0x1028, 0x0616, "Dell Vostro 5470", ALC290_FIXUP_MONO_SPEAKERS),
4236 SND_PCI_QUIRK(0x1028, 0x061f, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), 4255 SND_PCI_QUIRK(0x1028, 0x061f, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
4256 SND_PCI_QUIRK(0x1028, 0x0638, "Dell Inspiron 5439", ALC290_FIXUP_MONO_SPEAKERS),
4237 SND_PCI_QUIRK(0x1028, 0x063f, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), 4257 SND_PCI_QUIRK(0x1028, 0x063f, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
4238 SND_PCI_QUIRK(0x1028, 0x15cc, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), 4258 SND_PCI_QUIRK(0x1028, 0x15cc, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE),
4239 SND_PCI_QUIRK(0x1028, 0x15cd, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), 4259 SND_PCI_QUIRK(0x1028, 0x15cd, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE),
@@ -4525,6 +4545,7 @@ enum {
4525 ALC861_FIXUP_AMP_VREF_0F, 4545 ALC861_FIXUP_AMP_VREF_0F,
4526 ALC861_FIXUP_NO_JACK_DETECT, 4546 ALC861_FIXUP_NO_JACK_DETECT,
4527 ALC861_FIXUP_ASUS_A6RP, 4547 ALC861_FIXUP_ASUS_A6RP,
4548 ALC660_FIXUP_ASUS_W7J,
4528}; 4549};
4529 4550
4530/* On some laptops, VREF of pin 0x0f is abused for controlling the main amp */ 4551/* On some laptops, VREF of pin 0x0f is abused for controlling the main amp */
@@ -4574,10 +4595,21 @@ static const struct hda_fixup alc861_fixups[] = {
4574 .v.func = alc861_fixup_asus_amp_vref_0f, 4595 .v.func = alc861_fixup_asus_amp_vref_0f,
4575 .chained = true, 4596 .chained = true,
4576 .chain_id = ALC861_FIXUP_NO_JACK_DETECT, 4597 .chain_id = ALC861_FIXUP_NO_JACK_DETECT,
4598 },
4599 [ALC660_FIXUP_ASUS_W7J] = {
4600 .type = HDA_FIXUP_VERBS,
4601 .v.verbs = (const struct hda_verb[]) {
4602 /* ASUS W7J needs a magic pin setup on unused NID 0x10
4603 * for enabling outputs
4604 */
4605 {0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24},
4606 { }
4607 },
4577 } 4608 }
4578}; 4609};
4579 4610
4580static const struct snd_pci_quirk alc861_fixup_tbl[] = { 4611static const struct snd_pci_quirk alc861_fixup_tbl[] = {
4612 SND_PCI_QUIRK(0x1043, 0x1253, "ASUS W7J", ALC660_FIXUP_ASUS_W7J),
4581 SND_PCI_QUIRK(0x1043, 0x1393, "ASUS A6Rp", ALC861_FIXUP_ASUS_A6RP), 4613 SND_PCI_QUIRK(0x1043, 0x1393, "ASUS A6Rp", ALC861_FIXUP_ASUS_A6RP),
4582 SND_PCI_QUIRK_VENDOR(0x1043, "ASUS laptop", ALC861_FIXUP_AMP_VREF_0F), 4614 SND_PCI_QUIRK_VENDOR(0x1043, "ASUS laptop", ALC861_FIXUP_AMP_VREF_0F),
4583 SND_PCI_QUIRK(0x1462, 0x7254, "HP DX2200", ALC861_FIXUP_NO_JACK_DETECT), 4615 SND_PCI_QUIRK(0x1462, 0x7254, "HP DX2200", ALC861_FIXUP_NO_JACK_DETECT),
@@ -4773,7 +4805,7 @@ static const struct snd_pcm_chmap_elem asus_pcm_2_1_chmaps[] = {
4773}; 4805};
4774 4806
4775/* override the 2.1 chmap */ 4807/* override the 2.1 chmap */
4776static void alc662_fixup_bass_chmap(struct hda_codec *codec, 4808static void alc_fixup_bass_chmap(struct hda_codec *codec,
4777 const struct hda_fixup *fix, int action) 4809 const struct hda_fixup *fix, int action)
4778{ 4810{
4779 if (action == HDA_FIXUP_ACT_BUILD) { 4811 if (action == HDA_FIXUP_ACT_BUILD) {
@@ -4981,7 +5013,7 @@ static const struct hda_fixup alc662_fixups[] = {
4981 }, 5013 },
4982 [ALC662_FIXUP_BASS_CHMAP] = { 5014 [ALC662_FIXUP_BASS_CHMAP] = {
4983 .type = HDA_FIXUP_FUNC, 5015 .type = HDA_FIXUP_FUNC,
4984 .v.func = alc662_fixup_bass_chmap, 5016 .v.func = alc_fixup_bass_chmap,
4985 .chained = true, 5017 .chained = true,
4986 .chain_id = ALC662_FIXUP_ASUS_MODE4 5018 .chain_id = ALC662_FIXUP_ASUS_MODE4
4987 }, 5019 },
@@ -4994,7 +5026,7 @@ static const struct hda_fixup alc662_fixups[] = {
4994 }, 5026 },
4995 [ALC662_FIXUP_BASS_1A_CHMAP] = { 5027 [ALC662_FIXUP_BASS_1A_CHMAP] = {
4996 .type = HDA_FIXUP_FUNC, 5028 .type = HDA_FIXUP_FUNC,
4997 .v.func = alc662_fixup_bass_chmap, 5029 .v.func = alc_fixup_bass_chmap,
4998 .chained = true, 5030 .chained = true,
4999 .chain_id = ALC662_FIXUP_BASS_1A, 5031 .chain_id = ALC662_FIXUP_BASS_1A,
5000 }, 5032 },