diff options
-rw-r--r-- | Documentation/sound/alsa/ALSA-Configuration.txt | 12 | ||||
-rw-r--r-- | include/sound/version.h | 4 | ||||
-rw-r--r-- | sound/pci/ac97/ac97_patch.c | 2 | ||||
-rw-r--r-- | sound/pci/ali5451/ali5451.c | 2 | ||||
-rw-r--r-- | sound/pci/cmipci.c | 18 | ||||
-rw-r--r-- | sound/pci/echoaudio/echoaudio.c | 2 | ||||
-rw-r--r-- | sound/pci/hda/patch_analog.c | 3 | ||||
-rw-r--r-- | sound/pci/hda/patch_conexant.c | 8 | ||||
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 21 | ||||
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 35 | ||||
-rw-r--r-- | sound/pci/riptide/riptide.c | 2 | ||||
-rw-r--r-- | sound/pci/rme9652/hdspm.c | 2 | ||||
-rw-r--r-- | sound/soc/codecs/wm9712.c | 3 |
13 files changed, 94 insertions, 20 deletions
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index c30ff1bb2d10..db398a6441c1 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt | |||
@@ -370,7 +370,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
370 | mpu_port - 0x300,0x310,0x320,0x330 = legacy port, | 370 | mpu_port - 0x300,0x310,0x320,0x330 = legacy port, |
371 | 1 = integrated PCI port, | 371 | 1 = integrated PCI port, |
372 | 0 = disable (default) | 372 | 0 = disable (default) |
373 | fm_port - 0x388 (default), 0 = disable (default) | 373 | fm_port - 0x388 = legacy port, |
374 | 1 = integrated PCI port (default), | ||
375 | 0 = disable | ||
374 | soft_ac3 - Software-conversion of raw SPDIF packets (model 033 only) | 376 | soft_ac3 - Software-conversion of raw SPDIF packets (model 033 only) |
375 | (default = 1) | 377 | (default = 1) |
376 | joystick_port - Joystick port address (0 = disable, 1 = auto-detect) | 378 | joystick_port - Joystick port address (0 = disable, 1 = auto-detect) |
@@ -895,10 +897,16 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
895 | can be adjusted. Appearing only when compiled with | 897 | can be adjusted. Appearing only when compiled with |
896 | $CONFIG_SND_DEBUG=y | 898 | $CONFIG_SND_DEBUG=y |
897 | 899 | ||
898 | STAC9200/9205/9220/9221/9254 | 900 | STAC9200/9205/9254 |
901 | ref Reference board | ||
902 | |||
903 | STAC9220/9221 | ||
899 | ref Reference board | 904 | ref Reference board |
900 | 3stack D945 3stack | 905 | 3stack D945 3stack |
901 | 5stack D945 5stack + SPDIF | 906 | 5stack D945 5stack + SPDIF |
907 | macmini Intel Mac Mini | ||
908 | macbook Intel Mac Book | ||
909 | macbook-pro Intel Mac Book Pro | ||
902 | 910 | ||
903 | STAC9202/9250/9251 | 911 | STAC9202/9250/9251 |
904 | ref Reference board, base config | 912 | ref Reference board, base config |
diff --git a/include/sound/version.h b/include/sound/version.h index a9ba7ee69939..5f7275000102 100644 --- a/include/sound/version.h +++ b/include/sound/version.h | |||
@@ -1,3 +1,3 @@ | |||
1 | /* include/version.h. Generated by alsa/ksync script. */ | 1 | /* include/version.h. Generated by alsa/ksync script. */ |
2 | #define CONFIG_SND_VERSION "1.0.14rc2" | 2 | #define CONFIG_SND_VERSION "1.0.14rc3" |
3 | #define CONFIG_SND_DATE " (Wed Feb 14 07:42:13 2007 UTC)" | 3 | #define CONFIG_SND_DATE " (Tue Mar 06 13:10:00 2007 UTC)" |
diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c index bfc2fed16da3..37fabf75daa7 100644 --- a/sound/pci/ac97/ac97_patch.c +++ b/sound/pci/ac97/ac97_patch.c | |||
@@ -1790,6 +1790,8 @@ static const struct snd_kcontrol_new snd_ac97_ad1981x_jack_sense[] = { | |||
1790 | * (SS vendor << 16 | device) | 1790 | * (SS vendor << 16 | device) |
1791 | */ | 1791 | */ |
1792 | static unsigned int ad1981_jacks_blacklist[] = { | 1792 | static unsigned int ad1981_jacks_blacklist[] = { |
1793 | 0x10140523, /* Thinkpad R40 */ | ||
1794 | 0x10140534, /* Thinkpad X31 */ | ||
1793 | 0x10140537, /* Thinkpad T41p */ | 1795 | 0x10140537, /* Thinkpad T41p */ |
1794 | 0x10140554, /* Thinkpad T42p/R50p */ | 1796 | 0x10140554, /* Thinkpad T42p/R50p */ |
1795 | 0 /* end */ | 1797 | 0 /* end */ |
diff --git a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c index 9327ab2eccb0..ba7fa22b285d 100644 --- a/sound/pci/ali5451/ali5451.c +++ b/sound/pci/ali5451/ali5451.c | |||
@@ -2312,6 +2312,8 @@ static int __devinit snd_ali_create(struct snd_card *card, | |||
2312 | return err; | 2312 | return err; |
2313 | } | 2313 | } |
2314 | 2314 | ||
2315 | snd_card_set_dev(card, &pci->dev); | ||
2316 | |||
2315 | /* initialise synth voices*/ | 2317 | /* initialise synth voices*/ |
2316 | for (i = 0; i < ALI_CHANNELS; i++ ) { | 2318 | for (i = 0; i < ALI_CHANNELS; i++ ) { |
2317 | codec->synth.voices[i].number = i; | 2319 | codec->synth.voices[i].number = i; |
diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c index 70face7e1048..7d3c5ee0005c 100644 --- a/sound/pci/cmipci.c +++ b/sound/pci/cmipci.c | |||
@@ -57,7 +57,7 @@ static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ | |||
57 | static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ | 57 | static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ |
58 | static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; /* Enable switches */ | 58 | static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; /* Enable switches */ |
59 | static long mpu_port[SNDRV_CARDS]; | 59 | static long mpu_port[SNDRV_CARDS]; |
60 | static long fm_port[SNDRV_CARDS]; | 60 | static long fm_port[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)]=1}; |
61 | static int soft_ac3[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)]=1}; | 61 | static int soft_ac3[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)]=1}; |
62 | #ifdef SUPPORT_JOYSTICK | 62 | #ifdef SUPPORT_JOYSTICK |
63 | static int joystick_port[SNDRV_CARDS]; | 63 | static int joystick_port[SNDRV_CARDS]; |
@@ -2779,6 +2779,9 @@ static int __devinit snd_cmipci_create_fm(struct cmipci *cm, long fm_port) | |||
2779 | struct snd_opl3 *opl3; | 2779 | struct snd_opl3 *opl3; |
2780 | int err; | 2780 | int err; |
2781 | 2781 | ||
2782 | if (!fm_port) | ||
2783 | goto disable_fm; | ||
2784 | |||
2782 | /* first try FM regs in PCI port range */ | 2785 | /* first try FM regs in PCI port range */ |
2783 | iosynth = cm->iobase + CM_REG_FM_PCI; | 2786 | iosynth = cm->iobase + CM_REG_FM_PCI; |
2784 | err = snd_opl3_create(cm->card, iosynth, iosynth + 2, | 2787 | err = snd_opl3_create(cm->card, iosynth, iosynth + 2, |
@@ -2793,7 +2796,7 @@ static int __devinit snd_cmipci_create_fm(struct cmipci *cm, long fm_port) | |||
2793 | case 0x3C8: val |= CM_FMSEL_3C8; break; | 2796 | case 0x3C8: val |= CM_FMSEL_3C8; break; |
2794 | case 0x388: val |= CM_FMSEL_388; break; | 2797 | case 0x388: val |= CM_FMSEL_388; break; |
2795 | default: | 2798 | default: |
2796 | return 0; | 2799 | goto disable_fm; |
2797 | } | 2800 | } |
2798 | snd_cmipci_write(cm, CM_REG_LEGACY_CTRL, val); | 2801 | snd_cmipci_write(cm, CM_REG_LEGACY_CTRL, val); |
2799 | /* enable FM */ | 2802 | /* enable FM */ |
@@ -2803,11 +2806,7 @@ static int __devinit snd_cmipci_create_fm(struct cmipci *cm, long fm_port) | |||
2803 | OPL3_HW_OPL3, 0, &opl3) < 0) { | 2806 | OPL3_HW_OPL3, 0, &opl3) < 0) { |
2804 | printk(KERN_ERR "cmipci: no OPL device at %#lx, " | 2807 | printk(KERN_ERR "cmipci: no OPL device at %#lx, " |
2805 | "skipping...\n", iosynth); | 2808 | "skipping...\n", iosynth); |
2806 | /* disable FM */ | 2809 | goto disable_fm; |
2807 | snd_cmipci_write(cm, CM_REG_LEGACY_CTRL, | ||
2808 | val & ~CM_FMSEL_MASK); | ||
2809 | snd_cmipci_clear_bit(cm, CM_REG_MISC_CTRL, CM_FM_EN); | ||
2810 | return 0; | ||
2811 | } | 2810 | } |
2812 | } | 2811 | } |
2813 | if ((err = snd_opl3_hwdep_new(opl3, 0, 1, NULL)) < 0) { | 2812 | if ((err = snd_opl3_hwdep_new(opl3, 0, 1, NULL)) < 0) { |
@@ -2815,6 +2814,11 @@ static int __devinit snd_cmipci_create_fm(struct cmipci *cm, long fm_port) | |||
2815 | return err; | 2814 | return err; |
2816 | } | 2815 | } |
2817 | return 0; | 2816 | return 0; |
2817 | |||
2818 | disable_fm: | ||
2819 | snd_cmipci_clear_bit(cm, CM_REG_LEGACY_CTRL, CM_FMSEL_MASK); | ||
2820 | snd_cmipci_clear_bit(cm, CM_REG_MISC_CTRL, CM_FM_EN); | ||
2821 | return 0; | ||
2818 | } | 2822 | } |
2819 | 2823 | ||
2820 | static int __devinit snd_cmipci_create(struct snd_card *card, struct pci_dev *pci, | 2824 | static int __devinit snd_cmipci_create(struct snd_card *card, struct pci_dev *pci, |
diff --git a/sound/pci/echoaudio/echoaudio.c b/sound/pci/echoaudio/echoaudio.c index 6a428b81dba6..e413da00759b 100644 --- a/sound/pci/echoaudio/echoaudio.c +++ b/sound/pci/echoaudio/echoaudio.c | |||
@@ -2033,6 +2033,8 @@ static int __devinit snd_echo_probe(struct pci_dev *pci, | |||
2033 | if (card == NULL) | 2033 | if (card == NULL) |
2034 | return -ENOMEM; | 2034 | return -ENOMEM; |
2035 | 2035 | ||
2036 | snd_card_set_dev(card, &pci->dev); | ||
2037 | |||
2036 | if ((err = snd_echo_create(card, pci, &chip)) < 0) { | 2038 | if ((err = snd_echo_create(card, pci, &chip)) < 0) { |
2037 | snd_card_free(card); | 2039 | snd_card_free(card); |
2038 | return err; | 2040 | return err; |
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index 38977bce70e2..00ace59b05c9 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c | |||
@@ -523,6 +523,7 @@ static struct snd_kcontrol_new ad1986a_mixers[] = { | |||
523 | HDA_CODEC_MUTE("Aux Playback Switch", 0x16, 0x0, HDA_OUTPUT), | 523 | HDA_CODEC_MUTE("Aux Playback Switch", 0x16, 0x0, HDA_OUTPUT), |
524 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x13, 0x0, HDA_OUTPUT), | 524 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x13, 0x0, HDA_OUTPUT), |
525 | HDA_CODEC_MUTE("Mic Playback Switch", 0x13, 0x0, HDA_OUTPUT), | 525 | HDA_CODEC_MUTE("Mic Playback Switch", 0x13, 0x0, HDA_OUTPUT), |
526 | HDA_CODEC_VOLUME("Mic Boost", 0x0f, 0x0, HDA_OUTPUT), | ||
526 | HDA_CODEC_VOLUME("PC Speaker Playback Volume", 0x18, 0x0, HDA_OUTPUT), | 527 | HDA_CODEC_VOLUME("PC Speaker Playback Volume", 0x18, 0x0, HDA_OUTPUT), |
527 | HDA_CODEC_MUTE("PC Speaker Playback Switch", 0x18, 0x0, HDA_OUTPUT), | 528 | HDA_CODEC_MUTE("PC Speaker Playback Switch", 0x18, 0x0, HDA_OUTPUT), |
528 | HDA_CODEC_VOLUME("Mono Playback Volume", 0x1e, 0x0, HDA_OUTPUT), | 529 | HDA_CODEC_VOLUME("Mono Playback Volume", 0x1e, 0x0, HDA_OUTPUT), |
@@ -570,6 +571,7 @@ static struct snd_kcontrol_new ad1986a_laptop_mixers[] = { | |||
570 | HDA_CODEC_MUTE("Aux Playback Switch", 0x16, 0x0, HDA_OUTPUT), | 571 | HDA_CODEC_MUTE("Aux Playback Switch", 0x16, 0x0, HDA_OUTPUT), |
571 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x13, 0x0, HDA_OUTPUT), | 572 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x13, 0x0, HDA_OUTPUT), |
572 | HDA_CODEC_MUTE("Mic Playback Switch", 0x13, 0x0, HDA_OUTPUT), | 573 | HDA_CODEC_MUTE("Mic Playback Switch", 0x13, 0x0, HDA_OUTPUT), |
574 | HDA_CODEC_VOLUME("Mic Boost", 0x0f, 0x0, HDA_OUTPUT), | ||
573 | /* HDA_CODEC_VOLUME("PC Speaker Playback Volume", 0x18, 0x0, HDA_OUTPUT), | 575 | /* HDA_CODEC_VOLUME("PC Speaker Playback Volume", 0x18, 0x0, HDA_OUTPUT), |
574 | HDA_CODEC_MUTE("PC Speaker Playback Switch", 0x18, 0x0, HDA_OUTPUT), | 576 | HDA_CODEC_MUTE("PC Speaker Playback Switch", 0x18, 0x0, HDA_OUTPUT), |
575 | HDA_CODEC_VOLUME("Mono Playback Volume", 0x1e, 0x0, HDA_OUTPUT), | 577 | HDA_CODEC_VOLUME("Mono Playback Volume", 0x1e, 0x0, HDA_OUTPUT), |
@@ -658,6 +660,7 @@ static struct snd_kcontrol_new ad1986a_laptop_eapd_mixers[] = { | |||
658 | HDA_CODEC_MUTE("Internal Mic Playback Switch", 0x17, 0x0, HDA_OUTPUT), | 660 | HDA_CODEC_MUTE("Internal Mic Playback Switch", 0x17, 0x0, HDA_OUTPUT), |
659 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x13, 0x0, HDA_OUTPUT), | 661 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x13, 0x0, HDA_OUTPUT), |
660 | HDA_CODEC_MUTE("Mic Playback Switch", 0x13, 0x0, HDA_OUTPUT), | 662 | HDA_CODEC_MUTE("Mic Playback Switch", 0x13, 0x0, HDA_OUTPUT), |
663 | HDA_CODEC_VOLUME("Mic Boost", 0x0f, 0x0, HDA_OUTPUT), | ||
661 | HDA_CODEC_VOLUME("Capture Volume", 0x12, 0x0, HDA_OUTPUT), | 664 | HDA_CODEC_VOLUME("Capture Volume", 0x12, 0x0, HDA_OUTPUT), |
662 | HDA_CODEC_MUTE("Capture Switch", 0x12, 0x0, HDA_OUTPUT), | 665 | HDA_CODEC_MUTE("Capture Switch", 0x12, 0x0, HDA_OUTPUT), |
663 | { | 666 | { |
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c index 23a1c75085b5..46e93c6b9a42 100644 --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c | |||
@@ -629,10 +629,12 @@ static int cxt5045_hp_master_vol_put(struct snd_kcontrol *kcontrol, | |||
629 | static void cxt5045_hp_automute(struct hda_codec *codec) | 629 | static void cxt5045_hp_automute(struct hda_codec *codec) |
630 | { | 630 | { |
631 | struct conexant_spec *spec = codec->spec; | 631 | struct conexant_spec *spec = codec->spec; |
632 | unsigned int bits = (spec->hp_present || !spec->cur_eapd) ? 0x80 : 0; | 632 | unsigned int bits; |
633 | 633 | ||
634 | spec->hp_present = snd_hda_codec_read(codec, 0x11, 0, | 634 | spec->hp_present = snd_hda_codec_read(codec, 0x11, 0, |
635 | AC_VERB_GET_PIN_SENSE, 0) & 0x80000000; | 635 | AC_VERB_GET_PIN_SENSE, 0) & 0x80000000; |
636 | |||
637 | bits = (spec->hp_present || !spec->cur_eapd) ? 0x80 : 0; | ||
636 | snd_hda_codec_amp_update(codec, 0x10, 0, HDA_OUTPUT, 0, 0x80, bits); | 638 | snd_hda_codec_amp_update(codec, 0x10, 0, HDA_OUTPUT, 0, 0x80, bits); |
637 | snd_hda_codec_amp_update(codec, 0x10, 1, HDA_OUTPUT, 0, 0x80, bits); | 639 | snd_hda_codec_amp_update(codec, 0x10, 1, HDA_OUTPUT, 0, 0x80, bits); |
638 | } | 640 | } |
@@ -979,10 +981,12 @@ static int cxt5047_hp_master_vol_put(struct snd_kcontrol *kcontrol, | |||
979 | static void cxt5047_hp_automute(struct hda_codec *codec) | 981 | static void cxt5047_hp_automute(struct hda_codec *codec) |
980 | { | 982 | { |
981 | struct conexant_spec *spec = codec->spec; | 983 | struct conexant_spec *spec = codec->spec; |
982 | unsigned int bits = spec->hp_present || !spec->cur_eapd ? 0x80 : 0; | 984 | unsigned int bits; |
983 | 985 | ||
984 | spec->hp_present = snd_hda_codec_read(codec, 0x13, 0, | 986 | spec->hp_present = snd_hda_codec_read(codec, 0x13, 0, |
985 | AC_VERB_GET_PIN_SENSE, 0) & 0x80000000; | 987 | AC_VERB_GET_PIN_SENSE, 0) & 0x80000000; |
988 | |||
989 | bits = (spec->hp_present || !spec->cur_eapd) ? 0x80 : 0; | ||
986 | snd_hda_codec_amp_update(codec, 0x1d, 0, HDA_OUTPUT, 0, 0x80, bits); | 990 | snd_hda_codec_amp_update(codec, 0x1d, 0, HDA_OUTPUT, 0, 0x80, bits); |
987 | snd_hda_codec_amp_update(codec, 0x1d, 1, HDA_OUTPUT, 0, 0x80, bits); | 991 | snd_hda_codec_amp_update(codec, 0x1d, 1, HDA_OUTPUT, 0, 0x80, bits); |
988 | /* Mute/Unmute PCM 2 for good measure - some systems need this */ | 992 | /* Mute/Unmute PCM 2 for good measure - some systems need this */ |
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 145682b78071..84d005ef30ee 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -4942,9 +4942,16 @@ static int patch_alc882(struct hda_codec *codec) | |||
4942 | alc882_cfg_tbl); | 4942 | alc882_cfg_tbl); |
4943 | 4943 | ||
4944 | if (board_config < 0 || board_config >= ALC882_MODEL_LAST) { | 4944 | if (board_config < 0 || board_config >= ALC882_MODEL_LAST) { |
4945 | printk(KERN_INFO "hda_codec: Unknown model for ALC882, " | 4945 | /* Pick up systems that don't supply PCI SSID */ |
4946 | "trying auto-probe from BIOS...\n"); | 4946 | switch (codec->subsystem_id) { |
4947 | board_config = ALC882_AUTO; | 4947 | case 0x106b0c00: /* Mac Pro */ |
4948 | board_config = ALC885_MACPRO; | ||
4949 | break; | ||
4950 | default: | ||
4951 | printk(KERN_INFO "hda_codec: Unknown model for ALC882, " | ||
4952 | "trying auto-probe from BIOS...\n"); | ||
4953 | board_config = ALC882_AUTO; | ||
4954 | } | ||
4948 | } | 4955 | } |
4949 | 4956 | ||
4950 | if (board_config == ALC882_AUTO) { | 4957 | if (board_config == ALC882_AUTO) { |
@@ -5917,8 +5924,10 @@ static struct snd_kcontrol_new alc262_base_mixer[] = { | |||
5917 | HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), | 5924 | HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), |
5918 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), | 5925 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), |
5919 | HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), | 5926 | HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), |
5927 | HDA_CODEC_VOLUME("Mic Boost", 0x18, 0, HDA_INPUT), | ||
5920 | HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), | 5928 | HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), |
5921 | HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x01, HDA_INPUT), | 5929 | HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x01, HDA_INPUT), |
5930 | HDA_CODEC_VOLUME("Front Mic Boost", 0x19, 0, HDA_INPUT), | ||
5922 | /* HDA_CODEC_VOLUME("PC Beep Playback Volume", 0x0b, 0x05, HDA_INPUT), | 5931 | /* HDA_CODEC_VOLUME("PC Beep Playback Volume", 0x0b, 0x05, HDA_INPUT), |
5923 | HDA_CODEC_MUTE("PC Beelp Playback Switch", 0x0b, 0x05, HDA_INPUT), */ | 5932 | HDA_CODEC_MUTE("PC Beelp Playback Switch", 0x0b, 0x05, HDA_INPUT), */ |
5924 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0D, 0x0, HDA_OUTPUT), | 5933 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0D, 0x0, HDA_OUTPUT), |
@@ -5937,8 +5946,10 @@ static struct snd_kcontrol_new alc262_hippo1_mixer[] = { | |||
5937 | HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), | 5946 | HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), |
5938 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), | 5947 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), |
5939 | HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), | 5948 | HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), |
5949 | HDA_CODEC_VOLUME("Mic Boost", 0x18, 0, HDA_INPUT), | ||
5940 | HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), | 5950 | HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), |
5941 | HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x01, HDA_INPUT), | 5951 | HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x01, HDA_INPUT), |
5952 | HDA_CODEC_VOLUME("Front Mic Boost", 0x19, 0, HDA_INPUT), | ||
5942 | /* HDA_CODEC_VOLUME("PC Beep Playback Volume", 0x0b, 0x05, HDA_INPUT), | 5953 | /* HDA_CODEC_VOLUME("PC Beep Playback Volume", 0x0b, 0x05, HDA_INPUT), |
5943 | HDA_CODEC_MUTE("PC Beelp Playback Switch", 0x0b, 0x05, HDA_INPUT), */ | 5954 | HDA_CODEC_MUTE("PC Beelp Playback Switch", 0x0b, 0x05, HDA_INPUT), */ |
5944 | /*HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0D, 0x0, HDA_OUTPUT),*/ | 5955 | /*HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0D, 0x0, HDA_OUTPUT),*/ |
@@ -5955,8 +5966,10 @@ static struct snd_kcontrol_new alc262_HP_BPC_mixer[] = { | |||
5955 | 5966 | ||
5956 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), | 5967 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), |
5957 | HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), | 5968 | HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), |
5969 | HDA_CODEC_VOLUME("Mic Boost", 0x18, 0, HDA_INPUT), | ||
5958 | HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), | 5970 | HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), |
5959 | HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x01, HDA_INPUT), | 5971 | HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x01, HDA_INPUT), |
5972 | HDA_CODEC_VOLUME("Front Mic Boost", 0x19, 0, HDA_INPUT), | ||
5960 | HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), | 5973 | HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), |
5961 | HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), | 5974 | HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), |
5962 | HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), | 5975 | HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), |
@@ -5977,6 +5990,7 @@ static struct snd_kcontrol_new alc262_HP_BPC_WildWest_mixer[] = { | |||
5977 | HDA_CODEC_MUTE_MONO("Mono Playback Switch", 0x16, 2, 0x0, HDA_OUTPUT), | 5990 | HDA_CODEC_MUTE_MONO("Mono Playback Switch", 0x16, 2, 0x0, HDA_OUTPUT), |
5978 | HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x0b, 0x02, HDA_INPUT), | 5991 | HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x0b, 0x02, HDA_INPUT), |
5979 | HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x02, HDA_INPUT), | 5992 | HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x02, HDA_INPUT), |
5993 | HDA_CODEC_VOLUME("Front Mic Boost", 0x1a, 0, HDA_INPUT), | ||
5980 | HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x01, HDA_INPUT), | 5994 | HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x01, HDA_INPUT), |
5981 | HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x01, HDA_INPUT), | 5995 | HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x01, HDA_INPUT), |
5982 | HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), | 5996 | HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), |
@@ -5989,6 +6003,7 @@ static struct snd_kcontrol_new alc262_HP_BPC_WildWest_mixer[] = { | |||
5989 | static struct snd_kcontrol_new alc262_HP_BPC_WildWest_option_mixer[] = { | 6003 | static struct snd_kcontrol_new alc262_HP_BPC_WildWest_option_mixer[] = { |
5990 | HDA_CODEC_VOLUME("Rear Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), | 6004 | HDA_CODEC_VOLUME("Rear Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), |
5991 | HDA_CODEC_MUTE("Rear Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), | 6005 | HDA_CODEC_MUTE("Rear Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), |
6006 | HDA_CODEC_VOLUME("Rear Mic Boost", 0x18, 0, HDA_INPUT), | ||
5992 | { } /* end */ | 6007 | { } /* end */ |
5993 | }; | 6008 | }; |
5994 | 6009 | ||
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index f7ef9c5afe87..4c7b03996be9 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -59,6 +59,8 @@ enum { | |||
59 | STAC_D945GTP3, | 59 | STAC_D945GTP3, |
60 | STAC_D945GTP5, | 60 | STAC_D945GTP5, |
61 | STAC_MACMINI, | 61 | STAC_MACMINI, |
62 | STAC_MACBOOK, | ||
63 | STAC_MACBOOK_PRO, | ||
62 | STAC_922X_MODELS | 64 | STAC_922X_MODELS |
63 | }; | 65 | }; |
64 | 66 | ||
@@ -461,6 +463,8 @@ static struct snd_pci_quirk stac9200_cfg_tbl[] = { | |||
461 | "Dell Inspiron E1705/9400", STAC_REF), | 463 | "Dell Inspiron E1705/9400", STAC_REF), |
462 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01ce, | 464 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01ce, |
463 | "Dell XPS M1710", STAC_REF), | 465 | "Dell XPS M1710", STAC_REF), |
466 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01cf, | ||
467 | "Dell Precision M90", STAC_REF), | ||
464 | {} /* terminator */ | 468 | {} /* terminator */ |
465 | }; | 469 | }; |
466 | 470 | ||
@@ -519,11 +523,25 @@ static unsigned int d945gtp5_pin_configs[10] = { | |||
519 | 0x02a19320, 0x40000100, | 523 | 0x02a19320, 0x40000100, |
520 | }; | 524 | }; |
521 | 525 | ||
526 | static unsigned int macbook_pin_configs[10] = { | ||
527 | 0x0321e230, 0x03a1e020, 0x400000fd, 0x9017e110, | ||
528 | 0x400000fe, 0x0381e021, 0x1345e240, 0x13c5e22e, | ||
529 | 0x400000fc, 0x400000fb, | ||
530 | }; | ||
531 | |||
532 | static unsigned int macbook_pro_pin_configs[10] = { | ||
533 | 0x0221401f, 0x90a70120, 0x01813024, 0x01014010, | ||
534 | 0x400000fd, 0x01016011, 0x1345e240, 0x13c5e22e, | ||
535 | 0x400000fc, 0x400000fb, | ||
536 | }; | ||
537 | |||
522 | static unsigned int *stac922x_brd_tbl[STAC_922X_MODELS] = { | 538 | static unsigned int *stac922x_brd_tbl[STAC_922X_MODELS] = { |
523 | [STAC_D945_REF] = ref922x_pin_configs, | 539 | [STAC_D945_REF] = ref922x_pin_configs, |
524 | [STAC_D945GTP3] = d945gtp3_pin_configs, | 540 | [STAC_D945GTP3] = d945gtp3_pin_configs, |
525 | [STAC_D945GTP5] = d945gtp5_pin_configs, | 541 | [STAC_D945GTP5] = d945gtp5_pin_configs, |
526 | [STAC_MACMINI] = d945gtp5_pin_configs, | 542 | [STAC_MACMINI] = d945gtp5_pin_configs, |
543 | [STAC_MACBOOK] = macbook_pin_configs, | ||
544 | [STAC_MACBOOK_PRO] = macbook_pro_pin_configs, | ||
527 | }; | 545 | }; |
528 | 546 | ||
529 | static const char *stac922x_models[STAC_922X_MODELS] = { | 547 | static const char *stac922x_models[STAC_922X_MODELS] = { |
@@ -531,6 +549,8 @@ static const char *stac922x_models[STAC_922X_MODELS] = { | |||
531 | [STAC_D945GTP5] = "5stack", | 549 | [STAC_D945GTP5] = "5stack", |
532 | [STAC_D945GTP3] = "3stack", | 550 | [STAC_D945GTP3] = "3stack", |
533 | [STAC_MACMINI] = "macmini", | 551 | [STAC_MACMINI] = "macmini", |
552 | [STAC_MACBOOK] = "macbook", | ||
553 | [STAC_MACBOOK_PRO] = "macbook-pro", | ||
534 | }; | 554 | }; |
535 | 555 | ||
536 | static struct snd_pci_quirk stac922x_cfg_tbl[] = { | 556 | static struct snd_pci_quirk stac922x_cfg_tbl[] = { |
@@ -1864,6 +1884,18 @@ static int patch_stac922x(struct hda_codec *codec) | |||
1864 | spec->board_config = snd_hda_check_board_config(codec, STAC_922X_MODELS, | 1884 | spec->board_config = snd_hda_check_board_config(codec, STAC_922X_MODELS, |
1865 | stac922x_models, | 1885 | stac922x_models, |
1866 | stac922x_cfg_tbl); | 1886 | stac922x_cfg_tbl); |
1887 | if (spec->board_config == STAC_MACMINI) { | ||
1888 | spec->gpio_mute = 1; | ||
1889 | /* Intel Macs have all same PCI SSID, so we need to check | ||
1890 | * codec SSID to distinguish the exact models | ||
1891 | */ | ||
1892 | switch (codec->subsystem_id) { | ||
1893 | case 0x106b1e00: | ||
1894 | spec->board_config = STAC_MACBOOK_PRO; | ||
1895 | break; | ||
1896 | } | ||
1897 | } | ||
1898 | |||
1867 | again: | 1899 | again: |
1868 | if (spec->board_config < 0) { | 1900 | if (spec->board_config < 0) { |
1869 | snd_printdd(KERN_INFO "hda_codec: Unknown model for STAC922x, " | 1901 | snd_printdd(KERN_INFO "hda_codec: Unknown model for STAC922x, " |
@@ -1904,9 +1936,6 @@ static int patch_stac922x(struct hda_codec *codec) | |||
1904 | return err; | 1936 | return err; |
1905 | } | 1937 | } |
1906 | 1938 | ||
1907 | if (spec->board_config == STAC_MACMINI) | ||
1908 | spec->gpio_mute = 1; | ||
1909 | |||
1910 | codec->patch_ops = stac92xx_patch_ops; | 1939 | codec->patch_ops = stac92xx_patch_ops; |
1911 | 1940 | ||
1912 | return 0; | 1941 | return 0; |
diff --git a/sound/pci/riptide/riptide.c b/sound/pci/riptide/riptide.c index 5e1d5d2b2850..952625dead58 100644 --- a/sound/pci/riptide/riptide.c +++ b/sound/pci/riptide/riptide.c | |||
@@ -1919,6 +1919,8 @@ snd_riptide_create(struct snd_card *card, struct pci_dev *pci, | |||
1919 | return err; | 1919 | return err; |
1920 | } | 1920 | } |
1921 | 1921 | ||
1922 | snd_card_set_dev(card, &pci->dev); | ||
1923 | |||
1922 | *rchip = chip; | 1924 | *rchip = chip; |
1923 | return 0; | 1925 | return 0; |
1924 | } | 1926 | } |
diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c index e0215aca1193..6e95857e4e67 100644 --- a/sound/pci/rme9652/hdspm.c +++ b/sound/pci/rme9652/hdspm.c | |||
@@ -4468,6 +4468,8 @@ static int __devinit snd_hdspm_probe(struct pci_dev *pci, | |||
4468 | hdspm->dev = dev; | 4468 | hdspm->dev = dev; |
4469 | hdspm->pci = pci; | 4469 | hdspm->pci = pci; |
4470 | 4470 | ||
4471 | snd_card_set_dev(card, &pci->dev); | ||
4472 | |||
4471 | if ((err = | 4473 | if ((err = |
4472 | snd_hdspm_create(card, hdspm, precise_ptr[dev], | 4474 | snd_hdspm_create(card, hdspm, precise_ptr[dev], |
4473 | enable_monitor[dev])) < 0) { | 4475 | enable_monitor[dev])) < 0) { |
diff --git a/sound/soc/codecs/wm9712.c b/sound/soc/codecs/wm9712.c index 92a64871bcd0..ee7a691a9ba1 100644 --- a/sound/soc/codecs/wm9712.c +++ b/sound/soc/codecs/wm9712.c | |||
@@ -39,7 +39,7 @@ static int ac97_write(struct snd_soc_codec *codec, | |||
39 | */ | 39 | */ |
40 | static const u16 wm9712_reg[] = { | 40 | static const u16 wm9712_reg[] = { |
41 | 0x6174, 0x8000, 0x8000, 0x8000, // 6 | 41 | 0x6174, 0x8000, 0x8000, 0x8000, // 6 |
42 | 0xf0f0, 0xaaa0, 0xc008, 0x6808, // e | 42 | 0x0f0f, 0xaaa0, 0xc008, 0x6808, // e |
43 | 0xe808, 0xaaa0, 0xad00, 0x8000, // 16 | 43 | 0xe808, 0xaaa0, 0xad00, 0x8000, // 16 |
44 | 0xe808, 0x3000, 0x8000, 0x0000, // 1e | 44 | 0xe808, 0x3000, 0x8000, 0x0000, // 1e |
45 | 0x0000, 0x0000, 0x0000, 0x000f, // 26 | 45 | 0x0000, 0x0000, 0x0000, 0x000f, // 26 |
@@ -96,6 +96,7 @@ SOC_DOUBLE("Speaker Playback Volume", AC97_MASTER, 8, 0, 31, 1), | |||
96 | SOC_SINGLE("Speaker Playback Switch", AC97_MASTER, 15, 1, 1), | 96 | SOC_SINGLE("Speaker Playback Switch", AC97_MASTER, 15, 1, 1), |
97 | SOC_DOUBLE("Headphone Playback Volume", AC97_HEADPHONE, 8, 0, 31, 1), | 97 | SOC_DOUBLE("Headphone Playback Volume", AC97_HEADPHONE, 8, 0, 31, 1), |
98 | SOC_SINGLE("Headphone Playback Switch", AC97_HEADPHONE,15, 1, 1), | 98 | SOC_SINGLE("Headphone Playback Switch", AC97_HEADPHONE,15, 1, 1), |
99 | SOC_DOUBLE("PCM Playback Volume", AC97_PCM, 8, 0, 31, 1), | ||
99 | 100 | ||
100 | SOC_SINGLE("Speaker Playback ZC Switch", AC97_MASTER, 7, 1, 0), | 101 | SOC_SINGLE("Speaker Playback ZC Switch", AC97_MASTER, 7, 1, 0), |
101 | SOC_SINGLE("Speaker Playback Invert Switch", AC97_MASTER, 6, 1, 0), | 102 | SOC_SINGLE("Speaker Playback Invert Switch", AC97_MASTER, 6, 1, 0), |