diff options
| -rw-r--r-- | Documentation/sound/alsa/HD-Audio-Models.txt | 15 | ||||
| -rw-r--r-- | include/sound/control.h | 8 | ||||
| -rw-r--r-- | sound/core/Kconfig | 3 | ||||
| -rw-r--r-- | sound/core/Makefile | 1 | ||||
| -rw-r--r-- | sound/core/ctljack.c | 56 | ||||
| -rw-r--r-- | sound/pci/hda/Kconfig | 1 | ||||
| -rw-r--r-- | sound/pci/hda/Makefile | 2 | ||||
| -rw-r--r-- | sound/pci/hda/alc262_quirks.c | 875 | ||||
| -rw-r--r-- | sound/pci/hda/alc880_quirks.c | 193 | ||||
| -rw-r--r-- | sound/pci/hda/alc882_quirks.c | 2867 | ||||
| -rw-r--r-- | sound/pci/hda/hda_codec.c | 302 | ||||
| -rw-r--r-- | sound/pci/hda/hda_codec.h | 6 | ||||
| -rw-r--r-- | sound/pci/hda/hda_intel.c | 106 | ||||
| -rw-r--r-- | sound/pci/hda/hda_jack.c | 353 | ||||
| -rw-r--r-- | sound/pci/hda/hda_jack.h | 86 | ||||
| -rw-r--r-- | sound/pci/hda/hda_local.h | 51 | ||||
| -rw-r--r-- | sound/pci/hda/hda_proc.c | 2 | ||||
| -rw-r--r-- | sound/pci/hda/patch_analog.c | 1 | ||||
| -rw-r--r-- | sound/pci/hda/patch_ca0110.c | 6 | ||||
| -rw-r--r-- | sound/pci/hda/patch_cirrus.c | 187 | ||||
| -rw-r--r-- | sound/pci/hda/patch_conexant.c | 79 | ||||
| -rw-r--r-- | sound/pci/hda/patch_hdmi.c | 59 | ||||
| -rw-r--r-- | sound/pci/hda/patch_realtek.c | 758 | ||||
| -rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 301 | ||||
| -rw-r--r-- | sound/pci/hda/patch_via.c | 30 |
25 files changed, 1625 insertions, 4723 deletions
diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt index edad99abec21..c8c54544abc5 100644 --- a/Documentation/sound/alsa/HD-Audio-Models.txt +++ b/Documentation/sound/alsa/HD-Audio-Models.txt | |||
| @@ -42,19 +42,7 @@ ALC260 | |||
| 42 | 42 | ||
| 43 | ALC262 | 43 | ALC262 |
| 44 | ====== | 44 | ====== |
| 45 | fujitsu Fujitsu Laptop | 45 | N/A |
| 46 | benq Benq ED8 | ||
| 47 | benq-t31 Benq T31 | ||
| 48 | hippo Hippo (ATI) with jack detection, Sony UX-90s | ||
| 49 | hippo_1 Hippo (Benq) with jack detection | ||
| 50 | toshiba-s06 Toshiba S06 | ||
| 51 | toshiba-rx1 Toshiba RX1 | ||
| 52 | tyan Tyan Thunder n6650W (S2915-E) | ||
| 53 | ultra Samsung Q1 Ultra Vista model | ||
| 54 | lenovo-3000 Lenovo 3000 y410 | ||
| 55 | nec NEC Versa S9100 | ||
| 56 | basic fixed pin assignment w/o SPDIF | ||
| 57 | auto auto-config reading BIOS (default) | ||
| 58 | 46 | ||
| 59 | ALC267/268 | 47 | ALC267/268 |
| 60 | ========== | 48 | ========== |
| @@ -350,7 +338,6 @@ STAC92HD83* | |||
| 350 | mic-ref Reference board with power management for ports | 338 | mic-ref Reference board with power management for ports |
| 351 | dell-s14 Dell laptop | 339 | dell-s14 Dell laptop |
| 352 | dell-vostro-3500 Dell Vostro 3500 laptop | 340 | dell-vostro-3500 Dell Vostro 3500 laptop |
| 353 | hp HP laptops with (inverted) mute-LED | ||
| 354 | hp-dv7-4000 HP dv-7 4000 | 341 | hp-dv7-4000 HP dv-7 4000 |
| 355 | auto BIOS setup (default) | 342 | auto BIOS setup (default) |
| 356 | 343 | ||
diff --git a/include/sound/control.h b/include/sound/control.h index 1a94a216ed99..b2796e83c7ac 100644 --- a/include/sound/control.h +++ b/include/sound/control.h | |||
| @@ -227,4 +227,12 @@ snd_ctl_add_slave_uncached(struct snd_kcontrol *master, | |||
| 227 | return _snd_ctl_add_slave(master, slave, SND_CTL_SLAVE_NEED_UPDATE); | 227 | return _snd_ctl_add_slave(master, slave, SND_CTL_SLAVE_NEED_UPDATE); |
| 228 | } | 228 | } |
| 229 | 229 | ||
| 230 | /* | ||
| 231 | * Helper functions for jack-detection controls | ||
| 232 | */ | ||
| 233 | struct snd_kcontrol * | ||
| 234 | snd_kctl_jack_new(const char *name, int idx, void *private_data); | ||
| 235 | void snd_kctl_jack_report(struct snd_card *card, | ||
| 236 | struct snd_kcontrol *kctl, bool status); | ||
| 237 | |||
| 230 | #endif /* __SOUND_CONTROL_H */ | 238 | #endif /* __SOUND_CONTROL_H */ |
diff --git a/sound/core/Kconfig b/sound/core/Kconfig index 2dc7776e218c..ca6cdf6f9968 100644 --- a/sound/core/Kconfig +++ b/sound/core/Kconfig | |||
| @@ -217,6 +217,9 @@ config SND_PCM_XRUN_DEBUG | |||
| 217 | config SND_VMASTER | 217 | config SND_VMASTER |
| 218 | bool | 218 | bool |
| 219 | 219 | ||
| 220 | config SND_KCTL_JACK | ||
| 221 | bool | ||
| 222 | |||
| 220 | config SND_DMA_SGBUF | 223 | config SND_DMA_SGBUF |
| 221 | def_bool y | 224 | def_bool y |
| 222 | depends on X86 | 225 | depends on X86 |
diff --git a/sound/core/Makefile b/sound/core/Makefile index 67c8e9336611..43d4117428ac 100644 --- a/sound/core/Makefile +++ b/sound/core/Makefile | |||
| @@ -7,6 +7,7 @@ snd-y := sound.o init.o memory.o info.o control.o misc.o device.o | |||
| 7 | snd-$(CONFIG_ISA_DMA_API) += isadma.o | 7 | snd-$(CONFIG_ISA_DMA_API) += isadma.o |
| 8 | snd-$(CONFIG_SND_OSSEMUL) += sound_oss.o info_oss.o | 8 | snd-$(CONFIG_SND_OSSEMUL) += sound_oss.o info_oss.o |
| 9 | snd-$(CONFIG_SND_VMASTER) += vmaster.o | 9 | snd-$(CONFIG_SND_VMASTER) += vmaster.o |
| 10 | snd-$(CONFIG_SND_KCTL_JACK) += ctljack.o | ||
| 10 | snd-$(CONFIG_SND_JACK) += jack.o | 11 | snd-$(CONFIG_SND_JACK) += jack.o |
| 11 | 12 | ||
| 12 | snd-pcm-objs := pcm.o pcm_native.o pcm_lib.o pcm_timer.o pcm_misc.o \ | 13 | snd-pcm-objs := pcm.o pcm_native.o pcm_lib.o pcm_timer.o pcm_misc.o \ |
diff --git a/sound/core/ctljack.c b/sound/core/ctljack.c new file mode 100644 index 000000000000..e4b38fbe51da --- /dev/null +++ b/sound/core/ctljack.c | |||
| @@ -0,0 +1,56 @@ | |||
| 1 | /* | ||
| 2 | * Helper functions for jack-detection kcontrols | ||
| 3 | * | ||
| 4 | * Copyright (c) 2011 Takashi Iwai <tiwai@suse.de> | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify it | ||
| 7 | * under the terms of the GNU General Public License as published by the Free | ||
| 8 | * Software Foundation; either version 2 of the License, or (at your option) | ||
| 9 | * any later version. | ||
| 10 | */ | ||
| 11 | |||
| 12 | #include <linux/kernel.h> | ||
| 13 | #include <linux/export.h> | ||
| 14 | #include <sound/core.h> | ||
| 15 | #include <sound/control.h> | ||
| 16 | |||
| 17 | #define jack_detect_kctl_info snd_ctl_boolean_mono_info | ||
| 18 | |||
| 19 | static int jack_detect_kctl_get(struct snd_kcontrol *kcontrol, | ||
| 20 | struct snd_ctl_elem_value *ucontrol) | ||
| 21 | { | ||
| 22 | ucontrol->value.integer.value[0] = kcontrol->private_value; | ||
| 23 | return 0; | ||
| 24 | } | ||
| 25 | |||
| 26 | static struct snd_kcontrol_new jack_detect_kctl = { | ||
| 27 | /* name is filled later */ | ||
| 28 | .iface = SNDRV_CTL_ELEM_IFACE_CARD, | ||
| 29 | .access = SNDRV_CTL_ELEM_ACCESS_READ, | ||
| 30 | .info = jack_detect_kctl_info, | ||
| 31 | .get = jack_detect_kctl_get, | ||
| 32 | }; | ||
| 33 | |||
| 34 | struct snd_kcontrol * | ||
| 35 | snd_kctl_jack_new(const char *name, int idx, void *private_data) | ||
| 36 | { | ||
| 37 | struct snd_kcontrol *kctl; | ||
| 38 | kctl = snd_ctl_new1(&jack_detect_kctl, private_data); | ||
| 39 | if (!kctl) | ||
| 40 | return NULL; | ||
| 41 | snprintf(kctl->id.name, sizeof(kctl->id.name), "%s Jack", name); | ||
| 42 | kctl->id.index = idx; | ||
| 43 | kctl->private_value = 0; | ||
| 44 | return kctl; | ||
| 45 | } | ||
| 46 | EXPORT_SYMBOL_GPL(snd_kctl_jack_new); | ||
| 47 | |||
| 48 | void snd_kctl_jack_report(struct snd_card *card, | ||
| 49 | struct snd_kcontrol *kctl, bool status) | ||
| 50 | { | ||
| 51 | if (kctl->private_value == status) | ||
| 52 | return; | ||
| 53 | kctl->private_value = status; | ||
| 54 | snd_ctl_notify(card, SNDRV_CTL_EVENT_MASK_VALUE, &kctl->id); | ||
| 55 | } | ||
| 56 | EXPORT_SYMBOL_GPL(snd_kctl_jack_report); | ||
diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig index bb7e102d6726..163b6b5de3eb 100644 --- a/sound/pci/hda/Kconfig +++ b/sound/pci/hda/Kconfig | |||
| @@ -2,6 +2,7 @@ menuconfig SND_HDA_INTEL | |||
| 2 | tristate "Intel HD Audio" | 2 | tristate "Intel HD Audio" |
| 3 | select SND_PCM | 3 | select SND_PCM |
| 4 | select SND_VMASTER | 4 | select SND_VMASTER |
| 5 | select SND_KCTL_JACK | ||
| 5 | help | 6 | help |
| 6 | Say Y here to include support for Intel "High Definition | 7 | Say Y here to include support for Intel "High Definition |
| 7 | Audio" (Azalia) and its compatible devices. | 8 | Audio" (Azalia) and its compatible devices. |
diff --git a/sound/pci/hda/Makefile b/sound/pci/hda/Makefile index f928d6634723..ace157cc3d15 100644 --- a/sound/pci/hda/Makefile +++ b/sound/pci/hda/Makefile | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | snd-hda-intel-objs := hda_intel.o | 1 | snd-hda-intel-objs := hda_intel.o |
| 2 | 2 | ||
| 3 | snd-hda-codec-y := hda_codec.o | 3 | snd-hda-codec-y := hda_codec.o hda_jack.o |
| 4 | snd-hda-codec-$(CONFIG_SND_HDA_GENERIC) += hda_generic.o | 4 | snd-hda-codec-$(CONFIG_SND_HDA_GENERIC) += hda_generic.o |
| 5 | snd-hda-codec-$(CONFIG_PROC_FS) += hda_proc.o | 5 | snd-hda-codec-$(CONFIG_PROC_FS) += hda_proc.o |
| 6 | snd-hda-codec-$(CONFIG_SND_HDA_HWDEP) += hda_hwdep.o | 6 | snd-hda-codec-$(CONFIG_SND_HDA_HWDEP) += hda_hwdep.o |
diff --git a/sound/pci/hda/alc262_quirks.c b/sound/pci/hda/alc262_quirks.c deleted file mode 100644 index 7894b2b5aacf..000000000000 --- a/sound/pci/hda/alc262_quirks.c +++ /dev/null | |||
| @@ -1,875 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * ALC262 quirk models | ||
| 3 | * included by patch_realtek.c | ||
