Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'linus' of master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa

* 'linus' of master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa:
[ALSA] version 1.0.14rc3
[ALSA] cmipci - Allow to disable integrated FM port
[ALSA] hda-codec - Fix logic error in headphone mute for Conexant codecs
[ALSA] hda-codec - Add missing Mic Boost for AD1986A codec
[ALSA] ac97 - Add Thinkpad X31 and R40 to AD1981x blacklist
[ALSA] Add missing sysfs device assignment for ALSA PCI drivers
[ALSA] hda-codec - Define pin configs for MacBooks
[ALSA] hda-codec - Add missing Mic Boost controls for ALC262
[ALSA] soc - WM9712 PCM volume
[ALSA] soc - Fix WM9712 register cache entry
[ALSA] hda-codec - Add method for configuring Mac Pro without PCI SSID
[ALSA] hda-codec - Add LFE support on Dell M90

+94 -20
+10 -2
Documentation/sound/alsa/ALSA-Configuration.txt
··· 370 370 mpu_port - 0x300,0x310,0x320,0x330 = legacy port, 371 371 1 = integrated PCI port, 372 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 376 soft_ac3 - Software-conversion of raw SPDIF packets (model 033 only) 375 377 (default = 1) 376 378 joystick_port - Joystick port address (0 = disable, 1 = auto-detect) ··· 897 895 can be adjusted. Appearing only when compiled with 898 896 $CONFIG_SND_DEBUG=y 899 897 900 - STAC9200/9205/9220/9221/9254 898 + STAC9200/9205/9254 899 + ref Reference board 900 + 901 + STAC9220/9221 901 902 ref Reference board 902 903 3stack D945 3stack 903 904 5stack D945 5stack + SPDIF 905 + macmini Intel Mac Mini 906 + macbook Intel Mac Book 907 + macbook-pro Intel Mac Book Pro 904 908 905 909 STAC9202/9250/9251 906 910 ref Reference board, base config
+2 -2
include/sound/version.h
··· 1 1 /* include/version.h. Generated by alsa/ksync script. */ 2 - #define CONFIG_SND_VERSION "1.0.14rc2" 3 - #define CONFIG_SND_DATE " (Wed Feb 14 07:42:13 2007 UTC)" 2 + #define CONFIG_SND_VERSION "1.0.14rc3" 3 + #define CONFIG_SND_DATE " (Tue Mar 06 13:10:00 2007 UTC)"
+2
sound/pci/ac97/ac97_patch.c
··· 1790 1790 * (SS vendor << 16 | device) 1791 1791 */ 1792 1792 static unsigned int ad1981_jacks_blacklist[] = { 1793 + 0x10140523, /* Thinkpad R40 */ 1794 + 0x10140534, /* Thinkpad X31 */ 1793 1795 0x10140537, /* Thinkpad T41p */ 1794 1796 0x10140554, /* Thinkpad T42p/R50p */ 1795 1797 0 /* end */
+2
sound/pci/ali5451/ali5451.c
··· 2312 2312 return err; 2313 2313 } 2314 2314 2315 + snd_card_set_dev(card, &pci->dev); 2316 + 2315 2317 /* initialise synth voices*/ 2316 2318 for (i = 0; i < ALI_CHANNELS; i++ ) { 2317 2319 codec->synth.voices[i].number = i;
+11 -7
sound/pci/cmipci.c
··· 57 57 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ 58 58 static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; /* Enable switches */ 59 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 61 static int soft_ac3[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)]=1}; 62 62 #ifdef SUPPORT_JOYSTICK 63 63 static int joystick_port[SNDRV_CARDS]; ··· 2779 2779 struct snd_opl3 *opl3; 2780 2780 int err; 2781 2781 2782 + if (!fm_port) 2783 + goto disable_fm; 2784 + 2782 2785 /* first try FM regs in PCI port range */ 2783 2786 iosynth = cm->iobase + CM_REG_FM_PCI; 2784 2787 err = snd_opl3_create(cm->card, iosynth, iosynth + 2, ··· 2796 2793 case 0x3C8: val |= CM_FMSEL_3C8; break; 2797 2794 case 0x388: val |= CM_FMSEL_388; break; 2798 2795 default: 2799 - return 0; 2796 + goto disable_fm; 2800 2797 } 2801 2798 snd_cmipci_write(cm, CM_REG_LEGACY_CTRL, val); 2802 2799 /* enable FM */ ··· 2806 2803 OPL3_HW_OPL3, 0, &opl3) < 0) { 2807 2804 printk(KERN_ERR "cmipci: no OPL device at %#lx, " 2808 2805 "skipping...\n", iosynth); 2809 - /* disable FM */ 2810 - snd_cmipci_write(cm, CM_REG_LEGACY_CTRL, 2811 - val & ~CM_FMSEL_MASK); 2812 - snd_cmipci_clear_bit(cm, CM_REG_MISC_CTRL, CM_FM_EN); 2813 - return 0; 2806 + goto disable_fm; 2814 2807 } 2815 2808 } 2816 2809 if ((err = snd_opl3_hwdep_new(opl3, 0, 1, NULL)) < 0) { 2817 2810 printk(KERN_ERR "cmipci: cannot create OPL3 hwdep\n"); 2818 2811 return err; 2819 2812 } 2813 + return 0; 2814 + 2815 + disable_fm: 2816 + snd_cmipci_clear_bit(cm, CM_REG_LEGACY_CTRL, CM_FMSEL_MASK); 2817 + snd_cmipci_clear_bit(cm, CM_REG_MISC_CTRL, CM_FM_EN); 2820 2818 return 0; 2821 2819 } 2822 2820
+2
sound/pci/echoaudio/echoaudio.c
··· 2033 2033 if (card == NULL) 2034 2034 return -ENOMEM; 2035 2035 2036 + snd_card_set_dev(card, &pci->dev); 2037 + 2036 2038 if ((err = snd_echo_create(card, pci, &chip)) < 0) { 2037 2039 snd_card_free(card); 2038 2040 return err;
+3
sound/pci/hda/patch_analog.c
··· 523 523 HDA_CODEC_MUTE("Aux Playback Switch", 0x16, 0x0, HDA_OUTPUT), 524 524 HDA_CODEC_VOLUME("Mic Playback Volume", 0x13, 0x0, HDA_OUTPUT), 525 525 HDA_CODEC_MUTE("Mic Playback Switch", 0x13, 0x0, HDA_OUTPUT), 526 + HDA_CODEC_VOLUME("Mic Boost", 0x0f, 0x0, HDA_OUTPUT), 526 527 HDA_CODEC_VOLUME("PC Speaker Playback Volume", 0x18, 0x0, HDA_OUTPUT), 527 528 HDA_CODEC_MUTE("PC Speaker Playback Switch", 0x18, 0x0, HDA_OUTPUT), 528 529 HDA_CODEC_VOLUME("Mono Playback Volume", 0x1e, 0x0, HDA_OUTPUT), ··· 571 570 HDA_CODEC_MUTE("Aux Playback Switch", 0x16, 0x0, HDA_OUTPUT), 572 571 HDA_CODEC_VOLUME("Mic Playback Volume", 0x13, 0x0, HDA_OUTPUT), 573 572 HDA_CODEC_MUTE("Mic Playback Switch", 0x13, 0x0, HDA_OUTPUT), 573 + HDA_CODEC_VOLUME("Mic Boost", 0x0f, 0x0, HDA_OUTPUT), 574 574 /* HDA_CODEC_VOLUME("PC Speaker Playback Volume", 0x18, 0x0, HDA_OUTPUT), 575 575 HDA_CODEC_MUTE("PC Speaker Playback Switch", 0x18, 0x0, HDA_OUTPUT), 576 576 HDA_CODEC_VOLUME("Mono Playback Volume", 0x1e, 0x0, HDA_OUTPUT), ··· 660 658 HDA_CODEC_MUTE("Internal Mic Playback Switch", 0x17, 0x0, HDA_OUTPUT), 661 659 HDA_CODEC_VOLUME("Mic Playback Volume", 0x13, 0x0, HDA_OUTPUT), 662 660 HDA_CODEC_MUTE("Mic Playback Switch", 0x13, 0x0, HDA_OUTPUT), 661 + HDA_CODEC_VOLUME("Mic Boost", 0x0f, 0x0, HDA_OUTPUT), 663 662 HDA_CODEC_VOLUME("Capture Volume", 0x12, 0x0, HDA_OUTPUT), 664 663 HDA_CODEC_MUTE("Capture Switch", 0x12, 0x0, HDA_OUTPUT), 665 664 {
+6 -2
sound/pci/hda/patch_conexant.c
··· 629 629 static void cxt5045_hp_automute(struct hda_codec *codec) 630 630 { 631 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 634 spec->hp_present = snd_hda_codec_read(codec, 0x11, 0, 635 635 AC_VERB_GET_PIN_SENSE, 0) & 0x80000000; 636 + 637 + bits = (spec->hp_present || !spec->cur_eapd) ? 0x80 : 0; 636 638 snd_hda_codec_amp_update(codec, 0x10, 0, HDA_OUTPUT, 0, 0x80, bits); 637 639 snd_hda_codec_amp_update(codec, 0x10, 1, HDA_OUTPUT, 0, 0x80, bits); 638 640 } ··· 981 979 static void cxt5047_hp_automute(struct hda_codec *codec) 982 980 { 983 981 struct conexant_spec *spec = codec->spec; 984 - unsigned int bits = spec->hp_present || !spec->cur_eapd ? 0x80 : 0; 982 + unsigned int bits; 985 983 986 984 spec->hp_present = snd_hda_codec_read(codec, 0x13, 0, 987 985 AC_VERB_GET_PIN_SENSE, 0) & 0x80000000; 986 + 987 + bits = (spec->hp_present || !spec->cur_eapd) ? 0x80 : 0; 988 988 snd_hda_codec_amp_update(codec, 0x1d, 0, HDA_OUTPUT, 0, 0x80, bits); 989 989 snd_hda_codec_amp_update(codec, 0x1d, 1, HDA_OUTPUT, 0, 0x80, bits); 990 990 /* Mute/Unmute PCM 2 for good measure - some systems need this */
+18 -3
sound/pci/hda/patch_realtek.c
··· 4942 4942 alc882_cfg_tbl); 4943 4943 4944 4944 if (board_config < 0 || board_config >= ALC882_MODEL_LAST) { 4945 - printk(KERN_INFO "hda_codec: Unknown model for ALC882, " 4946 - "trying auto-probe from BIOS...\n"); 4947 - board_config = ALC882_AUTO; 4945 + /* Pick up systems that don't supply PCI SSID */ 4946 + switch (codec->subsystem_id) { 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 4957 if (board_config == ALC882_AUTO) { ··· 5924 5917 HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), 5925 5918 HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), 5926 5919 HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), 5920 + HDA_CODEC_VOLUME("Mic Boost", 0x18, 0, HDA_INPUT), 5927 5921 HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), 5928 5922 HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x01, HDA_INPUT), 5923 + HDA_CODEC_VOLUME("Front Mic Boost", 0x19, 0, HDA_INPUT), 5929 5924 /* HDA_CODEC_VOLUME("PC Beep Playback Volume", 0x0b, 0x05, HDA_INPUT), 5930 5925 HDA_CODEC_MUTE("PC Beelp Playback Switch", 0x0b, 0x05, HDA_INPUT), */ 5931 5926 HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0D, 0x0, HDA_OUTPUT), ··· 5946 5937 HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), 5947 5938 HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), 5948 5939 HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), 5940 + HDA_CODEC_VOLUME("Mic Boost", 0x18, 0, HDA_INPUT), 5949 5941 HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), 5950 5942 HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x01, HDA_INPUT), 5943 + HDA_CODEC_VOLUME("Front Mic Boost", 0x19, 0, HDA_INPUT), 5951 5944 /* HDA_CODEC_VOLUME("PC Beep Playback Volume", 0x0b, 0x05, HDA_INPUT), 5952 5945 HDA_CODEC_MUTE("PC Beelp Playback Switch", 0x0b, 0x05, HDA_INPUT), */ 5953 5946 /*HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0D, 0x0, HDA_OUTPUT),*/ ··· 5966 5955 5967 5956 HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), 5968 5957 HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), 5958 + HDA_CODEC_VOLUME("Mic Boost", 0x18, 0, HDA_INPUT), 5969 5959 HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), 5970 5960 HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x01, HDA_INPUT), 5961 + HDA_CODEC_VOLUME("Front Mic Boost", 0x19, 0, HDA_INPUT), 5971 5962 HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), 5972 5963 HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), 5973 5964 HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), ··· 5990 5977 HDA_CODEC_MUTE_MONO("Mono Playback Switch", 0x16, 2, 0x0, HDA_OUTPUT), 5991 5978 HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x0b, 0x02, HDA_INPUT), 5992 5979 HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x02, HDA_INPUT), 5980 + HDA_CODEC_VOLUME("Front Mic Boost", 0x1a, 0, HDA_INPUT), 5993 5981 HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x01, HDA_INPUT), 5994 5982 HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x01, HDA_INPUT), 5995 5983 HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), ··· 6003 5989 static struct snd_kcontrol_new alc262_HP_BPC_WildWest_option_mixer[] = { 6004 5990 HDA_CODEC_VOLUME("Rear Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), 6005 5991 HDA_CODEC_MUTE("Rear Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), 5992 + HDA_CODEC_VOLUME("Rear Mic Boost", 0x18, 0, HDA_INPUT), 6006 5993 { } /* end */ 6007 5994 }; 6008 5995
+32 -3
sound/pci/hda/patch_sigmatel.c
··· 59 59 STAC_D945GTP3, 60 60 STAC_D945GTP5, 61 61 STAC_MACMINI, 62 + STAC_MACBOOK, 63 + STAC_MACBOOK_PRO, 62 64 STAC_922X_MODELS 63 65 }; 64 66 ··· 463 461 "Dell Inspiron E1705/9400", STAC_REF), 464 462 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01ce, 465 463 "Dell XPS M1710", STAC_REF), 464 + SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01cf, 465 + "Dell Precision M90", STAC_REF), 466 466 {} /* terminator */ 467 467 }; 468 468 ··· 523 519 0x02a19320, 0x40000100, 524 520 }; 525 521 522 + static unsigned int macbook_pin_configs[10] = { 523 + 0x0321e230, 0x03a1e020, 0x400000fd, 0x9017e110, 524 + 0x400000fe, 0x0381e021, 0x1345e240, 0x13c5e22e, 525 + 0x400000fc, 0x400000fb, 526 + }; 527 + 528 + static unsigned int macbook_pro_pin_configs[10] = { 529 + 0x0221401f, 0x90a70120, 0x01813024, 0x01014010, 530 + 0x400000fd, 0x01016011, 0x1345e240, 0x13c5e22e, 531 + 0x400000fc, 0x400000fb, 532 + }; 533 + 526 534 static unsigned int *stac922x_brd_tbl[STAC_922X_MODELS] = { 527 535 [STAC_D945_REF] = ref922x_pin_configs, 528 536 [STAC_D945GTP3] = d945gtp3_pin_configs, 529 537 [STAC_D945GTP5] = d945gtp5_pin_configs, 530 538 [STAC_MACMINI] = d945gtp5_pin_configs, 539 + [STAC_MACBOOK] = macbook_pin_configs, 540 + [STAC_MACBOOK_PRO] = macbook_pro_pin_configs, 531 541 }; 532 542 533 543 static const char *stac922x_models[STAC_922X_MODELS] = { ··· 549 531 [STAC_D945GTP5] = "5stack", 550 532 [STAC_D945GTP3] = "3stack", 551 533 [STAC_MACMINI] = "macmini", 534 + [STAC_MACBOOK] = "macbook", 535 + [STAC_MACBOOK_PRO] = "macbook-pro", 552 536 }; 553 537 554 538 static struct snd_pci_quirk stac922x_cfg_tbl[] = { ··· 1884 1864 spec->board_config = snd_hda_check_board_config(codec, STAC_922X_MODELS, 1885 1865 stac922x_models, 1886 1866 stac922x_cfg_tbl); 1867 + if (spec->board_config == STAC_MACMINI) { 1868 + spec->gpio_mute = 1; 1869 + /* Intel Macs have all same PCI SSID, so we need to check 1870 + * codec SSID to distinguish the exact models 1871 + */ 1872 + switch (codec->subsystem_id) { 1873 + case 0x106b1e00: 1874 + spec->board_config = STAC_MACBOOK_PRO; 1875 + break; 1876 + } 1877 + } 1878 + 1887 1879 again: 1888 1880 if (spec->board_config < 0) { 1889 1881 snd_printdd(KERN_INFO "hda_codec: Unknown model for STAC922x, " ··· 1935 1903 stac92xx_free(codec); 1936 1904 return err; 1937 1905 } 1938 - 1939 - if (spec->board_config == STAC_MACMINI) 1940 - spec->gpio_mute = 1; 1941 1906 1942 1907 codec->patch_ops = stac92xx_patch_ops; 1943 1908
+2
sound/pci/riptide/riptide.c
··· 1919 1919 return err; 1920 1920 } 1921 1921 1922 + snd_card_set_dev(card, &pci->dev); 1923 + 1922 1924 *rchip = chip; 1923 1925 return 0; 1924 1926 }
+2
sound/pci/rme9652/hdspm.c
··· 4468 4468 hdspm->dev = dev; 4469 4469 hdspm->pci = pci; 4470 4470 4471 + snd_card_set_dev(card, &pci->dev); 4472 + 4471 4473 if ((err = 4472 4474 snd_hdspm_create(card, hdspm, precise_ptr[dev], 4473 4475 enable_monitor[dev])) < 0) {
+2 -1
sound/soc/codecs/wm9712.c
··· 39 39 */ 40 40 static const u16 wm9712_reg[] = { 41 41 0x6174, 0x8000, 0x8000, 0x8000, // 6 42 - 0xf0f0, 0xaaa0, 0xc008, 0x6808, // e 42 + 0x0f0f, 0xaaa0, 0xc008, 0x6808, // e 43 43 0xe808, 0xaaa0, 0xad00, 0x8000, // 16 44 44 0xe808, 0x3000, 0x8000, 0x0000, // 1e 45 45 0x0000, 0x0000, 0x0000, 0x000f, // 26 ··· 96 96 SOC_SINGLE("Speaker Playback Switch", AC97_MASTER, 15, 1, 1), 97 97 SOC_DOUBLE("Headphone Playback Volume", AC97_HEADPHONE, 8, 0, 31, 1), 98 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 101 SOC_SINGLE("Speaker Playback ZC Switch", AC97_MASTER, 7, 1, 0), 101 102 SOC_SINGLE("Speaker Playback Invert Switch", AC97_MASTER, 6, 1, 0),