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:
eukrea-tlv320: fix platform_name
ASoC: correct pxa AC97 DAI names
ALSA: hda - Add support for new IDT 92HD98 and 92HD99 codecs
ALSA: HDA: Add ideapad quirk for two Dell machines
ALSA: HDA: Add a new Conexant codec 506e (20590)
ALSA: usb-audio: fix oops due to cleanup race when disconnecting
ASoC: Hook wm_hubs micbiases up to CLK_SYS
ASoC: Correct definition of WM8903_VMID_RES_5K
ASoC: Fix WM8958 default microphone detection argument ordering
ALSA: HDA: Fix mic initialization in VIA auto parser
ALSA: fix one memory leak in sound jack

+52 -27
+1
sound/core/jack.c
··· 141 141 142 142 fail_input: 143 143 input_free_device(jack->input_dev); 144 + kfree(jack->id); 144 145 kfree(jack); 145 146 return err; 146 147 }
+5
sound/pci/hda/patch_conexant.c
··· 3114 3114 SND_PCI_QUIRK(0x1028, 0x0401, "Dell Vostro 1014", CXT5066_DELL_VOSTRO), 3115 3115 SND_PCI_QUIRK(0x1028, 0x0402, "Dell Vostro", CXT5066_DELL_VOSTRO), 3116 3116 SND_PCI_QUIRK(0x1028, 0x0408, "Dell Inspiron One 19T", CXT5066_IDEAPAD), 3117 + SND_PCI_QUIRK(0x1028, 0x050f, "Dell Inspiron", CXT5066_IDEAPAD), 3118 + SND_PCI_QUIRK(0x1028, 0x0510, "Dell Vostro", CXT5066_IDEAPAD), 3117 3119 SND_PCI_QUIRK(0x103c, 0x360b, "HP G60", CXT5066_HP_LAPTOP), 3118 3120 SND_PCI_QUIRK(0x1043, 0x13f3, "Asus A52J", CXT5066_ASUS), 3119 3121 SND_PCI_QUIRK(0x1043, 0x1643, "Asus K52JU", CXT5066_ASUS), ··· 3939 3937 .patch = patch_cxt5066 }, 3940 3938 { .id = 0x14f15069, .name = "CX20585", 3941 3939 .patch = patch_cxt5066 }, 3940 + { .id = 0x14f1506e, .name = "CX20590", 3941 + .patch = patch_cxt5066 }, 3942 3942 { .id = 0x14f15097, .name = "CX20631", 3943 3943 .patch = patch_conexant_auto }, 3944 3944 { .id = 0x14f15098, .name = "CX20632", ··· 3967 3963 MODULE_ALIAS("snd-hda-codec-id:14f15067"); 3968 3964 MODULE_ALIAS("snd-hda-codec-id:14f15068"); 3969 3965 MODULE_ALIAS("snd-hda-codec-id:14f15069"); 3966 + MODULE_ALIAS("snd-hda-codec-id:14f1506e"); 3970 3967 MODULE_ALIAS("snd-hda-codec-id:14f15097"); 3971 3968 MODULE_ALIAS("snd-hda-codec-id:14f15098"); 3972 3969 MODULE_ALIAS("snd-hda-codec-id:14f150a1");
+12 -3
sound/pci/hda/patch_sigmatel.c
··· 586 586 0x0f, 0x10, 0x11, 0x1f, 0x20, 587 587 }; 588 588 589 - static hda_nid_t stac92hd88xxx_pin_nids[10] = { 589 + static hda_nid_t stac92hd87xxx_pin_nids[6] = { 590 + 0x0a, 0x0b, 0x0c, 0x0d, 591 + 0x0f, 0x11, 592 + }; 593 + 594 + static hda_nid_t stac92hd88xxx_pin_nids[8] = { 590 595 0x0a, 0x0b, 0x0c, 0x0d, 591 596 0x0f, 0x11, 0x1f, 0x20, 592 597 }; ··· 5435 5430 switch (codec->vendor_id) { 5436 5431 case 0x111d76d1: 5437 5432 case 0x111d76d9: 5433 + case 0x111d76e5: 5438 5434 spec->dmic_nids = stac92hd87b_dmic_nids; 5439 5435 spec->num_dmics = stac92xx_connected_ports(codec, 5440 5436 stac92hd87b_dmic_nids, 5441 5437 STAC92HD87B_NUM_DMICS); 5442 - spec->num_pins = ARRAY_SIZE(stac92hd88xxx_pin_nids); 5443 - spec->pin_nids = stac92hd88xxx_pin_nids; 5438 + spec->num_pins = ARRAY_SIZE(stac92hd87xxx_pin_nids); 5439 + spec->pin_nids = stac92hd87xxx_pin_nids; 5444 5440 spec->mono_nid = 0; 5445 5441 spec->num_pwrs = 0; 5446 5442 break; ··· 5449 5443 case 0x111d7667: 5450 5444 case 0x111d7668: 5451 5445 case 0x111d7669: 5446 + case 0x111d76e3: 5452 5447 spec->num_dmics = stac92xx_connected_ports(codec, 5453 5448 stac92hd88xxx_dmic_nids, 5454 5449 STAC92HD88XXX_NUM_DMICS); ··· 6394 6387 { .id = 0x111d76cd, .name = "92HD89F2", .patch = patch_stac92hd73xx }, 6395 6388 { .id = 0x111d76ce, .name = "92HD89F1", .patch = patch_stac92hd73xx }, 6396 6389 { .id = 0x111d76e0, .name = "92HD91BXX", .patch = patch_stac92hd83xxx}, 6390 + { .id = 0x111d76e3, .name = "92HD98BXX", .patch = patch_stac92hd83xxx}, 6391 + { .id = 0x111d76e5, .name = "92HD99BXX", .patch = patch_stac92hd83xxx}, 6397 6392 { .id = 0x111d76e7, .name = "92HD90BXX", .patch = patch_stac92hd83xxx}, 6398 6393 {} /* terminator */ 6399 6394 };
+1 -1
sound/pci/hda/patch_via.c
··· 567 567 hda_nid_t nid = cfg->inputs[i].pin; 568 568 if (spec->smart51_enabled && is_smart51_pins(spec, nid)) 569 569 ctl = PIN_OUT; 570 - else if (i == AUTO_PIN_MIC) 570 + else if (cfg->inputs[i].type == AUTO_PIN_MIC) 571 571 ctl = PIN_VREF50; 572 572 else 573 573 ctl = PIN_IN;
+1 -1
sound/soc/codecs/wm8903.h
··· 165 165 166 166 #define WM8903_VMID_RES_50K 2 167 167 #define WM8903_VMID_RES_250K 3 168 - #define WM8903_VMID_RES_5K 4 168 + #define WM8903_VMID_RES_5K 6 169 169 170 170 /* 171 171 * R8 (0x08) - Analogue DAC 0
+2 -3
sound/soc/codecs/wm8994.c
··· 3000 3000 report |= SND_JACK_BTN_5; 3001 3001 3002 3002 done: 3003 - snd_soc_jack_report(wm8994->micdet[0].jack, 3003 + snd_soc_jack_report(wm8994->micdet[0].jack, report, 3004 3004 SND_JACK_BTN_0 | SND_JACK_BTN_1 | SND_JACK_BTN_2 | 3005 3005 SND_JACK_BTN_3 | SND_JACK_BTN_4 | SND_JACK_BTN_5 | 3006 - SND_JACK_MICROPHONE | SND_JACK_VIDEOOUT, 3007 - report); 3006 + SND_JACK_MICROPHONE | SND_JACK_VIDEOOUT); 3008 3007 } 3009 3008 3010 3009 /**
+3
sound/soc/codecs/wm_hubs.c
··· 674 674 }; 675 675 676 676 static const struct snd_soc_dapm_route analogue_routes[] = { 677 + { "MICBIAS1", NULL, "CLK_SYS" }, 678 + { "MICBIAS2", NULL, "CLK_SYS" }, 679 + 677 680 { "IN1L PGA", "IN1LP Switch", "IN1LP" }, 678 681 { "IN1L PGA", "IN1LN Switch", "IN1LN" }, 679 682
+1 -1
sound/soc/imx/eukrea-tlv320.c
··· 79 79 .name = "tlv320aic23", 80 80 .stream_name = "TLV320AIC23", 81 81 .codec_dai_name = "tlv320aic23-hifi", 82 - .platform_name = "imx-pcm-audio.0", 82 + .platform_name = "imx-fiq-pcm-audio.0", 83 83 .codec_name = "tlv320aic23-codec.0-001a", 84 84 .cpu_dai_name = "imx-ssi.0", 85 85 .ops = &eukrea_tlv320_snd_ops,
+2 -2
sound/soc/pxa/e740_wm9705.c
··· 117 117 { 118 118 .name = "AC97", 119 119 .stream_name = "AC97 HiFi", 120 - .cpu_dai_name = "pxa-ac97.0", 120 + .cpu_dai_name = "pxa2xx-ac97", 121 121 .codec_dai_name = "wm9705-hifi", 122 122 .platform_name = "pxa-pcm-audio", 123 123 .codec_name = "wm9705-codec", ··· 126 126 { 127 127 .name = "AC97 Aux", 128 128 .stream_name = "AC97 Aux", 129 - .cpu_dai_name = "pxa-ac97.1", 129 + .cpu_dai_name = "pxa2xx-ac97-aux", 130 130 .codec_dai_name = "wm9705-aux", 131 131 .platform_name = "pxa-pcm-audio", 132 132 .codec_name = "wm9705-codec",
+2 -2
sound/soc/pxa/e750_wm9705.c
··· 99 99 { 100 100 .name = "AC97", 101 101 .stream_name = "AC97 HiFi", 102 - .cpu_dai_name = "pxa-ac97.0", 102 + .cpu_dai_name = "pxa2xx-ac97", 103 103 .codec_dai_name = "wm9705-hifi", 104 104 .platform_name = "pxa-pcm-audio", 105 105 .codec_name = "wm9705-codec", ··· 109 109 { 110 110 .name = "AC97 Aux", 111 111 .stream_name = "AC97 Aux", 112 - .cpu_dai_name = "pxa-ac97.1", 112 + .cpu_dai_name = "pxa2xx-ac97-aux", 113 113 .codec_dai_name ="wm9705-aux", 114 114 .platform_name = "pxa-pcm-audio", 115 115 .codec_name = "wm9705-codec",
+2 -2
sound/soc/pxa/e800_wm9712.c
··· 89 89 { 90 90 .name = "AC97", 91 91 .stream_name = "AC97 HiFi", 92 - .cpu_dai_name = "pxa-ac97.0", 92 + .cpu_dai_name = "pxa2xx-ac97", 93 93 .codec_dai_name = "wm9712-hifi", 94 94 .platform_name = "pxa-pcm-audio", 95 95 .codec_name = "wm9712-codec", ··· 98 98 { 99 99 .name = "AC97 Aux", 100 100 .stream_name = "AC97 Aux", 101 - .cpu_dai_name = "pxa-ac97.1", 101 + .cpu_dai_name = "pxa2xx-ac97-aux", 102 102 .codec_dai_name ="wm9712-aux", 103 103 .platform_name = "pxa-pcm-audio", 104 104 .codec_name = "wm9712-codec",
+2 -2
sound/soc/pxa/em-x270.c
··· 37 37 { 38 38 .name = "AC97", 39 39 .stream_name = "AC97 HiFi", 40 - .cpu_dai_name = "pxa-ac97.0", 40 + .cpu_dai_name = "pxa2xx-ac97", 41 41 .codec_dai_name = "wm9712-hifi", 42 42 .platform_name = "pxa-pcm-audio", 43 43 .codec_name = "wm9712-codec", ··· 45 45 { 46 46 .name = "AC97 Aux", 47 47 .stream_name = "AC97 Aux", 48 - .cpu_dai_name = "pxa-ac97.1", 48 + .cpu_dai_name = "pxa2xx-ac97-aux", 49 49 .codec_dai_name ="wm9712-aux", 50 50 .platform_name = "pxa-pcm-audio", 51 51 .codec_name = "wm9712-codec",
+2 -2
sound/soc/pxa/mioa701_wm9713.c
··· 162 162 { 163 163 .name = "AC97", 164 164 .stream_name = "AC97 HiFi", 165 - .cpu_dai_name = "pxa-ac97.0", 165 + .cpu_dai_name = "pxa2xx-ac97", 166 166 .codec_dai_name = "wm9713-hifi", 167 167 .codec_name = "wm9713-codec", 168 168 .init = mioa701_wm9713_init, ··· 172 172 { 173 173 .name = "AC97 Aux", 174 174 .stream_name = "AC97 Aux", 175 - .cpu_dai_name = "pxa-ac97.1", 175 + .cpu_dai_name = "pxa2xx-ac97-aux", 176 176 .codec_dai_name ="wm9713-aux", 177 177 .codec_name = "wm9713-codec", 178 178 .platform_name = "pxa-pcm-audio",
+2 -2
sound/soc/pxa/palm27x.c
··· 132 132 { 133 133 .name = "AC97 HiFi", 134 134 .stream_name = "AC97 HiFi", 135 - .cpu_dai_name = "pxa-ac97.0", 135 + .cpu_dai_name = "pxa2xx-ac97", 136 136 .codec_dai_name = "wm9712-hifi", 137 137 .codec_name = "wm9712-codec", 138 138 .platform_name = "pxa-pcm-audio", ··· 141 141 { 142 142 .name = "AC97 Aux", 143 143 .stream_name = "AC97 Aux", 144 - .cpu_dai_name = "pxa-ac97.1", 144 + .cpu_dai_name = "pxa2xx-ac97-aux", 145 145 .codec_dai_name = "wm9712-aux", 146 146 .codec_name = "wm9712-codec", 147 147 .platform_name = "pxa-pcm-audio",
+2 -2
sound/soc/pxa/tosa.c
··· 219 219 { 220 220 .name = "AC97", 221 221 .stream_name = "AC97 HiFi", 222 - .cpu_dai_name = "pxa-ac97.0", 222 + .cpu_dai_name = "pxa2xx-ac97", 223 223 .codec_dai_name = "wm9712-hifi", 224 224 .platform_name = "pxa-pcm-audio", 225 225 .codec_name = "wm9712-codec", ··· 229 229 { 230 230 .name = "AC97 Aux", 231 231 .stream_name = "AC97 Aux", 232 - .cpu_dai_name = "pxa-ac97.1", 232 + .cpu_dai_name = "pxa2xx-ac97-aux", 233 233 .codec_dai_name = "wm9712-aux", 234 234 .platform_name = "pxa-pcm-audio", 235 235 .codec_name = "wm9712-codec",
+2 -2
sound/soc/pxa/zylonite.c
··· 166 166 .stream_name = "AC97 HiFi", 167 167 .codec_name = "wm9713-codec", 168 168 .platform_name = "pxa-pcm-audio", 169 - .cpu_dai_name = "pxa-ac97.0", 169 + .cpu_dai_name = "pxa2xx-ac97", 170 170 .codec_name = "wm9713-hifi", 171 171 .init = zylonite_wm9713_init, 172 172 }, ··· 175 175 .stream_name = "AC97 Aux", 176 176 .codec_name = "wm9713-codec", 177 177 .platform_name = "pxa-pcm-audio", 178 - .cpu_dai_name = "pxa-ac97.1", 178 + .cpu_dai_name = "pxa2xx-ac97-aux", 179 179 .codec_name = "wm9713-aux", 180 180 }, 181 181 {
+4
sound/usb/card.c
··· 323 323 return -ENOMEM; 324 324 } 325 325 326 + mutex_init(&chip->shutdown_mutex); 326 327 chip->index = idx; 327 328 chip->dev = dev; 328 329 chip->card = card; ··· 532 531 chip = ptr; 533 532 card = chip->card; 534 533 mutex_lock(&register_mutex); 534 + mutex_lock(&chip->shutdown_mutex); 535 535 chip->shutdown = 1; 536 536 chip->num_interfaces--; 537 537 if (chip->num_interfaces <= 0) { ··· 550 548 snd_usb_mixer_disconnect(p); 551 549 } 552 550 usb_chip[chip->index] = NULL; 551 + mutex_unlock(&chip->shutdown_mutex); 553 552 mutex_unlock(&register_mutex); 554 553 snd_card_free_when_closed(card); 555 554 } else { 555 + mutex_unlock(&chip->shutdown_mutex); 556 556 mutex_unlock(&register_mutex); 557 557 } 558 558 }
+5 -2
sound/usb/pcm.c
··· 361 361 } 362 362 363 363 if (changed) { 364 + mutex_lock(&subs->stream->chip->shutdown_mutex); 364 365 /* format changed */ 365 366 snd_usb_release_substream_urbs(subs, 0); 366 367 /* influenced: period_bytes, channels, rate, format, */ ··· 369 368 params_rate(hw_params), 370 369 snd_pcm_format_physical_width(params_format(hw_params)) * 371 370 params_channels(hw_params)); 371 + mutex_unlock(&subs->stream->chip->shutdown_mutex); 372 372 } 373 373 374 374 return ret; ··· 387 385 subs->cur_audiofmt = NULL; 388 386 subs->cur_rate = 0; 389 387 subs->period_bytes = 0; 390 - if (!subs->stream->chip->shutdown) 391 - snd_usb_release_substream_urbs(subs, 0); 388 + mutex_lock(&subs->stream->chip->shutdown_mutex); 389 + snd_usb_release_substream_urbs(subs, 0); 390 + mutex_unlock(&subs->stream->chip->shutdown_mutex); 392 391 return snd_pcm_lib_free_vmalloc_buffer(substream); 393 392 } 394 393
+1
sound/usb/usbaudio.h
··· 36 36 struct snd_card *card; 37 37 u32 usb_id; 38 38 int shutdown; 39 + struct mutex shutdown_mutex; 39 40 unsigned int txfr_quirk:1; /* Subframe boundaries on transfers */ 40 41 int num_interfaces; 41 42 int num_suspended_intf;