diff options
author | Takashi Iwai <tiwai@suse.de> | 2013-12-02 07:32:41 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-12-02 07:32:41 -0500 |
commit | b95ff8e61afc5b621992bdddef5bf6af2d66772a (patch) | |
tree | 15f718fa446ce37b1d4a561b8fdd4d7c3c8854e2 | |
parent | 7f132927435cf09d26ceb81cd0043b542ac7206d (diff) | |
parent | 88d071fc9a93de2916822910c927f28ed15c3a56 (diff) |
Merge branch 'for-linus' into for-next
-rw-r--r-- | sound/firewire/dice.c | 4 | ||||
-rw-r--r-- | sound/pci/hda/hda_intel.c | 9 | ||||
-rw-r--r-- | sound/pci/hda/patch_analog.c | 1 | ||||
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 38 |
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 | ||
3882 | out_free: | 3883 | out_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 | |||
3958 | out_free: | 3957 | out_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 | ||
1832 | static void alc889_fixup_coef(struct hda_codec *codec, | 1834 | static 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 | ||
1965 | static void alc_fixup_bass_chmap(struct hda_codec *codec, | ||
1966 | const struct hda_fixup *fix, int action); | ||
1967 | |||
1963 | static const struct hda_fixup alc882_fixups[] = { | 1968 | static 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 | ||
2155 | static const struct snd_pci_quirk alc882_fixup_tbl[] = { | 2173 | static 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 | ||
4580 | static const struct snd_pci_quirk alc861_fixup_tbl[] = { | 4611 | static 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 */ |
4776 | static void alc662_fixup_bass_chmap(struct hda_codec *codec, | 4808 | static 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 | }, |