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 tag 'sound-fix-3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
"Here are a collection of small fixes after 3.18 merge.

The urgent one is the fix for kernel panics with linked PCM substream
triggered by the recent nonatomic PCM ops support. Other two fixes
(emu10k1 and bebob) are stable fixes, and one easy PCI ID addition for
a new Intel HD-audio controller"

* tag 'sound-fix-3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ALSA: hda_intel: Add Device IDs for Intel Sunrise Point PCH
ALSA: emu10k1: Fix deadlock in synth voice lookup
ALSA: pcm: Fix referred substream in snd_pcm_action_group() unlock loop
ALSA: bebob: Fix failure to detect source of clock for Terratec Phase 88

+9 -7
+1 -1
sound/core/pcm_native.c
··· 818 818 /* unlock streams */ 819 819 snd_pcm_group_for_each_entry(s1, substream) { 820 820 if (s1 != substream) { 821 - if (s->pcm->nonatomic) 821 + if (s1->pcm->nonatomic) 822 822 mutex_unlock(&s1->self_group.mutex); 823 823 else 824 824 spin_unlock(&s1->self_group.lock);
+2 -2
sound/firewire/bebob/bebob_terratec.c
··· 17 17 unsigned int enable_ext, enable_word; 18 18 int err; 19 19 20 - err = avc_audio_get_selector(bebob->unit, 0, 0, &enable_ext); 20 + err = avc_audio_get_selector(bebob->unit, 0, 9, &enable_ext); 21 21 if (err < 0) 22 22 goto end; 23 - err = avc_audio_get_selector(bebob->unit, 0, 0, &enable_word); 23 + err = avc_audio_get_selector(bebob->unit, 0, 8, &enable_word); 24 24 if (err < 0) 25 25 goto end; 26 26
+2 -4
sound/pci/emu10k1/emu10k1_callback.c
··· 85 85 * get more voice for pcm 86 86 * 87 87 * terminate most inactive voice and give it as a pcm voice. 88 + * 89 + * voice_lock is already held. 88 90 */ 89 91 int 90 92 snd_emu10k1_synth_get_voice(struct snd_emu10k1 *hw) ··· 94 92 struct snd_emux *emu; 95 93 struct snd_emux_voice *vp; 96 94 struct best_voice best[V_END]; 97 - unsigned long flags; 98 95 int i; 99 96 100 97 emu = hw->synth; 101 98 102 - spin_lock_irqsave(&emu->voice_lock, flags); 103 99 lookup_voices(emu, hw, best, 1); /* no OFF voices */ 104 100 for (i = 0; i < V_END; i++) { 105 101 if (best[i].voice >= 0) { ··· 113 113 vp->emu->num_voices--; 114 114 vp->ch = -1; 115 115 vp->state = SNDRV_EMUX_ST_OFF; 116 - spin_unlock_irqrestore(&emu->voice_lock, flags); 117 116 return ch; 118 117 } 119 118 } 120 - spin_unlock_irqrestore(&emu->voice_lock, flags); 121 119 122 120 /* not found */ 123 121 return -ENOMEM;
+4
sound/pci/hda/hda_intel.c
··· 218 218 "{Intel, LPT}," 219 219 "{Intel, LPT_LP}," 220 220 "{Intel, WPT_LP}," 221 + "{Intel, SPT}," 221 222 "{Intel, HPT}," 222 223 "{Intel, PBG}," 223 224 "{Intel, SCH}," ··· 1998 1997 .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH }, 1999 1998 /* Wildcat Point-LP */ 2000 1999 { PCI_DEVICE(0x8086, 0x9ca0), 2000 + .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH }, 2001 + /* Sunrise Point */ 2002 + { PCI_DEVICE(0x8086, 0xa170), 2001 2003 .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH }, 2002 2004 /* Haswell */ 2003 2005 { PCI_DEVICE(0x8086, 0x0a0c),