ali_t *codec = snd_pcm_substream_chip(substream); snd_pcm_runtime_t *runtime = substream->runtime; snd_ali_voice_t *pvoice; unsigned long flags;  spin_lock_irqsave(&codec->reg_lock, flags); pvoice = snd_ali_alloc_voice(codec, SNDRV_ALI_VOICE_TYPE_PCM, 1); if (pvoice == NULL) { spin_unlock_irqrestore(&codec->reg_lock, flags); return -EAGAIN; } pvoice->codec = codec; spin_unlock_irqrestore(&codec->reg_lock, flags);  pvoice->substream = substream; runtime->private_data = pvoice; runtime->private_free = snd_ali_pcm_free_substream; runtime->hw = snd_ali_capture; snd_pcm_set_sync(substream); snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_BUFFER_SIZE, 0, 64*1024); return 0; 
return snd_ali_open(substream, 1, -1, &snd_ali_capture); 
static int snd_ali_capture_open(snd_pcm_substream_t * substream){	ali_t *codec = snd_pcm_substream_chip(substream);	snd_pcm_runtime_t *runtime = substream->runtime;	snd_ali_voice_t *pvoice;	unsigned long flags;	spin_lock_irqsave(&codec->reg_lock, flags);	pvoice = snd_ali_alloc_voice(codec, SNDRV_ALI_VOICE_TYPE_PCM, 1);	if (pvoice == NULL) {		spin_unlock_irqrestore(&codec->reg_lock, flags);		return -EAGAIN;	}	pvoice->codec = codec;	spin_unlock_irqrestore(&codec->reg_lock, flags);	pvoice->substream = substream;	runtime->private_data = pvoice;	runtime->private_free = snd_ali_pcm_free_substream;	runtime->hw = snd_ali_capture;	snd_pcm_set_sync(substream);	snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_BUFFER_SIZE, 0, 64*1024);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/5cbff89cbc1087870c32ecb0b7f1965f93ec5401/ali5451.c/clean/sound/pci/ali5451/ali5451.c