azx_dev->last_pos = 0; 
static int azx_pcm_prepare(snd_pcm_substream_t *substream){	struct azx_pcm *apcm = snd_pcm_substream_chip(substream);	azx_t *chip = apcm->chip;	azx_dev_t *azx_dev = get_azx_dev(substream);	struct hda_pcm_stream *hinfo = apcm->hinfo[substream->stream];	snd_pcm_runtime_t *runtime = substream->runtime;	azx_dev->bufsize = snd_pcm_lib_buffer_bytes(substream);	azx_dev->fragsize = snd_pcm_lib_period_bytes(substream);	azx_dev->frags = azx_dev->bufsize / azx_dev->fragsize;	azx_dev->format_val = snd_hda_calc_stream_format(runtime->rate,							 runtime->channels,							 runtime->format,							 hinfo->maxbps);	if (! azx_dev->format_val) {		snd_printk(KERN_ERR SFX "invalid format_val, rate=%d, ch=%d, format=%d\n",			   runtime->rate, runtime->channels, runtime->format);		return -EINVAL;	}	snd_printdd("azx_pcm_prepare: bufsize=0x%x, fragsize=0x%x, format=0x%x\n",		    azx_dev->bufsize, azx_dev->fragsize, azx_dev->format_val);	azx_setup_periods(azx_dev);	azx_setup_controller(chip, azx_dev);	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)		azx_dev->fifo_size = azx_sd_readw(azx_dev, SD_FIFOSIZE) + 1;	else		azx_dev->fifo_size = 0;	return hinfo->ops.prepare(hinfo, apcm->codec, azx_dev->stream_tag,				  azx_dev->format_val, substream);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/0be3b5d3fb94c36c517655d18a936681d7108667/hda_intel.c/clean/sound/pci/hda/hda_intel.c