aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2013-10-25 05:43:47 -0400
committerTakashi Iwai <tiwai@suse.de>2013-10-25 05:43:47 -0400
commit6913a9dbf18f08e3577695032da15812bda92b66 (patch)
tree05ca8620b11f2898022a7fd8a00f1f8566161428 /sound/pci
parent7342017f4a0f129d277f78b8761f2732661ba30a (diff)
parent9645083ca5ef365b7b750cf219bb20b61bb925f8 (diff)
Merge tag 'asoc-v3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next
ASoC: Updates for v3.13 - Further work on the dmaengine helpers, including support for configuring the parameters for DMA by reading the capabilities of the DMA controller which removes some guesswork and magic numbers fromm drivers. - A refresh of the documentation. - Conversions of many drivers to direct regmap API usage in order to allow the ASoC level register I/O code to be removed, this will hopefully be completed by v3.14. - Support for using async register I/O in DAPM, reducing the time taken to implement power transitions on systems that support it.
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/hda_generic.c2
-rw-r--r--sound/pci/hda/patch_realtek.c27
-rw-r--r--sound/pci/rme9652/hdsp.c1
3 files changed, 29 insertions, 1 deletions
diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c
index ac41e9cdc976..26ad4f0aade3 100644
--- a/sound/pci/hda/hda_generic.c
+++ b/sound/pci/hda/hda_generic.c
@@ -3531,7 +3531,7 @@ static int create_capture_mixers(struct hda_codec *codec)
3531 if (!multi) 3531 if (!multi)
3532 err = create_single_cap_vol_ctl(codec, n, vol, sw, 3532 err = create_single_cap_vol_ctl(codec, n, vol, sw,
3533 inv_dmic); 3533 inv_dmic);
3534 else if (!multi_cap_vol) 3534 else if (!multi_cap_vol && !inv_dmic)
3535 err = create_bind_cap_vol_ctl(codec, n, vol, sw); 3535 err = create_bind_cap_vol_ctl(codec, n, vol, sw);
3536 else 3536 else
3537 err = create_multi_cap_vol_ctl(codec); 3537 err = create_multi_cap_vol_ctl(codec);
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index dde858be3be5..1f0a040a9818 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -2823,6 +2823,15 @@ static void alc269_fixup_hweq(struct hda_codec *codec,
2823 alc_write_coef_idx(codec, 0x1e, coef | 0x80); 2823 alc_write_coef_idx(codec, 0x1e, coef | 0x80);
2824} 2824}
2825 2825
2826static void alc269_fixup_headset_mic(struct hda_codec *codec,
2827 const struct hda_fixup *fix, int action)
2828{
2829 struct alc_spec *spec = codec->spec;
2830
2831 if (action == HDA_FIXUP_ACT_PRE_PROBE)
2832 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC;
2833}
2834
2826static void alc271_fixup_dmic(struct hda_codec *codec, 2835static void alc271_fixup_dmic(struct hda_codec *codec,
2827 const struct hda_fixup *fix, int action) 2836 const struct hda_fixup *fix, int action)
2828{ 2837{
@@ -3520,6 +3529,7 @@ enum {
3520 ALC271_FIXUP_DMIC, 3529 ALC271_FIXUP_DMIC,
3521 ALC269_FIXUP_PCM_44K, 3530 ALC269_FIXUP_PCM_44K,
3522 ALC269_FIXUP_STEREO_DMIC, 3531 ALC269_FIXUP_STEREO_DMIC,
3532 ALC269_FIXUP_HEADSET_MIC,
3523 ALC269_FIXUP_QUANTA_MUTE, 3533 ALC269_FIXUP_QUANTA_MUTE,
3524 ALC269_FIXUP_LIFEBOOK, 3534 ALC269_FIXUP_LIFEBOOK,
3525 ALC269_FIXUP_AMIC, 3535 ALC269_FIXUP_AMIC,
@@ -3532,6 +3542,7 @@ enum {
3532 ALC269_FIXUP_HP_GPIO_LED, 3542 ALC269_FIXUP_HP_GPIO_LED,
3533 ALC269_FIXUP_INV_DMIC, 3543 ALC269_FIXUP_INV_DMIC,
3534 ALC269_FIXUP_LENOVO_DOCK, 3544 ALC269_FIXUP_LENOVO_DOCK,
3545 ALC286_FIXUP_SONY_MIC_NO_PRESENCE,
3535 ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT, 3546 ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT,
3536 ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, 3547 ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
3537 ALC269_FIXUP_DELL2_MIC_NO_PRESENCE, 3548 ALC269_FIXUP_DELL2_MIC_NO_PRESENCE,
@@ -3618,6 +3629,10 @@ static const struct hda_fixup alc269_fixups[] = {
3618 .type = HDA_FIXUP_FUNC, 3629 .type = HDA_FIXUP_FUNC,
3619 .v.func = alc269_fixup_stereo_dmic, 3630 .v.func = alc269_fixup_stereo_dmic,
3620 }, 3631 },
3632 [ALC269_FIXUP_HEADSET_MIC] = {
3633 .type = HDA_FIXUP_FUNC,
3634 .v.func = alc269_fixup_headset_mic,
3635 },
3621 [ALC269_FIXUP_QUANTA_MUTE] = { 3636 [ALC269_FIXUP_QUANTA_MUTE] = {
3622 .type = HDA_FIXUP_FUNC, 3637 .type = HDA_FIXUP_FUNC,
3623 .v.func = alc269_fixup_quanta_mute, 3638 .v.func = alc269_fixup_quanta_mute,
@@ -3744,6 +3759,15 @@ static const struct hda_fixup alc269_fixups[] = {
3744 .type = HDA_FIXUP_FUNC, 3759 .type = HDA_FIXUP_FUNC,
3745 .v.func = alc_fixup_headset_mode_no_hp_mic, 3760 .v.func = alc_fixup_headset_mode_no_hp_mic,
3746 }, 3761 },
3762 [ALC286_FIXUP_SONY_MIC_NO_PRESENCE] = {
3763 .type = HDA_FIXUP_PINS,
3764 .v.pins = (const struct hda_pintbl[]) {
3765 { 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */
3766 { }
3767 },
3768 .chained = true,
3769 .chain_id = ALC269_FIXUP_HEADSET_MIC
3770 },
3747 [ALC269_FIXUP_ASUS_X101_FUNC] = { 3771 [ALC269_FIXUP_ASUS_X101_FUNC] = {
3748 .type = HDA_FIXUP_FUNC, 3772 .type = HDA_FIXUP_FUNC,
3749 .v.func = alc269_fixup_x101_headset_mic, 3773 .v.func = alc269_fixup_x101_headset_mic,
@@ -3898,6 +3922,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
3898 SND_PCI_QUIRK(0x1043, 0x8398, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC), 3922 SND_PCI_QUIRK(0x1043, 0x8398, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC),
3899 SND_PCI_QUIRK(0x1043, 0x83ce, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC), 3923 SND_PCI_QUIRK(0x1043, 0x83ce, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC),
3900 SND_PCI_QUIRK(0x1043, 0x8516, "ASUS X101CH", ALC269_FIXUP_ASUS_X101), 3924 SND_PCI_QUIRK(0x1043, 0x8516, "ASUS X101CH", ALC269_FIXUP_ASUS_X101),
3925 SND_PCI_QUIRK(0x104d, 0x90b6, "Sony VAIO Pro 13", ALC286_FIXUP_SONY_MIC_NO_PRESENCE),
3901 SND_PCI_QUIRK(0x104d, 0x9073, "Sony VAIO", ALC275_FIXUP_SONY_VAIO_GPIO2), 3926 SND_PCI_QUIRK(0x104d, 0x9073, "Sony VAIO", ALC275_FIXUP_SONY_VAIO_GPIO2),
3902 SND_PCI_QUIRK(0x104d, 0x907b, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), 3927 SND_PCI_QUIRK(0x104d, 0x907b, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ),
3903 SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), 3928 SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ),
@@ -3983,6 +4008,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
3983 {.id = ALC269_FIXUP_STEREO_DMIC, .name = "alc269-dmic"}, 4008 {.id = ALC269_FIXUP_STEREO_DMIC, .name = "alc269-dmic"},
3984 {.id = ALC271_FIXUP_DMIC, .name = "alc271-dmic"}, 4009 {.id = ALC271_FIXUP_DMIC, .name = "alc271-dmic"},
3985 {.id = ALC269_FIXUP_INV_DMIC, .name = "inv-dmic"}, 4010 {.id = ALC269_FIXUP_INV_DMIC, .name = "inv-dmic"},
4011 {.id = ALC269_FIXUP_HEADSET_MIC, .name = "headset-mic"},
3986 {.id = ALC269_FIXUP_LENOVO_DOCK, .name = "lenovo-dock"}, 4012 {.id = ALC269_FIXUP_LENOVO_DOCK, .name = "lenovo-dock"},
3987 {.id = ALC269_FIXUP_HP_GPIO_LED, .name = "hp-gpio-led"}, 4013 {.id = ALC269_FIXUP_HP_GPIO_LED, .name = "hp-gpio-led"},
3988 {.id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, .name = "dell-headset-multi"}, 4014 {.id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, .name = "dell-headset-multi"},
@@ -4607,6 +4633,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
4607 SND_PCI_QUIRK(0x1028, 0x05d8, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE), 4633 SND_PCI_QUIRK(0x1028, 0x05d8, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
4608 SND_PCI_QUIRK(0x1028, 0x05db, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE), 4634 SND_PCI_QUIRK(0x1028, 0x05db, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
4609 SND_PCI_QUIRK(0x103c, 0x1632, "HP RP5800", ALC662_FIXUP_HP_RP5800), 4635 SND_PCI_QUIRK(0x103c, 0x1632, "HP RP5800", ALC662_FIXUP_HP_RP5800),
4636 SND_PCI_QUIRK(0x1043, 0x1477, "ASUS N56VZ", ALC662_FIXUP_ASUS_MODE4),
4610 SND_PCI_QUIRK(0x1043, 0x8469, "ASUS mobo", ALC662_FIXUP_NO_JACK_DETECT), 4637 SND_PCI_QUIRK(0x1043, 0x8469, "ASUS mobo", ALC662_FIXUP_NO_JACK_DETECT),
4611 SND_PCI_QUIRK(0x105b, 0x0cd6, "Foxconn", ALC662_FIXUP_ASUS_MODE2), 4638 SND_PCI_QUIRK(0x105b, 0x0cd6, "Foxconn", ALC662_FIXUP_ASUS_MODE2),
4612 SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD), 4639 SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD),
diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c
index 4f255dfee450..f59a321a6d6a 100644
--- a/sound/pci/rme9652/hdsp.c
+++ b/sound/pci/rme9652/hdsp.c
@@ -4845,6 +4845,7 @@ static int snd_hdsp_hwdep_ioctl(struct snd_hwdep *hw, struct file *file, unsigne
4845 if ((err = hdsp_get_iobox_version(hdsp)) < 0) 4845 if ((err = hdsp_get_iobox_version(hdsp)) < 0)
4846 return err; 4846 return err;
4847 } 4847 }
4848 memset(&hdsp_version, 0, sizeof(hdsp_version));
4848 hdsp_version.io_type = hdsp->io_type; 4849 hdsp_version.io_type = hdsp->io_type;
4849 hdsp_version.firmware_rev = hdsp->firmware_rev; 4850 hdsp_version.firmware_rev = hdsp->firmware_rev;
4850 if ((err = copy_to_user(argp, &hdsp_version, sizeof(hdsp_version)))) 4851 if ((err = copy_to_user(argp, &hdsp_version, sizeof(hdsp_version))))