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 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
ALSA: hda - Add STAC9205 PCI_QUIRK for Dell Vostro 1700
ASoC: Do not write to invalid registers on the wm9712.
ALSA: hda - Set mixer name after codec patch
ASoC: add missing parameter to mx27vis_hifi_hw_free()
ASoC: sh: FSI:: don't check platform_get_irq's return value against zero
ALSA: sound/core/pcm_timer.c: use lib/gcd.c
ALSA: hda - Add MSI blacklist
ALSA: hda - Add support for the new 27 inch IMacs
ALSA: hda - Fix NULL dereference with enable_beep=0 option

+48 -34
+1
Documentation/sound/alsa/HD-Audio-Models.txt
··· 403 403 Cirrus Logic CS4206/4207 404 404 ======================== 405 405 mbp55 MacBook Pro 5,5 406 + imac27 IMac 27 Inch 406 407 auto BIOS setup (default)
+1
sound/core/Kconfig
··· 5 5 config SND_PCM 6 6 tristate 7 7 select SND_TIMER 8 + select GCD 8 9 9 10 config SND_HWDEP 10 11 tristate
+1 -16
sound/core/pcm_timer.c
··· 20 20 */ 21 21 22 22 #include <linux/time.h> 23 + #include <linux/gcd.h> 23 24 #include <sound/core.h> 24 25 #include <sound/pcm.h> 25 26 #include <sound/timer.h> ··· 28 27 /* 29 28 * Timer functions 30 29 */ 31 - 32 - /* Greatest common divisor */ 33 - static unsigned long gcd(unsigned long a, unsigned long b) 34 - { 35 - unsigned long r; 36 - if (a < b) { 37 - r = a; 38 - a = b; 39 - b = r; 40 - } 41 - while ((r = a % b) != 0) { 42 - a = b; 43 - b = r; 44 - } 45 - return b; 46 - } 47 30 48 31 void snd_pcm_timer_resolution_change(struct snd_pcm_substream *substream) 49 32 {
+5 -5
sound/pci/hda/hda_codec.c
··· 1086 1086 if (err < 0) 1087 1087 return err; 1088 1088 } 1089 - /* audio codec should override the mixer name */ 1090 - if (codec->afg || !*codec->bus->card->mixername) 1091 - snprintf(codec->bus->card->mixername, 1092 - sizeof(codec->bus->card->mixername), 1093 - "%s %s", codec->vendor_name, codec->chip_name); 1094 1089 1095 1090 if (is_generic_config(codec)) { 1096 1091 err = snd_hda_parse_generic_codec(codec); ··· 1104 1109 patched: 1105 1110 if (!err && codec->patch_ops.unsol_event) 1106 1111 err = init_unsol_queue(codec->bus); 1112 + /* audio codec should override the mixer name */ 1113 + if (!err && (codec->afg || !*codec->bus->card->mixername)) 1114 + snprintf(codec->bus->card->mixername, 1115 + sizeof(codec->bus->card->mixername), 1116 + "%s %s", codec->vendor_name, codec->chip_name); 1107 1117 return err; 1108 1118 } 1109 1119 EXPORT_SYMBOL_HDA(snd_hda_codec_configure);
+1
sound/pci/hda/hda_intel.c
··· 2322 2322 * white/black-list for enable_msi 2323 2323 */ 2324 2324 static struct snd_pci_quirk msi_black_list[] __devinitdata = { 2325 + SND_PCI_QUIRK(0x1043, 0x81f2, "ASUS", 0), /* Athlon64 X2 + nvidia */ 2325 2326 {} 2326 2327 }; 2327 2328
+21 -1
sound/pci/hda/patch_cirrus.c
··· 66 66 /* available models */ 67 67 enum { 68 68 CS420X_MBP55, 69 + CS420X_IMAC27, 69 70 CS420X_AUTO, 70 71 CS420X_MODELS 71 72 }; ··· 828 827 AC_VERB_SET_PIN_WIDGET_CONTROL, 829 828 hp_present ? 0 : PIN_OUT); 830 829 } 831 - if (spec->board_config == CS420X_MBP55) { 830 + if (spec->board_config == CS420X_MBP55 || 831 + spec->board_config == CS420X_IMAC27) { 832 832 unsigned int gpio = hp_present ? 0x02 : 0x08; 833 833 snd_hda_codec_write(codec, 0x01, 0, 834 834 AC_VERB_SET_GPIO_DATA, gpio); ··· 1071 1069 1072 1070 static const char *cs420x_models[CS420X_MODELS] = { 1073 1071 [CS420X_MBP55] = "mbp55", 1072 + [CS420X_IMAC27] = "imac27", 1074 1073 [CS420X_AUTO] = "auto", 1075 1074 }; 1076 1075 1077 1076 1078 1077 static struct snd_pci_quirk cs420x_cfg_tbl[] = { 1079 1078 SND_PCI_QUIRK(0x10de, 0xcb79, "MacBookPro 5,5", CS420X_MBP55), 1079 + SND_PCI_QUIRK(0x8086, 0x7270, "IMac 27 Inch", CS420X_IMAC27), 1080 1080 {} /* terminator */ 1081 1081 }; 1082 1082 ··· 1101 1097 {} /* terminator */ 1102 1098 }; 1103 1099 1100 + static struct cs_pincfg imac27_pincfgs[] = { 1101 + { 0x09, 0x012b4050 }, 1102 + { 0x0a, 0x90100140 }, 1103 + { 0x0b, 0x90100142 }, 1104 + { 0x0c, 0x018b3020 }, 1105 + { 0x0d, 0x90a00110 }, 1106 + { 0x0e, 0x400000f0 }, 1107 + { 0x0f, 0x01cbe030 }, 1108 + { 0x10, 0x014be060 }, 1109 + { 0x12, 0x01ab9070 }, 1110 + { 0x15, 0x400000f0 }, 1111 + {} /* terminator */ 1112 + }; 1113 + 1104 1114 static struct cs_pincfg *cs_pincfgs[CS420X_MODELS] = { 1105 1115 [CS420X_MBP55] = mbp55_pincfgs, 1116 + [CS420X_IMAC27] = imac27_pincfgs, 1106 1117 }; 1107 1118 1108 1119 static void fix_pincfg(struct hda_codec *codec, int model) ··· 1147 1128 fix_pincfg(codec, spec->board_config); 1148 1129 1149 1130 switch (spec->board_config) { 1131 + case CS420X_IMAC27: 1150 1132 case CS420X_MBP55: 1151 1133 /* GPIO1 = headphones */ 1152 1134 /* GPIO3 = speakers */
+13 -9
sound/pci/hda/patch_sigmatel.c
··· 2104 2104 10280204 2105 2105 1028021F 2106 2106 10280228 (Dell Vostro 1500) 2107 + 10280229 (Dell Vostro 1700) 2107 2108 */ 2108 2109 static unsigned int dell_9205_m42_pin_configs[12] = { 2109 2110 0x0321101F, 0x03A11020, 0x400003FA, 0x90170310, ··· 2190 2189 "Dell Inspiron", STAC_9205_DELL_M44), 2191 2190 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0228, 2192 2191 "Dell Vostro 1500", STAC_9205_DELL_M42), 2192 + SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0229, 2193 + "Dell Vostro 1700", STAC_9205_DELL_M42), 2193 2194 /* Gateway */ 2194 2195 SND_PCI_QUIRK(0x107b, 0x0560, "Gateway T6834c", STAC_9205_EAPD), 2195 2196 SND_PCI_QUIRK(0x107b, 0x0565, "Gateway T1616", STAC_9205_EAPD), ··· 3782 3779 err = snd_hda_attach_beep_device(codec, nid); 3783 3780 if (err < 0) 3784 3781 return err; 3785 - /* IDT/STAC codecs have linear beep tone parameter */ 3786 - codec->beep->linear_tone = 1; 3787 - /* if no beep switch is available, make its own one */ 3788 - caps = query_amp_caps(codec, nid, HDA_OUTPUT); 3789 - if (codec->beep && 3790 - !((caps & AC_AMPCAP_MUTE) >> AC_AMPCAP_MUTE_SHIFT)) { 3791 - err = stac92xx_beep_switch_ctl(codec); 3792 - if (err < 0) 3793 - return err; 3782 + if (codec->beep) { 3783 + /* IDT/STAC codecs have linear beep tone parameter */ 3784 + codec->beep->linear_tone = 1; 3785 + /* if no beep switch is available, make its own one */ 3786 + caps = query_amp_caps(codec, nid, HDA_OUTPUT); 3787 + if (!(caps & AC_AMPCAP_MUTE)) { 3788 + err = stac92xx_beep_switch_ctl(codec); 3789 + if (err < 0) 3790 + return err; 3791 + } 3794 3792 } 3795 3793 } 3796 3794 #endif
+2 -1
sound/soc/codecs/wm9712.c
··· 463 463 { 464 464 u16 *cache = codec->reg_cache; 465 465 466 - soc_ac97_ops.write(codec->ac97, reg, val); 466 + if (reg < 0x7c) 467 + soc_ac97_ops.write(codec->ac97, reg, val); 467 468 reg = reg >> 1; 468 469 if (reg < (ARRAY_SIZE(wm9712_reg))) 469 470 cache[reg] = val;
+2 -1
sound/soc/imx/mx27vis_wm8974.c
··· 180 180 struct snd_soc_dai *codec_dai = rtd->dai->codec_dai; 181 181 182 182 /* disable the PLL */ 183 - return codec_dai->ops->set_pll(codec_dai, IGNORED_ARG, 0, 0); 183 + return codec_dai->ops->set_pll(codec_dai, IGNORED_ARG, IGNORED_ARG, 184 + 0, 0); 184 185 } 185 186 186 187 /*
+1 -1
sound/soc/sh/fsi.c
··· 876 876 877 877 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 878 878 irq = platform_get_irq(pdev, 0); 879 - if (!res || !irq) { 879 + if (!res || (int)irq <= 0) { 880 880 dev_err(&pdev->dev, "Not enough FSI platform resources.\n"); 881 881 ret = -ENODEV; 882 882 goto exit;